1 C00   23:14 JUN 20,'83                                                                          PAGE    1
A      1                     4.000  +4,4                                                                *H01
       2                     4.010  VERSION  EQU      C'H02'                                            *H02
       3                     7.000  +7                                                                  *H01
       4                     7.010  IOERRMAX EQU      1                 MAXIMUM ERRORS BEFORE FAILURE   *H01
       5                     7.020           SPACE                                                      *H01
       6                    40.000  +40                                                                 *H02
       7                    40.010  DFLTPASS EQU      2                 DEFAULT NUMBER OF PASSES        *H02
       8                   457.000  +457                                                                *H01
       9                   457.010  ENDPROC  EQU      %                                                 *H01
      10                   457.020           CALL     SETSTACK          RESET THE STACK                 *H01
      11                   457.030           SPACE                                                      *H01
      12                   467.000  +467                                                                *H02
      13                   467.010           LI,R0    DFLTPASS          SET DEFAULT NUMBER              *H02
      14                   467.020           STW,R0   PASSMAX            OF INITIALIZATION PASSES       *H02
      15                   520.000  +520                                                                *H01
      16                   520.010           SPACE                                                      *H01
      17                   522.000  +522                                                                *H01
      18                   522.010           SPACE                                                      *H01
      19                   522.020           CI,R1    1                 EVEN CLASSES IGNORED,           *H01
      20                   522.030           BAZ      %+2                ODD CLASSES FORCED TO 1        *H01
      21                   522.040           LI,R1    1                   (7275 PATTERNS)               *H01
      22                   522.050           STW,R1   PATFLAG                                           *H01
      23                   598.000  +598,598                                                            *H02
      24                   605.000  +605                                                                *H01
      25                   605.010           FUNCTION 'TCPV',TCPV                                       *H01
      26                   605.020           FUNCTION 'PASS',PASS                                       *H02
      27                   605.030           SPACE                                                      *H01
      28                   609.000  +609,609                                                            *H01
      29                   609.010           LW,R3    PATFLAG            SELECT CURRENT DEFAULT         *H01
      30                   622.000  +622                                                                *H02
      31                   622.010           SPACE                                                      *H02
      32                   622.020  PASS     LI,R3    DFLTPASS          SET DEFAULT                     *H02
      33                   622.030           STW,R3   PASSMAX                                           *H02
      34                   622.040           SPACE                                                      *H02
      35                   622.050           CI,R0    1                 SKIP IF NO                      *H02
      36                   622.060           BANZ     INSCAN3            ARGUMENT PRESENT               *H02
      37                   622.070           SPACE                                                      *H02
      38                   622.080           CALL     DECCONV           CONVERT ARGUMENT                *H02
      39                   622.090           RTN      PASSMAX            TO DECIMAL                     *H02
      40                   622.100           NOPAR                                                      *H02
      41                   622.110           BAR      CARDERR                                           *H02
      42                   622.120           BAR      CARDERR                                           *H02
      43                   622.130           B        INSCAN3                                           *H02
      44                   622.140           B        CARDERR                                           *H02
      45                   709.000  +709                                                                *H01
      46                   709.010           SPACE                                                      *H01
      47                   709.020  *********KEYWORD='TCPV'*********************************            *H01
      48                   709.030  *                                                                   *H01
      49                   709.040  TCPV     MTW,1    TCPVFLAG          SET NEW HEADER FORMAT FLAG      *H01
      50                   709.050           B        NOLAB0                                            *H01
      51                   709.060           SPACE                                                      *H01
      52                   714.000  +714,714                                                            *H01
      53                   714.010           SPACE                                                      *H01
      54                   714.020  NOLAB0   CI,R0    1                 ENFORCE NULL ARGUMENT           *H01
      55                   748.000  +748,755                                                            *H02
      56                   774.000  +774,775                                                            *H01
      57                   774.010           BLZ      CARDERR           ERROR IF .LT. 0                 *H01
      58                   774.020           BGZ      TRY6               SKIP IF .NE. 0                 *H01
      59                   774.030           SPACE                                                      *H01
      60                   774.040           MTW,1    ALLMODE           ELSE SET TO REJECT ALL          *H01
      61                   774.050           LI,R3    1                  TRACKS WITH ERRORS             *H01
      62                   774.060           SPACE                                                      *H01
      63                   774.070  TRY6     CI,R3    50                                                *H01
      64                   889.000  +889                                                                *H01
      65                   889.010           SPACE                                                      *H01
      66                   889.020           LI,R0    0                 CLEAR IO ERROR COUNTER          *H01
      67                   889.030           STW,R0   IOERRORS                                          *H01
      68                   889.040           SPACE                                                      *H01
      69                   890.000  +890,893                                                            *H02
      70                   993.000  +993,995                                                            *H01
      71                   993.010           B        MAINSCAN          ..  START AGAIN                 *H01
      72                  1034.000  +1034,1034                                                          *H00
      73                  1034.010  3281WM   MESSAGE  'PACK SHOULD BE CLEARED BEFORE INITIALIZATION'    *H00
      74                  1353.000  +1353,1353                                                          *H02
      75                  1360.000  +1360                                                               *H01
      76                  1360.010  TCPVFLAG RES      1                 NEW HEADER FORMAT FLAG          *H01
      77                  1360.020  PASSMAX  RES      1                 NUMBER OF PASSES PER CYLINDER   *H02
      78                  1360.030  ALLMODE  RES      1                 REJECT ALL TRACKS WITH ERRORS   *H01
      79                  1983.000  +1983,1983                                                          *H01
      80                  1983.010           LI,R0    IOERRMAX          MAXIMUM ERRORS BEFORE FAILURE   *H01
      81                  1983.020           SPACE                                                      *H01
      82                  2044.000  +2044,2046                                                          *H01
      83                  2140.000  +2140,2142                                                          *H01
      84                  2140.010           B        ERRSCAN3          HEADER ERRORS ARE RETRIED       *H01
      85                  2146.000  +2146,2146                                                          *H01
      86                  2146.010           BCS,2    RETRY             SSW3 SET => SIMPLE RETRY        *H01
      87                  2193.000  +2193,2194                                                          *H02
      88                  2196.000  +2196                                                               *H01
      89                  2196.005           SPACE                                                      *H01
      90                  2196.010           LI,R3    0                 CLEAR CR SUPPRESSION            *H01
      91                  2196.020           STW,R3   TYPINF                                            *H01
      92                  2196.080           SPACE                                                      *H01
      93                  2196.090           CALL     TYPE              APPEND SEEK DATA                *H01
      94                  2196.100           EFA      DIAGMSG1                                          *H01
      95                  2210.000  +2210                                                               *H01
      96                  2210.010  DIAGMSG1 MESSAGE  ', SEEK DATA: ',XLZ(SEEKBUFF,0,32)                *H01
      97                  2350.000  +2350,2350                                                          *H01
      98                  2350.010  RETRY    EQU      TRANSERR          RETRY RETURN (MESSAGE DISPLAYED)*H01
      99                  2685.000  +2685,2687                                                          *H01
     100                  2685.010           B        ALTSTART                                          *H01
     101                  2691.000  +2691                                                               *H01
     102                  2691.010           SPACE                                                      *H01
     103                  2691.020           MTW,0    TCPVFLAG                                          *H01
     104                  2691.030           BNEZ     DISCNEW                                           *H01
     105                  2700.000  +2700,2703                                                          *H01
     106                  2700.010           B        ALTSTART                                          *H01
     107                  2700.020           SPACE                                                      *H01
     108                  2700.030  DISCNEW  SLD,E1   -8-5              CREATE 11-BIT CYLINDER          *H01
     109                  2700.040           SLS,E1   +3                 AND 5-BIT TRACK                *H01
     110                  2700.050           SPACE                                                      *H01
     111                  2700.060           SLS,E2   -3                                                *H01
     112                  2700.070           SLD,E1   +16                                               *H01
     113                  2700.080           SPACE                                                      *H01
     114                  2700.090  ALTSTART LI,E2    -256              CLEAR SECTOR                    *H01
     115                  2700.100           STS,E1   SEEKDATA           AND CREATE NEW SEEK            *H01
     116                  2700.110           B        START               THEN REPEAT OPERATION         *H01
     117                  3325.000  +3325                                                               *H00
     118                  3325.010           SPACE                                                      *H00
     119                  3344.000  +3344,3370                                                          *H00
     120                  3344.010           LI,R1    0                 RESET TYPE FLAG                 *H00
     121                  3609.000  +3609                                                               *H01
     122                  3609.010           SPACE                                                      *H01
     123                  3609.020           BAL,E4   WINDUP            START THE CLOCK                 *H01
     124                  3655.000  +3655                                                               *H01
     125                  3655.010           SPACE                                                      *H01
     126                  3655.020           LW,R5    TOCK              CONVERT TICKS TO                *H01
     127                  3655.030           DW,R5    =500               SECONDS FOR DISPLAY            *H01
     128                  3655.040           SPACE                                                      *H01
     129                  3658.000  +3658                                                               *H01
     130                  3658.010           SPACE                                                      *H01
     131                  3658.020  WINDUP   LI,E1    X'1040'           STOP CLOCK FROM TICKING         *H01
     132                  3658.030           WD,E1    X'1100'                                           *H01
     133                  3658.040           SPACE                                                      *H01
     134                  3658.050           LW,E1    TICK              SET THE TICK INSTRUCTION        *H01
     135                  3658.060           STW,E1   X'55'                                             *H01
     136                  3658.070           SPACE                                                      *H01
     137                  3658.080           LI,E1    0                 CLEAR THE HOUR-GLASS            *H01
     138                  3658.090           STW,E1   TOCK                                              *H01
     139                  3658.100           SPACE                                                      *H01
     140                  3658.110           LI,E1    X'1000'           AND TURN IT OVER                *H01
     141                  3658.120           WD,E1    X'1200'                                           *H01
     142                  3658.130           SPACE                                                      *H01
     143                  3658.140           B        *E4                                               *H01
     144                  3658.150           SPACE                                                      *H01
     145                  3658.160  TICK     MTW,1    TOCK                                              *H01
     146                  3658.170  TOCK     RES      1                                                 *H01
     147                  3665.000  +3665,3665                                                          *H01
     148                  3665.010                    ', REJECTS:',ILZ(REJECTS,32-11,11),;              *H01
     149                  3665.020                    ', SECONDS:',ILZ(R5,32-16,16)                     *H01
     150                  3851.000  +3851,3852                                                          *H02
     151                  3851.003  READHDR  EQU      %                 HEADER READ ENTRY               *H01
     152                  3851.040           SPACE                                                      *H01
     153                  3851.050  WRITEHDR EQU      %                 HEADER WRITE ENTRY              *H01
     154                  3972.000  +3972,3972                                                          *H01
     155                  3972.010  COMPARE  EQU      %                 COMPARE OBS AND EXP HEADERS     *H02
     156                  3972.040           SPACE                                                      *H01
     157                  3972.050           ANLZ,R5  LBUFF             FORM WRITE/READ BUFFER POINTERS *H01
     158                  3987.000  +3987,3988                                                          *H02
     159                  3987.005  TEST     LW,E1    PASSMAX           SKIP IF SURFACE TESTING         *H02
     160                  3987.010           CI,E1    0                  SUPPRESSED                     *H02
     161                  3987.015           BLE      TEST1                                             *H02
     162                  4049.000  +4049,4049                                                          *H02
     163                  4119.000  +4119                                                               *H01
     164                  4119.010           SPACE                                                      *H01
     165                  4119.020           MTW,0    TCPVFLAG                                          *H01
     166                  4119.030           BNEZ     SETUP3                                            *H01
     167                  4124.000  +4124                                                               *H01
     168                  4124.010           B        SETUP                                             *H01
     169                  4124.020           SPACE                                                      *H01
     170                  4124.030  SETUP3   LI,E1    X'FFFF'           PREPARE NEW HEADER FORMAT       *H01
     171                  4124.040           AND,E1   HBUFF+1                                           *H01
     172                  4124.050           SPACE                                                      *H01
     173                  4124.060           LW,E2    HBUFF+2           11-BIT CYLINDER                 *H01
     174                  4124.070           SLS,E2   3                  AND 5-BIT TRACKS               *H01
     175                  4124.080           SPACE                                                      *H01
     176                  4124.090           SLD,E1   -3                                                *H01
     177                  4124.100           SCS,E2   8                                                 *H01
     178                  4124.110           SPACE                                                      *H01
     179                  4124.120           STB,E2   HBUFF+2                                           *H01
     180                  4124.130           SPACE                                                      *H01
     181                  4124.140           LI,R3    7                                                 *H01
     182                  4124.150           STB,E1   HBUFF,R3                                          *H01
     183                  4286.000  +4286,4287                                                          *H02
     184                  4286.005           LCW,R3   PASSMAX           GET NUMBER OF PASSES            *H02
     185                  4286.010           SPACE                                                      *H02
     186                  4286.015  IOTEST1  LW,E1    PATFLAG           GET PATTERN TYPE                *H02
     187                  4288.000  +4288,4297                                                          *H01
     188                  4288.010           SPACE                                                      *H01
     189                  4288.020           CI,E1    1                 LOOK FOR 7275                   *H01
     190                  4288.030           BE       DSKATEST                                          *H01
     191                  4288.040           SPACE                                                      *H01
     192                  4288.050           LI,E2    PTN7242+1         ASSUME 7242-LIKE (EVEN)         *H01
     193                  4288.060           CI,E1    1                  SKIP IF EVEN                   *H01
     194                  4288.070           BAZ      %+2                                               *H01
     195                  4288.080           LI,E2    PTNALTN+1         CORRECT FOR ALTERNATING         *H01
     196                  4288.090           SPACE                                                      *H01
     197                  4288.100           LI,R6    X'FFFFE'          INDEX SET TO -1 OR -2           *H02
     198                  4288.102           OR,R6    R3                                                *H02
     199                  4288.104           LW,E2    *E2,R6                                            *H02
     200                  4288.110           SPACE                                                      *H01
     201                  4288.120           LW,E1    BUFFORG           COMPUTE FWA-1 OF BUFFER         *H01
     202                  4288.130           AI,E1    -1                                                *H01
     203                  4288.140           SPACE                                                      *H01
     204                  4288.150           INT,R7   SDATA,R2          GET SIZE OF SECTOR              *H01
     205                  4288.160           SPACE                                                      *H01
     206                  4288.170           STW,E2   *E1,R7            STORE PATTERN DATA              *H01
     207                  4288.180           BDR,R7   %-1                                               *H01
     208                  4288.190           SPACE                                                      *H01
     209                  4302.000  +4302,4303                                                          *H01
     210                  4302.010           SPACE                                                      *H01
     211                  4302.020           LCW,E2   R3                COMPUTE (R3 MOD 3)+1            *H02
     212                  4302.022           LI,E1    0                  R6 WILL BE -3, -2, -1          *H02
     213                  4302.024           DW,E1    =3                  IN ROTATING SEQUENCES         *H02
     214                  4302.026           AI,E1    1                                                 *H02
     215                  4302.028           LCW,R6   E1                                                *H02
     216                  4302.080           SPACE                                                      *H01
     217                  4302.090  DSKATST1 LW,E2    PTN7275+3,R6      GET PATTERN DATA                *H01
     218                  4307.000  +4307,4307                                                          *H01
     219                  4307.010           STW,E2   *BUFFORG,R7                                       *H01
     220                  4382.000  +4382                                                               *H01
     221                  4382.010           SPACE                                                      *H01
     222                  4385.000  +4385                                                               *H01
     223                  4385.010           SPACE                                                      *H01
     224                  4391.000  +4391                                                               *H01
     225                  4391.010           SPACE                                                      *H01
     226                  4418.000  +4418,4418                                                          *H01
     227                  4418.010  PTN7275  DATA     X'DB6DB6DB'       TEST PATTERN CLASS 1            *H01
     228                  4422.000  +4422,4424                                                          *H01
     229                  4422.010  PTN7242  DATA     X'FFFFFFFF',X'00000000' 7242-LIKE                 *H01
     230                  4422.020  PTNALTN  DATA     X'AAAAAAAA',X'55555555' ALTERNATING               *H01
     231                  4477.000  +4477,4478                                                          *H01
     232                  4477.010  MAPSIZE  EQU      512               SIZE OF ERROR/FLAG MAP          *H01
     233                  4477.020  ALTSIZE  EQU      50                SIZE OF ALTERNATE CYLINDER MAP  *H01
     234                  4511.000  +4511,4511                                                          *H01
     235                  4511.010           SPACE                                                      *H01
     236                  4511.020           CI,R3    ALTSIZE           LOOK FOR ALTERNATE MAP          *H01
     237                  4511.030           BLE      MAPINIT0           OVERFLOW (IT HURTS...)         *H01
     238                  4511.040           SPACE                                                      *H01
     239                  4511.050           CALL     TYPE                                              *H01
     240                  4511.060           EFA      ALTOVER                                           *H01
     241                  4511.070           SPACE                                                      *H01
     242                  4511.080           CALL     ABORT                                             *H01
     243                  4511.090           SPACE                                                      *H01
     244                  4511.100  MAPINIT0 STW,R0   ALTMAP,R3         FLAG END OF TABLE (ZERO)        *H01
     245                  4550.000  +4550,4551                                                          *H01
     246                  4550.010           B        ALLERR                                            *H01
     247                  4550.020           SPACE                                                      *H01
     248                  4550.030  LOGERR   MTW,0    ALLMODE           IF ALLMODE IS SET, REJECT       *H01
     249                  4550.040           BEZ      ALLERR             ALL TRACKS WITH ERRORS         *H01
     250                  4550.050           SPACE                                                      *H01
     251                  4550.060           MTB,8    LNK                                               *H01
     252                  4550.070           SPACE                                                      *H01
     253                  4550.080  ALLERR   MODULE   IN(CYL,TRACK,ERRORS),USE(R5)                      *H01
     254                  4595.000  +4595,4595                                                          *H01
     255                  4595.010  LGEREXIT EXIT     ALLERR            EXIT TO CALLING PROGRAM         *H01
     256                  5129.000  +5129                                                               *H01
     257                  5129.010  ALTOVER  MESSAGE  DSP,'DEVICE CONFIGURED FOR MORE THAN ',;          *H01
     258                  5129.020                    IVL(L(ALTSIZE)),' ALTERNATE CYLINDERS'            *H01
     259                  5328.000  +5328,5328                                                          *H00
     260                  5328.010  3281PARS DEVICE   '3281'            STC 8350 WINCHESTER             *H00
     261                  5335.000  +5335                                                               *H00
     262                  5335.010           SPACE                                                      *H00
     263                  5335.020  3282PARS DEVICE   '3282'            STC 8775 WINCHESTER             *H00
     264                  5335.030           CLASS    3                                                 *H00
     265                  5335.040           DIMEN    1123,30,16                                        *H00
     266                  5335.050           SEEK     4,16,8,8                                          *H00
     267                  5335.060           SENSE    16,11,5,5                                         *H00
     268                  5335.070           ALTERN   1092              CPV LIMITED                     *H00
     269                  5335.080           SECTSIZE 256                                               *H00
     270                  5335.090           FLAGS    0,1               NO INCREMENT ON ERROR           *H00
     271                  5335.100           SPACE                                                      *H00
     272                  5335.110  3283PARS DEVICE   '3283'            T302/306 REMOVABLE MEDIA        *H00
     273                  5335.120           CLASS    3                                                 *H00
     274                  5335.130           DIMEN    815,19,16                                         *H00
     275                  5335.140           SEEK     4,16,8,8                                          *H00
     276                  5335.150           SENSE    16,10,5,5                                         *H00
     277                  5335.160           ALTERN   810                                               *H00
     278                  5335.170           SECTSIZE 256                                               *H00
     279                  5335.180           FLAGS    0,1               NO INCREMENT ON ERROR           *H00
     280                  5725.000  +5725                                                               *H01
     281                  5725.010           SPACE                                                      *H01
     282                  5725.020           BAL,E4   WINDUP                                            *H01
     283                  5743.000  +5743                                                               *H01
     284                  5743.010           SPACE                                                      *H01
     285                  5764.000  +5764                                                               *H01
     286                  5764.010           SPACE                                                      *H01
     287                  5801.000  +5801,5801                                                          *H01
     288                  5801.010           MTW,0    TCPVFLAG          SKIP IF NOT RUNNING             *H01
     289                  5801.020           BEZ      CHK025B            NEW HEADER FORMAT              *H01
     290                  5801.030           SPACE                                                      *H01
     291                  5801.040           AND,E1   MASK+11-1         ELSE TAKE 11-BIT CYLINDER       *H01
     292                  5801.050           STW,E1   ALT:CYL                                           *H01
     293                  5801.055           B        CHK025A                                           *H01
     294                  5801.060           SPACE                                                      *H01
     295                  5801.070  CHK025B  SLD,E1   -3                CONVENTIONAL HEADERS            *H01
     296                  5816.000  +5816,5816                                                          *H01
     297                  5816.010  CHK025A  LC       VERFLAG           SKIP IF NOT UPDATE              *H01
     298                  5856.000  +5856                                                               *H01
     299                  5856.010           SPACE                                                      *H01
     300                  5856.020           LW,R1    TOCK              CONVERT TIME                    *H01
     301                  5856.030           DW,R1    =500               TO SECONDS FOR DISPLAY         *H01
     302                  5881.000  +5881                                                               *H02
     303                  5881.010           LW,R5    TOCK                                              *H02
     304                  5881.020           DW,R5    =500                                              *H02
     305                  5881.030           SPACE                                                      *H02
     306                  6022.000  +6022,6024                                                          *H02
     307                  6034.000  +6034,6034                                                          *H01
     308                  6034.010           B        NXCYL             CONTINUE WITH NEXT CYLINDER     *H01
     309                  6083.000  +6083,6083                                                          *H01
     310                  6083.010  SCN:MSG  MESSAGE  SSP,'CYL:',ILZ(CYL,16-11,11),;                    *H01
     311                  6083.020                    ', SECONDS:',ILZ(R1,32-16,16)                     *H01
     312                  9999.999  +END
1 C00   23:14 JUN 20,'83                                                                          PAGE    2
A   .SS BA,HA,WA,DA,LF,CF,AF,AFA,NAME,NUM,ABSVAL
    .SS R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15
    .SS X1,X2,X3,X4,X5,X6,X7,SCOR,TCOR,%,%%
    .END
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE    3
A       1                                     PCC      0
        2                                     SYSTEM   SIG5P
        3         TEXT               CATALOG  EQU      C'0700'                                           *G02
        1*        TEXT               VERSION  EQU      C'H02'                                            *H02
        5                            TITLE    EQU      S:PT('TELEFILE DISK INITIALIZATION PROGRAM ',;    *G02
        6         TEXT                                 '960-',CATALOG,'-',VERSION)                       *G02

        1*        00000001           IOERRMAX EQU      1                 MAXIMUM ERRORS BEFORE FAILURE   *H01

        8         00000000           R0       EQU      0                 SYMBOLIC REGISTER ASSIGNMENTS
        9         00000001           R1       EQU      1                 ..
       10         00000002           R2       EQU      2
       11         00000003           R3       EQU      3                 ..
       12         00000004           R4       EQU      4                 ..
       13         00000005           R5       EQU      5                 ..
       14         00000006           R6       EQU      6                 ..
       15         00000007           R7       EQU      7                 ..
       16         00000008           R8       EQU      8                 ..
       17         00000009           R9       EQU      9                 ..
       18         0000000A           R10      EQU      10                ..
       19         0000000B           R11      EQU      11                ..
       20         0000000C           R12      EQU      12                ..
       21         0000000D           R13      EQU      13                ..
       22         0000000E           R14      EQU      14                ..
       23         0000000F           R15      EQU      15                ..

       25         0000000C           E1       EQU      R12               ERASABLE REGISTER DEFINITIONS
       26         0000000D           E2       EQU      R13               ..
       27         0000000E           E3       EQU      R14               ..
       28         0000000F           E4       EQU      R15               ..

       30         0000000F           LNK      EQU      E4                RAD INIT SYSTEM LINKAGE REGISTER

       32                                     OPEN     F,I,J,X,MTAB,SAVE,SYNTAB,EQVTAB,;
       33                                              IPARS,OPARS,NIPRS,NOPRS,NREGS,RA,INST,;
       34                                              LISTCTR,MINDEX,ASSIGN,ARG

       36         00000900           PROGRAM  SET      X'900'
       37         00000500           ARGUMENT SET      X'500'
       38         00000100           STRINGS  SET      X'100'

       40         00000002           DFLTRTRY EQU      2                 DEFAULT RETRY LIMIT
        1*        00000002           DFLTPASS EQU      2                 DEFAULT NUMBER OF PASSES        *H02

       42         01 00000           ORIG     EQU      %                 RELOCATION BASE
       43   01 00900                          ORG      PROGRAM
            01 00900
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE    4
A      45                            ************************************************************************
       46                            *                                                                      *
       47                            *        FUNCTIONS 'ON', 'OFF' .. FOR LISTING CONTROL                  *
       48                            *                                                                      *
       49                            ************************************************************************

       51         00000000           LISTCTR  SET      0                 INITIALIZE COUNTER FOR 'LIST'
       52         00000001           OFF      FNAME    +1                TO TURN OFF LISTING MODE
       53         FFFFFFFF           ON       FNAME    -1                TO TURN ON LISTING MODE IF 'READY'
       54                                     PROC                       ..
       55                            LISTCTR  SET      LISTCTR+NAME      INCREMENT/DECREMENT LIST COUNTER
       56                                     PEND     LISTCTR=0         RETURN 'ON' IF NO 'OFF' REQUESTS

       58                            ************************************************************************
       59                            *                                                                      *
       60                            *        THESE MACROS ARE USED TO DEFINE THE INTERFACE USED BY         *
       61                            *        SUBPROGRAMS IN MODULARLY-DESIGNED SYSTEMS.  THEY PROVIDE      *
       62                            *        A REGISTER-FREE INTERFACE AT LITTLE COST IN EXECUTION TIME    *
       63                            *        AND GIVE THE PROGRAMMER CONSIDERABLE FLEXIBILITY IN CON-      *
       64                            *        NECTING MODULES AND PARAMETER LISTS.                          *
       65                            *                                                                      *
       66                            ************************************************************************

       68         00000000           I        SET      0                 INITIALIZE NUMBER OF DEFINED MODULES
       69         00000000           MTAB     SET      0                 INITIALIZE 'MODULE INDEX' TABLE
       70         FFFFFFFF           SYNTAB   SET      -1                INITIALIZE 'MODULE SYNONYM' TABLE
       71         FFFFFFFF           EQVTAB   SET      -1                INITIALIZE ASSOCIATED EQUIVALENCES

       73         00000000           CALL     CNAME                      TO CALL A SUBROUTINE
       74                                     PROC                       ..
       75                            LF       BAL,LNK  AF                ..
       76                                     PEND                       ..

       78         00000000           BAR      CNAME                      'BRANCH ON ABNORMAL RETURN'
       79                                     PROC                       .. THIS IS OF MNEMONIC SIGNIFICANCE,
       80                            LF       B        AF                .. NOT TO SHOW MACHINE MUSCLE
       81                                     PEND                       ..
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE    5
A      83                            ************************************************************************
       84                            *                                                                      *
       85                            *        'MODULE' .. MACRO TO DEFINE PARAMETERS ASSOCIATED WITH        *
       86                            *        A PROGRAM MODULE.  'MODULE' DEFINES THE PROGRAM ORIGIN,       *
       87                            *        INPUT AND OUTPUT PARAMETERS, AND NUMBER OF REGISTERS USED     *
       88                            *        BY THE PROGRAM.  PROTOTYPE STATEMENT ..                       *
       89                            *                                                                      *
       90                            *        <NAME>   MODULE   IN(INLIST),OUT(OUTLIST),USE(REGLIST)        *
       91                            *                                                                      *
       92                            *        'NAME' IS THE NAME OF THE MODULE AND IS EQUATED TO THE        *
       93                            *        CURRENT EXECUTION LOCATION COUNTER.  'INLIST' IS A LIST OF    *
       94                            *        NAMES OF INPUT PARAMETERS, AND 'OUTLIST' IS A LIST OF NAMES   *
       95                            *        OF OUTPUT PARAMETERS.  IF THE LIST IS NULL, ITS ASSOCIATED    *
       96                            *        KEY FUNCTION MAY BE OMITTED.  'REGLIST' IS A LIST OF REGISTERS*
       97                            *        USED BY THE MODULE.  ONLY THE LARGEST REGISTER VALUE NEED     *
       98                            *        BE PROVIDED.  E.G., USE(R0,R1,R2)=USE(R2).                    *
       99                            *                                                                      *
      100                            ************************************************************************

      102         00000000           MODULE   CNAME                      TO DEFINE A MODULE; I.E., SUBROUTINE
      103                                     PROC                       ..
      104                            LF       EQU      %                 DEFINE SYMBOLIC MODULE NAME
      105                                     DO       AFA(1)            IS IT A 'SAME AS' MODULE
      106                            SYNTAB   SET      SYNTAB,ABSVAL(%)  YES, LOCATION TO SYNONYM LIST
      107                            EQVTAB   SET      EQVTAB,MINDEX(AF) AND SYNONYM MODULE TO EQUIVALENCE
      108                                     ELSE                      *NEW MODULE NAME, DEFINE PARAMS
      109                            I        SET      I+1               INCREMENT MODULE COUNTER
      110                            MTAB(I)  SET      ABSVAL(%)         ENTER LOCATION INTO MODULE LIST
      111                            NREGS(I) SET      0                 INITIALIZE ALL MODULE VARIABLES
      112                            IPARS(I) SET      0                 ..
      113                            OPARS(I) SET      0                 ..
      114                            NIPRS(I) SET      0                 ..
      115                            NOPRS(I) SET      0                 ..
      116                            F        SET      AF                EXPAND ANY ASSOCIATED FUNCTIONS
      117                                     FIN                        .. (I.E., 'USE', 'IN', 'OUT')
      118                                     ENTRY    LF
      119                                     PEND                       ..

      121         00000000           USE      FNAME                      TO DECLARE REGISTER USAGE
      122                                     PROC                       ..
      123                            J        DO       NUM(AF)           .. ALL THAT WE CARE ABOUT HERE
      124                                     DO       AF(J)+1>NREGS(I)  .. IS THE HIGHEST REGISTER DECLARED
      125                            NREGS(I) SET      AF(J)+1           .. NUMBER USED = HIGHEST + 1
      126                                     FIN                        ..
      127                                     FIN                        ..
      128                                     PEND     0                 WE REALLY DON'T USE FUNCTION VALUE

      130         00000000           IN       FNAME                      TO DECLARE INPUT PARAMETERS
      131                                     PROC                       ..
      132                            IPARS(I) SET      ASSIGN(AF)        DEFINE ORIGIN OF PARAMETER BUFFER
      133                            NIPRS(I) SET      NUM(AF)           DEFINE NUMBER OF INPUT PARAMETERS
      134                                     PEND     0                 END OF MACRO

      136         00000000           OUT      FNAME                      TO DECLARE OUTPUT PARAMETER NAMES
      137                                     PROC                       ..
      138                            OPARS(I) SET      ASSIGN(AF)        DEFINE ADDRESS OF FIRST PARAMETER
      139                            NOPRS(I) SET      NUM(AF)           DEFINE NUMBER OF OUTPUT PARAMETERS
      140                                     PEND     0                 TERMINATE MACRO BODY
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE    6
A     142                            ************************************************************************
      143                            *                                                                      *
      144                            *        MACRO'S 'ENTRY', 'EXIT' .. TO DEFINE MODULE ENTRY AND         *
      145                            *        EXIT POINTS.  PROTOTYPE STATEMENT ..                          *
      146                            *                                                                      *
      147                            *                 <MACRO>  'MODULE' .. DEFINE ENTRY/EXIT TO 'MODULE'   *
      148                            *                                                                      *
      149                            ************************************************************************

      151         00000000           ENTRY    CNAME                      TO DECLARE PROGRAM ENTRY POINT
      152                                     PROC                       ..
      153                            J        SET      MINDEX(AF)        FIND MODULE IN MODULE INDEX
      154                                     BAL,E1   ENTER             CALL PARAMETER SETUP AND SAVE REGS
      155                                     LIST     OFF
      156                                     GEN,4,4,7,17   NREGS(J)+16-LNK,0,NIPRS(J),IPARS(J)
      157                                     LIST     ON
      158                                     PEND

      160         00000000           EXIT     CNAME                      TO RETURN CONTROL FROM A MODULE
      161                                     PROC                       ..
      162                            LF       BAL,E1   EXIT              CALL COMMON EXIT ROUTINE
      163                                     LIST     OFF               SUPPRESS PARAMETER LINE
      164                                     EXPAR,CF(2)    AF          GENERATE CONTROL WORD FOR 'EXIT'
      165                                     LIST     ON                RESUME NORMAL LISTING
      166                                     PEND                       ..

      168         00000000           EXPAR    CNAME                      TO DEFINE CONTROL WORD FOR 'EXIT'
      169                                     PROC                       ..
      170                            J        SET      MINDEX(AF)        GET ASSOCIATED MODULE INDEX
      171                            LF       GEN,4,4,7,17   NREGS(J)+16-LNK,CF(2),NOPRS(J),OPARS(J)
      172                                     PEND
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE    7
A     174                            ************************************************************************
      175                            *                                                                      *
      176                            *        MACRO 'ASSIGN' - TO ASSIGN PARAMETER NAMES TO STORAGE         *
      177                            *        IF FIRST NAME IS ALREADY DEFINED, WILL ASSIGN PARAMETERS      *
      178                            *        TO NAME1,...,NAME1+'N'-1.                                     *
      179                            *                                                                      *
      180                            ************************************************************************

      182         00000000           ASSIGN   FNAME                      TO ASSIGN PARAMETER NAMES TO STORAGE
      183                                     PROC                       ..
      184                                     DO       TCOR(AF(1),S:RAD) IS FIRST NAME ALREADY DEFINED.
      185                            ARG      SET      AF(1)             YES, SET PARAM ORIGIN TO FIRST NAME
      186                            J        DO       NUM(AF)-1         VALIDITY-CHECK SEQUENCE OF NAMES
      187                                     DO       TCOR(AF(J+1),ARG) IS THIS NAME ALREADY DEFINED.
      188                                     ERROR,3,AF(J+1)-AF(J)-1 ;  YES, IT MUST FOLLOW PREVIOUS NAME
      189                                    'INVALID PARAMETER NAME'    ..
      190                                     ELSE                       NO, DEFINE IT IN SEQUENCE WITH AF(J)
      191                                     ERROR,3  'ARGUMENT DISASTER!'
      192                                     FIN                        ..
      193                                     FIN                        ..
      194                                     ELSE                       HERE IF FIRST NAME UNDEFINED
      195                            PROGRAM  SET      %
      196                                     ORG      ARGUMENT
      197                            ARG      SET      %
      198                            J        DO       NUM(AF)
      199                            AF(J)    RES      1
      200                                     FIN
      201                            ARGUMENT SET      %
      202                                     ORG      PROGRAM
      203                                     FIN                        ..
      204                                     PEND     ARG               RETURN PARAMETER BUFFER ORIGIN

      206                            ************************************************************************
      207                            *                                                                      *
      208                            *        MNEMONICS FOR PASSING AND RETURNING PARAMETER VALUES.         *
      209                            *                                                                      *
      210                            ************************************************************************

      212         00000032           PAR      CNAME    X'32'             .. WORD VALUE PARAMETER
      213                        *S* APAR     CNAME    X'44'             .. ANALYZE ADDRESS PARAMETER
      214         00000072           BPAR     CNAME    X'72'             .. BYTE VALUE PARAMETER
      215         00000052           HPAR     CNAME    X'52'             .. HALFWORD VALUE PARAMETER
      216         0000006B           RPAR     CNAME    X'6B'             .. RIGHT-HALF WORD PARAMETER
      217         00000032           WPAR     CNAME    X'32'             .. SYNONYM FOR 'PAR'
      218                        *S* AHPAR    CNAME    X'5B'             .. ABSOLUTE HALFWORD PARAMETER
      219                        *S* CHPAR    CNAME    X'5A'             .. COMPLEMENT HALFWORD PARAMETER
      220                        *S* AWPAR    CNAME    X'3B'             .. ABSOLUTE WORD PARAMETER
      221                        *S* CWPAR    CNAME    X'3A'             .. COMPLEMENT WORD PARAMETER
      222         00000075           RTB      CNAME    X'75'             .. RETURN BYTE VALUE PARAMETER
      223         00000055           RTH      CNAME    X'55'             .. RETURN HALFWORD VALUE PARAMETER
      224         00000035           RTN      CNAME    X'35'             .. RETURN WORD VALUE PARAMETER
      225         00000035           RTW      CNAME    X'35'             .. SYNONYM FOR 'RTN'
      226         00000015           RTDC     CNAME    X'15'             .. RETURN DOUBLEWORD COPY OF VALUE
      227                        *S* ROM      CNAME    X'47'             .. RETURN LOGICAL 'OR' TO MEMORY
      228         00000066           RSM      CNAME    X'66'             .. RETURN SUM TO MEMORY

      230                                     PROC
      231                            LF       GEN,1,7,4,3,17 AFA(1),NAME,E2,AF(2),AF(1)
      232                                     PEND

      234         00000004           IPAR     COM,8,4,20  X'22',E2,AF    .. TO PASS IMMEDIATE VALUE PARAMETER
      235         00000004           NOPAR    COM,8,4,20  X'22',E2,0     .. TO IGNORE AN ARGUMENT OR RESULT
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE    8
A     237                            ************************************************************************
      238                            *                                                                      *
      239                            *        EXTENDED MNEMONICS FOR PASSING PARAMETERS AND LOADING         *
      240                            *        EFFECTIVE ADDRESSES ..                                        *
      241                            *                                                                      *
      242                            ************************************************************************

      244         00000072           LBA      CNAME    X'72'             .. LOAD EFFECTIVE BYTE ADDRESS
      245                        *S* LDA      CNAME    X'12'             .. LOAD EFFECTIVE DOUBLEWORD ADDRESS
      246                        *S* LHA      CNAME    X'52'             .. LOAD EFFECTIVE HALFWORD ADDRESS
      247         00000032           LWA      CNAME    X'32'             .. LOAD EFFECTIVE WORD ADDRESS
      248         00000072           EBA      CNAME    X'72'             .. PASS EFFECTIVE BYTE ADDRESS
      249         00000012           EDA      CNAME    X'12'             .. PASS EFFECTIVE DOUBLEWORD ADDRESS
      250         00000032           EFA      CNAME    X'32'             .. PASS EFFECTIVE WORD ADDRESS
      251         00000052           EHA      CNAME    X'52'             .. PASS EFFECTIVE HALFWORD ADDRESS
      252                        *S* EWA      CNAME    X'32'             .. SYNONYM FOR 'EFA'

      254                                     PROC                       ..
      255                                     DO       NUM(CF)<2         DEFINE REGISTER TO BE USED
      256                            X        SET      E2                .. NO VALIDITY CHECK WILL BE MADE
      257                                     ELSE                       ..
      258                            X        SET      CF(2)             ..
      259                                     FIN                        ..
      260                                     DO       AFA(1)|NUM(AF)>1  IS INDEXING/INDIRECTION SPECIFIED.
      261                            LF       ANLZ,X   L(INST(NAME,,AF)) YES, ANALYZE ADDRESS FROM LITERAL
      262                                     ELSE                       NO, GENERATE 'LOAD IMMEDIATE'
      263                            LF       LI,X     RA(AF,4-NAME**-5) .. WITH ADDRESS PROPERLY RESOLVED
      264                                     FIN                        ..
      265                                     PEND                       ..
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE    9
A     267                            ************************************************************************
      268                            *                                                                      *
      269                            *        'MESSAGE' - TO SET UP AN ITEM LIST FOR PRINTING.  THE         *
      270                            *        ITEM LIST CONSISTS OF EITHER A SINGLE 'TEXTC' STRING OR A     *
      271                            *        COUNT WORD FOLLOWED BY A VECTOR OF 'SPECIFIER' WORDS.         *
      272                            *        EACH SPECIFIER WORD IS IN THE FOLLOWING FORMAT ...            *
      273                            *                                                                      *
      274                            *                 BIT  0            INDIRECTION SPECIFIER              *
      275                            *                 BITS 1-4          SPECIFIER FUNCTION                 *
      276                            *                 BITS 5-14         VARIABLE INFORMATION               *
      277                            *                 BITS 15-31        LOCATION OF DATA WORD              *
      278                            *                                    OR IMMEDIATE DATA                 *
      279                            *                                                                      *
      280                            ************************************************************************

      282         00000000           MESSAGE  CNAME                      TO SET UP ITEM LIST FOR PRINT
      283                                     PROC                       ..
      284                                     LIST     OFF
      285                                     BOUND    4
      286                                     DO       (NUM(AF)=1)&(TCOR(AF(1),S:C))
      287                            LF       TEXTC    AF(1)
      288                                     ELSE
      289                                     LIST     ON
      290                            LF       DATA     NUM(AF)
      291                                     LIST     OFF
      292                            J        DO       NUM(AF)
      293                                     DO       TCOR(AF(J),S:C)
      294                                     DATA     TXC(STRINGS)
      295                                     EMIT     AF(J)
      296                                     ELSE
      297                                     DATA     AF(J)
      298                                     FIN
      299                                     FIN
      300                                     FIN
      301                                     LIST     ON
      302                                     PEND                       ..

      304         00000000           EMIT     CNAME
      305                                     PROC
      306                            PROGRAM  SET      %
      307                                     ORG      STRINGS
      308                                     TEXTC    AF(1)
      309                            STRINGS  SET      %
      310                                     ORG      PROGRAM
      311                                     PEND
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE   10
A     313                            ************************************************************************
      314                            *                                                                      *
      315                            *        DEFINITIONS OF CONVERSION FUNCTIONS FOR 'MESSAGE'             *
      316                            *                                                                      *
      317                            ************************************************************************

      319         00000000           IVL      FNAME    0                 .. INTEGER, VARIABLE LENGTH FIELD
      320         00000001           ILB      FNAME    1                 .. INTEGER, LEADING BLANKS
      321         00000002           ILZ      FNAME    2                 .. INTEGER, LEADING ZEROES
      322         00000003           ITB      FNAME    3                 .. INTEGER, TRAILING BLANKS
      323         00000004           XVL      FNAME    4                 .. HEXADECIMAL, VARIABLE LENGTH
      324         00000005           XLZ      FNAME    5                 .. HEXADECIMAL, LEADING ZEROES
      325         00000006           BLZ      FNAME    6                 .. BINARY, LEADING ZEROES
      326         00000007           CVL      FNAME    7                 .. CHARACTERS, VARIABLE FIELD
      327         00000008           CLB      FNAME    8                 .. CHARACTERS, LEADING BLANKS
      328                                     PROC
      329                                     PEND     AFA(1)**31+NAME**27+AF(2)**22+(AF(3)-1&31)**17+AF(1)

      331                            ************************************************************************
      332                            *                                                                      *
      333                            *        OTHER FUNCTIONS ASSOCIATED WITH 'MESSAGE' ..                  *
      334                            *                                                                      *
      335                            ************************************************************************

      337         00000009           TXC      FNAME    9                 .. POINTER TO 'TEXTC' STRING
      338         00000009           TXT      FNAME    9                 .. POINTER TO TEXT (COUNT IN AF(2))
      339         0000000A           DUP      FNAME    10                .. DUPLICATE GIVEN BYTE
      340         0000000B           CCR      FNAME    11                .. CARRIAGE CONTROL CHARACTER
      341         0000000C           SPE      FNAME    12                .. SPECIFIER OF A FUNCTION
      342                                     PROC
      343                                     PEND     AFA(1)**31+NAME**27+AF(2)**17+AF(1)

      345                            ************************************************************************
      346                            *                                                                      *
      347                            *        EXTENDED MNEMONICS FOR 'CCR' FUNCTION .....                   *
      348                            *                                                                      *
      349                            ************************************************************************

      351         TEXT               PGE      FNAME    '1'               .. NEW PAGE CONTROL CHARACTER
      352         TEXT               SSP      FNAME    ' '               .. SINGLE SPACE CONTROL CHARACTER
      353         TEXT               DSP      FNAME    'A'               .. DOUBLE SPACE CONTROL CHARACTER
      354         TEXT               TSP      FNAME    'B'               .. TRIPLE SPACE CONTROL CHARACTER
      355         00000015           CR       FNAME    X'15'             .. CARRIAGE RETURN
      356                                     PROC                       ..
      357                                     PEND     CCR(NAME)         ..
1 C00   23:14 JUN 20,'83    TELEFILE DISK INITIALIZATION PROGRAM 960-0700-H02                     PAGE   11
A     359                            ************************************************************************
      360                            *                                                                      *
      361                            *        MISCELLANEOUS PROCEDURES 'MINDEX', 'RA', 'INST'               *
      362                            *                                                                      *
      363                            ************************************************************************

      365         00000000           MINDEX   FNAME                      TO GET INDEX NUMBER OF A MODULE
      366                                     PROC                       ..
      367                            F        SET      0                 INITIALIZE 'FIND' FLAG
      368                            X        DO       NUM(MTAB)                           SEARCH
      369                                     DO       (F=0)&(MTAB(X)=ABSVAL(AF))           EQUIVALENCE
      370                            F        SET      X                                     TABLE
      371                                     FIN
      372                                     FIN
      373                            X        DO       (F=0)*(NUM(SYNTAB))                 SEARCH
      374                                     DO       (F=0)&(SYNTAB(X)=ABSVAL(AF))         EQUIVALENCE
      375                            F        SET      EQVTAB(X)                             TABLE
      376                                     FIN
      377                                     FIN
      378                                     PEND     F                 RETURN ASSOCIATED INDEX, IF ANY

      380         00000000           RA       FNAME                      TO RESOLVE AN ADDRESS
      381                                     PROC
      382                            ARG      SET      S:UFV(BA(AF(1))),S:UFV(HA(AF(1))),;
      383                                              S:UFV(WA(AF(1))),S:UFV(DA(AF(1)))
      384                                     PEND     ARG(AF(2))

      386         00000000           INST     FNAME                      TO GENERATE INSTRUCTION SKELETON
      387                                     PROC
      388                                     PEND     AFA(3)**31+AF(1)**24+AF(2)**20+AF(4)**17+AF(3)

      390                                     CLOSE    F,I,J,X,MTAB,SAVE,SYNTAB,EQVTAB,;
      391                                              IPARS,OPARS,NIPRS,NOPRS,NREGS,RA,INST,;
      392                                              LISTCTR,MINDEX,ASSIGN,ARG
1 C00   23:14 JUN 20,'83    INITIALIZE, THEN INTERPRET COMMANDS                                   PAGE   12
A     394                            ************************************************************************
      395                            *                                                                      *
      396                            *        STAND-ALONE DISK FORMATTING PACKAGE                           *
      397                            *        THIS PROGRAM PROVIDES A FORMAT/FLAW CAPABILITY FOR            *
      398                            *        ALL SORTS OF DISK PACKS.                                      *
      399                            *                                                                      *
      400                            ************************************************************************

      402         00000000           INTERP   CNAME                      TO GENERATE DATA WORDS FOR 'INT'
      403                                     PROC                       ..
      404                                     LOCAL    J,N,CODE          ..
      405                            N        SET      NUM(AF)           ..
      406                            CODE     SET      0                 INITIALIZE 4-BIT CONDITION CODE
      407                            J        DO       N-2               ASSEMBLE ANY CONDITION CODE FIELDS
      408                            CODE     SET      CODE**1|AF(J)     ..
      409                                     FIN                        ..
      410                            LF       GEN,4,12,16  CODE,;        GENERATE 4-BIT CONDITION CODE,
      411                                              ABSVAL(AF(N-1)),; 12-BIT EVEN REGISTER FIELD,
      412                                              ABSVAL(AF(N))     AND 16-BIT ODD REGISTER FIELD
      413                                     PEND                       ..

      415         00000000           TERMIN   CNAME                      TO TERMINATE A DATA LIST
      416                                     PROC                       ..
      417                            LF       EQU      %-AF              DEFINE LENGTH OF LIST
      418                                     PEND                       ..

      420                                     OPEN     A,I
      421         00000000           GENLIST  CNAME                      TO GENERATE ELEMENTS OF A LIST
      422                                     PROC                       ..
      423                            A        SET      AF                DEFINE ARGUMENT LIST TO BE GENERATED
      424                            LF       GEN,32   A(1)              GENERATE FIRST LIST ELEMENT
      425                                     LIST     OFF               SUPPRESS EXTRA PRINT LINES
      426                            I        DO       NUM(A)-1          GENERATE REMAINING ELEMENTS
      427                                     GEN,32   A(I+1)            ..
      428                                     FIN                        ..
      429                                     LIST     ON                RESUME NORMAL LISTING
      430                                     PEND                       ..
      431                                     CLOSE    A,I
1 C00   23:14 JUN 20,'83    INITIALIZE, THEN INTERPRET COMMANDS                                   PAGE   13
A     433         01 00900           VOLINIT  EQU      %
      434   01 00900    32100BD7              LW,R1    TRAP              PRESET ALL TRAP
      435   01 00901    22200020 A            LI,R2    X'20'             AND BASIC INTERRUPT LOCATIONS
      436   01 00902    3514003F A            STW,R1   X'5F'-X'20',R2    TO JUMP TO VOLINIT AND HALT
      437   01 00903    64200902              BDR,R2   %-1

      439   01 00904    32003500              LW,R0    =X'68000000'+VOLINIT
      440   01 00905    35000026 A            STW,R0   X'26'             INITIALIZE ABSOLUTE RECOVERY

      442   01 00906    6AF00E8B              CALL     IOPINITT          INITIALIZE INPUT/OUTPUT PACKAGE
      443   01 00907    6AF01091              CALL     TYPE              TYPE GREETING MESSAGE TO OPERATOR
      444   01 00908    22D00BF8              EFA      GREETMSG          ..

      446   01 00909    22104040 A            LI,R1    X'4040'           PRESET REGISTERS
      447   01 0090A    23010000 A            MI,R0    1**16             FOR RETURN OF DATE

      449   01 0090B    6AF032DA              CALL     DATE              CALL DATE KEY-IN ROUTINE
      450   01 0090C    55D00000 A            RTH      R0                .. RETURN MONTH TO FIRST 2
      451   01 0090D    66D00000 A            RSM      R0                .. RETURN DAY TO NEXT 2
      452   01 0090E    66D00001 A            RSM      R1                .. RETURN YEAR TO LAST 2
      453   01 0090F    15000BDE              STD,R0   INITDATE          SAVE DEVICE INITIALIZATION DATE

      455                            **************INITIALIZE TABLES****************************

      457         01 00910           MAINSCAN EQU      %
        1*        01 00910           ENDPROC  EQU      %                                                 *H01
        2*  01 00910    6AF01B57              CALL     SETSTACK          RESET THE STACK                 *H01

      458   01 00911    6AF00C5A              CALL     STARTIN           READ A CARD
      459   01 00912    68000910              BAR      ENDPROC           .. NO CARD THERE, TERMINATE PROGRAM
      460   01 00913    6B203532              INT,R2   =NDVARS           INITIALIZE DEVICE VARIABLE STORAGE
      461   01 00914    35260BE3              STW,R2   DVARS-1,R3        ..
      462   01 00915    64300914              BDR,R3   %-1               ..
      463   01 00916    6B003501              INT,R0   =X'40020000'      INITIALIZE 'NULL' FORMAT FUNCTION
      464   01 00917    0B001B66              PSM,R0   STACK             ..
      465   01 00918    33400BF0              MTW,4    NFQUEUE           INITIALIZE STACK FUNCTION COUNTER
      466   01 00919    22000002 A            LI,R0    DFLTRTRY
      467   01 0091A    35000BA8              STW,R0   NRTRIES           INITIALIZE RETRY LIMIT
        1*  01 0091B    22000002 A            LI,R0    DFLTPASS          SET DEFAULT NUMBER              *H02
        2*  01 0091C    35000BF6              STW,R0   PASSMAX            OF INITIALIZATION PASSES       *H02

      469                            **********SCAN FOR 2 CHARACTER DEVICE CODE = 'DP'********************

      471   01 0091D    6AF00C6D              CALL     NEXTCHAR          ASSEMBLE 2-CHARACTER DEVICE CODE
      472   01 0091E    35D00000 A            RTN      R0                .. PICK UP FIRST CHARACTER
      473   01 0091F    68000970              BAR      CARDERR           .. INVALID TO HAVE DELIMITER
      474   01 00920    2100005A A            CI,R0    '!'               IS CHARACTER AN EXCLAMATION POINT.
      475   01 00921    68300910              BE       ENDPROC           YES, CONTROL COMMAND TERMINATES.
      476   01 00922    25000008 A            SLS,R0   8                 OTHERWISE, MOVE TO POSITION 0
      477   01 00923    6AF00C6D              CALL     NEXTCHAR          GET SECOND CHARACTER
      478   01 00924    66D00000 A            RSM      R0                .. COMPOSE WITH FIRST CHARACTER
      479   01 00925    68000970              BAR      CARDERR           .. DELIMITER, INVALID INPUT
      480   01 00926    2100C4D7 A            CI,R0    'DP'              MAKE SURE DP SPECIFIED
      481   01 00927    69300970              BNE      CARDERR           ELSE, ERROR
1 C00   23:14 JUN 20,'83    INITIALIZE, THEN INTERPRET COMMANDS                                   PAGE   14
A     484   01 00928    6AF00C6D              CALL     NEXTCHAR          GET DEVICE IOP ADDRESS

      486                            ***************SCAN FOR 3 CHARACTER IOP ADDRESS************************
      487                            *
      488   01 00929    35D00001 A            RTN      R1                ..
      489   01 0092A    68000970              BAR      CARDERR           ..
      490   01 0092B    211000F0 A            CI,R1    '0'               IS CHARACTER NUMERIC.
      491   01 0092C    6810092E              BGE      %+2               YES, DO NOT ALTER IT
      492   01 0092D    2010002F A            AI,R1    '0'-'A'           YES, TRANSLATE A TO 0, .. ,H TO 7
      493   01 0092E    6AF00CA4              CALL     BACKCHAR          RETURN NUMERIC IOP ADDRESS TO INPUT
      494   01 0092F    32D00001 A            PAR      R1                ..
      495   01 00930    6AF00C27              CALL     HEXCONV           INPUT EXPECTED HEX I/O ADDRESS
      496   01 00931    35D00001 A            RTN      R1                .. RETURN RESULT TO R1 FOR TESTS
      497   01 00932    35D00002 A            RTN      R2                .. RETURN CHARACTER COUNT
      498   01 00933    68000970              BAR      CARDERR           .. INVALID HEX NUMBER RETURN
      499   01 00934    68000970              BAR      CARDERR           ..NULL HEX NUMBER, IMPOSSIBLE
      500   01 00935    211FF800 A            CI,R1    X'7FF'||-1        INSURE DEVICE ADDRESS IS LEGAL,
      501   01 00936    48203502              EOR,R2   =3                AND THAT IT WAS GIVEN BY 3 DIGITS
      502   01 00937    69700970              BCS,7    CARDERR           ..
      503   01 00938    35101A72              STW,R1   DEVICE            AND MOVE TO GLOBAL CELL 'DEVICE'

      505   01 00939    6AF00CF7              CALL     SEPCHECK          VALIDATE SEPARATOR CHARACTER
      506   01 0093A    68000970              BAR      CARDERR           ..END OF CARD, ILLEGAL
      507   01 0093B    68000970              BAR      CARDERR           ..RIGHT PARENTHESIS, ILLEGAL
      508                            *                                   ..COMMA OR BLANK, OK
      509                            *************SCAN FOR MODEL NUMBER*****************************
      510                            *
      511   01 0093C    6AF00CBA              CALL     NAMESCAN          GET MODEL NUMBER
      512   01 0093D    35D00002 A            RTN      R2                ..WA(TEXTC STRING)
      513   01 0093E    68000970              BAR      CARDERR           ..NULL FIELD, ERROR
      514                            *                                   ..NORMAL RETURN
      515   01 0093F    6AF00C4C              CALL     DSEARCH           LOOK UP DEVICE NUMBER
      516   01 00940    32D00002 A            PAR      R2                ..PASS MODEL NUMBER
      517   01 00941    35D00001 A            RTN      R1                ..RTN INDEX VALUE
      518   01 00942    68000970              BAR      CARDERR           ..NO MATCH, ERROR
      519                            *                                   ..MATCH FOUND
      520   01 00943    55101A72              STH,R1   DEVICE            PLACE TYPE IN DEVICE

      521   01 00944    6B121AB4              INT,R1   FDATA,R1          GET DEVICE CLASS
      522   01 00945    35101A73              STW,R1   DSKFLAG           AND INITIALIZE THE SYSTEM

        2*  01 00946    21100001 A            CI,R1    1                 EVEN CLASSES IGNORED,           *H01
        3*  01 00947    68400949              BAZ      %+2                ODD CLASSES FORCED TO 1        *H01
        4*  01 00948    22100001 A            LI,R1    1                   (7275 PATTERNS)               *H01
        5*  01 00949    35101A74              STW,R1   PATFLAG                                           *H01

      524   01 0094A    6AF00CF7              CALL     SEPCHECK          VALIDATE DEVICE CODE SEPARATOR
      525   01 0094B    68000A13              BAR      LOGIN             .. END OF CARD, LOG DEVICE IN
      526   01 0094C    68000970              BAR      CARDERR           .. RIGHT PARENTHESIS, ILLEGAL
1 C00   23:14 JUN 20,'83    INITIALIZE, THEN INTERPRET COMMANDS                                   PAGE   15
A     528                            ***********SCAN FOR KEYWORD OPTIONS**************************
      529                            *
      530   01 0094D    23000000 A   KEYSCAN  MI,R0    0                 INITIALIZE FLAG REGISTERS
      531   01 0094E    6AF00C6D              CALL     NEXTCHAR          GET NEXT INPUT CHARACTER
      532   01 0094F    35D00002 A            RTN      R2                ..
      533   01 00950    02000000 A            NOP                        ..
      534   01 00951    2120004D A            CI,R2    '('               DOES LEFT PARENTHESIS PRECEDE KEY.
      535   01 00952    68300956              BE       KEYSCAN1          YES, LEAVE ZERO FLAGS IN R1
      536   01 00953    22000003 A            LI,R0    3                 OTHERWISE, SET NO '(', NO PARAMETERS
      537   01 00954    6AF00CA4              CALL     BACKCHAR          RESTORE CHARACTER IN INPUT STREAM
      538   01 00955    32D00002 A            PAR      R2                ..
      539   01 00956    6AF00CBA     KEYSCAN1 CALL     NAMESCAN          GET FUNCTION NAME KEYWORD
      540   01 00957    35D00004 A            RTN      R4                .. RETURN TEXTC ADDRESS TO R4
      541   01 00958    68000970              BAR      CARDERR           .. NULL FIELD, ERROR
      542   01 00959    2250000E A            LI,R5    NFCNS             INITIALIZE FUNCTION CODE SCAN

      544   01 0095A    6B2A0979     INSCAN2  INT,R2   FTABLE-1,R5       PICK UP NEXT NAME/ADDRESS PAIR
      545   01 0095B    6AF00CD9              CALL     NAMETEST          SCAN FUNCTION NAME TABLE ENTRY
      546   01 0095C    32D00004 A            PAR      R4                .. PASS INPUT FUNCTION NAME
      547   01 0095D    44D03503              EFA      ORIG,R2           .. PASS TABLE FUNCTION NAME
      548   01 0095E    6450095A              BDR,R5   INSCAN2           .. NO MATCH, CONTINUE WITH NEXT
      549   01 0095F    21000002 A            CI,R0    2                 HAVE MATCH, IS IT PARENTHESIZED KEY.
      550   01 00960    69460000              BANZ     ORIG,R3           NO, CANNOT HAVE ANY PARAMETERS.
      551   01 00961    6AF00CF7              CALL     SEPCHECK          YES, VALIDITY-CHECK SEPARATOR
      552   01 00962    68000970              BAR      CARDERR           .. END OF INPUT, ERROR
      553   01 00963    22000001 A            LI,R0    1                 .. RIGHT PARENTHESIS, SET 'NULL'
      554   01 00964    68060000              B        ORIG,R3           .. COMMA, NORMAL, PROCESS FUNCTION
      555   01 00965    21000002 A   INSCAN3  CI,R0    2                 RETURN HERE FROM KEYWORD PROCESSOR
      556   01 00966    6940096C              BANZ     INSCAN5           DID LEFT PARENTHESIS PRECEDE KEY.
      557   01 00967    6AF00CF7              CALL     SEPCHECK          YES, CHECK RIGHT PARENTHESIS CLOSURE
      558   01 00968    68000970              BAR      CARDERR           .. END OF CARD, INVALID
      559   01 00969    6800096B              BAR      INSCAN4           .. RIGHT PARENTHESIS, LEGAL
      560   01 0096A    68000970              BAR      CARDERR           .. COMMA, INVALID
      561   01 0096B    6AF00CAC     INSCAN4  CALL     SKIPCHAR          SKIP TO NEXT SEPARATOR CHARACTER
      562   01 0096C    6AF00CF7     INSCAN5  CALL     SEPCHECK          CHECK NEXT SEPARATOR CHARACTER
      563   01 0096D    68000A14              BAR      PROCESS           .. END OF CARD, PROCESS INPUTS

      565                            *        THIS IS WHERE WE GET OUT OF HERE
      566                            *
      567   01 0096E    68000970              BAR      CARDERR           .. EXTRA RIGHT PARENTHESIS, INVALID
      568   01 0096F    6800094D              B        KEYSCAN           .. COMMA, CHECK '(' FOR KEYWORD

      570                            ***************CARD ERROR********************************
      571                            *
      572   01 00970    6AF00D0F     CARDERR  CALL     FLAGCCHR          INPUT ERROR, FLAG CHARACTER POSITION
      573   01 00971    6AF00CAE     CARDERR1 CALL     NXCRTEST          THEN SKIP TO END OF CARD
      574   01 00972    22D00026 A            IPAR     KEOB              ..
      575   01 00973    68000971              BAR      CARDERR1          ..
      576   01 00974    3A000BF0     CARDERR2 LCW,R0   NFQUEUE           FLUSH ANY STACKED FUNCTIONS
      577   01 00975    13001B66              MSP,R0   STACK             ..
      578   01 00976    66000BF0              AWM,R0   NFQUEUE           INSURE THIS IS NOT DONE TWICE
      579   01 00977    6AF01091              CALL     TYPE              PRINT ERROR MESSAGE ON LISTING
      580   01 00978    22D00C05              EFA      CDERRMSG          ..
      581   01 00979    68000910              B        ENDPROC
1 C00   23:14 JUN 20,'83    INITIALIZE, THEN INTERPRET COMMANDS                                   PAGE   16
A     584                        *S* IDENTIFY CNAME    1                 TO DEFINE DEVICE/CODE PAIR
      585         00000002           FUNCTION CNAME    2                 TO DEFINE FORMATTING FUNCTION
      586                                     PROC                       ..
      587                            LF       INTERP   STRINGS,AF(NAME)  GENERATE TEXT POINTER AND DATA
      588                                     LIST     OFF
      589                                     EMIT     AF(NAME||3)       GENERATE TEXT STRING
      590                                     LIST     ON
      591                                     PEND                       ..

      593   01 0097A    01000970 A   FTABLE   FUNCTION '???',CARDERR     DEFAULT FUNCTION (CARD ERRROR)
      594   01 0097B    010109F0 A            FUNCTION 'ACCT',ACCOUNT    ACCOUNT NUMBER FOR PRIVATE VOLUMES
      595   01 0097C    0103099F A            FUNCTION 'FLAW',WRITFLAW   WRITE FLAW MARKS ON TRACKS
      596   01 0097D    010509A0 A            FUNCTION 'FORMAT',WRITFMAT WRITE HEADERS ON GROUP OF TRACKS
      597   01 0097E    010709DE A            FUNCTION 'NGC',NGC
      599   01 0097F    010809EE A            FUNCTION 'PUBLIC',PUBLIND  PUBLIC DEVICE INDICATOR
      600   01 00980    010A09ED A            FUNCTION 'PRIVATE',PRIVIND PRIVATE DEVICE INDICATOR
      601   01 00981    010C0A01 A            FUNCTION 'VERIFY',VERIND   VERIFY HEADERS
      602   01 00982    010E0A03 A            FUNCTION 'RETRY',TRIES     SET NUMBER OF RECOVERY TRIES
      603   01 00983    01100988 A            FUNCTION 'PATTERN',PATTERN SELECT PATTERN CLASS
      604   01 00984    01120991 A            FUNCTION 'UPDATE',UPDATE   BUILD AND UPDATE MAP
      605   01 00985    011409E9 A            FUNCTION 'NOLABEL',NOLAB   SUPPRESS LABEL PROCESSING
        1*  01 00986    011609E7 A            FUNCTION 'TCPV',TCPV                                       *H01
        2*  01 00987    01180994 A            FUNCTION 'PASS',PASS                                       *H02

      606                            NFCNS    TERMIN   FTABLE            DEFINE LENGTH OF FUNCTION TABLE

      608         01 00988           PATTERN  EQU      %                 PROCESS THE 'PATTERN' KEYWORD
        1*  01 00988    32301A74              LW,R3    PATFLAG            SELECT CURRENT DEFAULT         *H01
      610   01 00989    21000001 A            CI,R0    1
      611   01 0098A    6940098F              BANZ     PTRN0             SKIP IF NULL ARGUMENT
      612   01 0098B    6AF00C28              CALL     DECCONV           CONVERT DECIMAL ARGUMENT
      613   01 0098C    35D01A74              RTN      PATFLAG           RETURN PATTERN CLASS
      614   01 0098D    22D00000 A            NOPAR                      LENGTH IRRELEVENT
      615   01 0098E    68000970              BAR      CARDERR
      616   01 0098F    35301A74     PTRN0    STW,R3   PATFLAG           STORE DEFAULT
      617   01 00990    68000965              B        INSCAN3           COMPLETED

      619         01 00991           UPDATE   EQU      %                 PROCESS 'UPDATE' KEYWORD
      620   01 00991    223FFFFF A            LI,R3    -1
      621   01 00992    35300BF3              STW,R3   UPDFLAG           SET UPDATE FLAG
      622   01 00993    68000965              B        INSCAN3

        2*  01 00994    22300002 A   PASS     LI,R3    DFLTPASS          SET DEFAULT                     *H02
        3*  01 00995    35300BF6              STW,R3   PASSMAX                                           *H02

        5*  01 00996    21000001 A            CI,R0    1                 SKIP IF NO                      *H02
        6*  01 00997    69400965              BANZ     INSCAN3            ARGUMENT PRESENT               *H02

        8*  01 00998    6AF00C28              CALL     DECCONV           CONVERT ARGUMENT                *H02
        9*  01 00999    35D00BF6              RTN      PASSMAX            TO DECIMAL                     *H02
       10*  01 0099A    22D00000 A            NOPAR                                                      *H02
       11*  01 0099B    68000970              BAR      CARDERR                                           *H02
       12*  01 0099C    68000970              BAR      CARDERR                                           *H02
       13*  01 0099D    68000965              B        INSCAN3                                           *H02
       14*  01 0099E    68000970              B        CARDERR                                           *H02
1 C00   23:14 JUN 20,'83    KEYWORD PROCESSORS                                                    PAGE   17
A     624                            ***********KEYWORD = 'FLAW'******************************
      625                            *
      626   01 0099F    20100001 A   WRITFLAW AI,R1    1                 SET 'FLAW' FUNCTION CODE IN R1

      628                            ***********KEYWORD = 'FORMAT'*******************************
      629                            *
      630   01 009A0    21000001 A   WRITFMAT CI,R0    1                 IGNORE NULL PARAMETER FIELD
      631   01 009A1    69400965              BANZ     INSCAN3           (I.E., (FLAW)=NOP, (FORMAT)=ALL)
      632   01 009A2    6AF00C6D              CALL     NEXTCHAR          TEST FOR POSSIBLE 'NONE' PARAMETER
      633   01 009A3    35D00003 A            RTN      R3                ..
      634   01 009A4    68000970              BAR      CARDERR           ..
      635   01 009A5    213000D5 A            CI,R3    'N'               SKIP TO VERIFY 'NONE' IF ALPHABETIC
      636   01 009A6    683009CC              BE       CHKNONE           ..
      637   01 009A7    6AF00CA4              CALL     BACKCHAR          OTHERWISE, 'BACK-UP' CHARACTER
      638   01 009A8    32D00003 A            PAR      R3                ..
      639   01 009A9    670209DA              EXU      SETFCN,R1         SET INDICATOR FLAG FOR FUNCTION
      640   01 009AA    69800970              BC       CARDERR           INSURE 'NONE' NOT ALSO SPECIFIED
      641   01 009AB    35100008 A            STW,R1   R8                SAVE FUNCTION CODE IN R8
      642   01 009AC    52101A72              LH,R1    DEVICE            PICK UP DEVICE TYPE CODE
      643   01 009AD    222FFFFE A   ADSCAN   LI,R2    -2                SET UP FOR 2 ADDRESSES
      644   01 009AE    223FFFFE A   ADSCAN1  LI,R3    -2                SET UP FOR 2 VALUES PER ADDRESS
      645   01 009AF    23600000 A            MI,R6    0                 ZERO OUT RESULT REGISTERS
      646   01 009B0    6AF00C28     ADSCAN2  CALL     DECCONV           INPUT CYLINDER/TRACK ADDRESS
      647   01 009B1    35D60008 A            RTN      R6+2,R3           .. RETURN CYLINDER/TRACK TO R6/R7
      648   01 009B2    22D00000 A            NOPAR                      .. IGNORE NUMBER OF CHARACTERS
      649   01 009B3    68000970              BAR      CARDERR           .. ILLEGAL DECIMAL NUMBER
      650   01 009B4    68000970              BAR      CARDERR           .. NULL, WILL NOT ACCEPT
      651   01 009B5    670609DA              EXU      ADDCHECK+2,R3     GOOD, VALIDITY-CHECK ADDRESS RANGE
      652   01 009B6    68100970              BGE      CARDERR           INVALID, REJECT CARD
      653   01 009B7    15640008 A            STD,R6   R6+2,R2           OK, ANTICIPATE DEFAULT FOR NO '-'
      654   01 009B8    6AF00CAF     ADSCAN3  CALL     CHARTEST          CHECK SEPARATOR CHARACTER
      655   01 009B9    72D60BAA              BPAR     DLIMTEST+1,R3     .. PASS EXPECTED DELIMITER CHARACTER
      656   01 009BA    680009D6              BAR      SKIPFLD           .. NO MATCH, FIELD DEFAULTS TO ZERO
      657   01 009BB    653009B0              BIR,R3   ADSCAN2           MATCH, FINISH CYLINDER/TRACK PAIR
      658   01 009BC    652009AE              BIR,R2   ADSCAN1           FINISH 'FROM'/'TO' PAIR
      659   01 009BD    46600007 A   ADSCAN4  XW,R6    R7                SWAP END TRACK & END CYLINDER
      660   01 009BE    38700004 A            SW,R7    R4                COMPUTE NUMBER OF COMPLETE CYLINDERS
      661   01 009BF    37721A7E              MW,R7    NTRKS,R1          COMPUTE TOTAL TRACKS IN OPERATION
      662   01 009C0    30600007 A            AW,R6    R7                CYLS*(TRKS/CYL)+TRKS+1
      663   01 009C1    38600005 A            SW,R6    R5                ..
      664   01 009C2    20600001 A            AI,R6    1                 ..
      665   01 009C3    68200970              BLEZ     CARDERR           VALIDITY-CHECK POSITIVE RESULT
      666   01 009C4    33400BF0              MTW,4    NFQUEUE           GOOD, UPDATE 'QUEUE' COUNTER
      667   01 009C5    32300008 A            LW,R3    R8                MOVE FUNCTION CODE TO R3
      668   01 009C6    02200040 A            LCI      4                 STORE FCN/CYL/TRACK/NTRACKS
      669   01 009C7    0B301B66              PSM,R3   STACK             ..
      670   01 009C8    6AF00CF7     ADSCAN5  CALL     SEPCHECK          VALIDITY-CHECK FIELD SEPARATOR
      671   01 009C9    68000970              BAR      CARDERR           .. END OF CARD, ILLEGAL
      672   01 009CA    68000965              BAR      INSCAN3           .. RIGHT PARENTHESIS, RETURN TO SCAN
      673   01 009CB    680009AD              B        ADSCAN            .. COMMA, MORE ADDRESS FIELDS
1 C00   23:14 JUN 20,'83    KEYWORD PROCESSORS                                                    PAGE   18
A     675   01 009CC    6AF00CBA     CHKNONE  CALL     NAMESCAN          EXPECT 'NONE' ARGUMENT FIELD
      676   01 009CD    35D00003 A            RTN      R3                .. RETURN STRING POINTER TO R3
      677   01 009CE    68000970              BAR      CARDERR           .. NULL RETURN
      678   01 009CF    6AF00CD9              CALL     NAMETEST          CHECK FOR 'ONE' FOLLOWING 'N'
      679   01 009D0    32D00003 A            PAR      R3                ..
      680   01 009D1    22D00BAA              EFA      ONEPAR            ..
      681   01 009D2    68000970              BAR      CARDERR           ..
      682   01 009D3    670209DC              EXU      NONEFCN,R1        GOOD, FLAG 'NONE' IF APPROPRIATE
      683   01 009D4    69800970              BC       CARDERR           VERIFY THIS IS THE ONLY TIME
      684   01 009D5    680009C8              B        ADSCAN5           THEN RETURN TO CHECK SEPARATOR

      686   01 009D6    653009B8     SKIPFLD  BIR,R3   ADSCAN3           FOR NULL TRACK FIELD, ZERO-DEFAULT
      687   01 009D7    680009BD              B        ADSCAN4           NULL MAJOR FIELD, USE FIRST FIELD

      689   01 009D8    31621A75     ADDCHECK CW,R6    NCYLS,R1          TO VALIDITY-CHECK CYLINDER ADDRESS
      690   01 009D9    31721A7E              CW,R7    NTRKS,R1          TO VALIDITY-CHECK TRACK ADDRESS

      692   01 009DA    33100BED     SETFCN   MTW,1    FMATIND           0 .. SET 'FORMAT' SPECIFIED
      693   01 009DB    02200000 A            LCI      0                 1 .. IGNORE 'FLAW' SPECIFIED

      695   01 009DC    33F00BED     NONEFCN  MTW,-1   FMATIND           0 .. SPECIFY NO FORMATTING
      696   01 009DD    02200000 A            LCI      0                 1 .. 'NONE' NOT APPLICABLE

      698                            ***************KEYWORD = 'NGC'***********************
      699                            *
      700         01 009DE           NGC      EQU      %                 HANDLE KEYWORD 'NGC'
      701   01 009DE    2230001E A            LI,R3    30                DEFAULT VALUE FOR NGC
      702   01 009DF    21000001 A            CI,R0    1
      703   01 009E0    694009E5              BANZ     NGC10             IF NULL PARAMETER, USE DEFAULT
      704   01 009E1    6AF00C28              CALL     DECCONV           INPUT NGC VALUE
      705   01 009E2    35D00BF2              RTN      GRAN:CYL          ..VALUE CONVERTED TO BINARY
      706   01 009E3    22D00000 A            NOPAR                       ..IGNORE COUNT
      707   01 009E4    68000970              BAR      CARDERR           ..ERROR RETURN
      708   01 009E5    35300BF2     NGC10    STW,R3   GRAN:CYL          ..NULL VALUE, USE DEFAULT
      709   01 009E6    68000965              B        INSCAN3           RETURN TO SCAN

        2*                           *********KEYWORD='TCPV'*********************************            *H01
        3*                           *                                                                   *H01
        4*  01 009E7    33100BF5     TCPV     MTW,1    TCPVFLAG          SET NEW HEADER FORMAT FLAG      *H01
        5*  01 009E8    680009EA              B        NOLAB0                                            *H01


      711                            *********KEYWORD = 'NOLABEL'******************************
      712                            *
      713   01 009E9    33100BF4     NOLAB    MTW,1    LABNONE           INHIBIT LABEL PROCESSING

        2*  01 009EA    21000001 A   NOLAB0   CI,R0    1                 ENFORCE NULL ARGUMENT           *H01
      715   01 009EB    68400970              BAZ      CARDERR
      716   01 009EC    68000965              B        INSCAN3
1 C00   23:14 JUN 20,'83    KEYWORD PROCESSORS                                                    PAGE   19
A     718                            *********KEYWORD = 'PRIVATE'******************************
      719                            *
      720   01 009ED    20100001 A   PRIVIND  AI,R1    1                 SET FLAG FOR 'PRIVATE' MODE

      722                            *********KEYWORD = 'PUBLIC'*********************************
      723                            *
      724   01 009EE    35100BF1     PUBLIND  STW,R1   PVTFLAG           SAVE PRIVATE/PUBLIC INDICATOR
      725   01 009EF    20100001 A            AI,R1    1                 SET INDEX TO 1/2 FOR COMMON HANDLER

      727                            *********KEYWORD = 'ACCOUNT'********************************
      728                            *
      729   01 009F0    322209FE     ACCOUNT  LW,R2    PTRLIST,R1        PICK UP POINTER TO RESULT SAVE AREA
      730   01 009F1    53F20BEA              MTH,-1   KEYFLAGS,R1       HAS PARAMETER BEEN GIVEN PREVIOUSLY.
      731   01 009F2    69800970              BC       CARDERR           YES, INVALID INPUT CARD, REJECT
      732   01 009F3    21000001 A            CI,R0    1                 NO, IS ARGUMENT FIELD NULL.
      733   01 009F4    69400965              BANZ     INSCAN3           YES, IGNORE KEYWORD VALUE
      734   01 009F5    6AF00CBA              CALL     NAMESCAN          INPUT SERIAL NUMBER FOLLOWING KEY
      735   01 009F6    35D00003 A            RTN      R3                ..
      736   01 009F7    68000970              BAR      CARDERR           ..
      737   01 009F8    6AF00CE6              CALL     NAMECHK           VERIFY IT IS 1 TO 8 CHARACTERS
      738   01 009F9    32D00003 A            PAR      R3                ..
      739   01 009FA    35D40000 A            RTN      0,R2              ..
      740   01 009FB    35D40001 A            RTN      1,R2              ..
      741   01 009FC    68000970              BAR      CARDERR           ..
      742   01 009FD    68000965              B        INSCAN3           RETURN TO INPUT SCAN ROUTINE

      744   01 009FE    00000BE4     PTRLIST  DATA     ACCNTNO           0 .. 'ACCT' .. ASSEMBLE ACCOUNT
      745   01 009FF    00000BE6              DATA     SERIALNO          1 .. 'PRIVATE' .. ASSEMBLE SERIAL
      746   01 00A00    00000BE6              DATA     SERIALNO          2 .. 'PUBLIC'  .. ASSEMBLE SERIAL

      756                            *********KEYWORD = 'VERIFY'************************************
      757                            *
      758   01 00A01    33100BEF     VERIND   MTW,1    VERFLAG           SET FLAG FOR VERIFY
      759   01 00A02    68000965              B        INSCAN3

      761                            *********KEYWORD = 'RETRY'************************************
      762                            *
      763         01 00A03           TRIES    EQU      %                 HANDLE KEYWORD 'TRIES'
      764   01 00A03    22300002 A            LI,R3    DFLTRTRY          DEFAULT VALUE FOR RETRIES
      765   01 00A04    21000001 A            CI,R0    1                 IS ARGUMENT FIELD NULL
      766   01 00A05    69400A0A              BANZ     TRY5              YES, IGNORE KEYWORD VALUE
      767   01 00A06    6AF00C28              CALL     DECCONV           INPUT NUMBER OR RETRIES
      768   01 00A07    35D00BA8              RTN      NRTRIES           ..VALUE CONVERTED TO BINARY
      769   01 00A08    22D00000 A            NOPAR                      ..IGNORE COUNT
      770   01 00A09    68000970              BAR      CARDERR           ..ERROR RETURN
      771   01 00A0A    35300BA8     TRY5     STW,R3   NRTRIES           ..NULL VALUE RETURN, USE DEFAULT

      773   01 00A0B    32300BA8              LW,R3    NRTRIES           ..NORMAL RETURN
        1*  01 00A0C    69100970              BLZ      CARDERR           ERROR IF .LT. 0                 *H01
        2*  01 00A0D    69200A10              BGZ      TRY6               SKIP IF .NE. 0                 *H01

        4*  01 00A0E    33100BF7              MTW,1    ALLMODE           ELSE SET TO REJECT ALL          *H01
        5*  01 00A0F    22300001 A            LI,R3    1                  TRACKS WITH ERRORS             *H01

        7*  01 00A10    21300032 A   TRY6     CI,R3    50                                                *H01
      776   01 00A11    68100970              BGE      CARDERR           ERROR IF IDIOTIC
      777   01 00A12    68000965              B        INSCAN3           RETURN TO INPUT PROCESSOR
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   20
A     780   01 00A13    33100BEE     LOGIN    MTW,1    LOGFLAG           MARK DEVICE LOG-ON ONLY
      781   01 00A14    33000D27     PROCESS  MTW,0    CARDFLAG          DID ANY INPUT ERROR OCCUR.
      782   01 00A15    69300974              BNEZ     CARDERR2          YES, DO NOT PROCESS THIS DEVICE
      783   01 00A16    6AF00D67              CALL     IOINITT           INITIALIZE THE DEVICE FOR I/O
      784   01 00A17    68000AB8              BAR      INITERR           UNABLE TO GET DEVICE STARTED
      785   01 00A18    6B201A72              INT,R2   DEVICE            PICK UP DEVICE TYPE/ADDRESS
      786   01 00A19    32441A75              LW,R4    NCYLS,R2          CYLS IN PACK
      787   01 00A1A    25400010 A            SLS,R4   16                  IN UPPER HALF
      788   01 00A1B    49441A7E              OR,R4    NTRKS,R2          TRACKS/CYLINDER
      789   01 00A1C    204EFFFF A            AI,R4    X'EFFFF'          SUBTRACT 1 FROM EACH HALF
      790   01 00A1D    35400B30              STW,R4   DPSPT             TO GET LAST TRACK ADDRESS
      791   01 00A1E    6BB41AA2              INT,R11  SDATA,R2          PICK UP DEVICE SECTOR SIZE
      792   01 00A1F    6AF01B3E              CALL     ALLOCATE          ALLOCATE SECTOR FOR GRANULE
      793   01 00A20    32D0000B A            PAR      R11               .. PASS NUMBER OF WORDS NEEDED
      794   01 00A21    35D0000A A            RTN      R10               .. RETURN BUFFER ORIGIN TO R10

      796   01 00A22    33000BEE              MTW,0    LOGFLAG           SKIP TO LOG-ON IF SPECIFIED
      797   01 00A23    69300AFF              BNEZ     LOGON             ..
      798   01 00A24    33000BEF              MTW,0    VERFLAG           SKIP TO VERIFY HEADERS
      799   01 00A25    69300B1C              BNEZ     VERHDR              IF SPECIFIED
      800   01 00A26    33000BF4              MTW,0    LABNONE           TEST LABEL PROCESSING
      801   01 00A27    69300A60              BNEZ     CONT4              AND SKIP IF SUPPRESSED

      803   01 00A28    6AF00F0D     PROC05   CALL     CPREAD            CHECK TO SEE IF CLEAN PACK
      804   01 00A29    32D0000A A            PAR      R10               ..PASS BUFFER ORIGIN
      805   01 00A2A    32D0000B A            PAR      R11               ..PASS BUFFER SIZE
      806   01 00A2B    52D00004 A            HPAR     R4                ..PASS SPARE CYLINDER NUMBER
      807   01 00A2C    6BD00004 A            RPAR     R4                ..PASS SPARE TRACK    NUMBER
      808   01 00A2D    22D00000 A            IPAR     0                 ..PASS SPARE SECTOR   NUMBER
      809   01 00A2E    68000A5D              BAR      CONT1             ERROR OTHER THAN CLEAN PACK
      810   01 00A2F    68000A31              BAR      PROC20            READ INFO OKAY
      811   01 00A30    68000A5A              B        CONT0             CLEAN PACK

      813   01 00A31    32603504     PROC20   LW,R6    =X'FFFFFF00'      MASK OFF LAST BYTE
      814   01 00A32    CB60000A A            AND,R6   *R10              GET PRIVATE FLAG FROM DATA BUFFER
      815   01 00A33    327015C2              LW,R7    GMASK+0           IS PRIVATE FLAG SET
      816   01 00A34    31700006 A            CW,R7    R6                ..
      817   01 00A35    69300A63              BNE      PUB               NOT EQUAL - PUBLIC PACK
      818   01 00A36    20A00001 A            AI,R10   1                 STORE SERIAL NUMBER IN R6

      820   01 00A37    6AF00F0F     PROC22   CALL     DREAD             PRIVATE - READ IN VTOC
      821   01 00A38    32D0000A A            PAR      R10               .. PASS BUFFER ADDRESS
      822   01 00A39    32D0000B A            PAR      R11               .. PASS BUFFER SIZE
      823   01 00A3A    22D00000 A            IPAR     0                 .. PASS CYLINDER=0
      824   01 00A3B    22D00000 A            IPAR     0                 .. PASS TRACK=0
      825   01 00A3C    22D00000 A            IPAR     0                 .. PASS SECTOR=0
      826   01 00A3D    68000A68              B        PROC25            .. ERROR RETURN

      828   01 00A3E    20A00001 A            AI,R10   1                 POINT TO SERIAL NUMBER IN VTOC
      829   01 00A3F    B160000A A            CW,R6    *R10              IS THIS SAME SN# AS ON LAST TRACK
      830   01 00A40    68300A46              BE       PROC23            YES - VTOC HAS NOT BEEN CHANGED
      831   01 00A41    6AF01091              CALL     TYPE              NO - VTOC HAS BEEN CHANGED
      832   01 00A42    22D00AE0              EFA      VTOCMSG           .. SINCE LAST VOLINIT
      833   01 00A43    6AF01091              CALL     TYPE
      834   01 00A44    22D00AE5              EFA      VTOCMS1
      835   01 00A45    68000A49              B        CONT
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   21
A     837         01 00A46           PROC23   EQU      %
      838   01 00A46    32600C26              LW,R6    TYPNAMES+1        GET POINTER TO 'PRIVATE'
      839   01 00A47    6AF01091              CALL     TYPE
      840   01 00A48    22D00ADA              EFA      VOLNTMSG

      842         01 00A49           CONT     EQU      %
      843   01 00A49    2250FFFF A            LI,R5    X'FFFF'           GET DEVICE CLASS
      844   01 00A4A    22600006 A            LI,R6    3281DP+1          AND COMPARE TO 3281
      845   01 00A4B    4B5C1AB4              AND,R5   FDATA,R6
      846   01 00A4C    31501A73              CW,R5    DSKFLAG
      847   01 00A4D    69300A52              BNE      CONT2

      849   01 00A4E    33000BED              MTW,0    FMATIND           NO WARNING IF NOT
      850   01 00A4F    69100A52              BLZ      CONT2             FORMATTING, ELSE
      851   01 00A50    6AF01091              CALL     TYPE              ISSUE WARNING IF 3281
      852   01 00A51    22D00AEF              EFA      3281WM            PACK SHOULD BE CLEANED

      854         01 00A52           CONT2    EQU      %
      855   01 00A52    6AF0104A              CALL     TYPEIN            REQUEST 'C' TO
      856   01 00A53    22D00ACE              EFA      SNMSG2              RE-INITIALIZE
      857   01 00A54    22D032FC              EFA      KEYBUFF             PACK
      858   01 00A55    22D00001 A            IPAR     1
      859   01 00A56    526032FC              LH,R6    KEYBUFF           GET ANSWER
      860   01 00A57    51600AFB              CH,R6    CREP              CHECK FOR 'C'
      861   01 00A58    69300910              BNEZ     ENDPROC           NO..PROCESS NEXT COMMAND
      862   01 00A59    68000A6D              B        PROC30            CONTINUE INITIALIZATION

      864   01 00A5A    6AF01091     CONT0    CALL     TYPE              PACK FOUND TO BE CLEAN
      865   01 00A5B    22D00AEC              EFA      CLNMSG
      866   01 00A5C    68000A49              B        CONT

      868   01 00A5D    6AF01091     CONT1    CALL     TYPE              ERROR READING LABEL
      869   01 00A5E    22D00C13              EFA      RDSPMSG
      870   01 00A5F    68000A49              B        CONT

      872   01 00A60    6AF01091     CONT4    CALL     TYPE              PACK LABEL PROCESSING
      873   01 00A61    22D00AFC              EFA      CLN0MSG            WAS SUPPRESSED
      874   01 00A62    68000A49              B        CONT                 (ASSUMED CLEAN)

      876   01 00A63    20A00001 A   PUB      AI,R10   1                 PUT SERIAL NUMBER IN R6
      877   01 00A64    32600C25              LW,R6    TYPNAMES+0        GET POINTER TO 'PUBLIC'
      878   01 00A65    6AF01091              CALL     TYPE              OUTPUT MESSAGE TO OPERATOR
      879   01 00A66    22D00ADA              EFA      VOLNTMSG          PACK IS PUBLIC
      880   01 00A67    68000A49              B        CONT              CONTINUE INITIALIZATION

      882         01 00A68           PROC25   EQU      %
      883   01 00A68    6AF01091              CALL     TYPE              CANNOT READ VTOC
      884   01 00A69    22D00AE9              EFA      VTOCMSG3          PRINT ERROR MESSAGE
      885   01 00A6A    6AF01091              CALL     TYPE              PRINT SERIAL # ON LAST TRACK
      886   01 00A6B    22D00AE5              EFA      VTOCMS1
      887   01 00A6C    68000A49              B        CONT              CONTINUE INITIALIZATION
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   22
A     889         01 00A6D           PROC30   EQU      %                 YES..INITIALIZE PACK

        2*  01 00A6D    22000000 A            LI,R0    0                 CLEAR IO ERROR COUNTER          *H01
        3*  01 00A6E    35000BEC              STW,R0   IOERRORS                                          *H01

      894   01 00A6F    6AF0142F              CALL     MAPINITT          INITIALIZE THE MAP FOR THE DEVICE
      895   01 00A70    6AF014B1              CALL     DELETALT          DELETE SPARE TRACK FROM ALTMAP
      896   01 00A71    52D00004 A            HPAR     R4                .. PASS SPARE CYLINDER ADDRESS
      897   01 00A72    6BD00004 A            RPAR     R4                .. PASS SPARE TRACK ADDRESS

      899   01 00A73    32300BF0              LW,R3    NFQUEUE           PICK UP STACK COUNT
      900   01 00A74    32401B66              LW,R4    STACK             SET POINTER TO STACK ORIGIN
      901   01 00A75    38400003 A            SW,R4    R3                ..

      903   01 00A76    33000BED              MTW,0    FMATIND           HAVE FORMAT ORDERS BEEN SPECIFIED.
      904   01 00A77    69300A80              BNEZ     PROC35            YES, DO ONLY THOSE SPECIFIED.

      906   01 00A78    33000BF3              MTW,0    UPDFLAG           SKIP IF NOT UPDATING
      907   01 00A79    68300A7C              BEZ      %+3
      908   01 00A7A    33F00BED              MTW,-1   FMATIND           ELSE SET (FORMAT,NONE)
      909   01 00A7B    68000A80              B        PROC35

      911   01 00A7C    32741A75              LW,R7    NCYLS,R2          NO, FORMAT ENTIRE MODULE
      912   01 00A7D    37641A7E              MW,R6    NTRKS,R2          ..
      913   01 00A7E    35680001 A            STW,R6   1,R4              SET ZERO FUNCTION = 'FORMAT'
      914   01 00A7F    35780004 A            STW,R7   4,R4              SET TRACK COUNT WITH CYL1=TRK1=0

      916         01 00A80           PROC35   EQU      %
      917   01 00A80    33000BF3              MTW,0    UPDFLAG
      918   01 00A81    68300A83              BEZ      FPROCESS          SKIP IF NO UPDATE

      920   01 00A82    6AF03341              CALL     VERIFY:S          ELSE PRESET ALT MAP

      922   01 00A83    32580001 A   FPROCESS LW,R5    1,R4              GET FUNCTION CODE FROM STACK
      923   01 00A84    670A0ABD              EXU      CALLFCN,R5        CALL FORMAT OR REJECT
      924   01 00A85    20400004 A            AI,R4    4                 UPDATE STACK QUEUE POINTER
      925   01 00A86    203FFFFC A            AI,R3    -4                UPDATE TOTAL COUNTER
      926   01 00A87    69200A83              BGZ      FPROCESS          RETURN TO DO ANY MORE FUNCTIONS

      928                            ***********ASSIGN ALTERNATE TRACKS******************************
      929                            *
      930   01 00A88    6AF014B9     SSETUP   CALL     MAPALT            ASSIGN ALTERNATES FOR BAD TRACKS

      932   01 00A89    33000BF3              MTW,0    UPDFLAG           DO NOT REWRITE LABEL
      933   01 00A8A    69300AB5              BNEZ     SSETUP8           IF ONLY UPDATING THIS PACK

      935   01 00A8B    33000BF4              MTW,0    LABNONE           DO NOT REWRITE LABEL
      936   01 00A8C    69300AB5              BNEZ     SSETUP8            IF PROCESSING SUPPRESSED
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   23
A     938                            ************GENERATE DIRECTORIES*******************************
      939                            *
      940   01 00A8D    32300BF1              LW,R3    PVTFLAG           COMPUTE 'PTB' INDEX
      941   01 00A8E    32060B21              LW,R0    STBLIST,R3        PICK UP ADDRESS/COUNT OF 'PTB'

      943   01 00A8F    6B40000B A   SSETUP1  INT,R4   R11               CLEAR THE SECTOR I/O BUFFER
      944   01 00A90    205FFFFF A            AI,R5    -1                ..
      945   01 00A91    B54A000A A            STW,R4  *R10,R5            ..
      946   01 00A92    69200A90              BGZ      %-2               ..

      948   01 00A93    92800000 A            LD,R8   *R0                GET NEXT SECTOR CONTROL DOUBLEWORD
      949   01 00A94    323014A8              LW,R3    MASK+24-1         ISOLATE PROTOTYPE TABLE & COUNT
      950   01 00A95    4B300009 A            AND,R3   R9                (7-BIT COUNT, 17-BIT ADDRESS)
      951   01 00A96    68300A9E              BEZ      SSETUP5           IS THERE ANYTHING TO GO INTO SECTOR.

      953   01 00A97    6B460000 A   SSETUP2  INT,R4   0,R3              YES, PICK UP NEXT SPECIFIER
      954   01 00A98    694A0000              BCS,4    ORIG,R5           FCN=4, SUBROUTINE
      955   01 00A99    68300A9B              BCR,3    SSETUP3           FCN=0, R5 HAS VALUE
      956   01 00A9A    325A0000              LW,R5    ORIG,R5           FCN=1, 32-BIT VALUE

      958   01 00A9B    B558000A A   SSETUP3  STW,R5  *R10,R4            MOVE VALUE TO SECTOR BUFFER
      959   01 00A9C    203E0001 A   SSETUP4  AI,R3    X'E0001'          UPDATE INITIALIZATION LIST POINTER
      960   01 00A9D    69200A97              BGZ      SSETUP2           CONTINUE IF LIST NOT EMPTY

      962   01 00A9E    224FFFFB A   SSETUP5  LI,R4    -5                SET UP FOR 5 WRITE ATTEMPTS

      964   01 00A9F    6AF00F0E     SSETUP6  CALL     DWRITE            WRITE BUFFER TO DEVICE
      965   01 00AA0    32D0000A A            PAR      R10               .. PASS BUFFER ORIGIN
      966   01 00AA1    32D0000B A            PAR      R11               .. PASS BUFFER SIZE
      967   01 00AA2    52D00008 A            HPAR     R8                .. PASS CYLINDER ADDRESS
      968   01 00AA3    6BD00008 A            RPAR     R8                .. PASS TRACK ADDRESS
      969   01 00AA4    72D00009 A            BPAR     R9                .. PASS SECTOR ADDRESS
      970   01 00AA5    65400A9F              BIR,R4   SSETUP6           .. ERROR RETURN, INCREMENT ERROR CT

      972   01 00AA6    52500004 A            LH,R5    R4                FINISHED, SET NORMAL(-1)/ERROR(0)
      973   01 00AA7    20400005 A            AI,R4    5                 COMPUTE TOTAL ERROR COUNT
      974   01 00AA8    68300AB3              BEZ      SSETUP7           WERE THERE ANY ERRORS AT ALL.

      976   01 00AA9    670A0ABC              EXU      LOGERROR+1,R5     YES, CALL LOGERR/REJECT
      977   01 00AAA    52D00008 A            HPAR     R8                .. PASS CYLINDER ADDRESS
      978   01 00AAB    6BD00008 A            RPAR     R8                .. PASS TRACK ADDRESS
      979   01 00AAC    32D00004 A            PAR      R4                .. PASS ERROR COUNT

      981   01 00AAD    670A0AAE              EXU      %+1,R5            THEN CONTINUE OR START OVER
      982   01 00AAE    68000AB3              B        SSETUP7           NON-FATAL ERROR, CONTINUE
      983   01 00AAF    31800B30              CW,R8    DPSPT             WAS FATAL ERROR ON SPARE TRACK
      984   01 00AB0    69300A88              BNE      SSETUP            NO---REJECT,FLAW AND REWRITE SECTOR
      985   01 00AB1    6AF01091              CALL     TYPE              YES, TYPE MSG AND CONTINUE
      986   01 00AB2    22D00C0C              EFA      WRSPMSG

      988   01 00AB3    20040002 A   SSETUP7  AI,R0    X'40002'          GOOD WRITE, UPDATE SETUP LIST PTR
      989   01 00AB4    69100A8F              BLZ      SSETUP1           CONTINUE IF MORE TO DO

      991   01 00AB5    6AF01523     SSETUP8  CALL     PMSTAT            FINISHED, PRINT STATISTICS FROM MAP
      992   01 00AB6    02000000 A            NOP                        .. IGNORE ANY ERROR RETURN
        1*  01 00AB7    68000910              B        MAINSCAN          ..  START AGAIN                 *H01
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   24
A     997   01 00AB8    6AF01091     INITERR  CALL     TYPE              ERROR IN IOINITT
      998   01 00AB9    22D00C08              EFA      INITRMSG          ..
      999   01 00ABA    68000910              B        MAINSCAN          RETURN TO PROCESS NEXT CARD

     1001   01 00ABB    6AF01452     LOGERROR CALL     LOGERR            TO LOG NON-FATAL ERROR
     1002   01 00ABC    6AF01450              CALL     REJECT            TO LOG REJECT REQUEST

     1004   01 00ABD    6A000AC0     CALLFCN  BAL,R0   CALLFMT           0 .. FORMAT BLOCK OF TRACKS
     1005   01 00ABE    6A000AC6              BAL,R0   CALLREJ           1 .. REJECT BLOCK OF TRACKS
     1006   01 00ABF    02000000 A            NOP                        2 .. NULL FUNCTION, IGNORE

     1008   01 00AC0    6AF01168     CALLFMT  CALL     FORMAT            FORMAT A SPECIFIED BLOCK OF TRACKS
     1009   01 00AC1    32D80002 A            PAR      2,R4              .. PASS STARTING CYLINDER
     1010   01 00AC2    32D80003 A            PAR      3,R4              .. PASS STARTING TRACK
     1011   01 00AC3    22D00000 A            IPAR     0                 .. NO CYLINDER COUNT; USE TRACKS
     1012   01 00AC4    32D80004 A            PAR      4,R4              .. PASS TOTAL TRACKS INVOLVED
     1013   01 00AC5    E8000000 A            B       *R0                RETURN TO MAIN PROCESS

     1015   01 00AC6    6AF01450     CALLREJ  CALL     REJECT            REJECT A SPECIFIED BLOCK OF TRACKS
     1016   01 00AC7    32D80002 A            PAR      2,R4              .. PASS CYLINDER ADDRESS
     1017   01 00AC8    32D80003 A            PAR      3,R4              .. PASS TRACK ADDRESS
     1018   01 00AC9    22D00000 A            IPAR     0                 .. PASS ZERO ERROR COUNT
     1019   01 00ACA    33180003 A            MTW,1    3,R4              UPDATE RELATIVE TRACK ADDRESS
     1020   01 00ACB    33F80004 A            MTW,-1   4,R4              UPDATE TOTAL TRACK COUNT
     1021   01 00ACC    69200AC6              BGZ      CALLREJ           ARE THERE MORE TRACKS TO REJECT.
     1022   01 00ACD    E8000000 A            B       *R0                NO, RETURN TO CALLING PROGRAM

     1024                            SNMSG2   MESSAGE  'TYPE C TO CONTINUE INITIALIZATION: '

     1026                            NVALDEV  MESSAGE  DSP,'NOT VALID DEVICE ADDRESS'
            01 00AD7    00000002 A
     1027                            VOLNTMSG MESSAGE  DSP,SPE(R6),' PACK, IDENTIFICATION: ''',;
     1028                                              TXT(*R10,8),''''
            01 00ADA    00000005 A
     1029                            VTOCMSG  MESSAGE  DSP,'VTOC HAS BEEN MODIFIED SINCE LAST VOLINIT,',;
     1030                                              ' IDENTIFICATION IN VTOC = ',TXT(*R10,8)
            01 00AE0    00000004 A
     1031                            VTOCMS1  MESSAGE  DSP,'IDENTIFICATION IN LABEL = ',TXT(*R10,8)
            01 00AE5    00000003 A
     1032                            VTOCMSG3 MESSAGE  DSP,'UNABLE TO READ VTOC ON PRIVATE PACK'
            01 00AE9    00000002 A
     1033                            CLNMSG   MESSAGE  DSP,'PACK IS UNINITIALIZED'
            01 00AEC    00000002 A
        1*                           3281WM   MESSAGE  'PACK SHOULD BE CLEARED BEFORE INITIALIZATION'    *H00

     1036   01 00AFB    02C30D00 A   CREP     DATA     X'02C30D00'

     1038                            CLN0MSG  MESSAGE  DSP,'LABEL PROCESSING SUPPRESSED'
            01 00AFC    00000002 A
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   25
A    1041         01 00AFF           LOGON    EQU      %                 **  READ LAST PHYSICAL TRACK  **
     1042   01 00AFF    6AF00F0D     RDSPARE  CALL     CPREAD            CALL READ FOR SPARE SECTOR
     1043   01 00B00    32D0000A A            PAR      R10               .. PASS BUFFER ORIGIN
     1044   01 00B01    32D0000B A            PAR      R11               .. PASS BUFFER SIZE
     1045   01 00B02    52D00004 A            HPAR     R4                .. PASS SPARE CYLINDER NUMBER
     1046   01 00B03    6BD00004 A            RPAR     R4                .. PASS SPARE TRACK NUMBER
     1047   01 00B04    22D00000 A            IPAR     0                 .. PASS SPARE SECTOR NUMBER
     1048   01 00B05    68000B19              BAR      RDSPERR           ERROR RETURN, ATTEMPT RETRY
     1049   01 00B06    68000B08              B        %+2               NORMAL RETURN
     1050   01 00B07    68000B1E              BAR      LOGCLN            CLEAN PACK RETURN

     1052   01 00B08    22300000 A            LI,R3    0                 ASSUME PUBLIC DEVICE
     1053   01 00B09    32C03504              LW,E1    =X'FFFFFF00'      IGNORE OBSOLETE DCT INDEX
     1054   01 00B0A    CBC0000A A            AND,E1   *R10              MASK FIRST WORD OF INFORMATION
     1055   01 00B0B    31C015C2              CW,E1    GMASK+0           TEST FOR PRIVATE PACK FLAG
     1056   01 00B0C    69300B0E              BNE      %+2               SKIP IF NOT PRIVATE PACK
     1057   01 00B0D    22300001 A            LI,R3    1                 ELSE SET MESSAGE INDEX

     1059   01 00B0E    6B403505              INT,R4   =X'20010003'      SET SERIAL/DATE INDICES IN R4/R5
     1060   01 00B0F    AA8A000A A            LM,R8   *R10,R5            PICK UP DATE (MMDDBBYY) IN R8/R9
     1061   01 00B10    25800370 A            SCD,R8   -16               POSITION 2 BLANKS TO RIGHT R9
     1062   01 00B11    20902121 A            AI,R9    '//'-'  '         TRANSLATE BLANKS TO SLASHES
     1063   01 00B12    25900278 A            SCS,R9   -8                BOUND 2-DIGIT DATE BY SLASHES
     1064   01 00B13    25800310 A            SCD,R8   16                TO FORM RE-FORMATTED DATE (MM/DD/YY)

     1066   01 00B14    3040000A A            AW,R4    R10               POINT R4 TO 8-CHARACTER SERIAL NO.
     1067   01 00B15    32560C25              LW,R5    TYPNAMES,R3       GET POINTER TO 'PUBLIC'/'PRIVATE'

     1069   01 00B16    6AF01091              CALL     TYPE              PRINT STATISTICS FOR LOG-ON
     1070   01 00B17    22D00C1A              EFA      LOGONMSG          ..
     1071   01 00B18    68000910              B        ENDPROC           THEN RETURN TO FINISH PROCESSING

     1073         01 00B19           RDSPERR  EQU      %                 READ ERROR
     1074   01 00B19    6AF01091              CALL     TYPE               ISSUE ERROR MESSAGE
     1075   01 00B1A    22D00C13              EFA      RDSPMSG             AND TERMINATE PROCESSING
     1076   01 00B1B    68000910              B        ENDPROC

     1078   01 00B1C    6AF03324     VERHDR   CALL     VERIFY            READ HEADERS AND PRINT INFO
     1079   01 00B1D    68000910              B        ENDPROC

     1081   01 00B1E    6AF01091     LOGCLN   CALL     TYPE              DISPLAY CLEAN PACK
     1082   01 00B1F    22D00AEC              EFA      CLNMSG             INDICATION AND TERMINATE
     1083   01 00B20    68000910              B        ENDPROC
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   26
A    1086         00000000           PTB      CNAME                      DEFINE SECTOR SETUP CONTROL POINTERS
     1087                                     PROC                       ..
     1088                                     DO       SCOR(AF(4),0)     IS NULL SECTOR SPECIFIED.
     1089                            LF       GEN,16,16,8,7,17 AF(1),AF(2),AF(3),0,AF(4)
     1090                                     ELSE                       NO, SET COUNT TO ARGUMENT MINUS 1
     1091                            LF       GEN,16,16,8,7,17 AF(1),AF(2),AF(3),AF(5)-1,AF(4)
     1092                                     FIN
     1093                                     PEND

     1095                                     OPEN     S,T
     1096         00000000           PTY      CNAME                      DEFINE PROTOTYPE LIST ENTRIES
     1097                                     PROC                       ..
     1098                            T        SET      1                 INITIALIZE LITERAL TEST FLAG
     1099                            S        SET      S:UFV(AF(2))      GET VALUE/ADDRESS ARGUMENT
     1100                                     DO       T                 IS ARGUMENT A VALUE CONSTANT
     1101                                     DO       S>65535           YES, DOES IT FIT INTO 16-BIT FIELD.
     1102                            S        SET      C(L(S))           NO, RE-DEFINE TO POINT TO LITERAL
     1103                                     FIN                        NOTE: SEPARATE 'DO' LOOPS NEEDED
     1104                                     FIN                        ..
     1105                            LF       INTERP   S(2),AF(1),S(1)   GENERATE PROTOTYPE LIST ENTRY
     1106                                     PEND                       ..

     1108         00000001           C        FNAME    1,0               TO SPECIFY CONTENTS OF A LOCATION
     1109         00000003           XC       FNAME    3,1               TO SPECIFY TYPE-INDEXED CONTENTS
     1110         00000004           XEQ      FNAME    4,0               TO EXECUTE A SPECIFIED ROUTINE
     1111                                     PROC
     1112                            T        SET      0                         RESET LITERAL TEST FLAG
     1113                                     PEND     S:UFV(AF)-ORIG-NAME(2),NAME(1) RETURN ADDRESS, FLAG
     1114                                     CLOSE    S,T
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   27
A    1117                            *        CONTROL POINTERS FOR SECTOR INITIALIZATION LISTS.
     1118                            *        EACH ENTRY CONSISTS OF A 15-BIT TABLE COUNT (NEGATIVE)
     1119                            *        AND A 17-BIT POINTER TO THE POINTER TABLE.

     1121   01 00B21    FFFC0B30     STBLIST  GEN,15,17 -2,DPSPT         PUBLIC
     1122   01 00B22    FFE40B24              GEN,15,17 -DPSIZ,DPPTB     PRIVATE

     1124                            *        POINTER TABLE ENTRIES.  EACH ENTRY CONSISTS OF A 16-BIT
     1125                            *        CYLINDER ADDRESS, 16-BIT TRACK ADDRESS, 8-BIT SECTOR
     1126                            *        ADDRESS, 7-BIT COUNT, & 17-BIT PROTOTYPE TABLE ADDRESS.

     1128                                     BOUND    8
     1129   01 00B24    00000000 N   DPPTB    PTB      0,0,0,GRAN0,NGRN0      DISK PACK SETUP CONTROL TABLE
                        000E0B32
     1130   01 00B26    00000000 N            PTB      0,0,1,GRAN0A,NGRN0A SECOND HALF OF GRANULE 0
                        01000B3A
     1131   01 00B28    00000000 N            PTB      0,0,2,GRAN1,NGRN1 SECTOR 2, GRANULE 1 SETUP CONTROL
                        020A0B3B
     1132   01 00B2A    00000000 A            PTB      0,0,3,0,0         SECOND HALF GRANULE 1
                        03000000
     1133   01 00B2C    00000000 N            PTB      0,0,4,GRAN2,NGRN2 SECTOR 4, GRANULE 2 SETUP CONTROL
                        04080B41
     1134   01 00B2E    00000000 N            PTB      0,0,5,GRAN3,NGRN3 GRANULE 3 PACKED IN 2ND HALF GRAN 2
                        050E0B46
     1135   01 00B30    00000000 N   DPSPT    PTB      0,0,0,SPT,NSPT    SPARE TRACK CONTROL RECORD
                        00080B4E
     1136                            DPSIZ    TERMIN   DPPTB             END OF DP   SECTOR CONTROL TABLE

     1138                            *        PROTOTYPE ENTRIES.  EACH ENTRY CONSISTS OF A 4-BIT FLAG FIELD,
     1139                            *        12-BIT RELATIVE BUFFER POSITION, AND 16-BIT IMMEDIATE VALUE
     1140                            *        OR DATA ADDRESS.

     1142   01 00B32    10003506 A   GRAN0    PTY      00,':LBL'         GRANULE 0 PROTOTYPE LIST: LABEL
     1143   01 00B33    10010BE6 A            PTY      01,C(SERIALNO)    VOLUME SERIAL NUMBER
     1144   01 00B34    10020BE7 A            PTY      02,C(SERIALNO+1)  ..
     1145   01 00B35    40030B53 A            PTY      03,XEQ(SNTD)      DISPLACEMENT TO 'SNT'
     1146   01 00B36    10040BA5 A            PTY      04,C(MAPWL)       WORD LENGTH OF BIT MAP
     1147   01 00B37    40050B6A A            PTY      05,XEQ(NVAT)      NEXT VOLUME'S CYL 0 ALLOC TABLE
     1148   01 00B38    10063507 A            PTY      06,X'70000'       DISPLACEMENT TO BIT MAP, 1ST SECTOR
     1149   01 00B39    40070B75 A            PTY      07,XEQ(INITMAP)   INITIALIZE BIT MAP & 'SNT'
     1150                            NGRN0    TERMIN   GRAN0             END OF GRANULE 0 PROTOTYPE LIST
     1151   01 00B3A    40000B8C A   GRAN0A   PTY      00,XEQ(INITMAPA)  EXTEND BIT MAP IF
     1152                            *                                   NECESSARY
     1153                            NGRN0A   TERMIN   GRAN0A
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   28
A    1156   01 00B3B    10023508 A   GRAN1    PTY      02,X'0021000C'    GRANULE 2 PROTOTYPE, WORD 2= 'NAV'
     1157   01 00B3C    10033509 A            PTY      03,X'0B404040'    COUNT, BLANK LEADERS FOR 'ACN'
     1158   01 00B3D    10040BE4 A            PTY      04,C(ACCNTNO)     ACCOUNT NUMBER FOR PRIVATE PACK
     1159   01 00B3E    10050BE5 A            PTY      05,C(ACCNTNO+1)   ..
     1160   01 00B3F    1006350A A            PTY      06,X'00010004'    BLOCK DISK ADDRESS
     1161   01 00B40    00070600 A            PTY      07,X'00000600'    'BLK','EOF','FAK','FIDBUF'
     1162                            NGRN1    TERMIN   GRAN1             END OF GRANULE 1 PROTOTYPE

     1164   01 00B41    1002350B A   GRAN2    PTY      02,X'00354020'    GRANULE 2 PROTOTYPE, 'NAV'
     1165   01 00B42    1003350C A            PTY      03,X'01000000'    DUMMY FILE 'KL', 31 ZERO BYTES
     1166   01 00B43    100B350D A            PTY      11,X'00010005'    BLOCK DISK ADDRESS
     1167   01 00B44    000C0600 A            PTY      12,X'00000600'    'BLK','FAK'/'EOF','FIDBUF'
     1168   01 00B45    40FD0B9A A            PTY      253,XEQ(GAVAL)    'NGAVAL' & 'GAVAL'
     1169                            NGRN2    TERMIN   GRAN2             END OF GRANULE 2 PROTOTYPE

     1171   01 00B46    1002350E A   GRAN3    PTY      02,X'00740000'    GRANULE 3 PROTOTYPE LIST, 'NAV'
     1172   01 00B47    1003350C A            PTY      03,X'01000000'    COUNT, 'FNE'
     1173   01 00B48    100C350F A            PTY      12,X'0A000202'    LEADER, 'LE'/'NDW'/'NAW'
     1174   01 00B49    100D0BDE A            PTY      13,C(INITDATE)    MONTH/DAY OF CREATION
     1175   01 00B4A    100E0BDF A            PTY      14,C(INITDATE+1)  2 BLANKS, CREATION YEAR
     1176   01 00B4B    100F3510 A            PTY      15,X'0D000101'    LEADER, 'LE','NDW','NAW'
     1177   01 00B4C    10113511 A            PTY      17,X'0C000707'    LEADER, 'LE','NDW','NAW'
     1178   01 00B4D    10193512 A            PTY      25,X'09010303'    LEADER, 'LE','NDW','NAW'
     1179                            NGRN3    TERMIN   GRAN3             END OF GRANULE 3 PROTOTYPE LIST

     1181   01 00B4E    40000BA2 A   SPT      PTY      00,XEQ(PRIVINIT)  SPARE TRACK PROTOTYPE LIST
     1182   01 00B4F    10010BE6 A            PTY      01,C(SERIALNO)    VOLUME SERIAL NUMBER
     1183   01 00B50    10020BE7 A            PTY      02,C(SERIALNO+1)  ..
     1184   01 00B51    10030BDE A            PTY      03,C(INITDATE)    VOLUME INITIALIZATION DATE
     1185   01 00B52    10040BDF A            PTY      04,C(INITDATE+1)  ..
     1186                            NSPT     TERMIN   SPT               END OF SPARE TRACK LIST
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   29
A    1189         01 00B53           SNTD     EQU      %                 CALCULATE DISPLACEMENT
     1190   01 00B53    33000BF2              MTW,0    GRAN:CYL            TO SERIAL TABLE
     1191   01 00B54    69200B57              BGZ      %+3               SKIP IF NGC WAS INPUT
     1192   01 00B55    22C0001E A            LI,E1    30                ELSE, SET DEFAULT
     1193   01 00B56    35C00BF2              STW,E1   GRAN:CYL           TO 30
     1194   01 00B57    6BC41AB4              INT,E1   FDATA,R2          E1=NUMBER OF CYLINDERS
     1195                            *                                     IN PRIME AREA
     1196   01 00B58    6BC0000C A            INT,E1   E1                E2=E1; E1=0
     1197   01 00B59    37D41A7E              MW,E2    NTRKS,R2          E2=NO. CYL * NO. TRACKS
     1198   01 00B5A    37D41A87              MW,E2    NSECS,R2             * NUMBER OF SECTORS
     1199   01 00B5B    25D0047F A            SAS,E2   -1                   / 2 = NO. GRANULES
     1200   01 00B5C    36C00BF2              DW,E1    GRAN:CYL          GRAN/CYL INPUT FROM NGC
     1201   01 00B5D    35D00BA6              STW,E2   NLCYLS            E2=NO. LOG. CYLINDERS
     1202   01 00B5E    22C00000 A            LI,E1    0
     1203   01 00B5F    36C03513              DW,E1    =32               DIVIDE BY  BITS/WORD
     1204   01 00B60    3300000C A            MTW,0    E1                ROUND QUOTIENT
     1205   01 00B61    68300B63              BEZ      %+2                 UP
     1206   01 00B62    20D00001 A            AI,E2    1                 E2=WORDS REQUIRED TO
     1207   01 00B63    35D00BA5              STW,E2   MAPWL               TO REPRESENT CYLINDERS
     1208   01 00B64    32C00BF2              LW,E1    GRAN:CYL
     1209   01 00B65    55C00BA5              STH,E1   MAPWL             STORE NGC IN VTOC
     1210   01 00B66    20D00007 A            AI,E2    7                   + 7 = DISPLACEMENT
     1211   01 00B67    B5D8000A A            STW,E2   *R10,R4           PLACE IN BUFFER
     1212   01 00B68    35D00BA7              STW,E2   SNTD2             STORE DISPLACEMENT TO NSN OF VTOC
     1213   01 00B69    68000A9C              B        SSETUP4           RETURN TO MAIN PROGRAM

     1215         01 00B6A           NVAT     EQU      %                 FIGURE BIT CONFIGURATION
     1216                            *                                   FOR NEXT VOLUME'S CYL 0 ALLOC TABLE
     1217   01 00B6A    32600BF2              LW,R6    GRAN:CYL          NGC INPUT
     1218   01 00B6B    206FFFFF A            AI,R6    -1                NO. 1'S REQUIRED
     1219   01 00B6C    22C00000 A            LI,E1    0
     1220   01 00B6D    22DFFFFF A            LI,E2    -1
     1221   01 00B6E    25CC0100 A            SLD,E1   0,R6              SHIFT 1'S TO E1
     1222   01 00B6F    2270001F A            LI,R7    32-1
     1223   01 00B70    38700006 A            SW,R7    R6                NO. 0'S REQUIRED TO FILL WORD
     1224   01 00B71    22D00000 A            LI,E2    0
     1225   01 00B72    25CE0100 A            SLD,E1   0,R7              SHIFT 0'S TO E1
     1226   01 00B73    B5C8000A A            STW,E1   *R10,R4           STORE IN BUFFER
     1227   01 00B74    68000A9C              B        SSETUP4           RETURN TO MAIN PROGRAM
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   30
A    1229         01 00B75           INITMAP  EQU      %                 MAP INITIALIZATION,
     1230   01 00B75    32600BF2              LW,R6    GRAN:CYL          NGC INPUT
     1231   01 00B76    21600003 A            CI,R6    3
     1232   01 00B77    68200B79              BLE      %+2               IF <=3, USE NGC
     1233   01 00B78    22600003 A            LI,R6    3                 ELSE USE 3
     1234   01 00B79    32C00BA6              LW,E1    NLCYLS            NO. LOG CYLINDERS
     1235   01 00B7A    30CC0B93              AW,E1    VAFRQ-1,R6        DELETE CYLINDERS FOR SYSTEM
     1236   01 00B7B    32DC0B96              LW,E2    BITPTR-1,R6       GET INITIAL BIT PATTERN
     1237   01 00B7C    25D0021F A   INITMAP1 SCS,E2   31                UPDATE MAP BIT POINTER
     1238   01 00B7D    69800B81              BOD      INITMAP2          HAVE WE CROSSED TO NEXT WORD.
     1239   01 00B7E    20400001 A            AI,R4    1                 YES, UPDATE MAP WORD POINTER
     1240   01 00B7F    21400100 A            CI,R4    256               END OF SECTOR?
     1241   01 00B80    68100B8A              BGE      INITM10           YES--BRANCH OUT
     1242   01 00B81    C7D8000A A   INITMAP2 STS,E2  *R10,R4            SET AVAILABILITY BIT FOR THIS CYL.
     1243   01 00B82    64C00B7C              BDR,E1   INITMAP1          RETURN FOR REMAINING CYLINDERS
     1244   01 00B83    32600BA7              LW,R6    SNTD2             GET DISPLACEMTNT TO NSN
     1245   01 00B84    22C00001 A            LI,E1    X'1'              ONLY 1 SERIAL #
     1246   01 00B85    B5CC000A A            STW,E1   *R10,R6           STORE IN NSN FIELD IN VTOC
     1247   01 00B86    20600001 A            AI,R6    1
     1248   01 00B87    32C00BE6              LW,E1    SERIALNO          STORE 4 BYTES OF SERIAL # IN
     1249   01 00B88    B5CC000A A            STW,E1   *R10,R6             SNT IN VTOC
     1250   01 00B89    68000A9C              B        SSETUP4           THEN RETURN TO MAIN PROGRAM
     1251                            *
     1252   01 00B8A    15C00B92     INITM10  STD,E1   INITM50           END OF SECTOR,SAVE E1, E2
     1253   01 00B8B    68000A9C              B        SSETUP4           RETURN TO WRITE SECTOR
     1254                            *
     1255         01 00B8C           INITMAPA EQU      %                 SECOND HALF OF GRAN 0
     1256   01 00B8C    33000B92              MTW,0    INITM50
     1257   01 00B8D    68300A9C              BEZ      SSETUP4           NOTHING--RETURN
     1258   01 00B8E    12C00B92              LD,E1    INITM50           REST OF BIT MAP, RESTORE  E1, E2
     1259   01 00B8F    22E00000 A            LI,E3    0                 SECOND TIME THRU--RESET
     1260   01 00B90    35E00B92              STW,E3   INITM50             SWITCH
     1261   01 00B91    68000B81              B        INITMAP2          CONTINUE INITIALIZING MAP

     1263                                     BOUND    8
     1264   01 00B92    00000000 A   INITM50  DATA     0                 FLAG AND SAVE FOR E1
     1265   01 00B93    00000000 A            DATA     0                 SAVE FOR E2
     1266   01 00B94    FFFFFFFD A   VAFRQ    DATA     -3                NGC =1
     1267   01 00B95    FFFFFFFE A            DATA     -2                NGC = 2
     1268   01 00B96    FFFFFFFF A            DATA     -1                NGC = 3 OR GREATER
     1269   01 00B97    20000000 A   BITPTR   DATA     X'20000000'       FOR NGC = 1
     1270   01 00B98    40000000 A            DATA     X'40000000'               = 2
     1271   01 00B99    80000000 A            DATA     X'80000000'               => 3
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   31
A    1273         01 00B9A           GAVAL    EQU      %                 CALCULATE GRANULE
     1274   01 00B9A    22500000 A            LI,R5    0                  AVAILABLE PARAMETER
     1275   01 00B9B    32600BF2              LW,R6    GRAN:CYL
     1276   01 00B9C    206FFFFD A            AI,R6    -3                NGC - 3
     1277   01 00B9D    68200A9B              BLEZ     SSETUP3           IF <=3, USE R5=0
     1278   01 00B9E    75600BA1              STB,R6   GAV10             ELSE 'NGAVAL' = NGC-3
     1279   01 00B9F    32500BA1              LW,R5    GAV10                  'GAVAL' = 010006
     1280   01 00BA0    68000A9B              B        SSETUP3           RETURN TO MAIN PRORAM
     1281   01 00BA1    00010006 A   GAV10    DATA     X'00010006'       DISK ADDRESS

     1283   01 00BA2    32500BF1     PRIVINIT LW,R5    PVTFLAG           PICK UP 'PRIVATE' INDICATOR
     1284   01 00BA3    2550001F A            SLS,R5   31                MOVE TO BIT 0 POSITION
     1285   01 00BA4    68000A9B              B        SSETUP3           RETURN TO INSERT IN BUFFER

     1287   01 00BA5                 MAPWL    RES      1                 WORK LENGTH OF BIT MAP
     1288   01 00BA6                 NLCYLS   RES      1                 LOGICAL CYLINDERS PER MODULE
     1289   01 00BA7                 SNTD2    RES      1                 DISPLACMENT TO NSN IN VTOC
     1290   01 00BA8    00000002 A   NRTRIES  DATA     DFLTRTRY          NUMBER OF RECOVERY TRIES ON TRACK

     1292   01 00BA9    00006160 A   DLIMTEST DATA     '/-'              DISK ADDRESS DELIMITER TEST BYTES
     1293   01 00BAA    03D6D5C5 A   ONEPAR   TEXTC    'ONE'             CHECK CHARACTERS FOR 'NONE'
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   32
A    1295         01 00BAB           TRAPS    EQU      %
     1296   01 00BAB    02200000 A            LCI      0
     1297   01 00BAC    2B000BC7              STM,R0   TRAPREGS

     1299   01 00BAD    6D000041 A            WD,0     X'41'             SET ALARM

     1301   01 00BAE    4F000001 A            HIO,R0   1                 ABORT ANY CONSOLE I/O
     1302   01 00BAF    6AF01091              CALL     TYPE
     1303   01 00BB0    22D01B3B              EFA      DSPACE            SKIP A LINE
     1304   01 00BB1    6AF01091              CALL     TYPE
     1305   01 00BB2    22D00BC2              EFA      TRAPMSG           ISSUE WARNING

     1307   01 00BB3    6D000040 A            WD,0     X'40'             RESET THE ALARM

     1309   01 00BB4    6AF0104A              CALL     TYPEIN            REQUEST KEYIN FROM OPERATOR
     1310   01 00BB5    22D00ACE              EFA      SNMSG2
     1311   01 00BB6    22D032FC              EFA      KEYBUFF
     1312   01 00BB7    22D00001 A            IPAR     1

     1314   01 00BB8    526032FC              LH,R6    KEYBUFF           GET ANSWER
     1315   01 00BB9    51600AFB              CH,R6    CREP              CHECK IF 'C'
     1316   01 00BBA    68300BBF              BE       TRAPS0            SKIP IF USER WANTS TO GO ON

     1318   01 00BBB    02200000 A            LCI      0
     1319   01 00BBC    2A000BC7              LM,R0    TRAPREGS          TERMINATE INITIALIZATION
     1320   01 00BBD    70300BDA              LCF      TRAPA             VIA THE ABORT FUNCTION ENTRY
     1321   01 00BBE    0E300BD8              LPSD,3   TRAPB

     1323   01 00BBF    02200000 A   TRAPS0   LCI      0                 RESTORE THE REGISTERS
     1324   01 00BC0    2A000BC7              LM,R0    TRAPREGS
     1325   01 00BC1    0E300BDA              LPSD,3   TRAPA             AND ATTEMPT RETRY OR CONTINUE

     1327                            TRAPMSG  MESSAGE  'INTERRUPT/TRAP, PSD: ',XLZ(TRAPA),' ',XLZ(TRAPA+1)
            01 00BC2    00000004 A

     1329   01 00BC7                 TRAPREGS RES      16

     1331   01 00BD7    0F000BDA     TRAP     XPSD,0   TRAPA             PLACE IN TRAPS

     1333                                     BOUND    8
     1334   01 00BD8    00000910     TRAPB    DATA     ENDPROC           NEW PSD TO TERMINATE
     1335   01 00BD9    00000000 A            DATA     0
     1336   01 00BDA    00000000 A   TRAPA    DATA     0                 OLD TRAP PSD
     1337   01 00BDB    00000000 A            DATA     0
     1338   01 00BDC    00000BAB              DATA     TRAPS              PROCEED TO TRAP HANDLER
     1339   01 00BDD    00000000 A            DATA     0                   (FOR ALL TRAPS)
1 C00   23:14 JUN 20,'83    PROCESS DISK PACK                                                     PAGE   33
A    1341                                     BOUND    8
     1342   01 00BDE                 INITDATE RES      2                 DEVICE INITIALIZATION DATE: DDMMBBYY
     1343   01 00BE0                 TIMEBUFF RES      4                 BUFFER FOR MONITOR DAY/TIME

     1345         01 00BE4           DVARS    EQU      %                 DEFINE ORIGIN OF DEVICE VARIABLES

     1347   01 00BE4                 ACCNTNO  RES      2                 ACCOUNT NUMBER (PRIVATE PACK)
     1348   01 00BE6                 SERIALNO RES      2                 DEVICE SERIAL NUMBER
     1349   01 00BE8                 AVRINDEX RES      2                 POINTER TO DEVICE AVR TABLE ENTRY
     1350   01 00BEA                 KEYFLAGS RES      2                 HALFWORD FLAGS FOR KEYWORD TESTS
     1351   01 00BEC                 IOERRORS RES      1                 ACCUMULATED I/O ERRORS
     1352   01 00BED                 FMATIND  RES      1                 INDICATOR FOR NO FORMATTING
     1354   01 00BEE                 LOGFLAG  RES      1                 LOG-ON FLAG INDICATOR
     1355   01 00BEF                 VERFLAG  RES      1                 VERIFY FLAG INDICATOR
     1356   01 00BF0                 NFQUEUE  RES      1                 WORDS STACKED FOR FORMAT FUNCTION
     1357   01 00BF1                 PVTFLAG  RES      1                 PUBLIC/PRIVATE FLAG (0/1)
     1358   01 00BF2                 GRAN:CYL RES      1                 GRAN/LOGICAL CYLINDER
     1359   01 00BF3                 UPDFLAG  RES      1                 UPDATE FLAG
     1360   01 00BF4                 LABNONE  RES      1                 LABEL SUPPRESSION FLAG
        1*  01 00BF5                 TCPVFLAG RES      1                 NEW HEADER FORMAT FLAG          *H01
        2*  01 00BF6                 PASSMAX  RES      1                 NUMBER OF PASSES PER CYLINDER   *H02
        3*  01 00BF7                 ALLMODE  RES      1                 REJECT ALL TRACKS WITH ERRORS   *H01

     1362                            NDVARS   TERMIN   DVARS             END OF DEVICE VARIABLE LIST

     1364         00000026           KEOB     EQU      X'26'             END-OF-BLOCK CHARACTER FOR INPUT

     1366                            GREETMSG MESSAGE  TITLE                                             *G02
     1367                            CDERRMSG MESSAGE  DSP,'INVALID INPUT FORMAT OR DATA, COMMAND REJECTED.'
            01 00C05    00000002 A
     1368                            INITRMSG MESSAGE  DSP,'NO INITIALIZATION - UNABLE TO START I/O ON ',;
     1369                                              'DEVICE'
            01 00C08    00000003 A
     1370                            WRSPMSG  MESSAGE  DSP,'ERROR WRITING SPARE TRACK ',IVL(R8,0,16),;
     1371                                              '/',IVL(R8,16,16),'.'
            01 00C0C    00000006 A
     1372                            RDSPMSG  MESSAGE  DSP,'ERROR READING SPARE TRACK ',IVL(R4,0,16),;
     1373                                              '/',IVL(R4,16,16),'.  LOG-ON NOT PERFORMED.'
            01 00C13    00000006 A
     1374                            LOGONMSG MESSAGE  DSP,SPE(R5),' PACK, IDENTIFICATION: ''',;
     1375                                              TXT(*R4,8),''', INITIALIZATION DATE: ',TXT(R8,8)
            01 00C1A    00000006 A
     1376                            PUBLMSG  MESSAGE  'PUBLIC'
     1377                            PRVTMSG  MESSAGE  'PRIVATE'

     1379   01 00C25    48000C21 N   TYPNAMES DATA     TXC(PUBLMSG)      SPECIFIER TO PRINT 'PUBLIC'
     1380   01 00C26    48000C23 N            DATA     TXC(PRVTMSG)      SPECIFIER TO PRINT 'PRIVATE'

     1382                                     CLOSE    FUNCTION,PROCESS,VERFLAG,TRIES,INITERR,UPDATE
1 C00   23:14 JUN 20,'83    10/10/73 DECIMAL/HEXADECIMAL TO BINARY CONVERSION                     PAGE   34
A    1384                            ************************************************************************
     1385                            *                                                                      *
     1386                            *        DECCONV, HEXCONV .. BINARY CONVERSION                         *
     1387                            *        CALLING SEQUENCES ..                                          *
     1388                            *                                                                      *
     1389                            *                 CALL     <NAME>   .. CALL FOR DEC/HEX CONVERSION     *
     1390                            *                 RTW      RESULT   .. RETURN VALUE OF RESULT          *
     1391                            *                 RTW      NCHARS   .. RETURN NUMBER OF CHARS          *
     1392                            *                 ...      ...      .. ERROR RETURN                    *
     1393                            *                 ...      ...      .. NULL STRING RETURN              *
     1394                            *                 ...      ...      .. NORMAL RETURN                   *
     1395                            *                                                                      *
     1396                            ************************************************************************

     1398         01 00C27           CARD     EQU      %

     1400   01 00C27    7310000F A   HEXCONV  MTB,1    LNK               HEXADECIMAL, MARK IN LINK REGISTER

     1402                            DECCONV  MODULE   USE(R0,R3),;      DEFINE MODULE USING 4 REGISTERS
     1403   01 00C28    6AC03308                       OUT(VALUE,NCHARS) AND WITH 2 OUTPUT PARAMETERS
     1404   01 00C2A    7220000F A            LB,R2    LNK               PICK UP BASE POINTER FROM LINK
     1405   01 00C2B    23000000 A            MI,R0    0                 INITIALIZE INPUT COUNT AND RESULT
     1406   01 00C2C    6AF00C6D              CALL     NEXTCHAR          EXAMINE FIRST INPUT CHARACTER
     1407   01 00C2D    35D00003 A            RTW      R3                .. RETURN CHARACTER TO R3
     1408   01 00C2E    68000C41              BAR      NULLRTN           .. DELIMITER, TAKE NULL RETURN
     1409   01 00C2F    20000001 A   CONV1    AI,R0    1                 UPDATE INPUT CHARACTER COUNT
     1410   01 00C30    19300C4A              CLM,R3   NUMTEST           IS INPUT CHARACTER NUMERIC.
     1411   01 00C31    68900C35              BCR,9    CONV2             YES, NEED NOT EDIT IT.
     1412   01 00C32    213000C1 A            CI,R3    'A'               NO, IS IT ALPHABETIC >= 'A'.
     1413   01 00C33    69100C3F              BL       INVALID           NO, TAKE ILLEGAL RETURN
     1414   01 00C34    20300039 A            AI,R3    '0'-'A'+10        YES, A THRU F ARE LEGAL FOR HEX
     1415   01 00C35    203FFF10 A   CONV2    AI,R3    -'0'              REMOVE NUMERIC ZONE BITS
     1416   01 00C36    31340C48              CW,R3    BASE,R2           IS CHARACTER LEGAL FOR BASE.
     1417   01 00C37    68100C3F              BGE      INVALID           NO, TAKE INVALID RETURN
     1418   01 00C38    30100003 A            AW,R1    R3                YES, INSERT IN PARTIAL RESULT
     1419   01 00C39    69400C3F              BOV      INVALID           WE MAKE ALL THE TESTS HERE.
     1420   01 00C3A    6AF00C6D              CALL     NEXTCHAR          GET NEXT INPUT CHARACTER
     1421   01 00C3B    35D00003 A            RTW      R3                .. RESULT TO REGISTER 3
     1422   01 00C3C    68000C43              BAR      NORMEXIT          IS IT A DELIMITER.
     1423   01 00C3D    37140C48              MW,R1    BASE,R2           NO, CREATE MORE ROOM FOR IT
     1424   01 00C3E    68400C2F              BNOV     CONV1             RE-ENTER IF NO OVERFLOW

     1426   01 00C3F    6AC00C45     INVALID  BAL,E1   CONVEXIT          RETURN FOR INVALID RESULT
     1427   01 00C40    50040500              EXPAR,0  DECCONV           .. GIVE PARAMETERS FOR 'EXIT'

     1429   01 00C41    6AC00C45     NULLRTN  BAL,E1   CONVEXIT          RETURN FOR NULL ARGUMENT
     1430   01 00C42    51040500              EXPAR,1  DECCONV           ..

     1432   01 00C43    6AC00C45     NORMEXIT BAL,E1   CONVEXIT          NORMAL CONVERSION RETURN
     1433   01 00C44    52040500              EXPAR,2  DECCONV           ..

     1435   01 00C45    35100500     CONVEXIT STW,R1   VALUE             RETURN CONVERSION RESULT
     1436   01 00C46    35000501              STW,R0   NCHARS            RETURN NUMBER CHARACTERS CONVERTED
     1437   01 00C47    68003314              B        EXIT              AND RETURN TO CALLING PROGRAM

     1439   01 00C48    0000000A A   BASE     DATA     10                .. DECIMAL CONVERSION BASE
     1440   01 00C49    00000010 A            DATA     16                .. HEXADECIMAL CONVERSION BASE
     1441                                     BOUND    8                 ..
     1442   01 00C4A    000000F0 A   NUMTEST  DATA     '0'               .. NUMERIC TEST LOWER LIMIT
     1443   01 00C4B    000000F9 A            DATA     '9'               .. NUMERIC TEST UPPER LIMIT
1 C00   23:14 JUN 20,'83    10/10/73           .. DSEARCH .. DEVICE MODEL LOOKUP FUNCTION         PAGE   35
A    1447                            ************************************************************************
     1448                            *                                                                      *
     1449                            *        DEVICE PARAMETER DEFINITIONS AND                              *
     1450                            *         DEVICE MODEL NUMBER LOOKUP FUNCTION                          *
     1451                            *        CALLING SEQUENCE ...                                          *
     1452                            *                                                                      *
     1453                            *                 CALL     DSEARCH  .. TO LOOK UP A DEVICE NUMBER      *
     1454                            *                 EFA      NAME     .. 'TEXTC' DEVICE NAME             *
     1455                            *                 RTN      DINDEX   .. RETURN INDEX IN DEVICE TABLE    *
     1456                            *                 ...      ...      .. NO-FIND RETURN                  *
     1457                            *                                                                      *
     1458                            ************************************************************************

     1460                            DSEARCH  MODULE   IN(MODNAME),;     DEFINE PARAMETER NAMES
     1461   01 00C4C    6AC03308                       OUT(INDEX),USE(1) ..

     1463   01 00C4E    32101A68              LW,R1    NDEVICES          GET NUMBER OF SYSTEM DEVICES
     1464   01 00C4F    6AF00CD9     SEARCH   CALL     NAMETEST          COMPARE NEXT DEVICE NAME WITH ARG
     1465   01 00C50    32D21A68              PAR      DEVICES-1,R1      ..
     1466   01 00C51    32D00502              PAR      MODNAME           ..
     1467   01 00C52    68000C57              BAR      NEXTITEM          ..
     1468   01 00C53    201FFFFF A            AI,R1    -1                COMPARISON, RETURN TABLE INDEX
     1469   01 00C54    35100503              STW,R1   INDEX             ..
     1470   01 00C55    6AC03314              EXIT,1   DSEARCH           AND RETURN TO CALLING PROGRAM

     1472   01 00C57    64100C4F     NEXTITEM BDR,R1   SEARCH            NO COMPARISON, IS THIS LAST ENTRY.
     1473   01 00C58    6AC03314              EXIT,0   DSEARCH           YES, TAKE NO-FIND RETURN
1 C00   23:14 JUN 20,'83    10/10/73          .. RAD INITIALIZATION PROGRAM INPUT ROUTINES        PAGE   36
A    1477                            ************************************************************************
     1478                            *                                                                      *
     1479                            *        NEXTCHAR, ETC., INPUT SCAN ROUTINES                           *
     1480                            *        THESE ARE QUICK AND DIRTY ROUTINES TO PROCESS INPUT PARAM-    *
     1481                            *        ETERS FOR THE RAD INITIALIZATION PROGRAM.                     *
     1482                            *                                                                      *
     1483                            ************************************************************************

     1485         00000000           ALPHA    CNAME                      TO DEFINE ALPHANUMERIC CHARACTERS
     1486                                     PROC                       ..
     1487                                     LOCAL    B,H,I,L,W         ..
     1488                            L        SET      AF(1)             DEFINE LOW,HIGH ARGUMENTS
     1489                            H        SET      AF(2)             ..
     1490                            I        DO       1+(H>L)*(H-L)     ITERATE ONE OR RANGE OF CHARACTERS
     1491                            W        SET      (L+I-1)/32+1      DEFINE WORD/BIT ENTRIES IN MAP
     1492                            B        SET      L+I-1-32*(W-1)    ..
     1493                            MAP(W)   SET      MAP(W)|1**(31-B)  SET APPROPRIATE BIT IN MAP
     1494                                     FIN                        ..
     1495                                     PEND                       ..

     1497         00000001           CONTCOL  EQU      1                 START OF CONTINUATION COLUMN
     1498         00000026           EOBCHAR  EQU      X'26'             END-OF-CARD CHARACTER

     1500                            ************************************************************************
     1501                            *                                                                      *
     1502                            *        STARTIN, TO INITIALIZE INPUT ROUTINES.                        *
     1503                            *        CALLING SEQUENCE ..                                           *
     1504                            *                                                                      *
     1505                            *                 CALL     STARTIN  .. READ FIRST INPUT CARD           *
     1506                            *                 ...      ...      .. RETURN IF READER EMPTY          *
     1507                            *                                                                      *
     1508                            ************************************************************************

     1510   01 00C5A    6AC03308     STARTIN  MODULE   USE(R0,R1)        DEFINE MODULE 'STARTIN'
     1511   01 00C5C    32000D22              LW,R0    BLANKS            INITIALIZE READ/FLAG BUFFERS
     1512   01 00C5D    221FFFEB A            LI,R1    -21               ..
     1513   01 00C5E    35020D52              STW,R0   ENDBUFF,R1        .. INITIALIZE CARD BUFFER
     1514   01 00C5F    35020D3D              STW,R0   ENDFBUFF,R1       .. INITIALIZE FLAG BUFFER
     1515   01 00C60    65100C5E              BIR,R1   %-2               ..
     1516   01 00C61    35100D26              STW,R1   FLAGS             INITIALIZE FLAG WORD
     1517   01 00C62    35100D27              STW,R1   CARDFLAG          INITIALIZE CARD ERROR FLAG
     1518   01 00C63    221FFFB0 A            LI,R1    -80               INITIALIZE CHARACTER POSITION
     1519   01 00C64    35100D25              STW,R1   CCPOS             ..
     1520   01 00C65    6AF00FF5              CALL     CARDREAD          READ IN FIRST INPUT CARD
     1521   01 00C66    22D00D3E              EFA      CARDBUFF          .. PASS CARD BUFFER ORIGIN
     1522   01 00C67    22D00014 A            IPAR     ENDBUFF-CARDBUFF  .. PASS MAXIMUM BUFFER SIZE
     1523   01 00C68    68000C6B              BAR      NOINPUT           .. END-OF-FILE RETURN
     1524   01 00C69    6AC03314              EXIT,1   STARTIN           AND RETURN TO CALLING PROGRAM

     1526   01 00C6B    6AC03314     NOINPUT  EXIT,0   STARTIN           RETURN IF NO INPUT CARD
1 C00   23:14 JUN 20,'83    10/10/73          .. RAD INITIALIZATION PROGRAM INPUT ROUTINES        PAGE   37
A    1529                            ************************************************************************
     1530                            *                                                                      *
     1531                            *        CURCHAR, NEXTCHAR, TO GET CURRENT/NEXT ACTIVE INPUT CHARACTER *
     1532                            *        CALLING SEQUENCE ..                                           *
     1533                            *                                                                      *
     1534                            *                 CALL     <NAME>   .. CALL FOR CURRENT/NEXT CHAR      *
     1535                            *                 RTW      RESULT   .. RETURNS CHARACTER TO EFFEC ADDR *
     1536                            *                 ...      ...      .. RETURN IF CHARACTER DELIMITER   *
     1537                            *                 ...      ...      .. RETURN IF NOT DELIMITER         *
     1538                            *                                                                      *
     1539                            *        END-OF-INPUT IS DENOTED BY THE (DELIMITER) CHARACTER X'26'    *
     1540                            *                                                                      *
     1541                            ************************************************************************

     1543   01 00C6D    33100D25     NEXTCHAR MTW,1    CCPOS             NEXT CHARACTER ENTRY, ADVANCE COLUMN
     1544                            CURCHAR  MODULE   OUT(CCHAR),;      DEFINE MODULE WITH ONE RETURN PARAM
     1545   01 00C6E    6AC03308                       USE(R0,R1)        .. AND USING REGISTERS 0 THRU 1
     1546   01 00C70    32100D25     GETCHAR  LW,R1    CCPOS             GET ACTIVE INPUT CARD POSITION
     1547   01 00C71    68100C90              BGEZ     ENDDATA           IS CURRENT CARD EMPTY.

     1549   01 00C72    72020D52     ACTCHAR  LB,R0    ENDBUFF,R1        NO, PICK UP CHARACTER FROM BUFFER
     1550   01 00C73    21000040 A            CI,R0    ' '               IS CHARACTER A BLANK.
     1551   01 00C74    68300C9A              BE       BLANKCHK          YES, SEE IF ALONE OR MULTIPLE
     1552   01 00C75    2100005E A            CI,R0    ';'               IS IT A CONTINUATION SEMICOLON.
     1553   01 00C76    68300C7E              BE       CONTIN            YES, TRY FOR NEXT CARD

     1555   01 00C77    72100D23     DLIMSRCH LB,R1    DELIMITS          NO, CHECK FOR DELIMITER
     1556   01 00C78    71020D23              CB,R0    DELIMITS,R1       .. IS CHARACTER IN DELIMITER LIST.
     1557   01 00C79    68300C97              BE       DELIMRTN          .. YES, TAKE DELIMITER RETURN
     1558   01 00C7A    64100C78              BDR,R1   %-2               .. NO, TAKE NORMAL RETURN
     1559   01 00C7B    35000504              STW,R0   CCHAR             MOVE CHARACTER TO PARAMETER BUFFER
     1560   01 00C7C    6AC03314              EXIT,1   CURCHAR           RETURN TO CALLING PROGRAM NORMAL

     1562   01 00C7E    22000000 A   CONTIN   LI,R0    0                 TEST & RESET ERROR FLAG INDICATOR
     1563   01 00C7F    46000D26              XW,R0    FLAGS             ..
     1564   01 00C80    68300C83              BEZ      READNEXT          ..
     1565   01 00C81    6AF01091              CALL     TYPE              ERROR, PRINT FLAG BUFFER
     1566   01 00C82    22D00D61              EFA      PRINFBUF

     1568   01 00C83    6AF00FF5     READNEXT CALL     CARDREAD          READ NEXT INPUT CARD
     1569   01 00C84    22D00D3E              EFA      CARDBUFF          .. ORIGIN OF CARD BUFFER
     1570   01 00C85    22D00014 A            IPAR     ENDBUFF-CARDBUFF  .. LENGTH OF CARD BUFFER
     1571   01 00C86    68000C8E              BAR      CTINERR           .. EMPTY READER RETURN
     1572   01 00C87    32000D22              LW,R0    BLANKS            INITIALIZE FLAGS FOR NEXT CARD
     1573   01 00C88    221FFFEB A            LI,R1    -21               ..
     1574   01 00C89    35020D3D              STW,R0   ENDFBUFF,R1       ..
     1575   01 00C8A    65100C89              BIR,R1   %-1               ..
     1576   01 00C8B    221FFFB1 A            LI,R1    CONTCOL-80        INITIALIZE CHARACTER POSITION
     1577   01 00C8C    35100D25              STW,R1   CCPOS             RE-INITIALIZE COLUMN MARKER
     1578   01 00C8D    68000C72              B        ACTCHAR           AND CONTINUE PROCESSING
1 C00   23:14 JUN 20,'83    10/10/73          .. RAD INITIALIZATION PROGRAM INPUT ROUTINES        PAGE   38
A    1580   01 00C8E    6AF01091     CTINERR  CALL     TYPE              NO CONTINUATION, INVALID
     1581   01 00C8F    22D00D64              EFA      CTERRMSG

     1583   01 00C90    22000000 A   ENDDATA  LI,R0    0                 MARK END OF CARD IN CURRENT POSITION
     1584   01 00C91    35000D25              STW,R0   CCPOS             ..
     1585   01 00C92    46000D26              XW,R0    FLAGS             TEST FOR ANY FLAG LINE
     1586   01 00C93    68300C96              BEZ      EOBEXIT           ..
     1587   01 00C94    6AF01091              CALL     TYPE              PRINT FLAGS UNDER CARD
     1588   01 00C95    22D00D61              EFA      PRINFBUF

     1590   01 00C96    22000026 A   EOBEXIT  LI,R0    EOBCHAR           SET END-OF-CARD CHARACTER
     1591   01 00C97    35000504     DELIMRTN STW,R0   CCHAR             RETURN ACTIVE CHARACTER AS RESULT
     1592   01 00C98    6AC03314              EXIT,0   CURCHAR           AND EXIT TO CALLING PROGRAM


     1595   01 00C9A    20100001 A   BLANKCHK AI,R1    1                 BLANK DETECTED, UPDATE POINTER
     1596   01 00C9B    68100C90              BGEZ     ENDDATA           CARD END, IGNORE BLANK
     1597   01 00C9C    71020D52              CB,R0    ENDBUFF,R1        NOT END, IS BLANK ISOLATED.
     1598   01 00C9D    69300C77              BNE      DLIMSRCH          YES, IT IS VALID SEPARATOR

     1600   01 00C9E    20100001 A   SKIPBLNK AI,R1    1                 NO, ALL BLANKS SHOULD FOLLOW
     1601   01 00C9F    68100C90              BGEZ     ENDDATA           ..
     1602   01 00CA0    71020D52              CB,R0    ENDBUFF,R1        CHECK EACH CHARACTER TO CARD END
     1603   01 00CA1    68300C9E              BE       SKIPBLNK          OK, BLANK, CONTINUE SCAN
     1604   01 00CA2    6AF00D0F              CALL     FLAGCCHR          NOT BLANK, INVALID CARD FORMAT
     1605   01 00CA3    68000C90              B        ENDDATA           TERMINATE INPUT SCAN ANYWAY
1 C00   23:14 JUN 20,'83    10/10/73          .. RAD INITIALIZATION PROGRAM INPUT ROUTINES        PAGE   39
A    1608                            ************************************************************************
     1609                            *                                                                      *
     1610                            *        BACKCHAR, TO 'BACK UP' INPUT STREAM ONE CHARACTER.  THIS      *
     1611                            *        ROUTINE EXISTS MAINLY TO ALLOW ALLOW SINGLE-CHARACTER         *
     1612                            *        EDITING.  CALLING SEQUENCE ..                                 *
     1613                            *                                                                      *
     1614                            *                 CALL     BACKCHAR .. CALL TO RETURN EDITED CHARACTER *
     1615                            *                 PAR      EDITCHAR .. PASS EDITING CHARACTER          *
     1616                            *                                   .. ALLOWS BACKUP PAST 1ST COLUMN   *
     1617                            *                                                                      *
     1618                            ************************************************************************

     1620                            BACKCHAR MODULE   IN(EDCHAR),;      DEFINE MODULE WITH 1 INPUT PARAMETER
     1621   01 00CA4    6AC03308                       USE(R0,R1)        AND USING 2 VOLATILE REGISTERS
     1622   01 00CA6    32000505              LW,R0    EDCHAR            PICK UP EDITING CHARACTER
     1623   01 00CA7    32100D25              LW,R1    CCPOS             GET ACTIVE CHARACTER POSITION
     1624   01 00CA8    75020D52              STB,R0   ENDBUFF,R1        INSERT EDIT CHARACTER IN POSITION
     1625   01 00CA9    33F00D25              MTW,-1   CCPOS             TRANSLATE 'ACTIVE' TO 'NEXT'
     1626   01 00CAA    6AC03314              EXIT     BACKCHAR          AND RETURN TO CALLING PROGRAM



     1628                            ************************************************************************
     1629                            *                                                                      *
     1630                            *        SKIPCHAR, TO MOVE INPUT POINTER OVER CURRENT CHARACTER        *
     1631                            *        CALLING SEQUENCE ..                                           *
     1632                            *                                                                      *
     1633                            *                 CALL     SKIPCHAR .. BUMP INPUT POINTER              *
     1634                            *                                                                      *
     1635                            ************************************************************************

     1637   01 00CAC    33100D25     SKIPCHAR MTW,1    CCPOS             EXTREMELY SIMPLE ROUTINE
     1638   01 00CAD    E800000F A            B       *LNK               ..

     1640                            ************************************************************************
     1641                            *                                                                      *
     1642                            *        CHARTEST .. TO CHECK VALUE OF CURRENT CHARACTER               *
     1643                            *        NXCRTEST .. TO CHECK VALUE OF NEXT CHARACTER                  *
     1644                            *        CALLING SEQUENCE ..                                           *
     1645                            *                                                                      *
     1646                            *                 CALL     <NAME>   .. CALL CURRENT/NEXT VALIDATION    *
     1647                            *                 PAR      TESTCHAR .. AGAINST SPECIFIED CHARACTER     *
     1648                            *                 ...      ...      .. NON-COMPARE RETURN              *
     1649                            *                 ...      ...      .. NORMAL RETURN                   *
     1650                            *                                                                      *
     1651                            ************************************************************************

     1653   01 00CAE    33100D25     NXCRTEST MTW,1    CCPOS             UPDATE CHARACTER POINTER TO NEXT

     1655   01 00CAF    6AC03308     CHARTEST MODULE   IN(TCHAR),USE(R0) DEFINE 'CHARTEST' ENTRY POINT
     1656   01 00CB1    6AF00C6E              CALL     CURCHAR           PICK UP CURRENT ACTIVE CHARACTER
     1657   01 00CB2    35D00000 A            RTN      R0                .. RESULT TO REGISTER 0
     1658   01 00CB3    02000000 A            NOP                        .. ACCEPT DELIMITER CHARACTER
     1659   01 00CB4    48000506              EOR,R0   TCHAR             DOES IT MATCH TEST PARAMETER.
     1660   01 00CB5    68300CB8              BEZ      EQUCHAR           YES, TAKE COMPARE RETURN
     1661   01 00CB6    6AC03314              EXIT,0   CHARTEST          NO, TAKE NON-COMPARE RETURN

     1663   01 00CB8    6AC03314     EQUCHAR  EXIT,1   CHARTEST          RETURN FOR CHARACTER MATCH
1 C00   23:14 JUN 20,'83    10/10/73          .. RAD INITIALIZATION PROGRAM INPUT ROUTINES        PAGE   40
A    1666                            ************************************************************************
     1667                            *                                                                      *
     1668                            *        NAMESCAN, ROUTINE TO FORM AND VALIDATE NEXT INPUT ARGUMENT    *
     1669                            *        TO BE AN ALPHANUMERIC STRING UP TO THE NEXT DELIMITER         *
     1670                            *        CHARACTER.  CALLING SEQUENCE ..                               *
     1671                            *                                                                      *
     1672                            *                 CALL     NAMESCAN .. GET NEXT ALPHANUMERIC STRING    *
     1673                            *                 RTN      TEXTNAME .. RETURN WA('TEXTC' STRING)       *
     1674                            *                 ...      ...      .. RETURN IF STRING NULL           *
     1675                            *                 ...      ...      .. NORMAL RETURN                   *
     1676                            *                                                                      *
     1677                            ************************************************************************

     1679                            NAMESCAN MODULE   OUT(TEXTNAME),;   DEFINE MODULE WITH 1 OUTPUT PARAM,
     1680   01 00CBA    6AC03308                       USE(R3)           AND USING REGISTERS R0 - R3

     1682   01 00CBC    6AF00C6D              CALL     NEXTCHAR          GET NEXT ACTIVE CHARACTER
     1683   01 00CBD    35D00002 A            RTN      R2                .. RETURN RESULT TO R2
     1684   01 00CBE    68000CD7              BAR      NULLNAME          .. DELIMITER, TAKE NULL RETURN
     1685   01 00CBF    32000D22              LW,R0    BLANKS            NO, INITIALIZE PARAMETER BUFFER
     1686   01 00CC0    221FFFF6 A            LI,R1    -NPBUFF           ..
     1687   01 00CC1    35020D5D              STW,R0   PBUFFEND,R1       ..
     1688   01 00CC2    65100CC1              BIR,R1   %-1               ..
     1689   01 00CC3    22100000 A            LI,R1    0                 INITIALIZE PARAMETER BUFFER POINTER

     1691   01 00CC4    20100001 A   NSCAN1   AI,R1    1                 MOVE CHARACTER TO PARAMETER BUFFER
     1692   01 00CC5    75220D53              STB,R2   PBUFF,R1          ..
     1693   01 00CC6    2520017C A            SLD,R2   -4                .. ACCESS CHARACTER TABLE TEST BIT
     1694   01 00CC7    25300064 A            SLS,R3   -28               .. FORM HALFWORD/BIT ADDRESSES
     1695   01 00CC8    52040D1A              LH,R0    CTEST,R2          .. PICK UP SELECTED HALFWORD
     1696   01 00CC9    25060010 A            SLS,R0   16,R3             .. MOVE SELECTED BIT TO R0
     1697   01 00CCA    65000CCC              BIR,R0   NSCAN2            .. IS CHARACTER LEGAL ALPHANUMERIC.
     1698   01 00CCB    6AF00D0F              CALL     FLAGCCHR          .. NO, FLAG CURRENT INPUT POSITION

     1700   01 00CCC    6AF00C6D     NSCAN2   CALL     NEXTCHAR          GET NEXT INPUT CHARACTER
     1701   01 00CCD    35D00002 A            RTN      R2                .. RETURN RESULT TO REGISTER 2
     1702   01 00CCE    68000CD2              BAR      NSCAN3            .. DELIMITER, STOP SCAN
     1703   01 00CCF    21100027 A            CI,R1    4*NPBUFF-1        NON-DELIMITER, IS THERE ROOM.
     1704   01 00CD0    69100CC4              BL       NSCAN1            YES, INSERT INTO PARAMETER BUFFER
     1705   01 00CD1    6AF00D0F              CALL     FLAGCCHR          NO, FLAG CURRENT CHAR POSITION

     1707   01 00CD2    75100D53     NSCAN3   STB,R1   PBUFF             DONE, FORM 'TEXTC' STRING COUNT
     1708   01 00CD3    22000D53              LI,R0    PBUFF             RETURN ADDRESS OF 'TEXTC' STRING
     1709   01 00CD4    35000507              STW,R0   TEXTNAME          ..
     1710   01 00CD5    6AC03314              EXIT,1   NAMESCAN          EXIT TO CALLING PROGRAM

     1712   01 00CD7    6AC03314     NULLNAME EXIT,0   NAMESCAN          .. RETURN FOR NULL STRING
1 C00   23:14 JUN 20,'83    10/10/73          .. RAD INITIALIZATION PROGRAM INPUT ROUTINES        PAGE   41
A    1715                            ************************************************************************
     1716                            *                                                                      *
     1717                            *        NAMETEST, TO COMPARE TWO 'TEXTC' BYTE STRINGS.  CALL BY ..    *
     1718                            *                                                                      *
     1719                            *                 CALL     NAMETEST .. COMPARE TWO BYTE STRINGS        *
     1720                            *                 EFA      TEXT1    .. PASS ORIGIN OF FIRST STRING     *
     1721                            *                 EFA      TEXT2    .. PASS ORIGIN OF SECOND STRING    *
     1722                            *                 ...      ...      .. NON-COMPARE RETURN              *
     1723                            *                 ...      ...      .. COMPARE RETURN                  *
     1724                            *                                                                      *
     1725                            ************************************************************************

     1727                            NAMETEST MODULE   IN(TEXT1,TEXT2),; DEFINE MODULE WITH 2 INPUT PARAMS
     1728   01 00CD9    6AC03308                       USE(R1)           AND USING 2 VOLATILE REGISTERS
     1729   01 00CDB    F2100508              LB,R1   *TEXT1             PICK UP COUNT OF FIRST STRING
     1730   01 00CDC    F1100509              CB,R1   *TEXT2             ARE TWO STRINGS EQUAL LENGTH.
     1731   01 00CDD    69300CE4              BNE      NOCOMPAR          NO, SKIP STRING COMPARE
     1732   01 00CDE    F2020508     NTEST1   LB,R0   *TEXT1,R1          YES, COMPARE STRINGS BYTE BY BYTE
     1733   01 00CDF    F1020509              CB,R0   *TEXT2,R1          ..
     1734   01 00CE0    69300CE4              BNE      NOCOMPAR          .. MISMATCH, TAKE NO-COMPARE RETURN
     1735   01 00CE1    64100CDE              BDR,R1   NTEST1            ..
     1736   01 00CE2    6AC03314              EXIT,1   NAMETEST          ALL MATCH, TAKE COMPARE RETURN

     1738   01 00CE4    6AC03314     NOCOMPAR EXIT,0   NAMETEST          NO MATCH, TAKE ERROR RETURN

     1740                            ************************************************************************
     1741                            *                                                                      *
     1742                            *        NAMECHK, TO VERIFY STRING IS 8 OR FEWER CHARACTERS.  IF       *
     1743                            *        SO, NAME IS RETURNED IN DOUBLEWORD FORMAT.  CALLING SEQ ..    *
     1744                            *                                                                      *
     1745                            *                 CALL     NAMECHK  .. CALL TO CHECK LENGTH<=8         *
     1746                            *                 EFA      STRING   .. PASS ORIGIN OF 'TEXTC' STRING   *
     1747                            *                 RTN      WORD1    .. RETURN LEFT-JUSTIFIED NAME      *
     1748                            *                 RTN      WORD2    .. WITH TRAILING BLANKS            *
     1749                            *                 ...      ...      .. INVALID LENGTH RETURN           *
     1750                            *                 ...      ...      .. RETURN IF VALID RESULT          *
     1751                            *                                                                      *
     1752                            ************************************************************************

     1754                            NAMECHK  MODULE   USE(R1),IN(STRING),; DEFINE INPUT/OUTPUT PARAMETERS
     1755   01 00CE6    6AC03308                       OUT(WORD1,WORD2)     ..
     1756   01 00CE8    F210050A              LB,R1   *STRING            PICK UP ARGUMENT STRING LENGTH
     1757   01 00CE9    21100008 A            CI,R1    8                 IS LENGTH VALID.
     1758   01 00CEA    69200CF5              BG       INVALEN           NO, TAKE ERROR RETURN
     1759   01 00CEB    32C00D22              LW,E1    BLANKS            YES, INITIALIZE ERASABLE TEMPORARIES
     1760   01 00CEC    32D00D22              LW,E2    BLANKS            ..
     1761   01 00CED    F202050A     MOVNAME  LB,R0   *STRING,R1         MOVE STRING LEFT-JUSTIFIED INTO REGS
     1762   01 00CEE    201FFFFF A            AI,R1    -1                ..
     1763   01 00CEF    7502000C A            STB,R0   E1,R1             ..
     1764   01 00CF0    69200CED              BGZ      MOVNAME           ARE MORE CHARACTERS REMAINING.
     1765   01 00CF1    35C0050B              STW,E1   WORD1             NO, RETURN RESULT PARAMETERS
     1766   01 00CF2    35D0050C              STW,E2   WORD2             ..
     1767   01 00CF3    6AC03314              EXIT,1   NAMECHK           AND GO BACK TO CALLING PROGRAM

     1769   01 00CF5    6AC03314     INVALEN  EXIT,0   NAMECHK           RETURN FOR INVALID LENGTH
1 C00   23:14 JUN 20,'83    10/10/73          .. RAD INITIALIZATION PROGRAM INPUT ROUTINES        PAGE   42
A    1772                            ************************************************************************
     1773                            *                                                                      *
     1774                            *        SEPCHECK, TO CHECK VALIDITY OF CURRENT CHARACTER AS A         *
     1775                            *        SEPARATOR.  IF CURRENT CHARACTER IS NOT ONE OF THE SEP-       *
     1776                            *        ARATORS ')', COMMA, BLANK, OR END-OF-CARD, THE CURRENT        *
     1777                            *        CHARACTER POSITION IS FLAGGED AND THE NEXT CHARACTER IS       *
     1778                            *        CHECKED.  PROCESSING CONTINUES UNTIL A SEPARATOR IS FOUND,    *
     1779                            *        AT WHICH TIME THE APPROPRIATE RETURN IS TAKEN.                *
     1780                            *        CALLING SEQUENCE ..                                           *
     1781                            *                                                                      *
     1782                            *                 CALL     SEPCHECK .. VALIDATE FOR SEPARATOR          *
     1783                            *                 ...      ...      .. END-OF-INPUT RETURN             *
     1784                            *                 ...      ...      .. RIGHT PARENTHESIS RETURN        *
     1785                            *                 ...      ...      .. COMMA/BLANK RETURN              *
     1786                            *                                                                      *
     1787                            *        COMMA AND BLANK ARE EQUIVALENT SEPARATORS IN THIS PROGRAM     *
     1788                            *                                                                      *
     1789                            ************************************************************************

     1791   01 00CF7    6AC03308     SEPCHECK MODULE   USE(R3)           NO PARAMETERS, NEED 4 REGISTERS
     1792   01 00CF9    6AF00C6E              CALL     CURCHAR           PICK UP CURRENT CHARACTER
     1793   01 00CFA    35D00003 A            RTN      R3                ..
     1794   01 00CFB    02000000 A            NOP                        ..
     1795   01 00CFC    22200004 A   SEPSCAN  LI,R2    NSEPLIST          INITIALIZE SEPARATOR LIST SCAN
     1796   01 00CFD    6B040D0A     SEPTEST  INT,R0   SEPLIST-1,R2      SEARCH SEPARATOR LIST FOR MATCH
     1797   01 00CFE    31300000 A            CW,R3    R0                ..
     1798   01 00CFF    68300D06              BE       SEPEXIT           ..
     1799   01 00D00    64200CFD              BDR,R2   SEPTEST           ..
     1800   01 00D01    6AF00D0F              CALL     FLAGCCHR          NOT A SEPARATOR, FLAG CHARACTER
     1801   01 00D02    6AF00C6D              CALL     NEXTCHAR          GET NEXT INPUT CHARACTER
     1802   01 00D03    35D00003 A            RTW      R3                .. RETURN CHARACTER TO R3
     1803   01 00D04    02000000 A            NOP                        .. ACCEPT DELIMITER RETURN
     1804   01 00D05    68000CFC              B        SEPSCAN           RETURN TO VALIDATE NEXT CHARACTER

     1806   01 00D06    44C03533     SEPEXIT  LWA,E1   RETURN1,R1        SELECT CONTROL WORD FOR 'EXIT'
     1807   01 00D07    68003314              B        EXIT              AND RETURN TO CALLING PROGRAM

     1809   01 00D08    50000000 A   RETURN1  EXPAR,0  SEPCHECK          .. TO TAKE END-OF-CARD RETURN
     1810   01 00D09    51000000 A   RETURN2  EXPAR,1  SEPCHECK          .. TO TAKE RIGHT PARENTHESIS RETURN
     1811   01 00D0A    52000000 A   RETURN3  EXPAR,2  SEPCHECK          .. TO TAKE BLANK/COMMA RETURN

     1813   01 00D0B    0026     A   SEPLIST  DATA,2   EOBCHAR,0         EOB .. RETURN (LNK) + 0
            01 00D0B 2  0000     A
     1814   01 00D0C    005D     A            DATA,2   ')',1             RIGHT PAREN .. RETURN (LNK) + 1
            01 00D0C 2  0001     A
     1815   01 00D0D    006B     A            DATA,2   ',',2             COMMA .. RETURN (LNK) + 2
            01 00D0D 2  0002     A
     1816   01 00D0E    0040     A            DATA,2   ' ',2             BLANK .. RETURN (LNK) + 2
            01 00D0E 2  0002     A

     1818         00000004           NSEPLIST EQU      %-SEPLIST         LENGTH OF SEPARATOR LIST

     1820                            ************************************************************************
     1821                            *        FLAGCCHR, TO SET FLAGLINE FOR CURRENT CHARACTER               *
     1822                            ************************************************************************

     1824   01 00D0F    6AC03308     FLAGCCHR MODULE   USE(R1)           DEFINE MODULE WITH NO PARAMETERS
     1825   01 00D11    2200005B A            LI,R0    '%'               SET FLAG CHARACTER
     1826   01 00D12    32100D25              LW,R1    CCPOS             LOAD CURRENT CHARACTER POSITION
     1827   01 00D13    75020D3D              STB,R0   ENDFBUFF,R1       MARK CORRESPONDING FLAG POSITION
     1828   01 00D14    33100D26              MTW,1    FLAGS             MARK OCCURRENCE OF FLAGS
     1829   01 00D15    33100D27              MTW,1    CARDFLAG          SET ERROR INDICATOR IN FLAG WORD
     1830   01 00D16    20100052 A            AI,R1    82                FIND CHARACTER POSITION IN BUFFER
     1831   01 00D17    75100D29              STB,R1   FLAGBUFF          FORMAT TEXTC - STORE LENGTH
     1832   01 00D18    6AC03314              EXIT     FLAGCCHR          AND RETURN TO CALLING PROGRAM
1 C00   23:14 JUN 20,'83    10/10/73          .. RAD INITIALIZATION PROGRAM INPUT ROUTINES        PAGE   43
A    1835                            ************************************************************************
     1836                            *                                                                      *
     1837                            *        'CTEST' - ALPHANUMERIC CHARACTER TEST MAP.  EACH BYTE FROM    *
     1838                            *        0 TO 255 HAS A ONE-BIT ENTRY WHICH IS 0 IF THE CORRES-        *
     1839                            *        PONDING CHARACTER IS NOT A LEGAL ALPHANUMERIC AND 1 IF        *
     1840                            *        IT IS.  THE TABLE IS GENERATED BY THE MACRO'S 'ALPHA'         *
     1841                            *        AND 'GENLIST'.                                                *
     1842                            *                                                                      *
     1843                            ************************************************************************

     1845         LIST               MAP      SET      0,0,0,0,0,0,0,0   INITIALIZE ALPHANUMERIC BIT MAP
     1846                                     ALPHA    '%'               DEFINE ALLOWABLE ALPHANUMERICS
     1847                                     ALPHA    ':'               .. '%' & ':' INCLUDED
     1848                                     ALPHA    'A','I'           .. LETTERS A THRU I
     1849                                     ALPHA    'J','R'           .. LETTERS J THRU R
     1850                                     ALPHA    'S','Z'           .. LETTERS S THRU Z
     1851                                     ALPHA    '0','9'           .. NUMBERS 0 THRU 9

     1853   01 00D1A    00000000 A   CTEST    GENLIST  MAP               GENERATE CHARACTER TEST TABLE

     1855                            ************************************************************************
     1856                            *                                                                      *
     1857                            *        MISCELLANEOUS CONSTANTS AND STORAGE ..                        *
     1858                            *                                                                      *
     1859                            ************************************************************************

     1861   01 00D22    40404040 A   BLANKS   TEXT     '    '            WORD OF BLANKS
     1862   01 00D23    06406B4D A   DELIMITS TEXTC    ' ,()-/'          LIST OF LEGAL DELIMITERS
            01 00D24    5D606140 A
     1863   01 00D25                 CCPOS    RES      1                 CURRENT CHARACTER POSITION
     1864   01 00D26                 FLAGS    RES      1                 GENERAL FLAG WORD
     1865   01 00D27                 CARDFLAG RES      1                 CARD ERROR FLAG INDICATOR
     1866   01 00D28    40404040 A   FLAGLINE GEN,32   X'40404040'       ORIGIN OF INPUT FLAG BUFFER
     1867   01 00D29                 FLAGBUFF RES,1    80                ..
     1868   01 00D3D                 ENDFBUFF RES      0                 END OF FLAG BUFFER
     1869   01 00D3D    40404040 A   CHARBUFF GEN,32   X'40404040'       ORIGIN OF INPUT CHARACTER BUFFER
     1870   01 00D3E                 CARDBUFF RES,1    80                ..
     1871   01 00D52    26000000 A   ENDBUFF  GEN,8,24 EOBCHAR,0         END OF CHARACTER BUFFER
     1872   01 00D53                 PBUFF    RES,1    40                PARAMETER BUFFER ORIGIN
     1873   01 00D5D                 PBUFFEND RES      0                 END OF PARAMETER BUFFER
     1874         0000000A           NPBUFF   EQU      PBUFFEND-PBUFF    LENGTH OF PARAMETER BUFFER

     1876                            PRINCBUF MESSAGE  CCR(*R0),DUP(1,' '),TXC(CARDBUFF)
            01 00D5D    00000003 A
     1877                            PRINFBUF MESSAGE  CLB(FLAGLINE,24,8),TXC(FLAGBUFF)
            01 00D61    00000002 A
     1878                            CTERRMSG MESSAGE  DSP,'INVALID INPUT; EXPECT CONTINUATION CARD.'
            01 00D64    00000002 A

     1880                                     CLOSE    NUMTEST,INVALID,NORMEXIT,SEARCH,;
     1881                                              NEXTITEM,FLAGS
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   44
A    1883                            ************************************************************************
     1884                            *                                                                      *
     1885                            *        IOINITT .. TO INITIALIZE DEVICE FOR INPUT/OUTPUT.  RETURNS    *
     1886                            *        BAL+1 IF ERROR; OTHERWISE, RETURNS BAL+2.                     *
     1887                            *                                                                      *
     1888                            ************************************************************************

     1890                                     CLOSE    TIOSTAT,TDVSTAT,CCTR,BCTR

     1892   01 00D67    6AC03308     IOINITT  MODULE   USE(R4)

     1894   01 00D69    6AF00D7A              BAL,R15  REINIT            EXECUTE CARRIAGE RESTORE
     1895   01 00D6A    6AF01ABD              CALL     ABORT             ..UNSUCCESSFUL

     1897   01 00D6B    32100D93              LW,R1    DPTIO             FETCH COMPLETION STATUS
     1898   01 00D6C    21100800 A            CI,R1    X'800'            UNUSUAL END?
     1899   01 00D6D    69400D70              BANZ     INITERR           YES, GIVE UP
     1900   01 00D6E    6AC03314              EXIT,1   IOINITT           ..INITIALIZATION COMPLETED

     1902   01 00D70    22200D75     INITERR  LI,R2    INITMSG2          DEVICE START UNSUCCESSFUL, SET MSG
     1903   01 00D71    6AF00E41              CALL     IODIAG            PRINT I/O ERROR DIAGNOSTICS
     1904   01 00D72    32D00002 A            PAR      R2                ..
     1905   01 00D73    6AC03314              EXIT,0   IOINITT           TAKE ERROR RETURN TO MAIN PROGRAM

     1907                            INITMSG2 MESSAGE  'INITIALIZATION FAILURE, TIO STATUS = ',;
     1908                                              XLZ(R1,16,16),', TDV STATUS = ',XLZ(R1,0,16)
            01 00D75    00000004 A
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   45
A    1910                            ************************************************************************
     1911                            *                                                                      *
     1912                            *        CALLED FROM IOINITT AND IOEX TO DUE CARRIAGE RESTORE ON       *
     1913                            *        DISK DEVICES.  SENSE IS USED TO DELAY UNTIL THE ARM IS        *
     1914                            *        NO LONGER IN MOTION. CALLING SEQUENCE IS 'BAL,R15 REINIT'     *
     1915                            *                                                                      *
     1916                            ************************************************************************

     1918         01 00D7A           REINIT   EQU      %                 RE-CALLIBRATE THE DISK ARMS
     1919   01 00D7A    35F00D94              STW,R15  INIT25            SAVE REG 15

     1921   01 00D7B    6AF00E94              CALL     IOSTART           RESTORE CARRIAGE AND WAIT
     1922   01 00D7C    6BD01A72              RPAR     DEVICE            ..
     1923   01 00D7D    22D006CD              IPAR     DA(DPRST)         ..
     1924   01 00D7E    68000D8F              BAR      INIT20            ..SIO FAILURE

     1926   01 00D7F    6AF00EBD              CALL     IOWAIT            WAIT FOR IO TO FINISH
     1927   01 00D80    6BD01A72              RPAR     DEVICE            ..
     1928   01 00D81    35D00D93              RTN      DPTIO             ..TIO STATUS
     1929   01 00D82    55D00D93              RTH      DPTIO             ..TDV STATUS
     1930   01 00D83    22D00000 A            NOPAR                      ..CURRENT IOCD
     1931   01 00D84    22D00000 A            NOPAR                      ..REMAINING BYTE COUNT

     1933         01 00D85           INIT10   EQU      %
     1934   01 00D85    6AF00F9C              CALL     SENSE             RESET FAULT INDICATIONS
     1935   01 00D86    35D00D95              RTN      INIT27             AND GET MOTION STATUS BIT

     1937   01 00D87    32F00D95              LW,R15   INIT27            GET BA(SENSEBUFF)
     1938   01 00D88    25F0047E A            SAS,R15   -2                   WA(SENSBUFF)
     1939   01 00D89    20F00001 A            AI,R15   1                     WA(SENSBUFF)+1
     1940   01 00D8A    B2F0000F A            LW,R15   *R15              R15=SENSE DATA
     1941   01 00D8B    69100D85              BLZ      INIT10            LOOP IF ARM STILL IN MOTION

     1943   01 00D8C    32F00D94              LW,R15   INIT25
     1944   01 00D8D    20F00001 A            AI,R15   1                 SET FOR NORMAL EXIT
     1945   01 00D8E    E800000F A            B        *R15

     1947   01 00D8F    6AF00E41     INIT20   CALL     IODIAG            COULD NOT RESTORE
     1948   01 00D90    22D00D96              EFA      INITMSG4          PRINT MESSAGE
     1949   01 00D91    32F00D94              LW,R15   INIT25            TAKE ERROR EXIT
     1950   01 00D92    E800000F A            B        *R15

     1952   01 00D93                 DPTIO    RES      1                 SAVE CELL FOR TDV/TIO STATUS
     1953   01 00D94                 INIT25   RES      1                 SAVE CELL FOR R15
     1954   01 00D95                 INIT27   RES      1                 BA(SENSE BUFFER)

     1956                            INITMSG4 MESSAGE  'INITIALIZATION OR RECOVERY FAILURE - SIO REJECTED',;
     1957                                              ' WHEN ATTEMPTING TO RESTORE CARRIAGE'
            01 00D96    00000002 A

     1959                                     BOUND    8
     1960   01 00D9A    33000000 A   DPRST    GEN,8,24 X'33',0           RESTORE CARRIAGE
     1961   01 00D9B    1C000000 A            GEN,8,24 X'1C',0           ICE,HTE,IUE
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   46
A    1963                            ************************************************************************
     1964                            *                                                                      *
     1965                            *        IOEX .. TO EXECUTE AN I/O COMMAND LIST.  CALLING SEQUENCE ..  *
     1966                            *                                                                      *
     1967                            *                 CALL     IOEX     .. CALL TO EXECUTE COMMAND LIST    *
     1968                            *                 PAR      COMLIST  .. PASS DOUBLEWORD ADDRESS OF LIST *
     1969                            *                 RTN      TIOSTAT  .. RETURN 16-BIT TIO STATUS        *
     1970                            *                 RTN      TDVSTAT  .. RETURN 16-BIT TDV STATUS        *
     1971                            *                 RTN      ADDRESS  .. RETURN COMMAND ADDRESS COUNTER  *
     1972                            *                 RTN      COUNT    .. RETURN COMMAND BYTE COUNTER     *
     1973                            *                 ...      ...      .. UNUSUAL END EXIT                *
     1974                            *                 ...      ...      .. NORMAL EXIT                     *
     1975                            *                                                                      *
     1976                            ************************************************************************

     1978   01 00D9C    6AC03308     IOEX     MODULE  IN(PROG),OUT(TIOSTAT,TDVSTAT,CCTR,BCTR),USE(R8)

     1980   01 00D9E    22000000 A            LI,R0    0                 CLEAR SENSE DATA
     1981   01 00D9F    35000E3A              STW,R0   BADSENS           FOR PROPER ERROR RECOVERY

        1*  01 00DA0    22000001 A            LI,R0    IOERRMAX          MAXIMUM ERRORS BEFORE FAILURE   *H01

     1984   01 00DA1    6B201A72              INT,R2   DEVICE            PICK UP DEVICE TYPE & I/O ADDRESS

     1986         01 00DA2           IOMAIN   EQU      %
     1987   01 00DA2    22400000 A            LI,R4    0                 CLEAR BAD HEADER FLAG           *G02
     1988   01 00DA3    35400E3F              STW,R4   BADHFLG            (AVOID REG 0, RETRY COUNTER)   *G02

     1990   01 00DA4    6AF00E94              CALL     IOSTART           INITIATE I/O ACTIVITY ON DISK
     1991   01 00DA5    32D00003 A            PAR      R3                .. PASS DEVICE I/O ADDRESS
     1992   01 00DA6    32D0050D              PAR      PROG              .. PASS CHANNEL COMMAND LIST ORIGIN
     1993   01 00DA7    68000E08              BAR      IOABORT           .. UNABLE TO START I/O, ABORT

     1995   01 00DA8    6AF00EBD              CALL     IOWAIT            THEN MONITOR ACTIVITY UNTIL FINISHED
     1996   01 00DA9    32D00003 A            PAR      R3                .. PASS DEVICE I/O ADDRESS
     1997   01 00DAA    35D0050E              RTN      TIOSTAT           .. RETURN TIO STATUS BITS
     1998   01 00DAB    35D0050F              RTN      TDVSTAT           .. RETURN TDV STATUS BITS
     1999   01 00DAC    35D00510              RTN      CCTR              .. RETURN FINAL COMMAND ADDRESS
     2000   01 00DAD    35D00511              RTN      BCTR              .. RETURN FINAL REMAINING BYTE COUNT
     2001   01 00DAE    33000510              MTW,0    CCTR              WAS ZERO COMMAND COUNTER RETURNED.
     2002   01 00DAF    68300DA2              BEZ      IOMAIN            YES, INVALID COMMAND ADDRESS, REPEAT

     2004                            ************************************************************************
     2005                            * THE TEST FOR ERROR CONDITION IS MADE HERE: U.E. AND T.D.E ARE        *
     2006                            * THE ONLY CRITERIA CURRENTLY BEING USED TO MAKE THIS DECISION!        *
     2007                            ************************************************************************

     2009   01 00DB0    3240050E              LW,R4    TIOSTAT           NO, PICK UP TIO STATUS FOR TEST
     2010   01 00DB1    21400840 A            CI,R4    X'0840'            WAS THERE AN ERROR?            *G02
     2011   01 00DB2    69400DB5              BANZ     ERRECOV           YES, ANALYZE ERROR CAUSE
     2012   01 00DB3    6AC03314              EXIT,1   IOEX              NO, TAKE NORMAL RETURN
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   47
A    2014                            *        IOEX ERROR ANALYSIS/RECOVERY SECTION.  FOR THOSE ERROR'S
     2015                            *        CLASSIFIED AS DATA ERRORS (E.G., PARITY, HEADER NON-COMPARE,
     2016                            *        ETC), AN ERROR EXIT WILL BE TAKEN TO THE CALLING PROGRAM.
     2017                            *        FOR THOSE ERRORS CLASSIFIED AS PROBABLY HARDWARE-CAUSED,
     2018                            *        A RECOVERY WILL BE ATTEMPTED.  A MAXIMUM OF 5 RECOVERY
     2019                            *        ATTEMPTS WILL BE MADE IN ANY CASE.

     2021         01 00DB5           ERRECOV  EQU      %
     2022   01 00DB5    33100BEC              MTW,1    IOERRORS          UPDATE I/O ERROR COUNT
     2023   01 00DB6    6B400E77              INT,R4   ERRTABLE          PICK UP SELECT MASK & TABLE COUNT
     2024   01 00DB7    4B50050F              AND,R5   TDVSTAT           IS THERE A NON-DATA ERROR INDICATION
     2025   01 00DB8    68300DC5              BEZ      ERREXIT           NO, TAKE ERROR RETURN TO CALLER

     2027   01 00DB9    6B680E77     ERRSCAN  INT,R6   ERRTABLE,R4       YES, GET NEXT SELECT/FUNCTION PAIR
     2028   01 00DBA    3170050F              CW,R7    TDVSTAT           IS AN APPROPRIATE ERROR BIT SET.
     2029   01 00DBB    68400DC1              BAZ      ERRSCAN2          NO, SKIP TO TEST NEXT BIT GROUP
     2030   01 00DBC    688C0000              BCR,8    ORIG,R6           SKIP IF ERROR NOT DEVICE-DEPENDENT
     2031   01 00DBD    30601A73              AW,R6    DSKFLAG           SELECT HANDLER BY DEVICE CLASS
     2032   01 00DBE    526C0E81              LH,R6    ALTTABLE,R6       ..
     2033   01 00DBF    680C0000              B        ORIG,R6           AND GO TO ERROR HANDLER ROUTINE

     2035   01 00DC0    73F00003 A   ERRSCAN1 MTB,-1   R3                ENTRY TO RETRY

     2037   01 00DC1    64400DB9     ERRSCAN2 BDR,R4   ERRSCAN           ENTRY TO IGNORE

     2039   01 00DC2    6B300003 A            INT,R3   R3                ERROR EXIT IF ALL IGNORED
     2040   01 00DC3    68F00DC5              BCR,15   ERREXIT

     2042   01 00DC4    64000DA2     ERRSCAN3 BDR,R0   IOMAIN            ENTRY TO RETRY IMMEDIATELY

     2047   01 00DC5    6AC03314     ERREXIT  EXIT,0   IOEX              TREAT AS SIMPLE DATA ERROR
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   48
A    2050                            *        SPECIAL I/O ERROR HANDLERS.  ENTRIES ARE DEFINED BY THE
     2051                            *        'TDVMAP' MACRO.  NORMAL RETURNS FROM ERROR HANDLERS ARE
     2052                            *        'RETRY' TO RE-ATTEMPT OPERATION AND 'IGNORE' IF ERROR
     2053                            *        IS NOT TO RESULT IN RETRY.

     2055   01 00DC7    32600510     MEMERR   LW,R6    CCTR              MEMORY PARITY ERROR, 'FORCE' IT
     2056   01 00DC8    126C0000 A            LD,R6    0,R6              ATTEMPT PARITY FORCE FROM COMMAND
     2057   01 00DC9    38700511              SW,R7    BCTR              OTHERWISE, FORCE IT FROM BYTE LOC
     2058   01 00DCA    30600007 A            AW,R6    R7                ..
     2059   01 00DCB    72CC0000 A            LB,E1    0,R6              ..

     2061   01 00DCC    6AF01091              CALL     TYPE              IF SYSTEM LETS IT THROUGH,
     2062   01 00DCD    22D00E10              EFA      PARITMSG          DON'T YOU MAKE THE SAME MISTAKE
     2063   01 00DCE    6AF01ABD              CALL     ABORT             ..

     2065   01 00DCF    6AF00EC4     HANGWAIT CALL     IOCHECK           MONITOR DEVICE FOR STATUS RESET
     2066   01 00DD0    6BD01A72              RPAR     DEVICE            .. PASS DEVICE I/O ADDRESS
     2067   01 00DD1    35D00006 A            RTN      R6                .. RETURN 16 TIO STATUS BITS
     2068   01 00DD2    35D00007 A            RTN      R7                .. RETURN TDV STATUS INFORMATION
     2069   01 00DD3    22D00000 A            NOPAR                      .. IGNORE COMMAND ADDRESS
     2070   01 00DD4    22D00000 A            NOPAR                      .. IGNORE COMMAND BYTE COUNTER

     2072   01 00DD5    4B603514              AND,R6   =X'7600'          MONITOR DEVICE & CONTROLLER STATUS
     2073   01 00DD6    206FF000 A            AI,R6    -X'1000'          ALONG WITH AUTO/MANUAL INDICATOR
     2074   01 00DD7    69300DCF              BNEZ     HANGWAIT          TO TEST DEVICE RESET FINISHED
     2075   01 00DD8    68000E05              B        RETRY             THEN RETURN FOR RE-TRY OF OPERATION

     2077   01 00DD9    73100002 A   PROGERR  MTB,1    R2                SET PROGRAMMING ERROR FLAG
     2078   01 00DDA    68000DE8              B        RINIT             HANDLE WITH CARRIAGE RESTORE

     2080   01 00DDB    6AF00E41     WPROT    CALL     IODIAG            WRITE-PROTECT VIOLATION
     2081   01 00DDC    22D00E13              EFA      WPMSG1            TYPE OPERATOR ACTION TO CORRECT
     2082   01 00DDD    6AF01091              CALL     TYPE              ..
     2083   01 00DDE    22D00E1A              EFA      WPMSG2            ..

     2085   01 00DDF    6AF00EC4     WPRTWAIT CALL     IOCHECK           WAIT FOR 'WRITE-PROTECT' RESET
     2086   01 00DE0    6BD01A72              RPAR     DEVICE            ..
     2087   01 00DE1    22D00000 A            NOPAR                      ..
     2088   01 00DE2    35D00006 A            RTN      R6                ..
     2089   01 00DE3    22D00000 A            NOPAR                      ..
     2090   01 00DE4    22D00000 A            NOPAR                      ..

     2092   01 00DE5    21601000 A            CI,R6    X'1000'           LOOP AS LONG AS STATUS BIT SET
     2093   01 00DE6    69400DDF              BANZ     WPRTWAIT          ..
     2094   01 00DE7    68000DCF              B        HANGWAIT          THEN WAIT FOR RETURN TO 'AUTO'
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   49
A    2096         01 00DE8           RINIT    EQU      %                 DISK ERROR RECOVERY (RECALIBRATION)

     2098   01 00DE8    32E00EBC              LW,E3    ACKLIST           SAVE LAST AIO RESPONSE
     2099   01 00DE9    35E00E40              STW,E3   BADAIOS

     2101   01 00DEA    12E00EBA              LD,E3    TDVLIST           GET LAST TDV RESPONSE
     2102   01 00DEB    15E00E38              STD,E3   BADTDVS

     2104   01 00DEC    4BE014A0              AND,E3   MASK+16-1         PREPARE AND SAVE POINTER
     2105   01 00DED    35E00E3E              STW,E3   BADIOCD           TO PREVIOUS IOCD (DA)

     2107   01 00DEE    73000002 A            MTB,0    R2                IF PROGRAMMING ERROR DETECTED
     2108   01 00DEF    69300DF2              BNEZ     RINIT0             FORCE ERROR STATUS DISPLAY

     2110   01 00DF0    6C000000 A            RD,0     0                 READ SENSE SWITCHES
     2111   01 00DF1    69400DF5              BCS,4    RINIT1             SKIP IF SSW2 SET

     2113         01 00DF2           RINIT0   EQU      %
     2114   01 00DF2    6AF00E41              CALL     IODIAG            DUMP FULL STATISTICS ON ERROR
     2115   01 00DF3    22D00E32              EFA      RINITMSG          SENSE DONE BY IODIAG
     2116   01 00DF4    68000DF7              B        RINIT2

     2118         01 00DF5           RINIT1   EQU      %
     2119   01 00DF5    6AF00F9C              CALL     SENSE             GET LAST SENSE INFORMATION
     2120   01 00DF6    22D00000 A            NOPAR

     2122         01 00DF7           RINIT2   EQU      %
     2123   01 00DF7    02200040 A            LCI      4
     2124   01 00DF8    2AC00FBE              LM,E1    SENSBUFF          SAVE SENSE INFORMATION
     2125   01 00DF9    2BC00E3A              STM,E1   BADSENS

     2127   01 00DFA    6AF00D7A              CALL     REINIT            RECALIBRATE THE CARRIAGE
     2128   01 00DFB    68000E08              BAR      IOABORT

     2130   01 00DFC    32F00E3E              LW,E4    BADIOCD           FETCH THE CURRENT ORDER BYTE
     2131   01 00DFD    25F00001 A            SLS,E4   1                 (COMPUTE WORD ADDRESS)
     2132   01 00DFE    F2F0000F A            LB,E4    *E4
     2133   01 00DFF    21F00009 A            CI,E4    X'09'             LOOK FOR WRITE HEADER
     2134   01 00E00    68300E03              BE       %+3
     2135   01 00E01    21F0000A A            CI,E4    X'0A'             LOOK FOR READ HEADER
     2136   01 00E02    69300DC4              BNE      ERRSCAN3

     2138   01 00E03    33100E3F              MTW,1    BADHFLG           SET BAD HEADER FLAG

        1*  01 00E04    68000DC4              B        ERRSCAN3          HEADER ERRORS ARE RETRIED       *H01

     2144         01 00E05           TRANSERR EQU      %                 TRANSMISSION DATA ERROR
     2145   01 00E05    6C000000 A            RD,0     0
        1*  01 00E06    69200E05              BCS,2    RETRY             SSW3 SET => SIMPLE RETRY        *H01
     2147   01 00E07    68000DE8              B        RINIT             ELSE CPV COMPATIBLE (RESTORE)
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   50
A    2149   01 00E08    32B0000F A   IOABORT  LW,R11   LNK               SAVE LINK AND ABORT
     2150   01 00E09    6AF01091              CALL     TYPE
     2151   01 00E0A    22D00E24              EFA      IOMSG2
     2152   01 00E0B    6AF01ABD              CALL     ABORT

     2154   01 00E0C    32B0000F A   PRABORT  LW,R11   LNK               SAVE LINK
     2155   01 00E0D    6AF00E41              CALL     IODIAG             PRINT ERROR MESSAGE
     2156   01 00E0E    22D00E27              EFA      IOMSG3
     2157   01 00E0F    6AF01ABD              CALL     ABORT               AND ABORT

     2159                            PARITMSG MESSAGE  DSP,'I/O PARITY ERROR'
            01 00E10    00000002 A
     2160                            WPMSG1   MESSAGE  'WRITE-PROTECTION VIOLATION'
     2161                            WPMSG2   MESSAGE  'RESET "READ-ONLY" SWITCH TO CONTINUE'
     2162                            IOMSG2   MESSAGE  DSP,'UNABLE TO REINITIALIZE DEVICE I/O'
            01 00E24    00000002 A
     2163                            IOMSG3   MESSAGE  'IRRECOVERABLE PROGRAMMING ERROR (TDV 02)'
     2164                            RINITMSG MESSAGE  'RECOVERABLE ERROR'

     2166                                     BOUND    8
     2167   01 00E38                 BADTDVS  RES      2
     2168   01 00E3A                 BADSENS  RES      4
     2169   01 00E3E                 BADIOCD  RES      1
     2170   01 00E3F    00000000 A   BADHFLG  DATA     0
     2171   01 00E40                 BADAIOS  RES      1
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   51
A    2174                            ************************************************************************
     2175                            *                                                                      *
     2176                            *        IODIAG .. TO PRINT I/O ERROR DIAGNOSTIC IN THE FORMAT ..      *
     2177                            *        'DEVICE <YYNDD> <MESSAGE>'.  CALLING SEQUENCE ..              *
     2178                            *                                                                      *
     2179                            *                 CALL     IODIAG   .. CALL FOR DIAGNOSTIC PRINT       *
     2180                            *                 EFA      MESSAGE  .. ADDRESS OF STANDARD MESSAGE     *
     2181                            *                                                                      *
     2182                            ************************************************************************

     2184   01 00E41    6AC03308     IODIAG   MODULE   IN(MESSG),USE(R3) DEFINE ENTRY TO 'IODIAG'
     2185   01 00E43    33101137              MTW,1    TYPINF            SUPPRESS CR AFTER DEVICE NAME
     2186   01 00E44    6B201A72              INT,R2   DEVICE            PICK UP DEVICE TYPE/ADDRESS
     2187   01 00E45    25300278 A            SCS,R3   -8                RIGHT-JUSTIFY 3-BIT IOP ADDRESS
     2188   01 00E46    72060E59              LB,R0    IOPCODE,R3        FORM ALPHABETIC IOP ADDRESS CODE
     2189   01 00E47    49000E58              OR,R0    DVCCODE           INSERT DEVICE OPERATION CODE

     2191   01 00E48    6AF01091              CALL     TYPE              PRINT MESSAGE ON LISTING OUTPUT
     2192   01 00E49    22D00E5B              EFA      DIAGMSG
     2195   01 00E4A    6AF01091              CALL     TYPE              APPEND VARIABLE MESSAGE
     2196   01 00E4B    44D03515              EFA      *MESSG

        2*  01 00E4C    22300000 A            LI,R3    0                 CLEAR CR SUPPRESSION            *H01
        3*  01 00E4D    35301137              STW,R3   TYPINF                                            *H01

        5*  01 00E4E    6AF01091              CALL     TYPE              APPEND SEEK DATA                *H01
        6*  01 00E4F    22D00E61              EFA      DIAGMSG1                                          *H01

     2198   01 00E50    6AF00F9C              CALL     SENSE             GATHER SENSE INFORMATION
     2199   01 00E51    22D00000 A            NOPAR

     2201   01 00E52    32300E3E              LW,R3    BADIOCD           GET POINTER TO FAILING IOCD
     2202   01 00E53    12060000 A            LD,R0    0,R3               AND FETCH FOR DISPLAY OF STATUS
     2203   01 00E54    6AF01091              CALL     TYPE              DISPLAY SENSE INFORMATION
     2204   01 00E55    22D00E64              EFA      SENSMSG
     2205   01 00E56    6AC03314              EXIT     IODIAG            AND RETURN TO CALLING PROGRAM

     2207   01 00E58    00C4D700 A   DVCCODE  GEN,24,8 'DP',0            DEVICE OPERATION CODE
     2208   01 00E59    C1C2C3C4 A   IOPCODE  TEXT     'ABCDEFGH'        IOP ADDRESS TRANSLATION TABLE
            01 00E5A    C5C6C7C8 A

     2210                            DIAGMSG  MESSAGE  DSP,'DEVICE ',CLB(R0,8,24),XLZ(R3,0,8),': '
            01 00E5B    00000005 A
        1*                           DIAGMSG1 MESSAGE  ', SEEK DATA: ',XLZ(SEEKBUFF,0,32)                *H01
            01 00E61    00000002 A
     2211                            SENSMSG  MESSAGE  'AIO: ',XLZ(BADAIOS,0,16),;
     2212                                              ', TDV: ',XLZ(BADTDVS),' ',XLZ(BADTDVS+1),;
     2213                                              ', IOCD: ',XLZ(R0),' ',XLZ(R1),', SENSE: ',;
     2214                                              XLZ(SENSBUFF+0),' ',XLZ(SENSBUFF+1),' ',;
     2215                                              XLZ(SENSBUFF+2),' ',XLZ(SENSBUFF+3)
            01 00E64    00000012 A
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   52
A    2218                                     OPEN     F,I,J,M,R,S,T
     2219         00000000           COMPOSE  CNAME                      TO FORM STATUS TEST TABLES
     2220                                     PROC                       ..
     2221                            R        SET      NULL              INITIALIZE RESULT LISTS & MASK
     2222                            S        SET      NULL
     2223                            T        SET      NULL
     2224                            I        DO       NUM(MAP(AF))      SCAN 'MAP' MATRIX 'BIT BY BIT'
     2225                            M        SET      MAP(AF,I)         SELECT I'TH COLUMN OF AF'TH ROW
     2226                            F        SET      0                 INITIALIZE COMPARISON FLAG          9
     2227                            J        DO       NTYPES            COMPARE ENTRIES OF EACH ROW
     2228                            M(J+1)   IFZERO   M(1)              SET DEFAULT VALUES FOR ENTRIES
     2229                            F        SET      F|M(J+1)-M(1)     COMPARE EACH TYPE-ENTRY VS STANDARD
     2230                            M(J+1)   IFZERO   ABSVAL(IGNORE)    SET INDIVIDUAL 0'S TO 'IGNORE'
     2231                                     FIN                        ..
     2232                                     GOTO,F=0 SKIP1             HAS DEVICE-DEPENDENCE BEEN DETECTED.
     2233                            M(1)     SET      -1**16+NUM(TMAP)  YES, POINT STANDARD MAP TO 'TMAP'
     2234                            TMAP     APPEND   SUBL(M,1)         AND APPEND EACH FUNCTION TO 'TMAP'
     2235                            SKIP1    GOTO,M(1)=0 SKIP2          IS THERE SOME FUNCTION AT THIS BIT.
     2236                            T        SET      T|MASKBIT(I)      YES, APPEND SELECT BIT TO TOTAL MASK
     2237                            J        SET      VCOR(M(1),R)      SCAN RESULT LIST FOR FUNCTION CODE
     2238                            J        IFZERO   NUM(R)+1          IF NOT THERE, ASSIGN NEW POSITION
     2239                            R(J)     SET      M(1)              MOVE FUNCTION ADDRESS TO 'R' LIST
     2240                            S(J)     SET      S(J)|MASKBIT(I)   COMPOSE BIT SELECT WITH 'S' LIST
     2241                            SKIP2    FIN                        ..
     2242                            LF       INTERP   0,NUM(R),T        GENERATE TABLE COUNT & MASK
     2243                            J        DO       NUM(R)            GENERATE INTERPRET TABLE FROM 'R'
     2244                                     INTERP   R(J)<0,0,0,0,;    .. BIT 0 = DEVICE-VARIABLE
     2245                                              R(J)&X'FFF',;     .. BITS 4-15 = FUNCTION HANDLER/PTR
     2246                                              S(J)              .. BITS 16-31 = COMPARE MASK
     2247                                     FIN                        ..
     2248                                     PEND                       ..
     2249                                     CLOSE    F,I,J,M,R,S,T     ..
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   53
A    2252         00000000           GENL     CNAME                      TO GENERATE A COMPOUND LIST
     2253                                     PROC                       ..
     2254                                     LOCAL    I,VECT            ..
     2255                            LF       EQU      %                 DEFINE ANY LABEL FIELD
     2256                            VECT     SET      AF                DEFINE DATA LIST
     2257                            I        DO       NUM(VECT)         ITERATE OVER LIST ENTRIES
     2258                                     DO       TCOR(VECT,S:LIST) IS LIST ELEMENT ITSELF A LIST.
     2259                                     GENL,CF(2) VECT(I)         YES, RECURSIVELY CONCATENATE TO LIST
     2260                                     ELSE                       NO, GENERATE INDIVIDUAL ENTRY
     2261                                     GEN,CF(2)  VECT(I)         ..
     2262                                     FIN                        ..
     2263                                     FIN                        ..
     2264                                     PEND                       ..

     2266         00000000           APPEND   CNAME                      TO APPEND AN ENTRY TO A LIST
     2267                                     PROC                       ..
     2268                                     LOCAL    A                 ..
     2269                            A        SET      LF                SET 'A' TO VALUE OF LABEL FIELD
     2270                                     DO       NUM(A)=0          IS ORIGINAL LIST NULL.
     2271                            LF       SET      AF                YES, ASSIGN IT TO ARGUMENT LIST
     2272                                     ELSE                       NO, APPEND ARGUMENT TO ORIGINAL
     2273                            LF       SET      LF,AF             ..
     2274                                     FIN                        ..
     2275                                     PEND                       ..

     2277         00000000           IFZERO   CNAME                      TO CONDITIONALLY SET A VARIABLE
     2278                                     PROC                       ..
     2279                                     DO       LF=0              IS VALUE OF VARIABLE EQUAL TO ZERO
     2280                            LF       SET      AF                YES, SET TO ARGUMENT VALUE
     2281                                     FIN                        ..
     2282                                     PEND                       ..

     2284                        *S* SEQ0     CNAME    0                 TO SEQUENCE-DEFINE FROM 0
     2285         00000001           SEQ1     CNAME    1                 TO SEQUENCE-DEFINE FROM 1
     2286                                     PROC                       ..
     2287                                     LOCAL    I                 ..
     2288                            I        DO       NUM(AF)           ITERATE OVER ARGUMENT LIST
     2289                            AF(I)    EQU      I-1+NAME          DEFINE LABELS IN NAME-GIVEN SEQUENCE
     2290                                     FIN                        ..
     2291                            LF       EQU      I                 IF LABEL PRESENT, EQUATE TO # ARGS
     2292                                     PEND                       ..
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   54
A    2294                        *S* TIOMAP   CNAME    1                 TIO STATUS MAP
     2295         00000001           TIOMAP   FNAME    1
     2296         00000002           TDVMAP   CNAME    2                 TDV STATUS MAP
     2297         00000002           TDVMAP   FNAME    2
     2298                                     PROC                       ..
     2299                                     LOCAL    I,J               ..
     2300                            I        DO       NUM(AF)           ITERATE OVER MAP ENTRIES
     2301                            J        SET      NAME,AF(I,1)+1,LF DEFINE FORMAT FOR 'MAP' MATRIX
     2302                            MAP(J)   SET      ABSVAL(AF(I,2))   INSERT ADDRESS IN 'MAP' MATRIX
     2303                                     FIN                        ..
     2304                                     PEND     NAME              RETURN 'NAME' IF FUNCTION

     2306         00000000           SUBL     FNAME                      FORM SUBLIST BY SELECTIVE DELETION
     2307                                     PROC                       ..
     2308                                     LOCAL    A,I,J,R           ..
     2309                            A        SET      AF(1)             SET A TO PARENT LIST
     2310                            R        SET                        INITIALIZE RESULT LIST
     2311                            I        DO       NUM(A)            SCAN LIST FOR DELETION COMPARISON
     2312                            J        DO       NUM(AF)-1
     2313                                     DO       I>0
     2314                            I        SET      I*(I~=AF(J+1))    SET SUBSCRIPT ZERO IF ANY MATCH
     2315                                     FIN                        ..
     2316                                     FIN
     2317                                     DO       I>0
     2318                            R        APPEND   A(I)              NO, APPEND I'TH ELEMENT TO RESULT
     2319                                     FIN
     2320                                     FIN
     2321                                     PEND     R                 RETURN RESULT LIST TO CALLER

     2323         00000000           VCOR     FNAME                      VALUE CORRESPONDENCE FUNCTION
     2324                                     PROC                       ..
     2325                                     LOCAL    I,R,V             ..
     2326                            V        SET      AF                EQUATE 'V' TO ENTIRE LIST
     2327                            R        SET      0                 INITIALIZE RESULT
     2328                            I        DO       NUM(V)-1
     2329                                     DO       R=0               SCAN 2'ND THRU N'TH ELEMENTS
     2330                            R        SET      I*(V(1)=V(I+1))   RETURN 1 THRU (N-1) IF COMPARE
     2331                                     FIN
     2332                                     FIN                        ..
     2333                                     PEND     R                 ..

     2335         00000000           MASKBIT  FNAME                      TO DEFINE 16-BIT MASK FROM BIT NO.
     2336                                     PROC                       ..
     2337                                     PEND     1**(16-AF)        RETURN RIGHT-JUSTIFIED BIT MASK

     2339                        *S* NULL     CNAME                      TOO MUCH OF NOTHING
     2340         00000000           NULL     FNAME                      TOO LITTLE OF NOTHING
     2341                                     PROC                       ..
     2342                                     PEND                       RETURN ALL OF NOTHING

     2344                            NMAPS    SEQ1     STANDARD,7242DP,7275DP,D215DP,3281DP,D225DP

     2346         00000005           NTYPES   EQU      NMAPS-1           SET NUMBER OF DEVICE TYPES
     2347         00000000           MAP      SET      NULL              INITIALIZE MAP/TMAP ARRAYS
     2348         00000000           TMAP     SET      NULL              ..

        1*        01 00E05           RETRY    EQU      TRANSERR          RETRY RETURN (MESSAGE DISPLAYED)*H01
     2351         01 00DC1           IGNORE   EQU      ERRSCAN2          ERROR STATUS IGNORE RETURN
     2352         00000000           DATAERR  EQU      0                 NO SPECIAL ACTION FOR DATA ERRORS
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   55
A    2355                            ************************************************************************
     2356                            *                                                                      *
     2357                            *                 .....  STANDARD DEVICE STATUS MAPS  .....            *
     2358                            *   COMMON ERROR RECOVERIES ARE ENTERED IN TABLE 'STANDARD'.           *
     2359                            *   DEVICE UNIQUE ERROR RECOVERIES ARE ENTERED IN A SUB-TABLE FOR      *
     2360                            *        THAT DEVICE.  ORDER IS BY INDEX DERIVED FROM DEVICE CLASS,    *
     2361                            *        AND DEFINED VIA THE PROCEDURE 'SEQ1'                          *
     2362                            *                                                                      *
     2363                            ************************************************************************

     2365                            STANDARD TDVMAP   (1,DATAERR),;     TDV 01 .. FLAW MARK DETECTED
     2366                                              (2,PROGERR),;     TDV 02 .. PROGRAMMING ERROR
     2367                                              (6,RINIT),;       TDV 06 .. HDR VERIFY OR SEEK T.O.
     2368                                              (7,RINIT),;       TDV 07 .. HEADER PARITY ERROR
     2369                                              (8,DATAERR),;     TDV 08 .. INCORRECT LENGTH ERROR
     2370                                              (9,TRANSERR),;    TDV 09 .. TRANSMISSION DATA ERROR
     2371                                              (10,MEMERR),;     TDV 10 .. TRANSMISSION MEMORY ERROR
     2372                                              (11,PRABORT),;    TDV 11 .. MEMORY ADDRESS ERROR
     2373                                              (12,MEMERR),;     TDV 12 .. IOP MEMORY ERROR
     2374                                              (13,PRABORT)      TDV 13 .. IOP CONTROL ERROR

     2376                            ************************************************************************
     2377                            * TDV-ERROR BITS REQUIRING DEVICE-DEPENDENT ACTION                     *
     2378                            ************************************************************************

     2380                            7242DP   TDVMAP   (0,RETRY),;       TDV 00 .. DATA OVERRUN
     2381                                              (4,RINIT)         TDV 04 .. HEADER VERIFY

     2383                            7275DP   TDVMAP   (3,WPROT),;       TDV 03 .. WRITE PROTECT VIOLATION
     2384                                              (4,RETRY),;       TDV 04 .. IOP PARITY
     2385                                              (5,RINIT)         TDV 05 .. OPERATIONAL ERROR

     2387                            D215DP   TDVMAP   (0,RETRY),;       TDV 00 .. DATA OVERRUN
     2388                                              (3,WPROT),;       TDV 03 .. WRITE PROTECT VIOLATION
     2389                                              (4,RINIT)         TDV 04 .. HEADER VERIFY

     2391                            3281DP   TDVMAP   (3,WPROT),;       TDV 03 .. WRITE PROTECTION
     2392                                              (4,RETRY),;       TDV 04 .. IOP PARITY
     2393                                              (5,RINIT)         TDV 05 .. OPERATIONAL ERROR

     2395                            D225DP   TDVMAP   (0,RETRY),;       TDV 00 .. DATA OVERRUN
     2396                                              (3,WPROT),;       TDV 03 .. WRITE PROTECTION
     2397                                              (4,RINIT)         TDV 04 .. HEADER VERIFY
1 C00   23:14 JUN 20,'83    10/10/73 DISK I/O HANDLER FOR INITIALIZER                             PAGE   56
A    2399   01 00E77    0009BF7C A   ERRTABLE COMPOSE  TDVMAP            TDV ERROR BIT TABLE
            01 00E78    80008000 A
            01 00E79    0DD92000 A
            01 00E7A    80051000 A
            01 00E7B    800A0800 A
            01 00E7C    800F0400 A
            01 00E7D    0DE80300 A
            01 00E7E    0E050040 A
            01 00E7F    0DC70028 A
            01 00E80    0E0C0014 A

     2401   01 00E81    0E05     A   ALTTABLE GENL,16  TMAP              DEVICE-SPECIFIC FUNCTION POINTERS
            01 00E81 2  0DC1     A
            01 00E82    0E05     A
            01 00E82 2  0DC1     A
            01 00E83    0E05     A
            01 00E83 2  0DC1     A
            01 00E84    0DDB     A
            01 00E84 2  0DDB     A
            01 00E85    0DDB     A
            01 00E85 2  0DDB     A
            01 00E86    0DE8     A
            01 00E86 2  0E05     A
            01 00E87    0DE8     A
            01 00E87 2  0E05     A
            01 00E88    0DE8     A
            01 00E88 2  0DC1     A
            01 00E89    0DE8     A
            01 00E89 2  0DC1     A
            01 00E8A    0DE8     A
            01 00E8A 2  0DC1     A
     2402                                     BOUND    4
1 C00   23:14 JUN 20,'83    10/10/73  .. STAND-ALONE INPUT/OUTPUT EXECUTION MONITOR               PAGE   57
A    2404                            ************************************************************************
     2405                            *                                                                      *
     2406                            *        STAND-ALONE I/O HANDLERS FOR                                  *
     2407                            *        INITIALIZATION PROGRAM.  ALL PRIVILEGED INPUT/OUTPUT IN-      *
     2408                            *        STRUCTIONS ARE TO BE EXECUTED BY THE MODULES IN THIS          *
     2409                            *        SECTION.  UNDER MONITOR CONTROL, I/O INITIATION IS PER-       *
     2410                            *        FORMED BY MONITOR QUEUEING ROUTINES.                          *
     2411                            *                                                                      *
     2412                            *        .....   SUBROUTINES AVAILABLE IN THIS PROGRAM  .....          *
     2413                            *                                                                      *
     2414                            *        1.  IOPINITT .. TO INITIALIZE THE I/O PACKAGE.                *
     2415                            *        CALLING SEQUENCE ..                                           *
     2416                            *                                                                      *
     2417                            *                 CALL     IOPINITT .. CALL FOR I/O INITIALIZATION     *
     2418                            *                 PAR      RUNMODE  .. PASS RUN-TIME MODE:             *
     2419                            *                                   .. 0 = STAND-ALONE                 *
     2420                            *                                   .. 1 = BPM/BTM MONITOR CONTROL     *
     2421                            *                                                                      *
     2422                            *        2.  IOSTART .. TO INITIATE I/O ACTIVITY ON A DEVICE.          *
     2423                            *        CALLING SEQUENCE ..                                           *
     2424                            *                                                                      *
     2425                            *                 CALL     IOSTART  .. CALL I/O INITIATION             *
     2426                            *                 EFA      DEVICE   .. PASS DEVICE I/O ADDRESS         *
     2427                            *                 EDA      COMLIST  .. PASS I/O COMMAND LIST           *
     2428                            *                 ...      ...      .. RETURN IF UNABLE TO START       *
     2429                            *                 ...      ...      .. NORMAL RETURN, I/O RUNNING      *
     2430                            *                                                                      *
     2431                            *        3.  IOCHECK .. TO GET DEVICE I/O STATUS INFORMATION.          *
     2432                            *        4.  IOWAIT  .. TO WAIT FOR I/O ACTIVITY TO COMPLETE.          *
     2433                            *        CALLING SEQUENCES ..                                          *
     2434                            *                                                                      *
     2435                            *                 CALL     <NAME>   .. CALL IOCHECK/IOWAIT             *
     2436                            *                 EFA      IOADRESS .. PASS DEVICE I/O ADDRESS         *
     2437                            *                 RTN      TIOSTAT  .. RETURN TIO STATUS BITS          *
     2438                            *                 RTN      TDVSTAT  .. RETURN TDV STATUS BITS          *
     2439                            *                 RTN      ADDRESS  .. RETURN CURRENT COMMAND COUNTER  *
     2440                            *                 RTN      BYTCOUNT .. RETURN FINAL BYTE COUNT         *
     2441                            *                                                                      *
     2442                            *        NOTES: 1. IOCHECK WILL WAIT FOR RELEASE OF BUSY SELECTOR IOP  *
     2443                            *               2. TIO & TDV STATUS ARE RIGHT-JUSTIFIED                *
     2444                            *                                                                      *
     2445                            ************************************************************************
1 C00   23:14 JUN 20,'83    10/10/73  .. STAND-ALONE INPUT/OUTPUT EXECUTION MONITOR               PAGE   58
A    2447                            ************************************************************************
     2448                            *        IOPINITT: ENABLES I/O INTERRUPT AND INITIALIZES XPSD          *
     2449                            *        IOSTART: STARTS I/O ON THE DEVICE                             *
     2450                            ************************************************************************

     2452   01 00E8B    6AC03308     IOPINITT MODULE   USE(R11)          DEFINE ENTRY TO IOPINITT

     2454   01 00E8D    32100E93              LW,R1    IOXPSD            PLACE XPSD INSTRUCTION
     2455   01 00E8E    3510005C A            STW,R1   X'5C'              IN I/O INTERRUPT CELL

     2457   01 00E8F    22100030 A            LI,R1    X'30'             ENABLE I/O AND PCP
     2458   01 00E90    6D101200 A            WD,R1    X'1200'            INTERRUPTS

     2460   01 00E91    6AC03314              EXIT     IOPINITT          RETURN TO CALLING PROGRAM

     2462   01 00E93    0F000EEA     IOXPSD   XPSD,0   IOINTPSD          I/O INTERRUPT PSD SWAP INSTRUCTION

     2464   01 00E94    6AC03308     IOSTART  MODULE   IN(IOADRESS,IOLIST),USE(R2)  DEFINE STAND-ALONE ENTRY

     2466   01 00E96    22000000 A            LI,R0    0                 CLEAR ACKNOWLEDGE FLAG FOR DEVICE
     2467   01 00E97    35000EBC              STW,R0   ACKLIST

     2469   01 00E98    32000514     IOSTART1 LW,R0    IOLIST            GET COMMAND DOUBLEWORD LIST ADDRESS
     2470   01 00E99    CC000513              SIO,0   *IOADRESS          ATTEMPT EXECUTION OF AN SIO
     2471   01 00E9A    69C00E9D              BCS,12   SIOFAIL           NOT ACCEPTED, CHECK FOR RE-TRY
     2472   01 00E9B    6AC03314     IOSTART2 EXIT,1   IOSTART           ACCEPTED, TAKE NORMAL EXIT

     2474   01 00E9D    22000EAE     SIOFAIL  LI,R0    SIOFMSG           SIO FAILURE, SET INITIAL MESSAGE
     2475         01 00E9E           SIOFAIL1 EQU      %
     2476   01 00E9E    6AF0104A              CALL     TYPEIN            TYPE DIAGNOSTIC AND REQUEST
     2477   01 00E9F    32D00000 A            PAR      R0                .. PASS MESSAGE TO BE TYPED
     2478   01 00EA0    22D032FC              EFA      KEYBUFF           .. PASS KEY-IN BUFFER ADDRESS
     2479   01 00EA1    22D00002 A            IPAR     2                 ALLOW 2 WORDS FOR REPLY MESSAGE

     2481   01 00EA2    22000EB3              LI,R0    AGAINMSG          SET NEW MESSAGE IF KEY-IN BAD
     2482   01 00EA3    321032FC              LW,R1    KEYBUFF           CHECK COUNT & FIRST 3 CHARACTERS
     2483   01 00EA4    31100EAC              CW,R1    YESREP            IS RE-TRY ATTEMPT OK'ED.
     2484   01 00EA5    68300E98              BE       IOSTART1          YES IT IS, BACK FOR ANOTHER SIO
     2485   01 00EA6    31100EAD              CW,R1    NOREP             NO, WAS 'NO' SPECIFICALLY STATED.
     2486   01 00EA7    69300E9E              BNE      SIOFAIL1          NO, RE-INITIATE KEY-IN REQUEST

     2488   01 00EA8    22100001 A            LI,R1    1                 SIO-FAILURE: CLEAR DEVICE
     2489   01 00EA9    22000000 A            LI,R0    0                 DEFINITION TO AVOID
     2490   01 00EAA    55021A72              STH,R0   DEVICE,R1         LATER PROBLEM WITH SENSE

     2492   01 00EAB    6AF01ABD              CALL     ABORT             ABORT THE JOB

     2494   01 00EAC    04E8C5E2 A   YESREP   GEN,8,24 4,'YES'           PERMISSIBLE REPLIES FOR SIO RE-TRY
     2495   01 00EAD    03D5D615 A   NOREP    GEN,8,16,8 3,'NO',X'15'    COUNT INCLUDES 'NEW LINE'

     2497                            SIOFMSG  MESSAGE  'DEVICE ',XLZ(IOADRESS,20,12),' NOT OPERATIONAL, ',;
     2498                                              'RETRY? (YES/NO):'
            01 00EAE    00000004 A
     2499                            AGAINMSG MESSAGE  'RETRY? (YES/NO):'

     2501                                     BOUND    8
     2502   01 00EB8                 TIOLIST  RES      2                 TIO RESPONSE
     2503   01 00EBA                 TDVLIST  RES      2                 TDV RESPONSE
     2504   01 00EBC                 ACKLIST  RES      1                 AIO RESPONSE
1 C00   23:14 JUN 20,'83    10/10/73  .. STAND-ALONE INPUT/OUTPUT EXECUTION MONITOR               PAGE   59
A    2507                                     CLOSE    TIOSTAT,TDVSTAT,CCTR,BCTR

     2509   01 00EBD    6AC03308     IOWAIT   MODULE   IN(IOADRESS),OUT(TIOSTAT,TDVSTAT,CCTR,BCTR),USE(R3)

     2511         01 00EBF           IOLOOP   EQU      %
     2512   01 00EBF    33000EBC              MTW,0    ACKLIST           CHECK COMPLETION STATE
     2513   01 00EC0    68300EBF              BEZ      IOLOOP            LOOP IF AIO STATUS NOT AVAILABLE

     2515   01 00EC1    12C00EB8              LD,E1    TIOLIST           PICK UP TERMINATING RESPONSES
     2516   01 00EC2    12E00EBA              LD,E3    TDVLIST           ..
     2517   01 00EC3    68000ECE              B        CHECKIO           ENTER COMMON RESPONSE PROCESSOR

     2519   01 00EC4    6AC03308     IOCHECK  MODULE  *IOWAIT            DEFINE ENTRY TO 'IOCHECK'
     2520   01 00EC6    CDC00513     IOCHECK1 TIO,E1  *IOADRESS          GET TIO STATUS RESPONSE
     2521   01 00EC7    68800ECC              BCR,8    IOCHECK3          .. NORMAL, CONTINUE TO GET TDV

     2523   01 00EC8    69400EEE     IOCHECK2 BCS,4    INVALADD          .. INVALID I/O ADDRESS, ABORT JOB
     2524   01 00EC9    2200000F A            LI,R0    15                ON SELECTOR IOP, DELAY A LITTLE
     2525   01 00ECA    64000ECA              BDR,R0   %                 ..
     2526   01 00ECB    68000EC6              B        IOCHECK1          THEN RETURN TO REPEAT TIO

     2528   01 00ECC    CEE00513     IOCHECK3 TDV,E3  *IOADRESS          NOW GET TDV STATUS RESPONSE
     2529   01 00ECD    69800EC8              BCS,8    IOCHECK2          DON'T EXPECT THIS, BUT CHECK ANYWAY

     2531   01 00ECE    31C0000E A   CHECKIO  CW,E1    E3                INSURE VALIDITY OF ADDRESS COUNTERS
     2532   01 00ECF    69300EF1              BNE      INVSTAT           ..
     2533   01 00ED0    32C0000F A            LW,E1    E4                POSITION TIO/TDV/ADDRESS/COUNT
     2534   01 00ED1    25C00310 A            SCD,E1   16                ..
     2535   01 00ED2    222FFFFC A            LI,R2    -4                SET UP TO MOVE RESPONSE OUTPUTS

     2537   01 00ED3    6B340010 A   CHECKIO1 INT,R3   R12+4,R2          PICK UP NEXT 16-BIT STATUS INFO
     2538   01 00ED4    35340519              STW,R3   TIOSTAT+4,R2      MOVE TO PARAMETER BUFFER
     2539   01 00ED5    65200ED3              BIR,R2   CHECKIO1          CONTINUE WITH ANY MORE ITEMS
     2540   01 00ED6    6AC03314              EXIT     IOCHECK           THEN RETURN TO CALLING PROGRAM
1 C00   23:14 JUN 20,'83    10/10/73  .. STAND-ALONE INPUT/OUTPUT EXECUTION MONITOR               PAGE   60
A    2542                            *        IOINT .. I/O INTERRUPT RECEIVER FOR STAND-ALONE EXECUTION
     2543                            *        MODE.  NO PARALLEL I/O WITH STAND-ALONE SYSTEM PROVIDED.

     2545   01 00ED8    0B001B66     IOINT    PSM,R0   STACK             PUSH ALL REGISTERS

     2547   01 00ED9    22200000 A            LI,R2    0                 CLEAR AIO STATUS
     2548   01 00EDA    6E200000 A            AIO,R2   0                 ACKNOWLEDGE THE I/O INTERRUPT
     2549   01 00EDB    74000003 A            STCF     R3                SAVE CONDITION CODE STATUS
     2550   01 00EDC    69800EF6              BCS,8    NEGINT            NO INTERRUPT

     2552   01 00EDD    6BF00002 A            INT,E4   R2                ..
     2553   01 00EDE    21F00002 A            CI,E4    2                 CHECK FOR LP OR OC INT
     2554   01 00EDF    68200EE7              BLE      IOINTX            IF SO, NO FURTHER CHECKS

     2556   01 00EE0    31F00513              CW,E4    IOADRESS          VERIFY ADDRESS OF
     2557   01 00EE1    69300EEE              BNE      INVALADD           INTERRUPTING DEVICE

     2559   01 00EE2    35200EBC              STW,R2   ACKLIST           SET DONE WITH I/O

     2561   01 00EE3    CD40000F A            TIO,R4   *E4               DO A TIO
     2562   01 00EE4    CE60000F A            TDV,R6   *E4               AND A TDV
     2563   01 00EE5    15400EB8              STD,R4   TIOLIST           STORE IT AWAY
     2564   01 00EE6    15600EBA              STD,R6   TDVLIST

     2566         01 00EE7           IOINTX   EQU      %
     2567   01 00EE7    02200000 A            LCI      0                 PULL ALL REGISTERS
     2568   01 00EE8    0A001B66              PLM,R0   STACK             ..
     2569   01 00EE9    0E300EEA              LPSD,3   IOINTPSD          AND RETURN TO INTERRUPTED PROGRAM

     2571                                     BOUND    8
     2572   01 00EEA    00000000 A   IOINTPSD DATA     0                 SAVE AREA FOR OLD I/O PSD
     2573   01 00EEB    00000000 A            DATA     0                 ..
     2574   01 00EEC    00000ED8              DATA     IOINT             INTERRUPT PSD FOR I/O LEVEL
     2575   01 00EED    07000000 A            DATA     X'07000000'       ..

     2577         01 00EEE           INVALADD EQU      %
     2578   01 00EEE    6AF01091              CALL     TYPE              I/O ADDRESS UNRECOGNIZED
     2579   01 00EEF    22D00EF9              EFA      NODEVICE          WHEN WE DO NOT EXPECT IT
     2580   01 00EF0    68000EE7              B        IOINTX            CLEAR THE LEVEL

     2582   01 00EF1    02200040 A   INVSTAT  LCI      4                 INVALID I/O STATUS, SAVE IT
     2583   01 00EF2    2BC00515              STM,E1   TIOSTAT           ..
     2584   01 00EF3    6AF01091              CALL     TYPE              PRINT STATUS INFO FOR EPITAPH
     2585   01 00EF4    22D00F03              EFA      INVSTMSG          ..
     2586   01 00EF5    6AF01ABD              CALL     ABORT             ABORT JOB FOR DIAGNOSTIC DUMP

     2588   01 00EF6    6AF01091     NEGINT   CALL     TYPE              NO INT RECOGNITION, PRINT MSG
     2589   01 00EF7    22D00EFE              EFA      INVNTMSG          ..
     2590   01 00EF8    68000EE7              B        IOINTX            CLEAR THE LEVEL

     2592                            NODEVICE MESSAGE  'UNEXPECTED INTERRUPT, CONDITION CODE = ',;
     2593                                              BLZ(R3,0,4),', AIO STATUS = ',XLZ(R2)
            01 00EF9    00000004 A
     2594                            INVNTMSG MESSAGE  'INVALID I/O INTERRUPT, CONDITION CODE = ',;
     2595                                              BLZ(R3,0,4),', AIO STATUS = ',XLZ(R2)
            01 00EFE    00000004 A
     2596                            INVSTMSG MESSAGE  DSP,'INVALID TIO/TDV STATUS RESPONSE, TIO STATUS = ',;
     2597                                              XLZ(TIOSTAT),' ',XLZ(TIOSTAT+1),', TDV STATUS = ',;
     2598                                              XLZ(TIOSTAT+2),' ',XLZ(TIOSTAT+3)
            01 00F03    00000009 A
1 C00   23:14 JUN 20,'83    10/10/73 ... DREAD/DWRITE/CPREAD .. DISK INPUT/OUTPUT FUNCTIONS       PAGE   61
A    2600                            ************************************************************************
     2601                            *                                                                      *
     2602                            *        READ, WRITE .. DISK I/O FUNCTIONS                             *
     2603                            *                                                                      *
     2604                            *        CALLING SEQUENCES .....                                       *
     2605                            *                                                                      *
     2606                            *                 CALL     <NAME>   .. CALL FOR READ/WRITE             *
     2607                            *                 EFA      BUFFER   .. PASS I/O BUFFER ADDRESS         *
     2608                            *                 PAR      NBUFF    .. PASS BUFFER SIZE IN WORDS       *
     2609                            *                 PAR      CYL      .. PASS DISK CYLINDER ADDRESS      *
     2610                            *                 PAR      TRACK    .. TRACK ADDRESS                   *
     2611                            *                 PAR      SECTOR   .. AND SECTOR ADDRESS              *
     2612                            *                 ...      ...      .. I/O ERROR RETURN                *
     2613                            *                 ...      ...      ..NORMAL RETURN                    *
     2614                            *                 ...      ...      ..CLEAN PACK RETURN (CPREAD ONLY)  *
     2615                            *                                                                      *
     2616                            ************************************************************************

     2618                                     CLOSE    SETUP,BUFF,CYL,TRK,SEC

     2620   01 00F0D    7320000F A   CPREAD   MTB,2    LNK               AT IOERROR, WILL = 4
     2621   01 00F0E    7320000F A   DWRITE   MTB,2    LNK               SET WRITE MODE IN LINK REGISTER

     2623   01 00F0F    6AC03308     DREAD    MODULE   IN(BUFF,NBUFF,CYL,TRK,SEC),USE(R3)

     2625   01 00F11    35F00F63              STW,LNK  SAVEFCN           SAVE FUNCTION CODE (BITS 0-7)
     2626   01 00F12    22200001 A            LI,R2    1                 SET HALFWORD INDEX POINTER
     2627   01 00F13    6AF00FC2              CALL     SEEKADDR          SET UP DISK SEEK ADDRESS
     2628   01 00F14    22D03D80              EBA      SEEKDATA          .. SEEK DATA BUFFER
     2629   01 00F15    32D0051B              PAR      CYL               .. CYLINDER NUMBER
     2630   01 00F16    32D0051C              PAR      TRK               .. TRACK NUMBER
     2631   01 00F17    32D0051D              PAR      SEC               .. SECTOR NUMBER
     2632   01 00F18    55D40F5D              RTH      COMLIST+1,R2      .. RETURN SEEK COUNT TO COMMAND
     2633   01 00F19    72100F63     START    LB,R1    SAVEFCN           PICK UP ORIGINAL FUNCTION CODE
     2634   01 00F1A    32C00519     SETOP    LW,E1    BUFF              SET BUFFER ADDRESS & COUNT
     2635   01 00F1B    32D0051A              LW,E2    NBUFF             ..
     2636   01 00F1C    25C00102 A            SLD,E1   2                 ..

     2638   01 00F1D    49C20F64     SETUP    OR,E1    ORDLIST,R1        INSERT I/O ORDER IN BITS 0-7
     2639   01 00F1E    49D03516              OR,E2    =X'1C000000'      INSERT ICE/IUE/HTE FLAGS
     2640   01 00F1F    15C00F5E              STD,E1   COMLIST+2         MOVE COMMAND TO I/O LIST
     2641   01 00F20    22C03D80              LI,E1    BA(SEEKDATA)
     2642   01 00F21    49C03517              OR,E1    =X'03000000'      OR IN 'RESTORE' ORDER
     2643   01 00F22    35C00F5C              STW,E1   COMLIST           STORE IT
     2644   01 00F23    6AF00D9C              CALL     IOEX              INITIATE AND WAIT FOR ACTIVITY
     2645   01 00F24    22D007AE              EDA      COMLIST           .. PASS I/O COMMAND LIST
     2646   01 00F25    22D00000 A            NOPAR                      .. IGNORE TIO STATUS RETURN
     2647   01 00F26    35D00000 A            RTN      R0                .. RETURN TDV STATUS RESPONSE
     2648   01 00F27    22D00000 A            NOPAR                      .. IGNORE COMMAND ADDRESS
     2649   01 00F28    22D00000 A            NOPAR                      .. IGNORE COMMAND COUNTER
     2650   01 00F29    68000F2F              BAR      IOERROR           .. I/O ERROR RETURN
     2651   01 00F2A    52201A72              LH,R2    DEVICE            GOOD, PICK UP DEVICE TYPE CODE
     2652   01 00F2B    6B341AB4              INT,R3   FDATA,R2          GET DEVICE CLASS & FLAGS
     2653   01 00F2C    67020F6B              EXU      FOLLOWON,R1       EXECUTE APPROPRIATE FOLLOW-ON
     2654   01 00F2D    6AC03314              EXIT,1   DREAD             NONE, EXIT TO CALLING PROGRAM
1 C00   23:14 JUN 20,'83    10/10/73 ... DREAD/DWRITE/CPREAD .. DISK INPUT/OUTPUT FUNCTIONS       PAGE   62
A    2657   01 00F2F    21100004 A   IOERROR  CI,R1    4                 WAS ENTRY AT CPRED
     2658   01 00F30    69300F36              BNE      IOERR1            NO, SKIP CLEAN PACK TEST

     2660   01 00F31    32301A73              LW,R3    DSKFLAG           OBTAIN DEVICE CLASS
     2661   01 00F32    31060F71              CW,R0    DSKCLEN,R3        LOOK AT CLEAN PACK ERROR BIT
     2662   01 00F33    68400F3C              BAZ      ERRETURN          TREAT AS NORMAL ERROR IF NOT SET
     2663   01 00F34    6AC03314              EXIT,2   DREAD             YES--TAKE CLEAN PACK EXIT

     2665   01 00F36    21004000 A   IOERR1   CI,R0    X'4000'           WAS ERROR = FLAW MARK
     2666   01 00F37    68400F3C              BAZ      ERRETURN          NO, TAKE ERROR RETURN EXIT

     2668   01 00F38    22C03D84              LI,E1    BA(HDRBUFF)       YES, SET HEADER BUFFER POINTERS
     2669   01 00F39    22D00008 A            LI,E2    8                 ..
     2670   01 00F3A    72123518              LB,R1    L(X'03030300'),R1 SET ALTERNATE READ ORDER
     2671   01 00F3B    69200F1D              BGZ      SETUP             UNLESS ALREADY TRIED IT

     2673   01 00F3C    6AC03314     ERRETURN EXIT,0   DREAD             IN WHICH CASE WE GIVE UP

     2675   01 00F3E    32C00F62     ALTHDR   LW,E1    HDRBUFF+1         PICK UP ALTERNATE FROM BUFFER
     2676   01 00F3F    22100000 A            LI,R1    0                 ASSUME NOT D215
     2677   01 00F40    32D01A73              LW,E2    DSKFLAG           CHECK DEVICE CLASS FOR D215
     2678   01 00F41    21D00002 A            CI,E2    2                 CHECK D215
     2679   01 00F42    69300F48              BNE      DISC225           NO - 225 DRIVE

     2681   01 00F43    20100001 A            AI,R1    1                 INCR. INDEX
     2682   01 00F44    4BC00F6A              AND,E1   ALTD215           ERASE GARBAGE
     2683   01 00F45    31C00F6A              CW,E1    ALTD215           CHECK FOR NO ALT
     2684   01 00F46    68300F3C              BE       ERRETURN          YES - NO ALTERNATE
        1*  01 00F47    68000F58              B        ALTSTART                                          *H01

     2689   01 00F48    4BC00F69     DISC225  AND,E1   ALTMASK           ERASE GARBAGE
     2690   01 00F49    31C00F69              CW,E1    ALTMASK           CHECK FOR NO ALT
     2691   01 00F4A    68300F3C              BE       ERRETURN          YES--NO ALTERNATE

        2*  01 00F4B    33000BF5              MTW,0    TCPVFLAG                                          *H01
        3*  01 00F4C    69300F54              BNEZ     DISCNEW                                           *H01

     2693   01 00F4D    22D0E000 A            LI,E2    X'E000'           MASK FOR EXTENDED ALTERNATE
     2694   01 00F4E    4AD0000C A            LS,E2    E1                CYLINDER BITS, THEN LOAD
     2695   01 00F4F    48C0000D A            EOR,E1   E2                 (THEN CLEAR FROM ORIGINAL)

     2697   01 00F50    25D00073 A            SLS,E2   -13               MOVE TO BIT 31
     2698   01 00F51    3230000D A            LW,R3    E2
     2699   01 00F52    30C60F76              AW,E1    CYLBITS,R3        AND ADD PROPER WEIGHTS
        1*  01 00F53    68000F58              B        ALTSTART                                          *H01

        3*  01 00F54    25C00173 A   DISCNEW  SLD,E1   -8-5              CREATE 11-BIT CYLINDER          *H01
        4*  01 00F55    25C00003 A            SLS,E1   +3                 AND 5-BIT TRACK                *H01

        6*  01 00F56    25D0007D A            SLS,E2   -3                                                *H01
        7*  01 00F57    25C00110 A            SLD,E1   +16                                               *H01

        9*  01 00F58    22DFFF00 A   ALTSTART LI,E2    -256              CLEAR SECTOR                    *H01
       10*  01 00F59    47C00F60              STS,E1   SEEKDATA           AND CREATE NEW SEEK            *H01
       11*  01 00F5A    68000F19              B        START               THEN REPEAT OPERATION         *H01
1 C00   23:14 JUN 20,'83    10/10/73 ... DREAD/DWRITE/CPREAD .. DISK INPUT/OUTPUT FUNCTIONS       PAGE   63
A    2705                                     BOUND    8
     2706   01 00F5C    03003D80     COMLIST  GEN,8,24 3,BA(SEEKDATA)    SEEK SPECIFIED DISK ADDRESS
     2707   01 00F5D    2C000000 A            GEN,8,24 X'2C',0           ..
     2708   01 00F5E                          RES      2                 EXECUTE READ/WRITE/CHECK/READHDR

     2710   01 00F60                 SEEKDATA RES      1                 BUFFER FOR SEEK ADDRESS BYTES
     2711   01 00F61                 HDRBUFF  RES      2                 BUFFER FOR HEADER READ
     2712   01 00F63                 SAVEFCN  RES      1                 FUNCTION CODE (0=READ, 2=WRITE)

     2714   01 00F64    12000000 A   ORDLIST  GEN,8,24 X'12',0           0 .. READ I/O ORDER
     2715   01 00F65    05000000 A            GEN,8,24 X'05',0           1 .. CHECK-WRITE
     2716   01 00F66    01000000 A            GEN,8,24 X'01',0           2 .. WRITE DATA
     2717   01 00F67    0A000000 A            GEN,8,24 X'0A',0           3 .. READ HEADER
     2718   01 00F68    12000000 A            GEN,8,24 X'12',0           4 .. READ I/O ORDER

     2720   01 00F69    00FFFF00 A   ALTMASK  DATA     X'00FFFF00'       ALTERNATE SEEK MASK: 7242
     2721   01 00F6A    01FFFF00 A   ALTD215  DATA     X'01FFFF00'       ALTERNATE SEEK MASK: D215

     2723   01 00F6B    02000000 A   FOLLOWON NOP                        FOLLOW-ON OPERATION, NONE FOR READ
     2724   01 00F6C    02000000 A            NOP                        NONE FOR CHECK-WRITE
     2725   01 00F6D    69100F70              BCS,1    SETCHECK          WRITE DATA, FOLLOW-ON IF SPECIFIED
     2726   01 00F6E    68000F3E              B        ALTHDR            READ HEADER, SET ALTERNATE HEADER
     2727   01 00F6F    02000000 A            NOP                        NONE FOR CPREAD
     2728   01 00F70    64100F1A     SETCHECK BDR,R1   SETOP             HERE FOR WRITE-CHECK (ALWAYS BRANCH)

     2730                            * TABLE OF TDV MASKS TO DETERMINE PROBABLE CLEAN PACK CONDITION
     2731         01 00F71           DSKCLEN  EQU      %
     2732   01 00F71    00000800 A            DATA     X'0800'           CLASS 0: TDV 04: HEADER VERIFY
     2733   01 00F72    00000400 A            DATA     X'0400'           CLASS 1: TDV 05: OPERATIONAL
     2734   01 00F73    00000800 A            DATA     X'0800'           CLASS 2: TDV 04: HEADER VERIFY
     2735   01 00F74    00000400 A            DATA     X'0400'           CLASS 3: TDV 05: OPERATIONAL
     2736   01 00F75    00000800 A            DATA     X'0800'           CLASS 4: TDV 04: HEADER VERIFY

     2738                            * TABLE OF REVERSED CYLINDER WEIGHTS
     2739         01 00F76           CYLBITS  EQU      %
     2740   01 00F76    00000000 A            DATA     0                 0
     2741   01 00F77    00000400 A            DATA     1024              1
     2742   01 00F78    00000200 A            DATA     512               2
     2743   01 00F79    00000600 A            DATA     512+1024          3
     2744   01 00F7A    00000100 A            DATA     256               4
     2745   01 00F7B    00000500 A            DATA     256+1024          5
     2746   01 00F7C    00000300 A            DATA     256+512           6
     2747   01 00F7D    00000700 A            DATA     256+512+1024      7
1 C00   23:14 JUN 20,'83    10/10/73 .. SENSADD .. TO SENSE/CONVERT SECTOR ADDRESS                PAGE   64
A    2751                            ************************************************************************
     2752                            *                                                                      *
     2753                            *        SENSADD .. SUBROUTINE TO COMPUTE                              *
     2754                            *        CURRENT OR ERRORRED DEVICE CYLINDER/TRACK/SECTOR ADDRESS      *
     2755                            *        FROM DEVICE SENSE RESPONSE.  CALLING SEQUENCE ..              *
     2756                            *                                                                      *
     2757                            *                 CALL     SENSADD  .. CALL FOR DEVICE ADDRESS REGS    *
     2758                            *                 PAR      CODE     .. NORMAL/ERROR INDICATOR FLAG     *
     2759                            *                 RTN      CYL      .. RETURN CYLINDER ADDRESS         *
     2760                            *                 RTN      TRACK    .. RETURN TRACK ADDRESS            *
     2761                            *                 RTN      SECTOR   .. RETURN SECTOR ADDRESS           *
     2762                            *                                                                      *
     2763                            *        PROPER CORRECTION IS MADE FOR ADDRESS INCREMENT AFTER         *
     2764                            *        A READ/WRITE OPERATION (CODE=1).                              *
     2765                            *                                                                      *
     2766                            ************************************************************************

     2768                                     CLOSE    CYL,TRK,SEC

     2770   01 00F7E    6AC03308     SENSADD  MODULE   IN(CODE),OUT(CYL,TRACK,SEC),USE(R2)

     2772   01 00F80    3300051E              MTW,0    CODE              CHECK TYPE OF CALL
     2773   01 00F81    68300F84              BEZ      SENS0             SKIP IF NOT ERROR-RECOVERY

     2775   01 00F82    33000E3A              MTW,0    BADSENS           SKIP IF SENSE ALREADY DONE
     2776   01 00F83    69300F87              BNEZ     SENS1             EXTRA SENSE IF AT (0,0,0)

     2778   01 00F84    6AF00F9C     SENS0    CALL     SENSE             GATHER SENSE DATA NOW
     2779   01 00F85    35D00000 A            RTN      R0
     2780   01 00F86    68000F88              B        SENS2

     2782   01 00F87    220038E8     SENS1    LI,R0    BA(BADSENS)       USE PREVIOUS SENSE DATA

     2784   01 00F88    6AF00FDD     SENS2    CALL     SENSADDR          CONVERT SENSE DATA TO ADDRESSES
     2785   01 00F89    32D00000 A            PAR      R0                ..
     2786   01 00F8A    35D0051F              RTN      CYL               ..
     2787   01 00F8B    35D00520              RTN      TRACK             ..
     2788   01 00F8C    35D00521              RTN      SEC               ..

     2790   01 00F8D    3300051E              MTW,0    CODE              IS THIS NORMAL SENSING.
     2791   01 00F8E    68300F98              BEZ      RETURN            YES, FINISHED, RETURN.

     2793   01 00F8F    52201A72              LH,R2    DEVICE            NO, PICK UP DEVICE TYPE INDEX
     2794   01 00F90    6B141AB4              INT,R1   FDATA,R2          DOES DEVICE INCREMENT AFTER ERROR.
     2795   01 00F91    68200F98              BCR,2    RETURN            NO, CORRECTION NOT NECESSARY
     2796   01 00F92    22100002 A            LI,R1    NVARS             YES, SET UP VARIABLE COUNTER
     2797   01 00F93    33F2051F     ADJUST   MTW,-1   SEC-NVARS,R1      BACK UP ADDRESS BY 1 SECTOR
     2798   01 00F94    68100F98              BGEZ     RETURN            IS THERE A CARRY TO HIGHER ITEM.
     2799   01 00F95    67020F99              EXU      RESTORE-1,R1      YES, RESTORE THIS ITEM TO MAXIMUM
     2800   01 00F96    6602051F              AWM,R0   SEC-NVARS,R1      ..
     2801   01 00F97    64100F93              BDR,R1   ADJUST            ..
     2802   01 00F98    6AC03314     RETURN   EXIT     SENSADD           RETURN TO CALLING PROGRAM

     2804   01 00F9A    32041A7E     RESTORE  LW,R0    NTRKS,R2          .. TO RESTORE TRACK ADDRESS
     2805   01 00F9B    32041A87              LW,R0    NSECS,R2          .. TO RESTORE SECTOR ADDRESS

     2807         00000002           NVARS    EQU      %-RESTORE         .. NUMBER OF VARIABLE ADDRESS ITEMS
1 C00   23:14 JUN 20,'83    10/10/73           . SENSE .. EXECUTE SENSE ORDER ON DEVICE           PAGE   65
A    2811                            ************************************************************************
     2812                            *                                                                      *
     2813                            *        SENSE .. TO EXECUTE SENSE OPERATION                           *
     2814                            *        CALLING SEQUENCE ...                                          *
     2815                            *                                                                      *
     2816                            *                 CALL     SENSE    .. CALL FOR SENSE DATA             *
     2817                            *                 RTN      ADDRESS  .. RETURN BYTE ADDRESS OF DATA     *
     2818                            *                                                                      *
     2819                            ************************************************************************

     2821   01 00F9C    6AC03308     SENSE    MODULE   OUT(SENSDATA),USE(R1) DEFINE MODULE PARAMETERS

     2823   01 00F9E    22003EF8              LI,R0    BA(SENSBUFF)      GET ADDRESS FOR MAP
     2824   01 00F9F    2217FFFF A            LI,R1    X'7FFFF'          MASK
     2825   01 00FA0    47000FBC              STS,R0   SENSCOM           STORE IT
     2826   01 00FA1    52101A72              LH,R1    DEVICE            PICK UP DEVICE TYPE CODE
     2827   01 00FA2    32021A99              LW,R0    BDATA,R1          GET SENSE ORDER COUNT FROM TABLES
     2828   01 00FA3    72000000 A            LB,R0    R0                ..
     2829   01 00FA4    2210FFFF A            LI,R1    X'FFFF'           INSERT BYTE COUNT IN I/O COMMAND
     2830   01 00FA5    47000FBD              STS,R0   SENSCOM+1         ..

     2832   01 00FA6    22000005 A            LI,R0    5                 SET MAXIMUM OF 5 ATTEMPTS TO SENSE

     2834   01 00FA7    6AF00E94     SENSIO   CALL     IOSTART           INITIATE SIO FOR SENSE ORDER
     2835   01 00FA8    6BD01A72              RPAR     DEVICE            .. PASS DEVICE I/O ADDRESS
     2836   01 00FA9    22D007DE              EDA      SENSCOM           .. PASS ADDRESS OF SENSE ORDER
     2837   01 00FAA    68000FB5              BAR      SENSERR           .. I/O START FAILURE

     2839   01 00FAB    6AF00EBD              CALL     IOWAIT            THEN CALL TO WAIT FOR COMPLETION
     2840   01 00FAC    6BD01A72              RPAR     DEVICE            .. PASS DEVICE I/O ADDRESS
     2841   01 00FAD    22D00000 A            NOPAR                      .. IGNORE TIO STATUS RESPONSE
     2842   01 00FAE    22D00000 A            NOPAR                      .. IGNORE TDV STATUS RESPONSE
     2843   01 00FAF    35D00001 A            RTN      R1                .. RETURN COMMAND ADDRESS COUNTER
     2844   01 00FB0    55D00001 A            RTH      R1                .. AND COMMAND BYTE COUNTER

     2846   01 00FB1    22003EF8              LI,R0    BA(SENSBUFF)      OK, FINISHED, RETURN BUFFER ADDRESS
     2847   01 00FB2    35000522              STW,R0   SENSDATA          ..
     2848   01 00FB3    6AC03314              EXIT     SENSE             RETURN TO CALLING PROGRAM

     2850   01 00FB5    64000FA7     SENSERR  BDR,R0   SENSIO            MONITOR I/O FAILURES AT SENSE

     2852   01 00FB6    6AF01091              CALL     TYPE              DISPLAY ERROR MESSAGE
     2853   01 00FB7    22D00FB9              EFA      SENSFAIL           AND TERMINATE THE RUN
     2854   01 00FB8    6AF01ABD              CALL     ABORT

     2856                            SENSFAIL MESSAGE  SSP,'SIO FAILURE AT SENSE'
            01 00FB9    00000002 A
     2857                                     BOUND    8
     2858   01 00FBC    04000000 A   SENSCOM  GEN,8,24 4,0
     2859   01 00FBD    1C000000 A            GEN,8,24 X'1C',0           ..
     2860   01 00FBE                 SENSBUFF RES      4                 BUFFER FOR SENSE DATA
1 C00   23:14 JUN 20,'83    10/10/73           .. SEEKADDR/SENSADDR .. DISK ADDRESS SETUP         PAGE   66
A    2864                            ************************************************************************
     2865                            *                                                                      *
     2866                            *        SEEKADDR, SENSADDR ..                                         *
     2867                            *        SEEKADDR .. TO FORM DEVICE SEEK ADDRESS                       *
     2868                            *        SENSADDR .. TO GET CYL/TRK/SECTOR FROM SENSE DATA             *
     2869                            *                                                                      *
     2870                            ************************************************************************

     2872                                     CLOSE    CYL,TRK,SEC

     2874   01 00FC2    6AC03308     SEEKADDR MODULE   IN(BUFFORG,CYL,TRK,SEC),OUT(BYTESIZE),USE(R4)

     2876   01 00FC4    52101A72              LH,R1    DEVICE            SET POINTER TO DEVICE TABLE
     2877   01 00FC5    32021A90              LW,R0    ADATA,R1          GET DEVICE ADDRESSING DATA
     2878   01 00FC6    22200003 A            LI,R2    3                 COUNT 3 ADDRESSING ITEMS
     2879   01 00FC7    23C00000 A            MI,E1    0                 INITIALIZE (64-BIT MAXIMUM) RESULT
     2880   01 00FC8    23E00000 A            MI,E3    0                 FORM TRUE CYL/TRK/SECTOR ADDRESS
     2881   01 00FC9    46F00526              XW,E4    SEC               ..
     2882   01 00FCA    36E21A87              DW,E3    NSECS,R1          COMPUTE TRUE SECTOR IN REGISTER E3
     2883   01 00FCB    46E00526              XW,E3    SEC               ..
     2884   01 00FCC    30F00525              AW,E4    TRK               ..
     2885   01 00FCD    36E21A7E              DW,E3    NTRKS,R1          COMPUTE TRUE TRACK IN E3
     2886   01 00FCE    35E00525              STW,E3   TRK               ..
     2887   01 00FCF    66F00524              AWM,E4   CYL               FINALLY, COMPUTE TRUE CYLINDER
     2888   01 00FD0    49D40523     PACK     OR,E2    CYL-1,R2          PACK NEXT ADDRESS ITEM IN RESULT
     2889   01 00FD1    3A300000 A            LCW,R3   R0                PICK UP ADDRESS ITEM FIELD SIZE
     2890   01 00FD2    25C60300 A            SCD,E1   0,R3              POSITION ADDRESS ITEM IN LEFT END
     2891   01 00FD3    25000078 A            SLS,R0   -8                UPDATE ADDRESS DATA WORD
     2892   01 00FD4    64200FD0              BDR,R2   PACK              WHEN 3 ITEMS HAVE BEEN PACKED,
     2893   01 00FD5    35000527              STW,R0   BYTESIZE          RETURN ADDRESS LENGTH IN BYTES
     2894   01 00FD6    32200523              LW,R2    BUFFORG           MOVE RESULT TO SPECIFIED BUFFER
     2895   01 00FD7    25C00308 A   MOVE     SCD,E1   8                 NEXT BYTE TO RIGHT-HAND END
     2896   01 00FD8    75D40000 A            STB,E2   0,R2              MOVE TO RESULT BUFFER
     2897   01 00FD9    20200001 A            AI,R2    1                 ..
     2898   01 00FDA    64000FD7              BDR,R0   MOVE              ..
     2899   01 00FDB    6AC03314              EXIT     SEEKADDR          RETURN TO CALLING PROGRAM

     2901   01 00FDD    6AC03308     SENSADDR MODULE   IN(BUFFORG),OUT(CYL,TRK,SEC),USE(R4)

     2903   01 00FDF    52101A72              LH,R1    DEVICE            PICK UP POINTER TO DEVICE PARAMETERS
     2904   01 00FE0    32021A90              LW,R0    ADATA,R1          PICK UP SEEK ADDRESSING DATA
     2905   01 00FE1    32200523              LW,R2    BUFFORG           SET POINTER TO SENSE DATA
     2906   01 00FE2    72E00000 A            LB,E3    R0                GET LENGTH OF PHYSICAL ADDRESS
     2907   01 00FE3    72F40000 A   MOVSENSE LB,E4    0,R2              MOVE SENSE DATA TO LIVE REGISTERS
     2908   01 00FE4    25C00108 A            SLD,E1   8                 .. CREATE SPACE IN WORKING PAIR
     2909   01 00FE5    49D0000F A            OR,E2    E4                .. INSERT ADDRESS BYTE IN RIGHT END
     2910   01 00FE6    20200001 A            AI,R2    1                 .. UPDATE SENSE BYTE POINTER
     2911   01 00FE7    64E00FE3              BDR,E3   MOVSENSE          ..
     2912   01 00FE8    22200003 A            LI,R2    3                 SET UP TO UNPACK 3 ADDRESS ITEMS
     2913   01 00FE9    32321A99              LW,R3    BDATA,R1          PICK UP DEVICE SENSE PARAMETERS
     2914   01 00FEA    22EFFFFF A   UNPACK   LI,E3    -1                SET SELECTIVE MASK FOR NEXT ITEM
     2915   01 00FEB    72440003 A            LB,R4    R3,R2             ACCORDING TO SIGNIFICANCE DATA
     2916   01 00FEC    25E80060 A            SLS,E3   -32,R4            ..
     2917   01 00FED    4BE0000D A            AND,E3   E2                SELECT ADDRESS ITEM FROM SENSE DATA
     2918   01 00FEE    35E40523              STW,E3   CYL-1,R2          RETURN RESULT TO CALLING PROGRAM
     2919   01 00FEF    72440000 A            LB,R4    R0,R2             GET ITEM'S SEEK-FIELD SIZE
     2920   01 00FF0    3A400004 A            LCW,R4   R4                ..
     2921   01 00FF1    25C80100 A            SLD,E1   0,R4              ERASE ADDRESS ITEM FROM SENSE DATA
     2922   01 00FF2    64200FEA              BDR,R2   UNPACK            ARE THERE ANY MORE ITEMS.
     2923   01 00FF3    6AC03314              EXIT     SENSADDR          NO, RETURN TO CALLING PROGRAM
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   67
A    2925                            ************************************************************************
     2926                            *                                                                      *
     2927                            *        CARDREAD .. TO READ ONE CARD FROM C DEVICE                    *
     2928                            *                                                                      *
     2929                            *                 CALL     CARDREAD .. CALL FOR NEXT INPUT CARD        *
     2930                            *                 EFA      CARDBUFF .. ORIGIN OF CARD I/O BUFFER       *
     2931                            *                 PAR      BUFFSIZE .. SIZE (WORDS) OF CARD BUFFER     *
     2932                            *                 ...      ...      .. END-OF-FILE RETURN              *
     2933                            *                                                                      *
     2934                            ************************************************************************

     2936                                     CLOSE    BUFF,SETUP,SETUP1

     2938   01 00FF5    6AC03308     CARDREAD MODULE   IN(BUFF,SIZE),USE(R11)

     2940         01 00FF7           CRSETUP  EQU      %
     2941   01 00FF7    32000528              LW,R0    BUFF              GET ADDR OF CARD I/O BUFFER
     2942   01 00FF8    32100529              LW,R1    SIZE              GET SIZE OF CARD I/O BUFFER
     2943   01 00FF9    32203519              LW,R2    ='    '           INITIALIZE BUFFER TO ALL BLANKS
     2944   01 00FFA    B5200000 A            STW,R2  *R0                ..
     2945   01 00FFB    20000001 A            AI,R0    1                 ..
     2946   01 00FFC    64100FFA              BDR,R1   %-2               ..

     2948   01 00FFD    6AF01091              CALL     TYPE              PRINT PROMPT ON OP CONSOLE
     2949   01 00FFE    22D01023              EFA      PROMPT

     2951         01 00FFF           CRSETUP3 EQU      %
     2952   01 00FFF    02200020 A            LCI      2
     2953   01 01000    2A200528              LM,2     BUFF              GET BUFFER ADDRESS AND WORD COUNT
     2954   01 01001    25200102 A            SLD,2    2                 GET BYTE ADDRESS AND BYTE COUNT

     2956         01 01002           CRSETUP0 EQU      %
     2957   01 01002    10201082              AD,2     TYPINCDW          SET UP READ CDW
     2958   01 01003    15201084              STD,2    TYPINCMD          PUT IT AWAY

     2960   01 01004    22000842              LI,R0    DA(TYPINCMD)      SET UP FOR SIO
     2961   01 01005    4C000001 A            SIO,0    1                 ASSUME CONSOLE ON 1
     2962   01 01006    69C01005              BCS,12   %-1               LOOP IF BUSY

     2964   01 01007    4D500001 A            TIO,5    1                 CHECK IF DONE YET
     2965   01 01008    69C01007              BCS,12   %-1               LOOP IF NOT DONE

     2967   01 01009    32300529              LW,R3    SIZE              COMPUTE ARS:
     2968   01 0100A    25300002 A            SLS,R3   2                  ORIGINAL BYTE LENGTH
     2969   01 0100B    38300005 A            SW,R3    R5                 MINUS REMAINING BYTES
     2970   01 0100C    2220FFFF A            LI,R2    X'FFFF'
     2971   01 0100D    4B200003 A            AND,R2   R3                MASK OFF TIO STATUS

     2973   01 0100E    F5200528              STB,R2   *BUFF             TEXTC FORMAT - STORE COUNT
     2974   01 0100F    F2340528              LB,R3    *BUFF,R2          FETCH TERMINATOR
     2975   01 01010    21300008 A            CI,R3    X'08'             CHECK FOR CNTRL-H
     2976   01 01011    6830101E              BE       CRSETUP1           (CANCEL)
     2977   01 01012    21300005 A            CI,R3    X'05'             CHECK FOR CNTRL-I
     2978   01 01013    6930101A              BNE      CRSETUP2           (RUBOUT)

     2980   01 01014    6AF01024              CALL     LOGRUB            PROCESS LOGICAL RUBOUTS
     2981   01 01015    22D01023              EFA      PROMPT            PASS PROMPT MESSAGE
     2982   01 01016    32D00002 A            PAR      R2                PASS CURRENT SIZE
     2983   01 01017    35D00002 A            RTN      R2                RECEIVE BUFFER POINTER
     2984   01 01018    35D00003 A            RTN      R3                RECEIVE LOGICAL SIZE LEFT
     2985   01 01019    68001002              B        CRSETUP0          AND RESTART THE INPUT
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   68
A    2987         01 0101A           CRSETUP2 EQU      %
     2988   01 0101A    22300040 A            LI,R3    ' '               STORE BLANK OVER CR
     2989   01 0101B    F5340528              STB,R3   *BUFF,R2
     2990   01 0101C    6AC03314              EXIT,1   CARDREAD          GOOD READ, TAKE NORMAL RETURN

     2992         01 0101E           CRSETUP1 EQU      %
     2993   01 0101E    21200001 A            CI,R2    1                 IF NULL BUFFER
     2994   01 0101F    68200FFF              BLE      CRSETUP3           DONT BOTHER WARNING USER

     2996   01 01020    6AF01091              CALL     TYPE
     2997   01 01021    22D01047              EFA      RUBWARN           ISSUE WARNING
     2998   01 01022    68000FF7              B        CRSETUP

     3000   01 01023    015B4040 A   PROMPT   TEXTC    '%'
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   69
A    3002   01 01024    6AC03308     LOGRUB   MODULE   IN(RUBMSG,RUBLEN),OUT(RUBBUF,RUBSIZ),USE(R11)

     3004   01 01026    3220052B              LW,R2    RUBLEN
     3005   01 01027    202FFFFE A            AI,R2    -2
     3006   01 01028    6920102A              BGZ      %+2
     3007   01 01029    22200000 A            LI,R2    0
     3008   01 0102A    F5200528              STB,R2   *BUFF             SAVE CURRENT COUNT

     3010   01 0102B    6AF01091              CALL     TYPE
     3011   01 0102C    22D01047              EFA      RUBWARN           DISPLAY WARNING

     3013   01 0102D    22000001 A            LI,R0    1
     3014   01 0102E    35001137              STW,R0   TYPINF            SUPPRESS CR AT END OF MSG
     3015   01 0102F    6AF01091              CALL     TYPE
     3016   01 01030    32D0052A              PAR      RUBMSG            DISPLAY LINE HEADER

     3018   01 01031    33000002 A            MTW,0    R2                IF NULL BUFFER
     3019   01 01032    68301035              BEZ      LOGRUB0            DONT BOTHER ECHOING BUFFER

     3021   01 01033    6AF01091              CALL     TYPE
     3022   01 01034    32D00528              PAR      BUFF              DISPLAY GOOD PART OF BUFFER

     3024         01 01035           LOGRUB0  EQU      %
     3025   01 01035    22000000 A            LI,R0    0
     3026   01 01036    35001137              STW,R0   TYPINF            RESET CR SUPPRESSION

     3028   01 01037    22000040 A            LI,R0    ' '               STORE BLANKS OVER
     3029   01 01038    20200001 A            AI,R2    1                 BYTE AND LOGICAL RUBOUT
     3030   01 01039    F5040528              STB,R0   *BUFF,R2
     3031   01 0103A    20200001 A            AI,R2    1
     3032   01 0103B    F5040528              STB,R0   *BUFF,R2
     3033   01 0103C    202FFFFE A            AI,R2    -2                RESTORE LOGICAL SIZE

     3035   01 0103D    32000528              LW,R0    BUFF
     3036   01 0103E    25000002 A            SLS,R0   2
     3037   01 0103F    30000002 A            AW,R0    R2                COMPUTE AND SAVE POINTER
     3038   01 01040    3500052C              STW,R0   RUBBUF            TO THE REST OF THE BUFFER

     3040   01 01041    32000529              LW,R0    SIZE              COMPUTE REMAINING
     3041   01 01042    25000002 A            SLS,R0   2                  BYTES IN BUFFER
     3042   01 01043    38000002 A            SW,R0    R2
     3043   01 01044    3500052D              STW,R0   RUBSIZ

     3045   01 01045    6AC03314              EXIT     LOGRUB

     3047   01 01047    095CC9C7 A   RUBWARN  TEXTC    '*IGNORED*'
            01 01048    D5D6D9C5 A
            01 01049    C45C4040 A
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   70
A    3050                            ************************************************************************
     3051                            *                                                                      *
     3052                            *        TYPEIN .. TO INPUT LINE FROM OPERATOR CONSOLE.  CALLING       *
     3053                            *        SEQUENCE ..                                                   *
     3054                            *                                                                      *
     3055                            *                 CALL     TYPEIN   .. CALL INPUT TYPE ROUTINE         *
     3056                            *                 EFA      MESSAGE  .. PASS MESSAGE TO BE TYPED        *
     3057                            *                 EFA      TYPEBUFF .. PASS ORIGIN OF BUFFER           *
     3058                            *                 PAR      BUFFSIZE .. PASS SIZE OF BUFFER (WORDS)     *
     3059                            *                                                                      *
     3060                            *        MESSAGE IS INPUTTED IN 'TEXTC' FORMAT IN 'TYPEBUFF'.          *
     3061                            *                                                                      *
     3062                            ************************************************************************

     3064   01 0104A    6AC03308     TYPEIN   MODULE   IN(KMSG,KBUFF,KSIZE),USE(R11)
     3065   01 0104C    3200052F              LW,R0    KBUFF             FIX UP POINTERS FOR LOGICAL
     3066   01 0104D    35000528              STW,R0   BUFF              RUBOUT HANDLER...
     3067   01 0104E    32000530              LW,R0    KSIZE
     3068   01 0104F    35000529              STW,R0   SIZE

     3070   01 01050    33101137     TYPEIN1  MTW,1    TYPINF            SET CR SUPPRESSION

     3072   01 01051    6AF01091              CALL     TYPE              TYPE REQUEST MESSAGE TO OPERATOR
     3073   01 01052    32D0052E              PAR      KMSG              ..

     3075   01 01053    22000000 A            LI,R0    0
     3076   01 01054    35001137              STW,R0   TYPINF            CLEAR CR SUPPRESSION

     3078         01 01055           TYPEIN5  EQU      %
     3079   01 01055    02200020 A            LCI      2                 PICK UP BUFFER ORIGIN/SIZE
     3080   01 01056    2A20052F              LM,R2    KBUFF             ..
     3081   01 01057    25200102 A            SLD,R2   2                 FORM BYTE ADDRESS & COUNT
     3082   01 01058    6430105F              BDR,R3   TYPEIN2           VALIDITY-CHECK NON-EMPTY BUFFER
     3083   01 01059    68001086              B        TYPERR            KSIZE<1

     3085         01 0105A           TYPEIN0  EQU      %
     3086   01 0105A    21200001 A            CI,R2    1
     3087   01 0105B    68201055              BLE      TYPEIN5           SKIP WARNING IF NULL BUFFER

     3089   01 0105C    6AF01091              CALL     TYPE
     3090   01 0105D    22D01047              EFA      RUBWARN           ISSUE WARNING
     3091   01 0105E    68001050              B        TYPEIN1           THEN REPEAT THE KEYIN
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   71
A    3093   01 0105F    10201082     TYPEIN2  AD,R2    TYPINCDW          STAND-ALONE TYPEIN, SET I/O COMMAND
     3094   01 01060    15201084              STD,R2   TYPINCMD          ..
     3095   01 01061    22000842              LI,R0    DA(TYPINCMD)      SET ADDRESS OF I/O COMMAND
     3096   01 01062    4C000001 A            SIO,0    1                 ASSUME CONSOLE IS ON DEVICE 1
     3097   01 01063    69C01062              BCS,12   %-1               ..

     3099   01 01064    4D500001 A            TIO,R5   1                 NOTE: WE ARE DOING THIS BECAUSE
     3100   01 01065    69C01064              BCS,12   %-1               STAND-ALONE SYSTEM DOESN'T WORK

     3102   01 01066    32300529              LW,R3    SIZE              COMPUTE ARS:
     3103   01 01067    25300002 A            SLS,R3   2                  ORIGINAL BYTE LENGTH
     3104   01 01068    38300005 A            SW,R3    R5                 MINUS REMAINING BYTES
     3105   01 01069    2220FFFF A            LI,R2    X'FFFF'
     3106   01 0106A    4B200003 A            AND,R2   R3                MASK OFF TIO STATUS
     3107   01 0106B    6420106C              BDR,R2   %+1

     3109   01 0106C    F204052F     TYPEIN3  LB,R0    *KBUFF,R2         GET TERMINATOR
     3110   01 0106D    21000008 A            CI,R0    X'08'             LOOK FOR CTRL-H
     3111   01 0106E    6830105A              BE       TYPEIN0            (CANCEL)
     3112   01 0106F    21000005 A            CI,R0    X'05'             LOOK FOR CTRL-I
     3113   01 01070    69301078              BNE      TYPEIN4            (RUBOUT)

     3115   01 01071    6AF01024              CALL     LOGRUB            PROCESS LOGICAL RUBOUTS
     3116   01 01072    32D0052E              PAR      KMSG              PASS KEYIN MESSAGE
     3117   01 01073    32D00002 A            PAR      R2                PASS SIZE
     3118   01 01074    35D00002 A            RTN      R2                RECEIVE BUFFER POINTER
     3119   01 01075    35D00003 A            RTN      R3                RECEIVE REMAINING BYTES
     3120   01 01076    64301077              BDR,R3   %+1
     3121   01 01077    6800105F              B        TYPEIN2           BRANCH TO RESTART INPUT

     3123         01 01078           TYPEIN4  EQU      %
     3124   01 01078    21000015 A            CI,R0    X'15'             LOOK FOR STANDARD TERMINATOR
     3125   01 01079    6830107E              BE       TYPEIN6           SKIP IF ALREADY PRESENT

     3127   01 0107A    6AF01091              CALL     TYPE              ELSE RETURN CARRIAGE BY HAND
     3128   01 0107B    22D0351A              EFA      L(X'02404040')
     3129   01 0107C    22000015 A            LI,R0    X'15'             AND SET STANDARD TERMINATOR
     3130   01 0107D    F504052F              STB,R0   *KBUFF,R2

     3132         01 0107E           TYPEIN6  EQU      %
     3133   01 0107E    F520052F              STB,R2   *KBUFF            SET TEXTC BYTE COUNT
     3134   01 0107F    6AC03314              EXIT     TYPEIN            EXIT TO CALLING PROGRAM

     3136                                     BOUND    8
     3137   01 01082    86000001 A   TYPINCDW GEN,8,24 X'86',1           COMMAND PROTOTYPE FOR CONSOLE READ
     3138   01 01083    02000000 A            GEN,8,24 X'02',0           ..
     3139   01 01084                 TYPINCMD RES      2                 I/O COMMAND DOUBLEWORD FOR TYPE-IN

     3141   01 01086    32C0000F A   TYPERR   LW,E1    LNK               ABORT CONDITIONS, SAVE PREV. LINK
     3142   01 01087    6AF01091              CALL     TYPE              PRINT ERROR MESSAGE
     3143   01 01088    22D0108A              EFA      TYPEMSG           ..
     3144   01 01089    6AF01ABD              CALL     ABORT

     3146                            TYPEMSG  MESSAGE  DSP,'KEYIN SIZE NOT >= 1'
            01 0108A    00000002 A
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   72
A    3148                            ************************************************************************
     3149                            *                                                                      *
     3150                            *        PRINT .. PRINTS A TEXTC LINE ON THE LP AND TERMINAL           *
     3151                            *        TYPE .. PRINTS A TEXTC LINE ON TERMINAL ONLY                  *
     3152                            *        CALLING SEQUENCE ..                                           *
     3153                            *                                                                      *
     3154                            *                 CALL     PRINT    .. CALL PRINT ROUTINE              *
     3155                            *                 EFA      PLIST    .. SINGLE MESSAGE OR PRINT LIST    *
     3156                            *                                                                      *
     3157                            *                 CALL     TYPE     .. CALL FOR TYPE                   *
     3158                            *                 EFA      PLIST    .. PASS MESSAGE OR PRINT LIST      *
     3159                            *                                                                      *
     3160                            ************************************************************************

     3162   01 0108D    6AC03308     PRINT    MODULE   IN(PLIST),USE(R11)

     3164   01 0108F    6AF01096              BAL,R15  SETUP             SET UP MESSAGE FROM PRINT LIST
     3165   01 01090    80001138              GEN,1,31 1,PRBUFF          .. VFC 'ON', BUFFER ADDRESS

     3167   01 01091    6AC03308     TYPE     MODULE  *PRINT             DECLARE MODULE SIMILAR TO 'PRINT'

     3169   01 01093    33101136              MTW,1    TYPEFLAG          SET FLAG FOR TERMINAL OUTPUT ONLY
     3170   01 01094    6AF01096              BAL,R15  SETUP             CONVERT PRINT LIST TO MESSAGE
     3171   01 01095    80001138              GEN,1,31 1,PRBUFF          VFC ON, BUFFER ADDRESS

     3173                            ************************************************************************
     3174                            *                                                                      *
     3175                            *        SETUP .. PRINT LIST CONVERTER                                 *
     3176                            *        INTERNAL CALLING SEQUENCE ..                                  *
     3177                            *                                                                      *
     3178                            *                 BAL,R15  SETUP    .. CALL TO CONVERT PRINT LIST      *
     3179                            *                 GEN,1,31 F,BUFFER .. FORMATTING FLAG, I/O BUFFER     *
     3180                            *                                                                      *
     3181                            ************************************************************************

     3183   01 01096    6B00351B     SETUP    INT,R0   =X'10400000'      SET BLANK & INITIALIZE BUFFER COUNT
     3184   01 01097    AA80000F A            LM,R8   *R15               PICK UP BUFFER & DCB PARAMETERS
     3185   01 01098    70200008 A            LC       R8                IS FORMAT CONTROL SPECIFIED.
     3186   01 01099    6880109C              BCR,8    SETUP1            NO, DO NOT INITIALIZE BUFFER
     3187   01 0109A    F5000008 A            STB,R0  *R8                YES, SET SINGLE-SPACE FORMAT DEFAULT
     3188   01 0109B    20100001 A            AI,R1    1                 ..
     3189   01 0109C    B2000531     SETUP1   LW,R0   *PLIST             PICK UP FIRST PRINT LIST ITEM
     3190   01 0109D    53000000 A            MTH,0    R0                IS IT A 'COUNT' CONTROL WORD.

     3192                            *    FOR COUNT CONTROL, UPPER HALF ALWAYS = 0
     3193   01 0109E    693010BE              BNEZ     ONETEXT           NO, IT IS A SINGLE 'TEXTC' MESSAGE

     3195   01 0109F    33100531     NEXTITEM MTW,1    PLIST             BUMP POINTER TO NEXT LIST ITEM
     3196   01 010A0    B2A00531              LW,R10  *PLIST             PICK UP NEXT ENTRY FROM LIST

     3198   01 010A1    3220000A A   PROCESS  LW,R2    R10               ..
     3199   01 010A2    25200001 A            SLS,R2   1                 ERASE INDIRECTION FLAG
     3200   01 010A3    688010A6              BEV      %+3               WAS INDIRECTION SPECIFIED.
     3201   01 010A4    6AB01108              BAL,R11  EFFADD            YES, COMPUTE EFFECTIVE ADDRESS
     3202   01 010A5    B2A0000A A            LW,R10  *R10               ..
     3203   01 010A6    25200164 A            SLD,R2   -28               ISOLATE 4-BIT FUNCTION FIELD
     3204   01 010A7    2530006A A            SLS,R3   -22               AND 10-BIT PARAMETER FIELD
     3205   01 010A8    6B64111E              INT,R6   FCNTAB,R2         DISPATCH TO SPECIFIED FUNCTION
     3206   01 010A9    681E0000              BCR,1    ORIG,R7           IS IT A DATA CONVERSION ROUTINE
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   73
A    3208                            ************************************************************************
     3209                            *             AT THIS POINT                                            *
     3210                            *        R0 = COUNT OF ITEMS                                           *
     3211                            *        R1 = BUFFER INDEX                                             *
     3212                            *        R2 = 'FCN'                                                    *
     3213                            *        R3 = 'VAR'                                                    *
     3214                            *        R6 = 0                                                        *
     3215                            *        R7 = SUBROUTINE INDEX                                         *
     3216                            *        R8 = BUFFER ADDRESS                                           *
     3217                            *        R10= ITEM'S EFFECTIVE ADDRESS                                 *
     3218                            ************************************************************************

     3220   01 010AA    32500003 A            LW,R5    R3                YES, GET FIELD SPECIFIERS
     3221   01 010AB    2550007B A            SLS,R5   -5                ISOLATE 'LEFT' IN R5
     3222   01 010AC    4B301495              AND,R3   MASK+5-1          ISOLATE 'SIZE' IN R3
     3223   01 010AD    6AB01108              BAL,R11  EFFADD            COMPUTE ITEM EFFECTIVE ADDRESS
     3224   01 010AE    B240000A A            LW,R4   *R10               PICK UP EFFECTIVE DATA ITEM
     3225   01 010AF    254A0000 A            SLS,R4   0,R5              JUSTIFY TO 'LEFT' BOUNDARY
     3226   01 010B0    25460141 A            SLD,R4   -63,R3            RIGHT-JUSTIFY ACCORDING TO 'SIZE'
     3227   01 010B1    680E0000              B        ORIG,R7           GO TO SPECIFIED CONVERSION ROUTINE

     3229                            ************************************************************************
     3230                            *     NOW REGISTERS REFLECT                                            *
     3231                            *        R3 = BIT SIZE                                                 *
     3232                            *        R4/R5 = DATA ITEM                                             *
     3233                            *        R6 USED FOR BASE FOR CONVERSION                               *
     3234                            ************************************************************************

     3236                            ************* TXC, TXT ********************************
     3237   01 010B2    6AB01108     TEXT     BAL,R11  EFFADD            COMPUTE EFFECTIVE ADDRESS OF STRING
     3238   01 010B3    22400000 A            LI,R4    0                 ASSUME STRING IS 'TEXT'-GENERATED
     3239   01 010B4    21300000 A            CI,R3    0                 IS COUNT FIELD IN SPECIFIER.
     3240   01 010B5    693010B8              BNE      MOVETEXT          YES, GO MOVE (R3) BYTES OF TEXT
     3241   01 010B6    F230000A A   TEXTC    LB,R3   *R10               NO, IT IS A 'TEXTC' STRING
     3242   01 010B7    22400001 A            LI,R4    1                 SKIP OVER STRING LENGTH BYTE
     3243   01 010B8    F258000A A   MOVETEXT LB,R5   *R10,R4            MOVE STRING TO I/O BUFFER
     3244   01 010B9    F5520008 A            STB,R5  *R8,R1             ..
     3245   01 010BA    20100001 A            AI,R1    1                 UPDATE POINTERS AND COUNT
     3246   01 010BB    20400001 A            AI,R4    1                 ..
     3247   01 010BC    643010B8              BDR,R3   MOVETEXT          ..
     3248   01 010BD    680010EF              B        ENDITEM           RETURN TO NEXT ITEM WHEN DONE

     3250                            ************* SINGLE ITEM ***********************
     3251   01 010BE    22000001 A   ONETEXT  LI,R0    1                 SINGLE ITEM HANDLER, 'NITEMS'=1
     3252   01 010BF    32A00531              LW,R10   PLIST             SET STRING ADDRESS TO TEXT STRING
     3253   01 010C0    680010B6              B        TEXTC             ENTER 'TEXTC' PROCESSOR

     3255                            ****************** DUP *****************************************
     3256   01 010C1    4BA014A1     DUPE     AND,R10  MASK+17-1         GET SPECIFIED NUMBER OF BYTES
     3257   01 010C2    683010EF              BEZ      ENDITEM           EXIT IF COUNT IS ZERO
     3258   01 010C3    F5320008 A            STB,R3  *R8,R1             DUPLICATE SPECIFIED BYTE IN BUFFER
     3259   01 010C4    20100001 A            AI,R1    1                 ..
     3260   01 010C5    64A010C3              BDR,R10  %-2               ..
     3261   01 010C6    680010EF              B        ENDITEM           ..

     3263                            ****************** CCR, PGE, SSP ,DSP, TSP ********************
     3264   01 010C7    70200008 A   CARRIAGE LC       R8                CARRIAGE CONTROL, IS IT PERMITTED
     3265   01 010C8    688010EF              BCR,8    ENDITEM           NO, IGNORE IN CASE OF 'TYPE'
     3266   01 010C9    F5A00008 A            STB,R10 *R8                YES, MOVE CHARACTER TO 1ST OF BUFFER
     3267   01 010CA    680010EF              B        ENDITEM           AND RETURN FOR NEXT ITEM
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   74
A    3270                            ****************** SPE ***************************************
     3271   01 010CB    6AB01108     SPECIFYR BAL,R11  EFFADD            FUNCTION SPECIFIER, GET EFF. ADDRESS
     3272   01 010CC    B2A0000A A            LW,R10  *R10               PICK UP OBJECT FUNCTION
     3273   01 010CD    680010A1              B        PROCESS           RETURN TO PROCESS NEW FUNCTION

     3275                            ****************** XVL, XLZ, BLZ *******************************
     3276   01 010CE    4470351C     EXCONV   LWA,R7   1,R6              GET LOGICAL BASE (1-4) IN R7
     3277   01 010CF    30300007 A            AW,R3    R7                COMPUTE MAXIMUM FIELD SIZE IN DIGITS
     3278   01 010D0    36300007 A            DW,R3    R7                ..
     3279   01 010D1    726C351D              LB,R6    L(X'02040810'),R6 GET BASE AS POWER OF 2
     3280   01 010D2    680010D4              B        CONVERT           AND ENTER CONVERSION ROUTINE

     3282                            ****************** IVL, ILB, ILZ, ITB **************************
     3283   01 010D3    7236112E     ICONV    LB,R3    DFIELD,R3         SELECT MAXIMUM FIELD SIZE IN DIGITS

     3285   01 010D4    22700000 A   CONVERT  LI,R7    0                 INITIALIZE CONVERT BUFFER POINTER
     3286   01 010D5    36400006 A   CONVERT1 DW,R4    R6                CONVERT NEXT DIGIT FROM BASE IN R6
     3287   01 010D6    72481164              LB,R4    TRANSLAT,R4       TRANSLATE RESULT TO EBCDIC
     3288   01 010D7    207FFFFF A            AI,R7    -1                MOVE RESULT TO BUFFER
     3289   01 010D8    754E1162              STB,R4   CONVBUFF,R7       ..
     3290   01 010D9    23400001 A            MI,R4    1                 RE-ENTER FOR NEXT CHARACTER IF MORE
     3291   01 010DA    693010D5              BNEZ     CONVERT1          ..
     3292   01 010DB    680010E4              B        POSITION          ENTER RESULT POSITIONING ROUTINE

     3294                            ****************** CVL, CLB *********************************
     3295   01 010DC    22700000 A   CHARDATA LI,R7    0                 INITIALIZE CONVERT BUFFER POINTER
     3296   01 010DD    207FFFFF A   CDATA1   AI,R7    -1                MOVE CHARACTER FIELD TO BUFFER
     3297   01 010DE    755E1162              STB,R5   CONVBUFF,R7       ..
     3298   01 010DF    25500078 A            SLS,R5   -8                POSITION NEXT CHARACTER
     3299   01 010E0    3150351E              CW,R5    =X'BFBFBFBF'      ARE REMAINING CHARACTERS BLANK/NULL.
     3300   01 010E1    694010DD              BANZ     CDATA1            NO, CONTINUE WITH NEXT ONE
     3301   01 010E2    2530007D A            SLS,R3   -3                YES, COMPUTE MAXIMUM FIELD SIZE
     3302   01 010E3    20300001 A            AI,R3    1                 ..

     3304                            ***** PAD AND JUSTIFY TO LEFT OF RIGHT ********************
     3305   01 010E4    3264111E     POSITION LW,R6    FCNTAB,R2         PICK UP 3-BIT POSITIONING PARAMETER
     3306   01 010E5    25600063 A            SLS,R6   -29               ..
     3307   01 010E6    30300007 A            AW,R3    R7                COMPUTE UNUSED BYTES IN FIELD
     3308   01 010E7    724C1162              LB,R4    LPADS,R6          PICK UP LEFT PADDING BYTE
     3309   01 010E8    6AB0110E              BAL,R11  JUSTIFY           DO RIGHT-JUSTIFICATION IF SPECIFIED
     3310   01 010E9    724E1162     MOVECBUF LB,R4    CONVBUFF,R7       MOVE CONVERSION RESULT TO I/O BUFFER
     3311   01 010EA    F5420008 A            STB,R4  *R8,R1             ..
     3312   01 010EB    20100001 A            AI,R1    1                 ..
     3313   01 010EC    657010E9              BIR,R7   MOVECBUF          ..
     3314   01 010ED    724C1163              LB,R4    RPADS,R6          PICK UP RIGHT PADDING BYTE
     3315   01 010EE    6AB0110E              BAL,R11  JUSTIFY           DO LEFT-JUSTIFICATION IF SPECIFIED

     3317                            ************************************************************************

     3319   01 010EF    6400109F     ENDITEM  BDR,R0   NEXTITEM          LOOP IF MORE ITEMS IN PLIST
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   75
A    3321         01 010F0           TYPEOUT  EQU      %
     3322   01 010F0    21100002 A            CI,1     2                 CHECK FOR 1 BYTE WRITE+VFC CHAR
     3323   01 010F1    682010F7              BLE      TOUT1             YEP - MUST BE PROMPT
     3324   01 010F2    33001137              MTW,0    TYPINF            CHECK NO CR ON OUTPUT
     3325   01 010F3    693010F7              BNEZ     TOUT1             NO CR

     3326   01 010F4    22000015 A            LI,R0    X'15'             LOAD A CR
     3327   01 010F5    75021138              STB,0    PRBUFF,1          PUT INTO MESSAGE
     3328   01 010F6    20100001 A            AI,1     1                 INCR BYTE COUNT

     3330         01 010F7           TOUT1    EQU      %
     3331   01 010F7    201FFFFF A            AI,R1    -1                ELIMNATE VFC BYTE
     3332   01 010F8    35101107              STW,R1   TYPECCW+1         SAVE BYTE COUNT

     3334   01 010F9    220044E1              LI,R0    BA(PRBUFF)+1      SKIP VFC BYTE
     3335   01 010FA    35001106              STW,R0   TYPECCW+0
     3336   01 010FB    73501106              MTB,5    TYPECCW+0         ADD ORDER BYTE

     3338   01 010FC    22000883              LI,R0    DA(TYPECCW)       SET UP SIO
     3339   01 010FD    4C000001 A            SIO,0    1                 DO I/O TO CONSOLE
     3340   01 010FE    69C010FD              BCS,12   %-1               LOOP IF BUSY
     3341   01 010FF    4D000001 A            TIO,0    1                 WAIT UNTIL DONE
     3342   01 01100    69C010FF              BCS,12   %-1               LOOP

        1*  01 01101    22100000 A            LI,R1    0                 RESET TYPE FLAG                 *H00
     3371   01 01102    35101136              STW,R1   TYPEFLAG          ..
     3372   01 01103    6AC03314              EXIT     PRINT

     3374                                     BOUND    8
     3375   01 01106                 TYPECCW  RES      2
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   76
A    3378                            ************************************************************************
     3379                            *                                                                      *
     3380                            *        MISCELLANEOUS ROUTINES EFFADD, JUSTIFY, INVALID               *
     3381                            *                                                                      *
     3382                            ************************************************************************

     3384   01 01108    4BA014A1     EFFADD   AND,R10  MASK+17-1         ISOLATE 17-BIT MEMORY ADDRESS
     3385   01 01109    21A0000B A            CI,R10   R11               IS IT A LEGAL REGISTER ADDRESS
     3386   01 0110A    E920000B A            BG      *R11               NO, RETURN UNALTERED MEMORY ADDRESS
     3387   01 0110B    20AFFFF5 A            AI,R10   -R11              YES, COMPUTE STACK ADDRESS
     3388   01 0110C    30A01B66              AW,R10   STACK             ..
     3389   01 0110D    E800000B A            B       *R11               AND RETURN TO CALLING PROGRAM

     3391   01 0110E    E830000B A   JUSTIFY  BEZ     *R11               IS PADDING BYTE NULL.
     3392   01 0110F    21300000 A            CI,R3    0                 NO, IS FIELD SPACE NON-ZERO.
     3393   01 01110    E830000B A            BEZ     *R11               NO, ITEM OCCUPIES ENTIRE FIELD

     3395   01 01111    F5420008 A   FILL     STB,R4  *R8,R1             YES, LEFT/RIGHT JUSTIFY RESULT
     3396   01 01112    20100001 A            AI,R1    1                 ..
     3397   01 01113    64301111              BDR,R3   FILL              ..
     3398   01 01114    E800000B A            B       *R11               AND RETURN TO CALLING PROGRAM

     3400         01 01115           INVALID  EQU      %
     3401   01 01115    32C00000 A            LW,E1    0
     3402   01 01116    35C01137              STW,E1   TYPINF            CLEAR CR SUPPRESSION

     3404   01 01117    32C0000F A            LW,E1    LNK               ABORT AND SAVE LINK
     3405   01 01118    6AF01091              CALL     TYPE              PRINT ERROR MESSAGE
     3406   01 01119    22D0111B              EFA      INVALMSG          ..
     3407   01 0111A    6AF01ABD              CALL     ABORT

     3409                            INVALMSG MESSAGE  DSP,'INVALID INPUT SPECIFIER'
            01 0111B    00000002 A
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   77
A    3412         00000000           FUNCTION CNAME    0                 TO DEFINE FUNCTION TABLE ENTRY
     3413         00000001           CONVERT  CNAME    1                 TO DEFINE DATA CONVERSION FUNCTION
     3414                                     PROC                       ..
     3415                                     LOCAL    J
     3416                            J        SET      (LF**-27&15)+1    GET FUNCTION CODE FROM LABEL NAME
     3417                            FLIST(J) SET      ENTRY(NAME,AF)    DEFINE DISPATCH DATA FROM ARGUMENTS
     3418                                     PEND                       ..

     3420         00000000           ENTRY    FNAME                      PROTOTYPE FOR FUNCTION TABLE ENTRY
     3421                                     PROC
     3422                                     LOCAL    FDATA
     3423                            CFLAG    SET      AF(1)             .. FLAG FOR CONVERSION FUNCTIONS
     3424                            FDATA    SET      AF(2)             .. FIELD JUSTIFICATION CODE
     3425                            VAR      SET      AF(3)             .. VARIABLE DATA
     3426                            ADDRESS  SET      AF(4)-ORIG        .. DISPATCH ADDRESS
     3427                                     PEND     FDATA**29|CFLAG**28|VAR**16|ADDRESS

     3429         00000000           GENTABLE CNAME                      TO GENERATE FUNCTION DISPATCH TABLE
     3430                                     PROC                       ..
     3431                                     LOCAL    J
     3432                            LF       EQU      %                 ..
     3433                            J        DO       16                GENERATE ENTRY FOR EACH 4-BIT CODE
     3434                                     DO       FLIST(J)=0        IS THIS FUNCTION CODE INVALID.
     3435                                     GEN,32   INVALID-ORIG      YES, GENERATE CALL TO 'ABORT'
     3436                                     ELSE                       NO, GENERATE COMPUTED TABLE ENTRY
     3437                                     GEN,32   FLIST(J)          ..
     3438                                     FIN                        ..
     3439                                     FIN                        ..
     3440                                     PEND                       ..

     3442         LIST               FLIST    SET      ,,,,,,,,,,,,,,,   INITIALIZE FUNCTION EQUIVALENCE LIST

     3444                            BLZ      CONVERT  2,0,EXCONV        BINARY, LEADING ZEROES
     3445                            CLB      CONVERT  1,7,CHARDATA      CHARACTERS, LEADING BLANKS
     3446                            CVL      CONVERT  0,7,CHARDATA      CHARACTERS, VARIABLE FIELD
     3447                            ILB      CONVERT  1,10,ICONV        INTEGER, LEADING BLANKS
     3448                            ILZ      CONVERT  2,10,ICONV        INTEGER, LEADING ZEROES
     3449                            ITB      CONVERT  3,10,ICONV        INTEGER, TRAILING BLANKS
     3450                            IVL      CONVERT  0,10,ICONV        INTEGER, VARIABLE LENGTH
     3451                            XLZ      CONVERT  2,3,EXCONV        HEXADECIMAL, LEADING ZEROES
     3452                            XVL      CONVERT  0,3,EXCONV        HEXADECIMAL, VARIABLE LENGTH

     3454                            CCR      FUNCTION 0,0,CARRIAGE      CARRIAGE CONTROL FUNCTION
     3455                            DUP      FUNCTION 0,0,DUPE          BYTE DUPLICATION SPECIFIER
     3456                            SPE      FUNCTION 0,0,SPECIFYR      SPECIFIER OF A FUNCTION
     3457                            TXT      FUNCTION 0,0,TEXT          TEXT/TEXTC CHARACTER STRING

     3459   01 0111E    100A10D3 A   FCNTAB   GENTABLE                   DISPATCH TABLE FOR 4-BIT FUNCTION
            01 0111F    300A10D3 A
            01 01120    500A10D3 A
            01 01121    700A10D3 A
            01 01122    100310CE A
            01 01123    500310CE A
            01 01124    500010CE A
            01 01125    100710DC A
            01 01126    300710DC A
            01 01127    000010B2 A
            01 01128    000010C1 A
            01 01129    000010C7 A
            01 0112A    000010CB A
            01 0112B    00001115 A
            01 0112C    00001115 A
            01 0112D    00001115 A
1 C00   23:14 JUN 20,'83    10/10/73 RAD INITIALIZATION PACKAGE UTILITY SECTION                   PAGE   78
A    3462         00000000           GENFIELD CNAME                      TO GENERATE DECIMAL FIELD SIZES
     3463                                     PROC                       ..
     3464                                     LOCAL    M,D,E,ITEM        ..
     3465                            LF       EQU      %                 DEFINE ANY LABEL
     3466                            M        SET      0                 INITIALIZE FIELD MASK
     3467                            D        SET      1                 INITIALIZE DECIMAL POWER COUNTER
     3468                            E        SET      0                 INITIALIZE DECIMAL DIGIT COUNTER
     3469                                     DO       AF                GENERATE SPECIFIED NUMBER OF WORDS
     3470                            ITEM     SET      0                 INITIALIZE NEXT WORD ITEM
     3471                                     DO       4                 ASSEMBLE NEXT 4 BYTE ENTRIES
     3472                            M        SET      M**1|1            SET NEXT MAXIMUM FIELD MASK
     3473                                     DO       M>=D              UPDATE DECIMAL COUNTERS IF NECESSARY
     3474                            D        SET      D*10              ..
     3475                            E        SET      E+1               ..
     3476                                     FIN                        ..
     3477                            ITEM     SET      ITEM**8|E         ..
     3478                                     FIN                        ..
     3479                                     DATA     ITEM              GENERATE 4-BYTE DATA ITEM
     3480                                     FIN                        ..
     3481                                     PEND                       ..

     3483   01 0112E    01010102 A   DFIELD   GENFIELD 8                 GENERATE 32 FIELD SIZE ITEMS
            01 0112F    02020303 A
            01 01130    03040404 A
            01 01131    04050505 A
            01 01132    06060607 A
            01 01133    07070708 A
            01 01134    08080909 A
            01 01135    090A0A0A A

     3485   01 01136    00000000 A   TYPEFLAG DATA     0
     3486   01 01137    00000000 A   TYPINF   DATA     0
     3487   01 01138                 PRBUFF   RES,1    136               PRINTER I/O BUFFER
     3488   01 0115A                 CBUFORG  RES,1    32                CONVERSION BUFFER ORIGIN
     3489         01 01162           CONVBUFF EQU      %                 CONVERSION BUFFER END
     3490   01 01162    0040F000 A   LPADS    DATA     X'0040F000'       LEFT-PADDING CHARACTERS
     3491   01 01163    00000040 A   RPADS    DATA     X'00000040'       RIGHT-PADDING CHARACTERS
     3492   01 01164    F0F1F2F3 A   TRANSLAT TEXT    '0123456789ABCDEF' BINARY-EBCDIC TRANSLATION TABLE
            01 01165    F4F5F6F7 A
            01 01166    F8F9C1C2 A
            01 01167    C3C4C5C6 A

     3494                                     CLOSE    ERREXIT,NTABLES,;
     3495                                              TABLES,START,OVERMSG,;
     3496                                              COMLIST,HDRBUFF,ALTHDR,NEXTITEM,INVALID
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   79
A    3498                            ************************************************************************
     3499                            *                                                                      *
     3500                            *        FORMAT/FORMALT/FLAW                                           *
     3501                            *        (HEADER FORMATTING ROUTINES FOR DISK DEVICES)                 *
     3502                            *                                                                      *
     3503                            *        1.  FORMAT .. ROUTINE TO WRITE FORMAT HEADERS FOR DISKS.      *
     3504                            *        ROUTINE WILL WRITE HEADERS ON ANY NUMBER OF CYLINDERS OR      *
     3505                            *        TRACKS.  CALLING SEQUENCE ..                                  *
     3506                            *                                                                      *
     3507                            *                 CALL     FORMAT   .. CALL FORMATTING ROUTINE         *
     3508                            *                 PAR      CYL      .. PASS STARTING CYLINDER          *
     3509                            *                 PAR      TRACK    .. PASS FIRST TRACK                *
     3510                            *                 PAR      NCYLS    .. NUMBER OF COMPLETE CYLINDERS    *
     3511                            *                 PAR      NTRKS    .. PLUS ANY EXTRA TRACKS           *
     3512                            *                                   .. NOTE: ERRORS ARE REPORTED BY    *
     3513                            *                                   .. CALL TO SUBROUTINE 'REJECT'     *
     3514                            *                                                                      *
     3515                            *        2.  FORMALT .. TO WRITE ALTERNATE FOR A TRACK (NO FLAW).      *
     3516                            *                                                                      *
     3517                            *        3.  FLAW .. TO WRITE ALTERNATE AND FLAW MARK FOR A TRACK.     *
     3518                            *        CALLING SEQUENCES FOR FORMALT/FLAW ..                         *
     3519                            *                                                                      *
     3520                            *                 CALL     <NAME>   .. WRITE ALTERNATE & (NO) FLAW     *
     3521                            *                 PAR      CYL      .. PASS CYLINDER ADDRESS           *
     3522                            *                 PAR      TRACK    .. PASS TRACK ADDRESS              *
     3523                            *                 PAR      ALTCYL   .. PASS ALTERNATE CYLINDER         *
     3524                            *                 PAR      ALTTRK   .. PASS ALTERNATE TRACK            *
     3525                            *                 ...      ...      .. RETURN IF UNSUCCESSFUL          *
     3526                            *                 ...      ...      .. NORMAL RETURN                   *
     3527                            *                                                                      *
     3528                            ************************************************************************


     3531                                     CLOSE    ALTCYL,ALTTRACK
     3532                                     CLOSE    FLAWBYTE,BUFFORG
     3533                                     CLOSE    CYL,TRACK,NCYLINDS,NTRACKS

     3535         00000009           ILNK     EQU      R9                INTERNAL LINK REGISTER
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   80
A    3537   01 01168    6AC03308     FORMAT   MODULE   IN(CYL,TRACK,NCYLINDS,NTRACKS),USE(R9)

     3539         01 00534           ALTCYL   EQU      NCYLINDS
     3540         01 00535           ALTTRACK EQU      NTRACKS

     3542   01 0116A    52101A72              LH,R1    DEVICE            SET POINTER TO DEVICE PARAMETERS
     3543   01 0116B    32300534              LW,R3    NCYLINDS          COMPUTE TOTAL NUMBER OF TRACKS
     3544   01 0116C    37221A7E              MW,R2    NTRKS,R1          .. CYLS * TRKS/CYL
     3545   01 0116D    30300535              AW,R3    NTRACKS           .. PLUS ANY EXTRA TRACKS
     3546   01 0116E    3520130B              STW,R2   FLAWBYTE          SET ZERO FLAW INDICATOR
     3547   01 0116F    222FFFFF A            LI,R2    -1                SET ALTERNTE CYLINDER AND
     3548   01 01170    35200534              STW,R2   ALTCYL              ALTERNATE TRACK TO ALL 1'S
     3549   01 01171    35200535              STW,R2   ALTTRACK          ..
     3550   01 01172    6A001185              BAL,R0   START             CALL COMMON FORMAT ROUTINE
     3551   01 01173    6AC03314              EXIT     FORMAT            RETURN TO CALLING PROGRAM

     3553   01 01175    6AC03308     FORMALT  MODULE   *FORMAT
     3554   01 01177    22000000 A            LI,R0    0                 SET ZERO FLAW BYTE INDICATOR
     3555   01 01178    6800117C              B        FLAWENT           AND ENTER COMMON FORMALT/FLAW

     3557   01 01179    6AC03308     FLAW     MODULE  *FORMAT
     3558   01 0117B    220000FF A            LI,R0    X'FF'             SET FLAW BYTE INDICATOR

     3560   01 0117C    3500130B     FLAWENT  STW,R0   FLAWBYTE          MOVE FLAW BYTE TO SAVE AREA
     3561   01 0117D    22300001 A            LI,R3    1                 SET NUMBER OF TRACKS EQUAL TO 1
     3562   01 0117E    6A001185              BAL,R0   START             CALL COMMON FORMAT ROUTINE
     3563   01 0117F    73000000 A            MTB,0    R0                WAS THERE AN ERROR FORMATTING.
     3564   01 01180    69301183              BNEZ     FALTERR           ..

     3566         01 01181           FLAWEXIT EQU      %
     3567   01 01181    6AC03314              EXIT,1   FLAW              NO, TAKE NORMAL RETURN

     3569   01 01183    6AC03314     FALTERR  EXIT,0   FLAW              YES, TAKE ERROR RETURN
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   81
A    3572                            ************************************************************************
     3573                            *        MAIN PROGRAM FOR FORMAT/FLAW ROUTINES.  CALLED WITH           *
     3574                            *        BAL,R0 START,  WITH R3 = NUMBER OF TRACKS TO FORMAT.          *
     3575                            ************************************************************************

     3577   01 01185    22100001 A   START    LI,R1    1                 SET UP PERMANENT '1'
     3578   01 01186    52201A72              LH,R2    DEVICE            SET POINTER TO DEVICE PARAMETERS
     3579   01 01187    7270135A              LB,R7    HEADDATA          GET NUMBER OF BYTES PER HEADER
     3580   01 01188    37641A87              MW,R6    NSECS,R2          FORM BYTES IN TRACK OF HEADERS
     3581   01 01189    35701309              STW,R7   NBYTRK            ..
     3582   01 0118A    3560130A              STW,R6   ERRCOUNT          INITIALIZE ERROR COUNTER TO ZERO
     3583   01 0118B    6A901304              BAL,ILNK NEXBLOCK          COMPUTE MAXIMUM 'BLOCK' SIZE FROM R3
     3584   01 0118C    37700004 A            MW,R7    R4                FORM MAXIMUM POSSIBLE BUFFER SIZE
     3585   01 0118D    20700003 A            AI,R7    3                 ROUND 'UP' FOR BUFFER WORD SIZE
     3586   01 0118E    2570007E A            SLS,R7   -2                ..

     3588   01 0118F    6AF01B3E              CALL     ALLOCATE          ALLOCATE 2 WORKING BUFFERS
     3589   01 01190    44D0351F              EHA     *R7                .. REQUEST 2 IDENTICAL-SIZED BUFFERS
     3590   01 01191    15D01314              RTDC     BUFFORG           .. RETURN 2 COPIES OF ORIGIN
     3591   01 01192    66701315              AWM,R7   RBUFFORG          .. FORM START OF READ BUFFER
     3592   01 01193    32600004 A            LW,R6    R4                SAVE MAXIMUM TRACK REQUIREMENT
     3593   01 01194    6AF01B3E              CALL     ALLOCATE          ALLOCATE SPACE FOR COMMAND BUFFER
     3594   01 01195    44D03520              EHA     *R6,R1             .. 2 WORDS PER COMMAND PLUS 1
     3595   01 01196    15D00008 A            RTDC     R8                .. SAVE RESULT IN R8,R9

     3597   01 01197    20900001 A            AI,R9    1                 COMPUTE DOUBLEWORD START FOR BUFFER
     3598   01 01198    2590007F A            SLS,R9   -1                ..
     3599   01 01199    55921310              STH,R9   COMLIST,R1        INSERT IN 'TIC' COMMAND POINTER
     3600   01 0119A    3A400533              LCW,R4   TRACK             COMPUTE INITIAL TRACK COUNT
     3601   01 0119B    25400560 A            SAD,R4   -32               ON BASIS OF 'SEGMENT' SIZE
     3602   01 0119C    36441AAB              DW,R4    SEGDATA,R2        ..
     3603   01 0119D    30441AAB              AW,R4    SEGDATA,R2        ..
     3604   01 0119E    31400006 A            CW,R4    R6                MODIFY IF LESS THAN TRACK TOTAL
     3605   01 0119F    682011A1              BLE      %+2               ..
     3606   01 011A0    32400006 A            LW,R4    R6                ..

     3608   01 011A1    32C00532              LW,E1    CYL
     3609   01 011A2    35C011DA              STW,E1   CYL:BEG           SAVE STARTING CYLINDER FOR REPORT

        2*  01 011A3    6AF011CF              BAL,E4   WINDUP            START THE CLOCK                 *H01
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   82
A    3611   01 011A4    6AF0131B     MAIN     CALL     GENHDRS           FORM HEADERS FOR NEXT TRACK GROUP
     3612   01 011A5    44D03534              EBA     *BUFFORG           .. PASS WRITE BUFFER ORIGIN
     3613   01 011A6    32D00532              PAR      CYL               .. PASS CURRENT CYLINDER NUMBER
     3614   01 011A7    32D00533              PAR      TRACK             .. PASS CURRENT TRACK NUMBER
     3615   01 011A8    32D00004 A            PAR      R4                .. PASS NUMBER OF TRACKS
     3616   01 011A9    32D00534              PAR      ALTCYL            .. PASS ALTERNATE CYLINDER
     3617   01 011AA    32D00535              PAR      ALTTRACK          .. AND ALTERNATE TRACK
     3618   01 011AB    32D0130B              PAR      FLAWBYTE          .. PASS FLAW MARK INDICATOR

     3620   01 011AC    6BC00004 A            INT,E1   R4                SET START/COUNT = 0/(R4)
     3621   01 011AD    354012D3              STW,R4   #TRACKS
     3622   01 011AE    6A9011E6              BAL,ILNK FORMATT           WRITE/READ/CHECK HEADERS ON CYLINDER
     3623   01 011AF    38300004 A            SW,R3    R4                DELETE PREVIOUS BLOCK FROM COUNT
     3624   01 011B0    30400533              AW,R4    TRACK             UPDATE CURRENT TRACK POINTER
     3625   01 011B1    6BC00004 A            INT,E1   R4                COMPUTE NEXT CYLINDER/TRACK NUMBERS
     3626   01 011B2    36C41A7E              DW,E1    NTRKS,R2          ..
     3627   01 011B3    35C00533              STW,E1   TRACK             ..
     3628   01 011B4    66D00532              AWM,E2   CYL               ..
     3629   01 011B5    6A901304              BAL,ILNK NEXBLOCK          GET SIZE OF NEXT BLOCK
     3630   01 011B6    21400000 A            CI,R4    0                 IS THERE ANYTHING MORE TO DO.
     3631   01 011B7    692011BF              BG       CYL:SCN           CONTINUE WITH CHECK FOR BREAK

     3633   01 011B8    6AF01B49              CALL     RELEASE           NO, RELEASE COMMAND BUFFER
     3634   01 011B9    32D00008 A            PAR      R8                .. BUFFER ORIGIN
     3635   01 011BA    44D03520              EHA     *R6,R1             .. LENGTH OF BUFFER AREA
     3636   01 011BB    6AF01B49              CALL     RELEASE           RELEASE HEADER BUFFERS
     3637   01 011BC    32D01314              PAR      BUFFORG           ..
     3638   01 011BD    44D0351F              EHA     *R7                ..
     3639   01 011BE    E8000000 A            B       *R0                AND RETURN TO FORMAT/FLAW
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   83
A    3641         01 011BF           CYL:SCN  EQU      %
     3642   01 011BF    32C00532              LW,E1    CYL               COMPUTE CYLINDER DISPLACEMENT
     3643   01 011C0    38C011DA              SW,E1    CYL:BEG            FROM START OF PROCESSING
     3644   01 011C1    20CFFFFF A            AI,E1    -1                (DECREMENT TO DISPLAY 0)
     3645   01 011C2    25C00160 A            SLD,E1   -32
     3646   01 011C3    36C011DB              DW,E1    CYL:MOD           COMPUTE DISPLACEMENT MOD 25

     3648   01 011C4    3300000C A            MTW,0    E1                CONTINUE WITH NEXT TRACK GROUP
     3649   01 011C5    693011A4              BNEZ     MAIN               IF NOT MULTIPLE OF 25 CYLS DONE

     3651   01 011C6    6C000000 A            RD,0     0                 SAMPLE STATE OF SENSE SWITCHES
     3652   01 011C7    698011A4              BCS,8    MAIN               SSW1 SET => DO NEXT TRACK GROUP

     3654   01 011C8    32900532              LW,R9    CYL
     3655   01 011C9    209FFFFF A            AI,R9    -1

        2*  01 011CA    325011D9              LW,R5    TOCK              CONVERT TICKS TO                *H01
        3*  01 011CB    36503521              DW,R5    =500               SECONDS FOR DISPLAY            *H01

     3656   01 011CC    6AF01091              CALL     TYPE              DISPLAY PROGRESS REPORT
     3657   01 011CD    22D011DC              EFA      CYL:MSG
     3658   01 011CE    680011A4              B        MAIN              AND CONTINUE WITH NEXT TRACK GROUP

        2*  01 011CF    22C01040 A   WINDUP   LI,E1    X'1040'           STOP CLOCK FROM TICKING         *H01
        3*  01 011D0    6DC01100 A            WD,E1    X'1100'                                           *H01

        5*  01 011D1    32C011D8              LW,E1    TICK              SET THE TICK INSTRUCTION        *H01
        6*  01 011D2    35C00055 A            STW,E1   X'55'                                             *H01

        8*  01 011D3    22C00000 A            LI,E1    0                 CLEAR THE HOUR-GLASS            *H01
        9*  01 011D4    35C011D9              STW,E1   TOCK                                              *H01

       11*  01 011D5    22C01000 A            LI,E1    X'1000'           AND TURN IT OVER                *H01
       12*  01 011D6    6DC01200 A            WD,E1    X'1200'                                           *H01

       14*  01 011D7    E800000F A            B        *E4                                               *H01

       16*  01 011D8    331011D9     TICK     MTW,1    TOCK                                              *H01
       17*  01 011D9                 TOCK     RES      1                                                 *H01

     3660   01 011DA                 CYL:BEG  RES      1
     3661   01 011DB    00000019 A   CYL:MOD  DATA     25

     3663                            CYL:MSG  MESSAGE  SSP,'CYL:',ILZ(R9,32-11,11),;
     3664                                              ', I/O ERRORS:',ILZ(IOERRORS,32-11,11),;
        1*                                             ', REJECTS:',ILZ(REJECTS,32-11,11),;              *H01
        2*                                             ', SECONDS:',ILZ(R5,32-16,16)                     *H01
            01 011DC    00000009 A
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   84
A    3668                            ************************************************************************
     3669                            *                                                                      *
     3670                            *        FORMATT .. INTERNAL CYLINDER FORMATTING SUBROUTINE.           *
     3671                            *                                                                      *
     3672                            *                 ...      ...      .. RELATIVE START IN E1            *
     3673                            *                 ...      ...      .. COUNT IN E2                     *
     3674                            *                 BAL,ILNK FORMATT  .. CALL TO FORMAT BLOCK OF TRACKS  *
     3675                            *                                                                      *
     3676                            *        ROUTINE IS ENTERED TO PERFORM A SEQUENCE OF FORMATTING        *
     3677                            *        FUNCTIONS (WRITE, READ, COMPARE, TEST) AND IS RECURSIVELY     *
     3678                            *        RE-ENTERED UPON ERROR TO ATTEMPT RECOVERY.                    *
     3679                            *                                                                      *
     3680                            ************************************************************************

     3682   01 011E6    02200070 A   FORMATT  LCI      ILNK-R3+1         PUSH WORKING REGISTERS
     3683   01 011E7    0B301B66              PSM,R3   STACK             ..
     3684   01 011E8    1240000C A            LD,R4    E1                PICK UP START/COUNT FROM E1/E2

     3686   01 011E9    22300000 A   FORMAT0  LI,R3    0                 INITIALIZE FORMATTING FUNCTION
     3687   01 011EA    20300001 A   FORMAT1  AI,R3    1                 SET CODE TO NEXT FUNCTION
     3688   01 011EB    09401B66     FORMAT2  PSW,R4   STACK             MARK END OF BLOCK IN STACK
     3689   01 011EC    E6501B66              AWM,R5  *STACK             ..

     3691   01 011ED    32601309              LW,R6    NBYTRK            FORM BYTE COUNTS FROM TRACK NUMBERS
     3692   01 011EE    57620004 A            MH,R6    R4,R1             (FIRST TRACK IN BYTES)
     3693   01 011EF    46600007 A            XW,R6    R7                ..
     3694   01 011F0    37700005 A            MW,R7    R5                (TRACK COUNT IN BYTES)
     3695   01 011F1    6706125B              EXU      FVECT-1,R3        EXECUTE NEXT FORMATTING FUNCTION

     3697         01 011F2           FORMAT25 EQU      %
     3698   01 011F2    38500004 A            SW,R5    R4                WERE ANY TRACKS SUCCESSFULLY DONE.
     3699   01 011F3    692011EA              BGZ      FORMAT1           YES, DO NEXT FUNCTION ON GOOD BLOCK

     3701   01 011F4    08501B66     FORMAT3  PLW,R5   STACK             CHECK CURRENT VS PREVIOUS SEPARATOR
     3702   01 011F5    38500004 A            SW,R5    R4                IS (R4) AN ERRORRED TRACK.
     3703   01 011F6    6830120E              BEZ      FORMAT4           NO, SKIP TRACK RECOVERY SECTION

     3705   01 011F7    3310130A     RECOVER  MTW,1    ERRCOUNT          UPDATE RECOVERY COUNTER FOR TRACK
     3706   01 011F8    3260130A              LW,R6    ERRCOUNT          IS THIS THE INITIAL RECOVERY ATTEMPT
     3707   01 011F9    64601213              BDR,R6   RECOVER3          NO, CONTINUE WITH RETRY

     3709   01 011FA    32C00004 A            LW,E1    R4                ATTEMPT RE-FORMATTING BAD TRACK
     3710   01 011FB    22D00001 A            LI,E2    1                 ..
     3711   01 011FC    6A9011E6              BAL,ILNK FORMATT           ..

     3713   01 011FD    22600000 A            LI,R6    0                 FETCH AND
     3714   01 011FE    4660130A              XW,R6    ERRCOUNT           RESET THE ERROR COUNTER

     3716   01 011FF    32700BA8              LW,R7    NRTRIES           FETCH RETRY COUNT
     3717   01 01200    38700006 A            SW,R7    R6                COMPUTE RETRIES-ERRORS

     3719   01 01201    25700061 A            SLS,R7   -31               0=>ERROR, 1>=REJECT
     3720   01 01202    75700000 A            STB,R7   R0                SAVE FLAG

     3722   01 01203    21700001 A            CI,R7    1                 TEST FOR REJECT
     3723   01 01204    69301208              BNE      RECOVER2

     3725   01 01205    33000E3F              MTW,0    BADHFLG           TEST FOR HEADER ERROR
     3726   01 01206    68301208              BEZ      RECOVER2

     3728   01 01207    22700002 A            LI,R7    2                 POINT TO HEADER-REJECT ENTRY
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   85
A    3730         01 01208           RECOVER2 EQU      %
     3731   01 01208    670E1261              EXU      CALLERR,R7        CALL LOGERR/REJECT FOR TRACK
     3732   01 01209    32D00532              PAR      CYL               .. PASS CYLINDER ADDRESS
     3733   01 0120A    44D03522              EFA     *TRACK,R4          .. PASS TRACK ADDRESS
     3734   01 0120B    32D00006 A            PAR      R6                .. PASS TOTAL I/O ERRORS

     3736   01 0120C    20400001 A            AI,R4    1                 SKIP POINTER OVER TRACK
     3737   01 0120D    645011EB              BDR,R5   FORMAT2           IS THERE A REMAINING SUB-BLOCK.

     3739   01 0120E    643011F4     FORMAT4  BDR,R3   FORMAT3           NO, ARE THERE MORE SEPARATOR TESTS.

     3741   01 0120F    02200070 A   FORMAT5  LCI      ILNK-R3+1         NO, FINISHED FORMATTING ENTIRE BLOCK
     3742   01 01210    0A301B66              PLM,R3   STACK             PULL SAVED REGISTERS
     3743   01 01211    E8000009 A            B       *ILNK              RETURN TO CALLING PROGRAM

     3745   01 01212    08501B66              PLW,R5   STACK             ..
     3746   01 01213    64301212     RECOVER3 BDR,R3   %-1               RECOVERY ERROR, POP STACKED POINTERS

     3748   01 01214    22500001 A            LI,R5    1                 RESTORE BLOCK COUNTER TO 1
     3749   01 01215    38600BA8              SW,R6    NRTRIES           HAVE WE HAD TOO MANY ERRORS
     3750   01 01216    691011E9              BLZ      FORMAT0           NO, RE-INITIATE RECOVERY SEQUENCE
     3751   01 01217    6800120F              B        FORMAT5           YES, TAKE UNSUCCESSFUL EXIT
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   86
A    3753                            ************************************************************************
     3754                            *                                                                      *
     3755                            *        HAVE DISCOVERED AN IRRECOVERABLE HEADER ERROR.                *
     3756                            *                                                                      *
     3757                            *        EITHER HEADER VERIFICATIION, HEADER PARITY OR                 *
     3758                            *        SEEK TIMEOUT (SOMEWHAT OBSOLETE DEFINITION).                  *
     3759                            *                                                                      *
     3760                            *        WILL TRY TO RECOVER BY FINDING THE BAD TRACK                  *
     3761                            *        FROM THE IOCD ADDRESS GIVEN BY THE TDV STATUS.                *
     3762                            *                                                                      *
     3763                            ************************************************************************

     3765         01 01218           BADHEAD  EQU      %
     3766   01 01218    02200080 A            LCI      8
     3767   01 01219    0B001B66              PSM,0    STACK             FREE UP SOME REGISTERS

     3769   01 0121A    3230130E              LW,R3    SEEKCOM           FIND SEEK DATA

     3771                            * WILL CONTAIN CORRECT SEEK COMMAND
     3772                            * FOR BOTH HEADER AND SURFACE FUNCTIONS

     3774   01 0121B    6B300003 A            INT,R3   R3                ERASE LEFT HAND GARBAGE
     3775   01 0121C    2530007E A            SLS,R3   -2                MAKE WORD ADDRESS
     3776   01 0121D    B2300003 A            LW,R3    *R3               GET SEEK ADDRESS
     3777   01 0121E    3530125B              STW,R3   BADHEADER         SAVE BAD HEADER ADDRESS
     3778   01 0121F    25300078 A            SLS,R3   -8                RIGHT JUSTIFY TRACKS
     3779   01 01220    4B301498              AND,R3   MASK+8-1          AND OFF GARBAGE

     3781   01 01221    32D00E3E              LW,E2    BADIOCD           LAST IOCD ADDRESS
     3782   01 01222    25D00001 A            SLS,E2   1                 MAKE WORD ADDRESS
     3783   01 01223    F250000D A            LB,R5    *E2               GET FAILING ORDER BYTE
     3784   01 01224    25D0007F A            SLS,E2   -1                MAKE DBL WD AGAIN
     3785   01 01225    21500008 A            CI,R5    8                 IS IT HEADER READ OR WRITE
     3786   01 01226    6940122A              BANZ     BADHEAD1          YES
     3787   01 01227    3240000A A            LW,R4    R10               START OF COMMAND LIST
     3788   01 01228    20400001 A            AI,R4    1                 ADD 1 FOR SEEK COMMAND
     3789   01 01229    6800122B              B        %+2

     3791   01 0122A    32401310     BADHEAD1 LW,R4    COMLIST           GET BEGINNING OF COMMAND LIST
     3792   01 0122B    4B4014A0              AND,R4   MASK+16-1         ERASE GARBAGE
     3793   01 0122C    38D00004 A            SW,E2    R4                # IOCD'S FROM BEG. OF LIST
     3794   01 0122D    21500008 A            CI,R5    8                 IS IT A HEADER READ OR WRITE
     3795   01 0122E    69401231              BANZ     BADHEAD2          YES
     3796   01 0122F    52101A72              LH,R1    DEVICE            LOAD # SECTORS/TRK
     3797   01 01230    36D21A87              DW,E2    NSECS,R1          GET # TRACKS DONE SUCCESSFULLY
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   87
A    3799   01 01231    30D00003 A   BADHEAD2 AW,E2    R3                BAD TRACK
     3800   01 01232    22600003 A            LI,R6    3
     3801   01 01233    75DC125B              STB,E2   BADHEADER,R6      SAVE BAD TRACK ADDRESS
     3802   01 01234    3230000D A            LW,R3    E2                SAVE REG

     3804   01 01235    6AF01091              CALL     TYPE              DISPLAY 'BAD HEADER' WARNING
     3805   01 01236    22D01245              EFA      BADHDMES0

     3807   01 01237    6C000000 A            RD,0     0                 LOOK AT STATE OF SENSE SWITCHES
     3808   01 01238    6940123C              BCS,4    BADHEAD3          SSW2 => DONT REPEAT ERROR STATUS

     3810   01 01239    12060000 A            LD,R0    0,R3              FETCH FAILING IOCD
     3811   01 0123A    6AF01091              CALL     TYPE              DISPLAY TDV, IOCD, SENSE DATA
     3812   01 0123B    22D0124A              EFA      BADHDMES1

     3814   01 0123C    32D00003 A   BADHEAD3 LW,E2    R3
     3815   01 0123D    02200080 A            LCI      8
     3816   01 0123E    0A001B66              PLM,0    STACK             RESTORE REGISTERS
     3817   01 0123F    3250000D A            LW,R5    E2                COMPUTE THE RELATIVE BAD
     3818   01 01240    38500533              SW,R5    TRACK             TRACK AND LEAVE RESULT IN R5

     3820   01 01241    219011F2              CI,ILNK  FORMAT25          IF RETURN TO HEADER READ/WRITE
     3821   01 01242    E8200009 A            BLE      *ILNK             THEN CONTINUE

     3823   01 01243    32000005 A            LW,R0    R5                ELSE LOAD RELATIVE BAD SECTOR
     3824   01 01244    680013D8              B        ENDIOTST          AND EXIT (CALLED FROM IOTEST)

     3826                            BADHDMES0 MESSAGE 'BAD HEADER ON CYL:',ILB(BADHEADER,16-10,10),;
     3827                                      ', TRACK:',ILB(BADHEADER,24,8)
            01 01245    00000004 A
     3828                            BADHDMES1 MESSAGE 'TDV: ',XLZ(BADTDVS),' ',XLZ(BADTDVS+1),;
     3829                                              ', IOCD: ',XLZ(R0),' ',XLZ(R1),', SENSE: ',;
     3830                                              XLZ(BADSENS+0),' ',XLZ(BADSENS+1),' ',;
     3831                                              XLZ(BADSENS+2),' ',XLZ(BADSENS+3)
            01 0124A    00000010 A
     3832   01 0125B                 BADHEADER RES     1
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   88
A    3834         00000000           DISPATCH CNAME                      TO DEFINE FORMATTING FUNCTIONS
     3835                                     PROC                       ..
     3836                                     BAL,ILNK AF                GENERATE LINK TO HANDLER
     3837                            LF       EQU      %-FVECT           DEFINE LABEL AS FUNCTION CODE
     3838                                     PEND                       ..

     3840   01 0125C                 FVECT    RES      0                 DEFINE ORIGIN OF DISPATCH TABLE
     3841   01 0125C    6A901264     WRITEFCN DISPATCH WRITEHDR          FUNCTION 1 .. WRITE SECTOR HEADERS
     3842   01 0125D    6A901264     READFCN  DISPATCH READHDR           FUNCTION 2 .. READ SECTOR HEADERS
     3843   01 0125E    6A9012D6     CPARFCN  DISPATCH COMPARE           FUNCTION 3 .. COMPARE WRITE VS READ
     3844   01 0125F    6A9012E2     TESTFCN  DISPATCH TEST              FUNCTION 4 .. RUN SURFACE TEST
     3845   01 01260    30400005 A            AW,R4    R5                FUNCTION 5 .. SKIP COMPLETED BLOCK

     3847   01 01261    6AF01452     CALLERR  CALL     LOGERR            TO LOG ERROR FOR GOOD TRACK
     3848   01 01262    6AF01450              CALL     REJECT            TO LOG ERROR FOR REJECT TRACK
     3849   01 01263    6AF0144F              CALL     HREJECT           REJECT DUE TO HEADER READ ERROR

        1*        01 01264           READHDR  EQU      %                 HEADER READ ENTRY               *H01

        3*        01 01264           WRITEHDR EQU      %                 HEADER WRITE ENTRY              *H01
     3853   01 01264    22C00987              LI,E1    DA(SEEKCOM)
     3854   01 01265    35C01312              STW,E1   CCATEST           STORE IT
     3855   01 01266    22C00988              LI,E1    DA(COMLIST)
     3856   01 01267    35C01313              STW,E1   CCATEST+1
     3857   01 01268    44C612A1              ANLZ,E1  LBUFF-WRITEFCN,R3 PICK UP WRITE/READ BUFFER ADDRESS
     3858   01 01269    49C612A3              OR,E1    ORDER-WRITEFCN,R3 FORM INITIAL ORDER/ADDRESS
     3859   01 0126A    32D01309              LW,E2    NBYTRK            FORM I/O ORDER COUNT FIELD
     3860   01 0126B    49D03523              OR,E2    =X'8C000000'      INSERT 'DC','HTE','IUE' FLAGS
     3861   01 0126C    52621310              LH,R6    COMLIST,R1        INIT COMMAND LIST ADDRESS
     3862   01 0126D    205FFFFF A            AI,R5    -1                IS THERE MORE THAN 1 TRACK.
     3863   01 0126E    68301273              BEZ      RSETUP2           NO, SKIP CHAINED COMMAND SETUP

     3865   01 0126F    15CC0000 A   RSETUP   STD,E1   0,R6              MOVE CHAINED COMMANDS TO CBUFF
     3866   01 01270    30C01309              AW,E1    NBYTRK            UPDATE HEADER ADDRESS FIELD
     3867   01 01271    20600001 A            AI,R6    1                 UPDATE BUFFER DOUBLEWORD ADDRESS
     3868   01 01272    6450126F              BDR,R5   RSETUP            CONTINUE WITH ANY MORE COMMANDS

     3870   01 01273    48D03524     RSETUP2  EOR,E2   =X'90000000'      THEN ERASE 'DC', INSERT 'ICE'
     3871   01 01274    15CC0000 A            STD,E1   0,R6              AND INSERT FINAL I/O ORDER
     3872   01 01275    6AF00FC2              CALL     SEEKADDR          FORM SEEK ADDRESS FOR READ/WRITE
     3873   01 01276    22D04C30              EBA      SEEKBUFF          .. PASS SEEK ADDRESS BUFFER
     3874   01 01277    32D00532              PAR      CYL               .. PASS CYLINDER NUMBER
     3875   01 01278    44D03522              EFA     *TRACK,R4          .. PASS STARTING TRACK NUMBER
     3876   01 01279    22D00000 A            IPAR     0                 .. ALWAYS START ON SECTOR ZERO
     3877   01 0127A    55D2130F              RTH      SEEKCOM+1,R1      .. RETURN SEEK COMMAND COUNT
     3878   01 0127B    32D80533              LW,R13   TRACK,R4          SAVE STARTING TRACK
     3879   01 0127C    35D012D4              STW,R13  STRTRACK

     3881   01 0127D    6AF00D9C              CALL     IOEX              INITIATE AND WAIT FOR READ/WRITE
     3882   01 0127E    22D00987              EDA      SEEKCOM           .. PASS I/O COMMAND LIST
     3883   01 0127F    22D00000 A            NOPAR                      .. IGNORE TIO STATUS RETURN
     3884   01 01280    35D00006 A            RTN      R6                .. RETURN TDV STATUS BITS
     3885   01 01281    35D00007 A            RTN      R7                .. RETURN I/O COMMAND ADDRESS
     3886   01 01282    22D00000 A            NOPAR                      .. IGNORE COMMAND BYTE COUNTER
     3887   01 01283    6800128F              BAR      RWERROR           .. I/O ERROR RETURN

     3889   01 01284    B2501B66     RNORM    LW,R5   *STACK             .. NORMAL, GET BLOCK-END FROM STACK
     3890   01 01285    33100007 A            MTW,1    R7                AND 'CORRECT' COMMAND ADDRESS
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   89
A    3892   01 01286    38701310     RWCHECK  SW,R7    COMLIST           VALIDITY-CHECK TIO ADDRESS RETURN
     3893   01 01287    30700004 A            AW,R7    R4                ..
     3894   01 01288    6B700007 A            INT,R7   R7                ERASE LEFT-HALF GARBAGE BITS
     3895   01 01289    357012D5              STW,R7   DONE              SAVE # OF TRACKS DONE
     3896   01 0128A    38500007 A            SW,R5    R7
     3897   01 0128B    3B500005 A            LAW,R5   R5
     3898   01 0128C    645012A6              BDR,R5   RWERR1            SKIP: IOCD COUNT .NE. TRACK COUNT

     3900                            * INITIAL TRACK
     3901   01 0128D    32500007 A            LW,R5    R7
     3902   01 0128E    E8000009 A            B        *ILNK

     3904   01 0128F    33000E3F     RWERROR  MTW,0    BADHFLG           WAS THERE A HEADER ERROR
     3905   01 01290    68301295              BEZ      RWERROR2          NO
     3906   01 01291    3300130B              MTW,0    FLAWBYTE          IS THE FUNCTION A FLAW
     3907   01 01292    68301218              BEZ      BADHEAD           NO HANDLE HEADER ERROR
     3908   01 01293    22300004 A            LI,R3    4                 YES - DONT REPORT ERROR ON FLAW
     3909   01 01294    E8000009 A            B        *ILNK             .. AND DONT DO ANY MORE FORMATING

     3911         01 01295           RWERROR2 EQU      %
     3912   01 01295    53100006 A            MTH,1    R6                SET ERROR-RECOVERY SENSE MODE
     3913   01 01296    19701312              CLM,R7   CCATEST           THEN VERIFY THAT WE GOT PAST 'TIC'
     3914   01 01297    69901299              BCS,9    %+2               ..
     3915   01 01298    32701310              LW,R7    COMLIST           NO, THEN 'FORCE' R7 TO FIRST COMMAND
     3916   01 01299    6AF00F7E              CALL     SENSADD           GET DEVICE SEEK DATA REGISTERS
     3917   01 0129A    52D00006 A            HPAR     R6                .. PASS NORMAL/ERROR SENSE CODE
     3918   01 0129B    35D00006 A            RTN      R6                .. SAVE CYLINDER FOR VALIDITY-CHECK
     3919   01 0129C    35D00005 A            RTN      R5                .. RETURN TRACK NUMBER TO R5
     3920   01 0129D    22D00000 A            NOPAR                      .. MAY IGNORE SECTOR
     3921   01 0129E    38500533              SW,R5    TRACK             COMPUTE RELATIVE BLOCK END IN R5
     3922   01 0129F    48600532              EOR,R6   CYL               VALIDITY-CHECK CYLINDER ADDRESS
     3923   01 012A0    68301286              BEZ      RWCHECK           RETURN TO TIO CHECK IF NORMAL
     3924   01 012A1    680012B7              B        RWERR2            SKIP: SENSE CYLINDER IS FUNNY

     3926   01 012A2    F20C1314     LBUFF    LB,0    *BUFFORG,R6        'ANLZ' POINTER TO WRITE BUFFER
     3927   01 012A3    F20C1315              LB,0    *RBUFFORG,R6       'ANLZ' POINTER TO READ BUFFER

     3929   01 012A4    09000000 A   ORDER    GEN,8,24 X'09',0           I/O ORDER TO WRITE SECTOR HEADERS
     3930   01 012A5    0A000000 A            GEN,8,24 X'0A',0           I/O ORDER TO READ SECTOR HEADERS
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   90
A    3932                            *    NUMBER OF IOCD'S EXECUTED NOT EQUAL TO
     3933                            *    (NO ERRORS)  SPECIFIED NUMBER OF TRACKS OR
     3934                            *    (ERRORS)     # TRACKS DONE, CALC. AS 'SENSE' TRACK MINUS
     3935                            *                     SPECIFIED INITIAL TRACK

     3937   01 012A6    32500532     RWERR1   LW,R5    CYL               GET CYLINDER
     3938   01 012A7    323012D4              LW,R3    STRTRACK          STARTING TRACK
     3939   01 012A8    326012D3              LW,R6    #TRACKS           GET # TRACKS WE ARE FORMATING
     3940   01 012A9    30600003 A            AW,R6    R3                LAST EXPECTED TRACK
     3941   01 012AA    206FFFFF A            AI,R6    -1
     3942   01 012AB    6AF01091              CALL     TYPE
     3943   01 012AC    22D012BA              EFA      RWMSG1            ..
     3944   01 012AD    6AF01091              CALL     TYPE
     3945   01 012AE    22D012BD              EFA      RWMSG1A
     3946   01 012AF    6AF01091              CALL     TYPE
     3947   01 012B0    22D012C3              EFA      RWMSG1B
     3948   01 012B1    32600EBB              LW,R6    TDVLIST+1         GET TDV STATUS
     3949   01 012B2    6AF01091              CALL     TYPE
     3950   01 012B3    22D012C8              EFA      RWMSG1C
     3951   01 012B4    6AF01091              CALL     TYPE
     3952   01 012B5    22D012CD              EFA      RWMSG1D
     3953   01 012B6    6AF01ABD              CALL     ABORT             NON-RECOVERABLE ERROR

     3955   01 012B7    6AF01091     RWERR2   CALL     TYPE              PRINT ERROR MESSAGE
     3956   01 012B8    22D012D0              EFA      RWMSG2            ..
     3957   01 012B9    6AF01ABD              CALL     ABORT

     3959                            RWMSG1   MESSAGE  DSP,'# OF IO COMMAND DOUBLE WORDS NOT= # TRACKS DONE'
            01 012BA    00000002 A
     3960                            RWMSG1A  MESSAGE  'POSSIBLE HARDWARE ERROR'
     3961                            RWMSG1B  MESSAGE  'FIRST TRACK= ',XLZ(R3,20,12),;
     3962                                              ' LAST EXPECTED TRACK=',XLZ(R6,20,12)
            01 012C3    00000004 A
     3963                            RWMSG1C  MESSAGE  '# TRACKS DONE=',XLZ(DONE,24,8),;
     3964                                              ' # EXPECTED DONE=',XLZ(DONE,24,8)
            01 012C8    00000004 A
     3965                            RWMSG1D  MESSAGE  'TDV STATUS=',XLZ(R6)
            01 012CD    00000002 A
     3966                            RWMSG2   MESSAGE  DSP,'SENSE CYLINDER NOT = SPECIFIED CYLINDER'
            01 012D0    00000002 A
     3967   01 012D3                 #TRACKS  RES      1
     3968   01 012D4                 STRTRACK RES      1
     3969   01 012D5                 DONE     RES      1
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   91
A       1*        01 012D6           COMPARE  EQU      %                 COMPARE OBS AND EXP HEADERS     *H02

        3*  01 012D6    445012A2              ANLZ,R5  LBUFF             FORM WRITE/READ BUFFER POINTERS *H01
     3973   01 012D7    446012A3              ANLZ,R6  LBUFF+1           ..

     3975   01 012D8    72CA0000 A   COMPARE1 LB,E1    0,R5              GET NEXT BYTE FROM WRITE BUFFER
     3976   01 012D9    71CC0000 A            CB,E1    0,R6              COMPARE WITH BYTE IN READ BUFFER
     3977   01 012DA    693012F1              BNE      COMPARE3          DO BYTES MISMATCH.
     3978   01 012DB    20500001 A            AI,R5    1                 NO, CONTINUE WITH NEXT BYTES
     3979   01 012DC    20600001 A            AI,R6    1                 ..
     3980   01 012DD    647012D8              BDR,R7   COMPARE1          ..

     3982   01 012DE    44703534     COMPARE2 LBA,R7  *BUFFORG           FINISHED COMPARISON,
     3983   01 012DF    38500007 A            SW,R5    R7                 COMPUTE TERMINAL TRACK
     3984   01 012E0    36501309              DW,R5    NBYTRK            ..
     3985   01 012E1    E8000009 A            B       *ILNK              AND RETURN RESULT TO CALLER



        1*  01 012E2    32C00BF6     TEST     LW,E1    PASSMAX           SKIP IF SURFACE TESTING         *H02
        2*  01 012E3    21C00000 A            CI,E1    0                  SUPPRESSED                     *H02
        3*  01 012E4    682012ED              BLE      TEST1                                             *H02

     3990   01 012E5    3300130B              MTW,0    FLAWBYTE          YES, IS THIS 'FLAW' OPERATION.
     3991   01 012E6    693012ED              BNEZ     TEST1             YES, SKIP I/O TEST FUNCTION

     3993   01 012E7    6AF0135D              CALL     IOTEST            NO, CALL SURFACE TEST ROUTINE
     3994   01 012E8    32D00532              PAR      CYL               .. PASS CURRENT CYLINDER NUMBER
     3995   01 012E9    44D03522              EFA     *TRACK,R4          .. PASS STARTING TRACK NUMBER
     3996   01 012EA    32D00005 A            PAR      R5                .. PASS NUMBER OF TRACKS INVOLVED
     3997   01 012EB    35D00005 A            RTN      R5                .. RETURN FAILED TRACK IF ANY
     3998   01 012EC    680012EF              BAR      TEST2             .. ERROR RETURN, GET BAD TRACK

     4000   01 012ED    B2501B66     TEST1    LW,R5   *STACK             GOOD TEST, BLOCK END TO R5
     4001   01 012EE    E8000009 A            B       *ILNK              RETURN TO CALLING LOCATION

     4003   01 012EF    38500533     TEST2    SW,R5    TRACK             ERROR RETURN, RETURN BAD TRACK
     4004   01 012F0    E8000009 A            B       *ILNK              RELATIVE TO 'TRACK' ORIGIN

     4006         01 012F1           COMPARE3 EQU      %
     4007   01 012F1    44703534              LBA,R7   *BUFFORG          MISMATCH
     4008   01 012F2    38500007 A            SW,R5    R7                 COMPUTE RELATIVE TRACK
     4009   01 012F3    36501309              DW,R5    NBYTRK             IN ERROR AND DISPLAY

     4011   01 012F4    33100E3F              MTW,1    BADHFLG           SET BAD HEADER FLAG

     4013   01 012F5    32D0130E              LW,E2    SEEKCOM           GET SEEK IOCD
     4014   01 012F6    6BD0000D A            INT,E2   E2                MASK OFF UPPER 16 BITS
     4015   01 012F7    25D0007E A            SLS,E2   -2                WORD ADDRESS
     4016   01 012F8    B2D0000D A            LW,E2    *E2
     4017   01 012F9    25D00078 A            SLS,E2   -8                POSITION TRACK AT LOW-END
     4018   01 012FA    30D00005 A            AW,E2    R5                ADD THE TRACK DISPLACEMENT
     4019   01 012FB    35D0125B              STW,E2   BADHEADER         SAVE SEEK DATA

     4021   01 012FC    6AF01091              CALL     TYPE
     4022   01 012FD    22D012FF              EFA      CMPERR
     4023   01 012FE    E8000009 A            B        *ILNK

     4025                            CMPERR   MESSAGE  'HEADER COMPARISON ERROR, CYL:',;
     4026                                              ILB(BADHEADER,24-10,10),', TRK:',;
     4027                                              ILB(BADHEADER,24,8)
            01 012FF    00000004 A
1 C00   23:14 JUN 20,'83    FORMAT/FORMALT/FLAW                                                   PAGE   92
A    4030                            ************************************************************************
     4031                            *                                                                      *
     4032                            *        NEXBLOCK .. ROUTINE TO COMPUTE SIZE OF NEXT BLOCK OF TRACKS.  *
     4033                            *        CALLING SEQUENCE ..                                           *
     4034                            *                                                                      *
     4035                            *                 ...      ...      .. R3 = TOTAL NUMBER OF TRACKS     *
     4036                            *                 BAL,ILNK NEXBLOCK .. GET SIZE OF NEXT BLOCK          *
     4037                            *                 ...      ...      .. RETURN RESULT IN R4             *
     4038                            *                                                                      *
     4039                            ************************************************************************

     4041   01 01304    32400003 A   NEXBLOCK LW,R4    R3                ASSUME (R3) IS SMALL ENOUGH
     4042   01 01305    31441AAB              CW,R4    SEGDATA,R2        IS IT LARGER THAN A 'SEGMENT'
     4043   01 01306    E8200009 A            BLE     *ILNK              NO, RETURN TO CALLING PROGRAM
     4044   01 01307    32441AAB              LW,R4    SEGDATA,R2        YES, USE 'SEGMENT' SIZE FOR BLOCK
     4045   01 01308    E8000009 A            B       *ILNK              AND RETURN TO CALLING PROGRAM

     4047                            * MISCELLANEOUS STORAGE AND CONSTANTS ..
     4048   01 01309                 NBYTRK   RES      1                 NUMBER OF BYTES IN TRACK HEADER
     4050   01 0130A                 ERRCOUNT RES      1                 COUNTER FOR TRACK ERRORS
     4051   01 0130B                 FLAWBYTE RES      1                 STORAGE FOR FLAW MARK INDICATOR
     4052   01 0130C                 SEEKBUFF RES      2                 SEEK ADDRESS DATA BUFFER

     4054                                     BOUND    8                 ..
     4055   01 0130E    03004C30     SEEKCOM  GEN,8,24 3,BA(SEEKBUFF)    I/O COMMAND TO SEEK NEXT TRACK
     4056   01 0130F    2C000000 A            GEN,8,24 X'2C',0           ..
     4057   01 01310    08000000 A   COMLIST  GEN,8,24 X'08',0           I/O COMMAND TO TRANSFER TO COM LIST
     4058   01 01311    00000000 A            GEN,8,24 0,0               ..

     4060   01 01312    00000987     CCATEST  DATA     DA(SEEKCOM)       BOUND TEST FOR BASIC COMMAND LIST
     4061   01 01313    00000988              DATA     DA(COMLIST)       ..

     4063   01 01314                 BUFFORG  RES      1                 ORIGIN OF WRITE BUFFER
     4064   01 01315                 RBUFFORG RES      1                 ORIGIN OF READ BUFFER

     4066                            * TABLE OF REVERSED BITS OF ALTERNATE CYLINDER ADDRESS
     4067         01 01316           ALTBITS  EQU      %
     4068   01 01316    00000000 A            GEN,4,28 X'0',0            ALT.LT.256
     4069   01 01317    80000000 A            GEN,4,28 X'8',0            ALT.LT.512
     4070   01 01318    40000000 A            GEN,4,28 X'4',0            ALT.LT.768
     4071   01 01319    C0000000 A            GEN,4,28 X'C',0            ALT.LT.1024
     4072   01 0131A    20000000 A            GEN,4,28 X'2',0            ALT.LT.1280
1 C00   23:14 JUN 20,'83    10/10/73           .. GENHDRS .. TO SET UP SECTOR HEADER BUFFER       PAGE   93
A    4076                            ************************************************************************
     4077                            *                                                                      *
     4078                            *        GENHDRS .. FORM SECTOR HEADER BUFFER                          *
     4079                            *        CALLING SEQUENCE ..                                           *
     4080                            *                                                                      *
     4081                            *                 CALL     GENHDRS  .. CALL TO CREATE HEADERS          *
     4082                            *                 EBA      BUFF     .. PASS BA(HEADER BUFFER ORIGIN)   *
     4083                            *                 PAR      CYL      .. PASS CYLINDER ADDRESS           *
     4084                            *                 PAR      TRACK    .. PASS STARTING TRACK ADDRESS     *
     4085                            *                 PAR      NTRACKS  .. PASS NUMBER OF TRACKS           *
     4086                            *                 PAR      ALTCYL   .. PASS ALTERNATE CYLINDER         *
     4087                            *                 PAR      ALTTRACK .. PASS ALTERNATE TRACK            *
     4088                            *                 PAR      FLAWMARK .. PASS FLAW MARK IF ANY           *
     4089                            *                                                                      *
     4090                            *        IF ALTCYL=-1, THEN ALL 1'S ARE WRITTEN IN ALTERNATE FIELD.    *
     4091                            *                                                                      *
     4092                            ************************************************************************

     4094                                     CLOSE    CYL,TRACK,NTRACKS
     4095                                     CLOSE    ALTCYL,ALTTRACK,FLAWBYTE
     4096                                     CLOSE    SETUP,SETUP1,BUFFORG,SEEKBUFF,TRK,BUFF

     4098                            GENHDRS  MODULE   IN(BUFF,CYL,TRACK,NTRACKS,ALTCYL,;
     4099   01 0131B    6AC03308                       ALTTRACK,FLAWBYTE),USE(R7)

     4101   01 0131D    52101A72              LH,R1    DEVICE            GET DEVICE TYPE CODE
     4102   01 0131E    32200536              LW,R2    BUFF              INITIALIZE BUFFER POINTER

     4104   01 0131F    224000FF A            LI,R4    X'FF'             SET UP 'ZERO' AND FLAW BYTE
     4105   01 01320    4B40053C              AND,R4   FLAWBYTE          ..
     4106   01 01321    55401357              STH,R4   HBUFF             ..

     4108   01 01322    32521A87              LW,R5    NSECS,R1          SET UP SECTOR COUNTER
     4109   01 01323    37400539              MW,R4    NTRACKS           ..

     4111   01 01324    6B70053A              INT,R7   ALTCYL            IS ALTERNATE CYLINDER SPECIFIED.
     4112   01 01325    69801354              BCS,8    NOALT             NO, SET ALTERNATE FIELD TO ALL 1'S

     4114   01 01326    6AF00FC2              CALL     SEEKADDR          YES, SET ALT CYLINDER/TRACK FIELDS
     4115   01 01327    22D04D62              EBA      BA(HBUFF)+6       .. PASS RESULT BUFFER ADDRESS
     4116   01 01328    32D0053A              PAR      ALTCYL            .. PASS ALTERNATE CYLINDER
     4117   01 01329    32D0053B              PAR      ALTTRACK          .. PASS ALTERNATE TRACK
     4118   01 0132A    22D00000 A            IPAR     0                 .. PASS ZERO SECTOR NUMBER
     4119   01 0132B    22D00000 A            NOPAR                      .. IGNORE LENGTH RETURN

        2*  01 0132C    33000BF5              MTW,0    TCPVFLAG                                          *H01
        3*  01 0132D    69301333              BNEZ     SETUP3                                            *H01

     4121   01 0132E    22300006 A            LI,R3    6                 MUST MOVE HIGH ORDER
     4122   01 0132F    72361357              LB,R3    HBUFF,R3          BIT OF ALTERNATE CYLINDER
     4123   01 01330    32361316              LW,R3    ALTBITS,R3        GET MOST SIG. BIT PATTERN
     4124   01 01331    47301359              STS,R3   HBUFF+2           TO ALTERNATE TRACK
        1*  01 01332    6800133C              B        SETUP                                             *H01

        3*  01 01333    22C0FFFF A   SETUP3   LI,E1    X'FFFF'           PREPARE NEW HEADER FORMAT       *H01
        4*  01 01334    4BC01358              AND,E1   HBUFF+1                                           *H01

        6*  01 01335    32D01359              LW,E2    HBUFF+2           11-BIT CYLINDER                 *H01
        7*  01 01336    25D00003 A            SLS,E2   3                  AND 5-BIT TRACKS               *H01

        9*  01 01337    25C0017D A            SLD,E1   -3                                                *H01
       10*  01 01338    25D00208 A            SCS,E2   8                                                 *H01

       12*  01 01339    75D01359              STB,E2   HBUFF+2                                           *H01

       14*  01 0133A    22300007 A            LI,R3    7                                                 *H01
       15*  01 0133B    75C61357              STB,E1   HBUFF,R3                                          *H01

     4126   01 0133C    6AF00FC2     SETUP    CALL     SEEKADDR          SET HEADER SEEK ADDRESS
     4127   01 0133D    22D04D5E              EBA      BA(HBUFF)+2       .. PASS RESULT BUFFER ADDRESS
     4128   01 0133E    32D00537              PAR      CYL               .. PASS CYLINDER ADDRESS
     4129   01 0133F    32D00538              PAR      TRACK             .. PASS TRACK ADDRESS
     4130   01 01340    32D00004 A            PAR      R4                .. PASS RELATIVE SECTOR NUMBER
     4131   01 01341    22D00000 A            NOPAR                      .. IGNORE LENGTH RETURN (WE KNOW IT)
1 C00   23:14 JUN 20,'83    10/10/73           .. GENHDRS .. TO SET UP SECTOR HEADER BUFFER       PAGE   94
A    4133                            ************************************************************************
     4134                            *                                                                      *
     4135                            *                  *****************************************           *
     4136                            *        HBUFF     *    0    *  FLAW   *     CYLINDER      *           *
     4137                            *                  *****************************************           *
     4138                            *                  *  TRACK  * SECTOR  *   ALTERNATE CYL   *           *
     4139                            *                  *****************************************           *
     4140                            *                  * ALT TRK *    0    * ------- * ------- *           *
     4141                            *                  *****************************************           *
     4142                            *                                                                      *
     4143                            *        NOTE: HIGH ORDER BITS OF ALTERNATE CYLINDER ADDRESS           *
     4144                            *              HAVE BEEN MOVED IN REVERSE ORDER TO THE HIGH            *
     4145                            *              ORDER BITS OF THE ALTERNATE TRACK BYTE.                 *
     4146                            *                                                                      *
     4147                            ************************************************************************

     4149   01 01342    32601A73              LW,R6    DSKFLAG
     4150   01 01343    21600002 A            CI,R6    2                 CHECK FOR D215 DRIVE
     4151   01 01344    6930134A              BNE      SETUP0            NOT D215

     4153   01 01345    22600005 A            LI,R6    5
     4154   01 01346    727C1357              LB,R7    HBUFF,R6          GET SECTOR BYTE
     4155   01 01347    25700001 A            SLS,R7   1                 SHIFT FOR D215
     4156   01 01348    20700001 A            AI,R7    1                 SET ALT CYL HIGH BIT
     4157   01 01349    757C1357              STB,R7   HBUFF,R6          STORE IT BACK

     4159         01 0134A           SETUP0   EQU      %
     4160   01 0134A    7260135A              LB,R6    HEADDATA          NO. BYTES PER HEADER

     4162   01 0134B    727C135A     SETUP1   LB,R7    HEADDATA,R6       GET ADDRESS OF NEXT ITEM IN HBUFF
     4163   01 0134C    727E1357              LB,R7    HBUFF,R7          MOVE NEXT HEADER ITEM TO BUFFER
     4164   01 0134D    75740000 A            STB,R7   0,R2              ..

     4166                            ************************************************************************
     4167                            *                                                                      *
     4168                            *                  *****************************************           *
     4169                            *        'BUFF'    *  FLAW   *     CYLINDER      *  TRACK  *           *
     4170                            *                  *****************************************           *
     4171                            *                  * SECTOR  * ALT CYL * ALT TRK *    0    *           *
     4172                            *                  *****************************************           *
     4173                            *                                                                      *
     4174                            ************************************************************************

     4176   01 0134E    20200001 A   SETUP2   AI,R2    1                 UPDATE HEADER BUFFER ADDRESS
     4177   01 0134F    6460134B              BDR,R6   SETUP1            IS CURRENT SECTOR COMPLETE.

     4179   01 01350    20400001 A            AI,R4    1                 YES, UPDATE SECTOR COUNTER
     4180   01 01351    6450133C              BDR,R5   SETUP             DOES THIS COMPLETE ALL SECTORS.

     4182   01 01352    6AC03314              EXIT     GENHDRS           YES, RETURN TO CALLING PROGRAM

     4184   01 01354    47701358     NOALT    STS,R7   HBUFF+1           NO ALTERNATE SPECIFIED, SET TO 1'S
     4185   01 01355    55701359              STH,R7   HBUFF+2           ..
     4186   01 01356    6800133C              B        SETUP             RETURN TO MAIN PROGRAM TO CONTINUE
1 C00   23:14 JUN 20,'83    10/10/73           .. GENHDRS .. TO SET UP SECTOR HEADER BUFFER       PAGE   95
A    4188         00000001           FLAWMARK EQU      1                 FUNCTION TO SET FLAW MARK BITS
     4189         00000002           HEADER   FNAME    2                 FUNCTION TO SET HEADER SEEK ADDRESS
     4190         00000006           ALTHDR   FNAME    6                 FUNCTION TO SET ALTERNATE ADDRESS
     4191                                     PROC                       DEFINE HEADER/ALTHDR FUNCTIONS
     4192                                     PEND     NAME+AF           RETURN POSITION IN HEADER BUFFER

     4194         00000000           FORMAT   CNAME                      TO SPECIFY DEVICE HEADER FORMAT
     4195                                     PROC                       ..
     4196                                     LOCAL    J                 ..
     4197                            LF       DATA,1   NUM(AF)           GENERATE HEADER LENGTH IN BYTES
     4198                            J        DO       NUM(AF)           GENERATE INDICES IN REVERSE ORDER
     4199                                     DATA,1   AF(NUM(AF)+1-J)   ..
     4200                                     FIN                        ..
     4201                                     BOUND    4                 PAD UNUSED BYTES
     4202                                     PEND                       ..

     4204   01 01357                 HBUFF    RES      3                 WORK BUFFER FOR HEADER FORMATION

     4206         00000002           CYL0     EQU      HEADER(0)
     4207         00000003           CYL1     EQU      HEADER(1)
     4208         00000004           TRK      EQU      HEADER(2)
     4209         00000005           SECTOR   EQU      HEADER(3)
     4210         00000007           ACYL     EQU      ALTHDR(1)
     4211         00000008           ATRACK   EQU      ALTHDR(2)

     4213                            HEADDATA FORMAT   FLAWMARK,CYL0,CYL1,TRK,;
     4214   01 0135A    08       A                     SECTOR,ACYL,ATRACK,0
            01 0135A 1  00       A
            01 0135A 2  08       A
            01 0135A 3  07       A
            01 0135B    05       A
            01 0135B 1  04       A
            01 0135B 2  03       A
            01 0135B 3  02       A
            01 0135C    01       A
1 C00   23:14 JUN 20,'83    10/10/73           ... IOTEST ... DISK SURFACE CHECKOUT ROUTINE       PAGE   96
A    4217                            ************************************************************************
     4218                            *                                                                      *
     4219                            *        IOTEST .. DEVICE SURFACE CHECKOUT                             *
     4220                            *        2-PASS SURFACE CHECKOUT ALGORITHM TO DETERMINE RECORDING      *
     4221                            *        ABILITY OF A SET OF TRACKS.  IF AN ERROR IS DETECTED, TEST-   *
     4222                            *        ING IS DISCONTINUED AND AN ERROR RETURN IS TAKEN.             *
     4223                            *        THE BLOCK OF TRACKS MUST BE WITHIN A SINGLE 'SEGMENT'.        *
     4224                            *        CALLING SEQUENCE ..                                           *
     4225                            *                                                                      *
     4226                            *                 CALL     IOTEST   .. CALL FOR PATTERN TEST           *
     4227                            *                 PAR      CYL      .. PASS SPECIFIC CYLINDER NUMBER   *
     4228                            *                 PAR      TRACK    .. PASS STARTING TRACK NUMBER      *
     4229                            *                 PAR      NTRKS    .. NUMBER OF TRACKS TO TEST        *
     4230                            *                 RTN      FAILTRK  .. IF ERROR, RETURN FAILED TRACK   *
     4231                            *                 ...      ...      .. ERROR EXIT                      *
     4232                            *                 ...      ...      .. NORMAL EXIT                     *
     4233                            *                                                                      *
     4234                            ************************************************************************

     4236                                     CLOSE    CYL,TRK,NTRACKS

     4238   01 0135D    6AC03308     IOTEST   MODULE   IN(CYL,TRK,NTRACKS),OUT(TRK),USE(R11)
     4239   01 0135F    3220053E              LW,R2    TRK
     4240   01 01360    352012D4              STW,R2   STRTRACK          SAVE STARTING TRACK
     4241   01 01361    3220053F              LW,R2    NTRACKS
     4242   01 01362    352012D3              STW,R2   #TRACKS           SAVE NUMBER OF TRACKS

     4244   01 01363    6B201A72              INT,R2   DEVICE            R2=TYPE; R3=IOP ADDRESS
     4245   01 01364    4B303525              AND,R3   =X'FF0'           FORCE 'DEVICE' ADDRESS
     4246   01 01365    2030000B A            AI,R3    X'B'                TO 'B' FOR ALL DEVICE TYPES
     4247   01 01366    3530140A              STW,R3   TDVADR            SAVE FOR STROBE TDV

     4249   01 01367    22300000 A            LI,R3    0                 INIT. SET TO NO STROBE = 0
     4250   01 01368    6B441AB4              INT,R4   FDATA,R2          DOES DEVICE REQUIRE
     4251   01 01369    6880136B              BCR,8    %+2                 STROBE CHANGE
     4252   01 0136A    22300002 A            LI,R3    2                 YES--SET = 2
     4253   01 0136B    35301409              STW,R3   STROBE            SAVE IN FLAG CELL

     4255   01 0136C    6AF01B3E              CALL     ALLOCATE          ALLOCATE SECTOR BUFFER FOR TEST
     4256   01 0136D    6BD41AA2              RPAR     SDATA,R2          ..
     4257   01 0136E    35D01401              RTN      BUFFORG           ..

     4259   01 0136F    32B0053F              LW,R11   NTRACKS           ALLOCATE COMMAND LIST BUFFER
     4260   01 01370    37B41A87              MW,R11   NSECS,R2          COMPUTE SECTORS IN TRACK SEGMENT
     4261   01 01371    25B00001 A            SLS,R11  1                 ALLOCATE 2 WORDS PER SECTOR COMMAND
     4262   01 01372    20B00003 A            AI,R11   3                 PLUS EXTRAS FOR SEEK/DBLWD BOUND

     4264   01 01373    6AF01B3E              CALL     ALLOCATE          ALLOCATE COMMAND LIST AREA
     4265   01 01374    32D0000B A            PAR      R11               ..
     4266   01 01375    15D00008 A            RTDC     R8                COPY COMMAND BUFFER ORIGIN TO R8/R9
1 C00   23:14 JUN 20,'83    10/10/73           ... IOTEST ... DISK SURFACE CHECKOUT ROUTINE       PAGE   97
A    4268   01 01376    20900001 A            AI,R9    1                 FORM DOUBLEWORD ORIGIN OF COMLISTS
     4269   01 01377    2590007F A            SLS,R9   -1                ..
     4270   01 01378    3590000A A            STW,R9   R10               SAVE DOUBLEWORD ORIGIN OF COMLIST
     4271   01 01379    25900001 A            SLS,R9   1                 RESTORE WORD ADDRESS OF COMLIST

     4273   01 0137A    32603535              LW,R6    =X'03000000'+BA(SEEKBUFF)
     4274   01 0137B    327013FE              LW,7     INITSEEK+1        GET 2ND WORD OF SEEK COMMAND

     4276   01 0137C    6AF00FC2              CALL     SEEKADDR          FORM DEVICE SEEK ADDRESS
     4277   01 0137D    22D05008              EBA      SEEKBUFF          .. PASS SEEK DATA BUFFER
     4278   01 0137E    32D0053D              PAR      CYL               .. PASS CYLINDER ADDRESS
     4279   01 0137F    32D0053E              PAR      TRK               .. PASS TRACK ADDRESS
     4280   01 01380    22D00000 A            IPAR     0                 .. PASS ZERO INITIAL SECTOR
     4281   01 01381    66D00007 A            RSM      R7                .. RETURN SEEK BYTE COUNT

     4283   01 01382    95600009 A            STD,R6  *R9                INITIALIZE COMMAND LIST WITH SEEK
     4284   01 01383    3200053F              LW,R0    NTRACKS           SET BLOCK END POINTER

        1*  01 01384    3A300BF6              LCW,R3   PASSMAX           GET NUMBER OF PASSES            *H02

        3*  01 01385    32C01A74     IOTEST1  LW,E1    PATFLAG           GET PATTERN TYPE                *H02

        5*  01 01386    21C00001 A            CI,E1    1                 LOOK FOR 7275                   *H01
        6*  01 01387    68301395              BE       DSKATEST                                          *H01

        8*  01 01388    22D013FA              LI,E2    PTN7242+1         ASSUME 7242-LIKE (EVEN)         *H01
        9*  01 01389    21C00001 A            CI,E1    1                  SKIP IF EVEN                   *H01
       10*  01 0138A    6840138C              BAZ      %+2                                               *H01
       11*  01 0138B    22D013FC              LI,E2    PTNALTN+1         CORRECT FOR ALTERNATING         *H01

       13*  01 0138C    226FFFFE A            LI,R6    X'FFFFE'          INDEX SET TO -1 OR -2           *H02
       14*  01 0138D    49600003 A            OR,R6    R3                                                *H02
       15*  01 0138E    B2DC000D A            LW,E2    *E2,R6                                            *H02

       17*  01 0138F    32C01401              LW,E1    BUFFORG           COMPUTE FWA-1 OF BUFFER         *H01
       18*  01 01390    20CFFFFF A            AI,E1    -1                                                *H01

       20*  01 01391    6B741AA2              INT,R7   SDATA,R2          GET SIZE OF SECTOR              *H01

       22*  01 01392    B5DE000C A            STW,E2   *E1,R7            STORE PATTERN DATA              *H01
       23*  01 01393    64701392              BDR,R7   %-1                                               *H01

     4298   01 01394    680013A2              B        IOTEST11

     4300                            * SET UP THE PATTERN FOR THE 7275 DISK
     4301   01 01395    6B741AA2     DSKATEST INT,R7   SDATA,R2          GET WORDS / SECTOR

        2*  01 01396    3AD00003 A            LCW,E2   R3                COMPUTE (R3 MOD 3)+1            *H02
        3*  01 01397    22C00000 A            LI,E1    0                  R6 WILL BE -3, -2, -1          *H02
        4*  01 01398    36C03502              DW,E1    =3                  IN ROTATING SEQUENCES         *H02
        5*  01 01399    20C00001 A            AI,E1    1                                                 *H02
        6*  01 0139A    3A60000C A            LCW,R6   E1                                                *H02

        8*  01 0139B    32DC13F9     DSKATST1 LW,E2    PTN7275+3,R6      GET PATTERN DATA                *H01
     4304   01 0139C    6560139E              BIR,R6   %+2               UPDATE PATTERN INDEX
     4305   01 0139D    226FFFFD A            LI,R6    -3
     4306   01 0139E    207FFFFF A            AI,R7    -1                UPDATE BUFFER INDEX
        1*  01 0139F    B5DE1401              STW,E2   *BUFFORG,R7                                       *H01
     4308   01 013A0    6920139B              BGZ      DSKATST1
     4309   01 013A1    680013A2              B        IOTEST11
1 C00   23:14 JUN 20,'83    10/10/73           ... IOTEST ... DISK SURFACE CHECKOUT ROUTINE       PAGE   98
A    4311                            *  HERE WHEN PATTERN IS SET-UP AND READY TO BE WRITTEN
     4312   01 013A2    224FFFFE A   IOTEST11 LI,R4    -2                SET 2-OPERATION COUNTER
     4313   01 013A3    32101409              LW,R1    STROBE            0=NO STROBE, 2=#STROBE CHANGES

     4315   01 013A4    32C01401     IOTEST2  LW,E1    BUFFORG           SET UP I/O COMMAND LIST
     4316   01 013A5    6BD41AA2              INT,E2   SDATA,R2          FORM BYTE ADDRESS & SIZE ENTRIES
     4317   01 013A6    25C00102 A            SLD,E1   2                 ..
     4318   01 013A7    49C81401              OR,E1    IOCODE+2,R4       SET WRITE OR CHECKWRITE CODE
     4319   01 013A8    49D03516              OR,E2    =X'1C000000'      AND SET TERMINATING FLAGS
     4320   01 013A9    32500000 A            LW,R5    R0                SET FINAL COMMAND LIST ENTRY
     4321   01 013AA    37541A87              MW,R5    NSECS,R2          ..
     4322   01 013AB    95CA0009 A            STD,E1  *R9,R5             ..
     4323   01 013AC    205FFFFF A            AI,R5    -1                IS THERE ONLY ONE SECTOR.
     4324   01 013AD    683013B1              BEZ      IOTEST21          YES, NO MORE ENTRIES TO SET
     4325   01 013AE    48D03524              EOR,E2   =X'90000000'      NO, CHANGE 'ICE' TO 'DC' FLAG
     4326   01 013AF    95CA0009 A            STD,E1  *R9,R5             THEN SET REMAINING COMMAND ENTRIES
     4327   01 013B0    645013AF              BDR,R5   %-1               ..

     4329   01 013B1    214FFFFE A   IOTEST21 CI,R4    -2                SKIP IF FUNCTION
     4330   01 013B2    683013C4              BE       IOTEST3             IS WRITE OPERATION

     4332   01 013B3    33001409              MTW,0    STROBE            SKIP IF TYPE
     4333   01 013B4    683013C4              BEZ      IOTEST3            IS NOT STROBED

     4335                            * ADVANCE/RETARD READ STROBE
     4336   01 013B5    22700003 A   IOTEST2A LI,R7    TRIES
     4337   01 013B6    225013B7              LI,R5    %+1
     4338   01 013B7    6AF00D9C     TESTM    CALL     IOEX              SET TEST MODE
     4339   01 013B8    44D03536              EDA      STRCDW-2,R1       ..CDW
     4340   01 013B9    55D00006 A            RTH      R6                ..TIO STATUS
     4341   01 013BA    35D00006 A            RTN      R6                ..TDV STATUS
     4342   01 013BB    22D00000 A            NOPAR                      ..CCDW
     4343   01 013BC    22D00000 A            NOPAR                      ..BYCT
     4344   01 013BD    6800140B              BAR      STRERR            ..ERROR RETURN

     4346   01 013BE    225013BF              LI,R5    %+1
     4347   01 013BF    CE60140A     TDV      TDV,R6   *TDVADR           OFFSET STROBE
     4348   01 013C0    6840140B              BCR,4    STRERR            TDV ERROR

     4350   01 013C1    225013C2              LI,R5    %+1
     4351   01 013C2    CF601A72     HIO      HIO,R6   *DEVICE           REMOVE TEST MODE

     4353   01 013C3    69C0140B              BCS,12   STRERR            HIO ERROR

     4355   01 013C4    6AF00D9C     IOTEST3  CALL     IOEX              EXECUTE I/O TEST COMMAND LIST
     4356   01 013C5    32D0000A A            PAR      R10               .. PASS COMMAND LIST DOUBLEWORD ADR
     4357   01 013C6    35D00005 A            RTN      R5                .. RETURN STATUS RESPONSES
     4358   01 013C7    35D00006 A            RTN      R6                .. BOTH TIO & TDV VALUES
     4359   01 013C8    35D00007 A            RTN      R7                .. RETURN COMMAND ADDRESS COUNTER
     4360   01 013C9    22D00000 A            NOPAR                      .. IGNORE REMAINING BYTE COUNT
     4361   01 013CA    680013E5              BAR      IOERRCHK          .. ERROR RETURN, ANALYZE I/O ERRORS

     4363   01 013CB    32500000 A            LW,R5    R0                .. NORMAL RETURN, R5 = # TRKS DONE
     4364         01 013CC           IOTEST4  EQU      %
     4365   01 013CC    32C0000A A            LW,E1    R10               GET ADDRESS
     4366   01 013CD    3870000C A            SW,R7    E1                COMPUTE NUMBER OF TERMINATING TRACK
     4367   01 013CE    36741A87              DW,R7    NSECS,R2          TO GET NUMBER OF TRACKS COMPLETED
     4368   01 013CF    357012D5              STW,R7   DONE              SAVE # OF TRACKS DONE
     4369   01 013D0    31500007 A            CW,R5    R7                VALIDITY-CHECK VERSUS EXPECTED VALUE
     4370   01 013D1    693012A6              BNE      RWERR1            SKIP: IOCD COUNT .NE. TRACK COUNT
1 C00   23:14 JUN 20,'83    10/10/73           ... IOTEST ... DISK SURFACE CHECKOUT ROUTINE       PAGE   99
A    4372         01 013D2           IOTEST5  EQU      %
     4373   01 013D2    32000005 A            LW,R0    R5                SET NUMBER OF TRACKS FOR NEXT TIME
     4374   01 013D3    683013D8              BEZ      ENDIOTST          EXIT IF FIRST TRACK FAILED
     4375   01 013D4    654013A4              BIR,R4   IOTEST2           DO 2 OPERATIONS

     4377                            *  GO CHANGE STROBE TWICE FOR DISKAB
     4378   01 013D5    204FFFFF A            AI,R4    -1                RE-DO CHECK WRITE
     4379   01 013D6    641013A4              BDR,R1   IOTEST2           MODIFY THE STROBE IF SELECTED
     4380   01 013D7    65301385              BIR,R3   IOTEST1           EVENTUALLY OBTAIN ANOTHER PATTERN

     4382   01 013D8    6600053E     ENDIOTST AWM,R0   TRK               NO, POINT TO FAILED TRACK, IF ANY

     4383   01 013D9    6AF01B49              CALL     RELEASE           RELEASE BUFFER/COMLIST STORAGE
     4384   01 013DA    32D00008 A            PAR      R8                .. COMMAND BUFFER ORIGIN
     4385   01 013DB    32D0000B A            PAR      R11               .. SIZE OF COMMAND BUFFER

     4386   01 013DC    6AF01B49              CALL     RELEASE           PATTERN BUFFER NEXT
     4387   01 013DD    32D01401              PAR      BUFFORG           .. PASS PATTERN BUFFER ORIGIN
     4388   01 013DE    6BD41AA2              RPAR     SDATA,R2          .. AND SIZE OF BUFFER IN WORDS

     4390   01 013DF    3100053F              CW,R0    NTRACKS           DID WE COMPLETE ALL TRACKS.
     4391   01 013E0    683013E3              BE       IOTNEXIT          YES, TAKE NORMAL EXIT FROM IOTEST

     4392   01 013E1    6AC03314              EXIT,0   IOTEST            OTHERWISE, TAKE ERROR RETURN

     4394   01 013E3    6AC03314     IOTNEXIT EXIT,1   IOTEST            NORMAL RETURN FROM IOTEST

     4396   01 013E5    33000E3F     IOERRCHK MTW,0    BADHFLG           WAS THERE A HEADER ERROR
     4397   01 013E6    69301218              BNEZ     BADHEAD           YES

     4399   01 013E7    53100006 A            MTH,1    R6                SET ERROR-RECOVERY SENSE MODE
     4400   01 013E8    32C0000A A            LW,E1    R10               GET ADDRESS
     4401   01 013E9    3170000C A            CW,R7    E1                VERIFY WE GOT PAST SEEK
     4402   01 013EA    691013F5              BL       IOINVERR          IF BELOW, HAVE VALIDITY ERROR
     4403   01 013EB    683013ED              BE       %+2               IF EQUAL, CALL IT FIRST SECTOR ERROR
     4404   01 013EC    207FFFFF A            AI,R7    -1                ELSE, DECR COUNTER TO LAST GOOD SECT

     4406   01 013ED    6AF00F7E              CALL     SENSADD           SENSE DEVICE ADDRESS REGISTERS
     4407   01 013EE    52D00006 A            HPAR     R6                .. PASS SENSING MODE (1=ERROR)
     4408   01 013EF    35D00006 A            RTN      R6                .. RETURN CYLINDER ADDRESS TO R6
     4409   01 013F0    35D00005 A            RTN      R5                .. AND TRACK ADDRESS TO R5
     4410   01 013F1    22D00000 A            NOPAR                      .. IGNORE SECTOR NUMBER WITHIN TRACK

     4412   01 013F2    3850053E              SW,R5    TRK               COMPUTE RELATIVE TRACK POSITION
     4413   01 013F3    4860053D              EOR,R6   CYL               VALIDITY-CHECK CYLINDER RETURN
     4414   01 013F4    683013D2              BEZ      IOTEST5

     4416   01 013F5    680012B7     IOINVERR B        RWERR2            SENSE CYLINDER IS FUNNY
1 C00   23:14 JUN 20,'83    10/10/73           ... IOTEST ... DISK SURFACE CHECKOUT ROUTINE       PAGE  100
A       1*  01 013F6    DB6DB6DB A   PTN7275  DATA     X'DB6DB6DB'       TEST PATTERN CLASS 1            *H01
     4419   01 013F7    6DB6DB6D A            DATA     X'6DB6DB6D'       (FOR 7275-LIKE DISKS)
     4420   01 013F8    B6DB6DB6 A            DATA     X'B6DB6DB6'

        1*  01 013F9    FFFFFFFF A   PTN7242  DATA     X'FFFFFFFF',X'00000000' 7242-LIKE                 *H01
            01 013FA    00000000 A
        2*  01 013FB    AAAAAAAA A   PTNALTN  DATA     X'AAAAAAAA',X'55555555' ALTERNATING               *H01
            01 013FC    55555555 A
     4425   01 013FD    03005008     INITSEEK GEN,8,24 3,BA(SEEKBUFF)    PROTOTYPE SEEK COMMAND DOUBLEWORD
     4426   01 013FE    2C000000 A            GEN,8,24 X'2C',0           ..
     4427   01 013FF    01000000 A   IOCODE   GEN,8,24 X'01',0           ORDER CODE FOR DATA WRITE
     4428   01 01400    05000000 A            GEN,8,24 X'05',0           ORDER CODE FOR CHECK-WRITE

     4430   01 01401                 BUFFORG  RES      1                 POINTER TO I/O BUFFER FOR SECTOR
     4431   01 01402                 SEEKBUFF RES      1                 BUFFER FOR SEEK ADDRESS DATA

     4433                                     BOUND    8
     4434   01 01404    13005020     STRCDW   GEN,8,24 X'13',BA(RETARD)  TEST MODE--RETARD
     4435   01 01405    1C000002 A            GEN,8,24 X'1C',2
     4436   01 01406    13005022              GEN,8,24 X'13',BA(ADVANCE) TEST MODE--ADVANCE
     4437   01 01407    1C000002 A            GEN,8,24 X'1C',2

     4439   01 01408    04       A   RETARD   DATA,1   X'04',X'40'       CODE FOR RETARD STROBE
            01 01408 1  40       A
     4440   01 01408 2  04       A   ADVANCE  DATA,1   X'04',X'20'       CODE FOR ADVANCE STROBE
            01 01408 3  20       A
     4441   01 01409                 STROBE   RES      1                 0=NO STROBE, ELSE = # STROBE CHANGES
     4442   01 0140A                 TDVADR   RES      1                 SPECIAL TDV ADDRESS FOR STROBE CHANGE

     4444         00000003           TRIES    EQU      3                 NUMBER OF STROBE RETRIES
     4445   01 0140B    E4700005 A   STRERR   BDR,R7   *R5               RETRY JUST SO MANY TIMES
     4446   01 0140C    74001417              STCF     DUMMY             SAVE CONDITION CODE
     4447   01 0140D    22700003 A            LI,R7    3                 THEN ABORT
     4448   01 0140E    515E1418              CH,R5    STRTAB,R7         AFTER PRINTING
     4449   01 0140F    68301411              BE       %+2               ERROR MESSAGE
     4450   01 01410    6470140E              BDR,R7   %-2
     4451   01 01411    6B5E1418              INT,R5   STRTAB,R7
     4452   01 01412    6AF01091              CALL     TYPE
     4453   01 01413    22D0142C              EFA      STRMSG
     4454   01 01414    6AF01091              CALL     TYPE
     4455   01 01415    32D00005 A            PAR      R5
     4456   01 01416    6AF01ABD              CALL     ABORT
1 C00   23:14 JUN 20,'83    10/10/73           ... IOTEST ... DISK SURFACE CHECKOUT ROUTINE       PAGE  101
A    4458   01 01417                 DUMMY    RES      1
     4459   01 01418    0000     A   STRTAB   DATA,2   0,STR10
            01 01418 2  141C     N
     4460   01 01419    13B7     N            DATA,2   TESTM,STR20
            01 01419 2  1421     N
     4461   01 0141A    13BF     N            DATA,2   TDV,STR30
            01 0141A 2  1426     N
     4462   01 0141B    13C2     N            DATA,2   HIO,STR40
            01 0141B 2  1429     N
     4463                            STR10    MESSAGE  'RESTORE CARRIAGE....TIO = ',XLZ(R6,0,16),;
     4464                                              '  TDV = ',XLZ(R6,16,16)
            01 0141C    00000004 A
     4465                            STR20    MESSAGE  'ENTER TEST MODE....TIO = ',XLZ(R6,0,16),;
     4466                                              '  TDV = ',XLZ(R6,16,16)
            01 01421    00000004 A
     4467                            STR30    MESSAGE  'TDV....CC = ',BLZ(DUMMY,0,4)
            01 01426    00000002 A
     4468                            STR40    MESSAGE  'HIO....CC = ',BLZ(DUMMY,0,4)
            01 01429    00000002 A
     4469                            STRMSG   MESSAGE  DSP,'ERROR IN STROBE OFFSET WITH ORDER CODE'
            01 0142C    00000002 A
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  102
A    4471                            ************************************************************************
     4472                            *                                                                      *
     4473                            *        ALTERNATE TRACK ALLOCATION STRATEGY                           *
     4474                            *                                                                      *
     4475                            ************************************************************************

        1*        00000200           MAPSIZE  EQU      512               SIZE OF ERROR/FLAG MAP          *H01
        2*        00000032           ALTSIZE  EQU      50                SIZE OF ALTERNATE CYLINDER MAP  *H01

     4480                                     CLOSE    CYL,TRACK,ERRORS,SETUP,ALTCYL,ALTTRK

     4482                            ************************************************************************
     4483                            *                                                                      *
     4484                            *        MAPINITT .. TO INITIALIZE ALTERNATE MAP AND PROGRAM.          *
     4485                            *                                                                      *
     4486                            *        ZEROES TABLES, INITIALIZES ALTMAP, CALCULATES PRIMESIZE.      *
     4487                            *                                                                      *
     4488                            *        CALLING SEQUENCE ..                                           *
     4489                            *                                                                      *
     4490                            *                 CALL     MAPINITT .. INITIALIZE ALTERNATE MAP        *
     4491                            *                 ...      ...      .. NO PARAMETERS                   *
     4492                            *                                                                      *
     4493                            ************************************************************************

     4495   01 0142F    6AC03308     MAPINITT MODULE   USE(R3)           DEFINE ENTRY TO MAPINITT
     4496   01 01431    22000000 A            LI,R0    0                 INITIALIZE TABLES & VARIABLES
     4497   01 01432    2210043D A            LI,R1    NTABLES           ..
     4498   01 01433    350215E1              STW,R0   TABLES-1,R1       ..
     4499   01 01434    64101433              BDR,R1   %-1               ..

     4501                            * INITIALIZE PRIMESIZ TO NUMBER OF PRIME TRACKS ON DEVICE
     4502   01 01435    52101A72              LH,R1    DEVICE            TYPE DEVICE
     4503   01 01436    6B221AB4              INT,R2   FDATA,R1          R2 AND
     4504   01 01437    32300002 A            LW,R3    R2                R3 = NUMBER OF PRIME CYLINDERS
     4505   01 01438    37321A7E              MW,R3    NTRKS,R1          R3 = NUMBER OF PRIME TRACKS
     4506   01 01439    35301A18              STW,R3   PRIMESIZ

     4508                            * INITIALIZE ALTMAP TO ACCOMMODATE DISKB ALSO
     4509   01 0143A    32321A75              LW,R3    NCYLS,R1          NUMBER OF CYLINDERS IN PACK
     4510   01 0143B    38300002 A            SW,R3    R2                MINUS PRIME CYLS = NO. ALT. CYLS

        2*  01 0143C    21300032 A            CI,R3    ALTSIZE           LOOK FOR ALTERNATE MAP          *H01
        3*  01 0143D    68201441              BLE      MAPINIT0           OVERFLOW (IT HURTS...)         *H01

        5*  01 0143E    6AF01091              CALL     TYPE                                              *H01
        6*  01 0143F    22D01A3A              EFA      ALTOVER                                           *H01

        8*  01 01440    6AF01ABD              CALL     ABORT                                             *H01

       10*  01 01441    350619E5     MAPINIT0 STW,R0   ALTMAP,R3         FLAG END OF TABLE (ZERO)        *H01

     4513                            * EACH WORD IN ALTMAP IS AN ALT CYL
     4514                            * EACH BIT IN A WORD IS AN ALT TRACK (LEFT TO RIGHT)
     4515                            * A BIT .EQ. 1 => TRACK NOT AVAILABLE

     4517   01 01442    3A221A7E              LCW,R2   NTRKS,R1          NUMBER TRACKS/CYLINDER
     4518   01 01443    20200001 A            AI,R2    1
     4519   01 01444    320014AF              LW,R0    MASK+31-1         SHIFT REQUIRED NUMBER OF
     4520   01 01445    25040400 A            SAS,R0   0,R2               POS. TO REPRESENT # OF TRACKS
     4521   01 01446    350619E4              STW,R0   ALTMAP-1,R3       EACH WORD OF ALTMAP
     4522   01 01447    64301446              BDR,R3   %-1                RESPRESENTS AN AVAIL. ALT. CYL

     4524   01 01448    220019E5              LI,R0    ALTMAP            'POINT' TO FIRST
     4525   01 01449    35001A17              STW,R0   POINT             ENTRY IN ALTMAP

     4527   01 0144A    6B321AB4              INT,R3   FDATA,R1          IS ODD-TRACK FLAG ON
     4528   01 0144B    6840144D              BCR,4    %+2               NO..
     4529   01 0144C    33101A1D              MTW,1    7275FLAG          YES..SET FLAG
     4530   01 0144D    6AC03314              EXIT     MAPINITT          AND RETURN TO CALLING PROGRAM
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  103
A    4533                            ************************************************************************
     4534                            *                                                                      *
     4535                            *        LOGERR .. TO LOG I/O ERROR INFORMATION                        *
     4536                            *        REJECT .. TO REJECT BAD TRACK FROM DEVICE                     *
     4537                            *        HREJECT.. TO MARK REJECTION DUE TO HEADER READ ERROR          *
     4538                            *        CALLING SEQUENCE ..                                           *
     4539                            *                                                                      *
     4540                            *                 CALL     <NAME>   .. CALL LOGERR/REJECT              *
     4541                            *                 PAR      CYL      .. PASS CYLINDER ADDRESS           *
     4542                            *                 PAR      TRACK    .. PASS ADDRESS OF BAD TRACK       *
     4543                            *                 PAR      ERRTOTAL .. PASS TOTAL I/O ERRORS           *
     4544                            *                                                                      *
     4545                            ************************************************************************

     4547   01 0144F    7310000F A   HREJECT  MTB,1    LNK               MARK 'HEADER READ ERROR'

     4549   01 01450    7380000F A   REJECT   MTB,8    LNK               MARK 'REJECT'
        1*  01 01451    68001455              B        ALLERR                                            *H01

        3*  01 01452    33000BF7     LOGERR   MTW,0    ALLMODE           IF ALLMODE IS SET, REJECT       *H01
        4*  01 01453    68301455              BEZ      ALLERR             ALL TRACKS WITH ERRORS         *H01

        6*  01 01454    7380000F A            MTB,8    LNK                                               *H01

        8*  01 01455    6AC03308     ALLERR   MODULE   IN(CYL,TRACK,ERRORS),USE(R5)                      *H01

     4553   01 01457    7250000F A            LB,R5    LNK               INITIALIZE FLAGS(0-3) IN R5(28-31)
     4554   01 01458    6A001571              BAL,R0   SETUP             SET UP POINTERS & ADDRESS
     4555   01 01459    6A00157F              BAL,R0   SEARCH            SCAN MAP FOR PREVIOUS ENTRY
     4556   01 0145A    6A00158B              BAL,R0   MAPENT            NONE, ENTER TRACK INTO MAP
     4557   01 0145B    32000542              LW,R0    ERRORS            UPDATE ERROR COUNT FIELD
     4558   01 0145C    66001A1B              AWM,R0   ERRTOTAL          AND TOTAL I/O ERRORS FOR DEVICE
     4559   01 0145D    2500001C A            SLS,R0   28                ..
     4560   01 0145E    660817E4              AWM,R0   MAP2,R4           ..
     4561   01 0145F    68801461              BNC      %+2               STOP COUNTING AT 15 ERRORS
     4562   01 01460    20500004 A            AI,R5    4                 BY SETTING FLAG BIT 1

     4564   01 01461    32F815E3              LW,E4    MAP1,R4           GET FLAGS FOR THIS ENTRY
     4565   01 01462    7020000F A            LC       E4
     4566   01 01463    69801467              BCS,8    LOGSKP            DO NOT COUNT IF ALREADY REJECTED

     4568   01 01464    21500080 A            CI,R5    X'80'             GET FLAG FOR THIS CALL
     4569   01 01465    68401467              BAZ      LOGSKP            DO NOT COUNT IF NOT REJECT CALL

     4571   01 01466    33101A1E              MTW,1    REJECTS           UPDATE TOTAL REJECT COUNT

     4573         01 01467           LOGSKP   EQU      %
     4574   01 01467    2550001C A            SLS,R5   28                UPDATE 4-BIT FLAG FIELD
     4575   01 01468    475815E3              STS,R5   MAP1,R4           ..
     4576   01 01469    68401475              BNOV     LGEREXIT          SKIP IF NOT REJECT CALL

     4578   01 0146A    6AF014B1              CALL     DELETALT          DELETE TRACK IF ALTERNATE
     4579   01 0146B    22D00000 A            IPAR     0
     4580   01 0146C    32D00001 A            PAR      R1

     4582                            *NOTE: TWINFLAG IS SET IN GETMAP WHICH IS CALLED FROM DELETALT
     4583   01 0146D    33001522              MTW,0    TWINFLAG          NEED TO DO TWIN
     4584   01 0146E    68301475              BEZ      LGEREXIT          NO---DONE

     4586   01 0146F    6A001577              BAL,R0   SETUPA            RET W/ R1=TWIN TRACK ADDRESS
     4587   01 01470    491015C2              OR,R1    GMASK+0           SET REJECT BIT
     4588   01 01471    6A00157F              BAL,R0   SEARCH            IS TWIN IN TABLES
     4589   01 01472    6A00158B              BAL,R0   MAPENT            NO, ENTER IT

     4591                            *  IN CASE ENTRY IS ALREADY IN TABLE, ADD REJECT BIT
     4592   01 01473    325015C2              LW,R5    GMASK+0           SET REJECT BIT
     4593   01 01474    475815E3              STS,R5   MAP1,R4           UPDATE FLAG FIELD

        1*  01 01475    6AC03314     LGEREXIT EXIT     ALLERR            EXIT TO CALLING PROGRAM         *H01
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  104
A    4598                            ************************************************************************
     4599                            *                                                                      *
     4600                            *   OBTAIN SPECIFIED NUMBER OF CONTIGUOUS TRACKS (ON ONE CYLINDER)     *
     4601                            *                                                                      *
     4602                            *        ---EXIT,0 IF UNABLE TO GET REQ ALTERNATES                     *
     4603                            *        ---EXIT,1 IF SUCCESSFUL                                       *
     4604                            *                                                                      *
     4605                            ************************************************************************

     4607   01 01477    6AC03308     GETALT   MODULE   IN(NUM),OUT(ALTCYL,ALTTRK),USE(R5)
     4608   01 01479    52501A72              LH,R5    DEVICE            GET TYPE CODE
     4609   01 0147A    32400543              LW,R4    NUM               NUMBER OF ALT TRKS TO GET
     4610   01 0147B    B2301A17     GALT10   LW,R3    *POINT            GET AVAILABLE CYLINDER--STARTING AT LAST
     4611   01 0147C    68301486              BEZ      GALT30            NONE AVAILABLE
     4612   01 0147D    3A1A1A7E              LCW,R1   NTRKS,R5          NTRKS - R1 WILL = 1ST TRK AVAILABLE
     4613   01 0147E    22200000 A            LI,R2    0                 WORKING REGISTER
     4614   01 0147F    25280500 A            SAD,R2   0,R4              TEST 1ST 2 OR 3 BITS
     4615   01 01480    4B281490     GALT20   AND,R2   MASK-1,R4         SEE IF REQUIRED TRACKS ARE FREE
     4616   01 01481    68301488              BEZ      GALT40            YES--GOT THEM

     4618   01 01482    25200501 A            SAD,R2   1                 GET NEXT TRACK
     4619   01 01483    65101480              BIR,R1   GALT20            GO TRY AGAIN--UNTIL CYL FINISHED
     4620   01 01484    33101A17              MTW,1    POINT             SET FOR NEXT CYLINDER
     4621   01 01485    6800147B              B        GALT10            START OVER

     4623   01 01486    6AC03314     GALT30   EXIT,0   GETALT            NONE AVAILABLE EXIT

     4625         01 01488           GALT40   EQU      %                  GOT THE TRACKS
     4626   01 01488    301A1A7E              AW,R1    NTRKS,R5          ADD R1 TO TRKS/CYL
     4627   01 01489    35100545              STW,R1   ALTTRK              TO GET 1ST AVAILABLE TRK
     4628   01 0148A    221FE61B N            LI,R1    -ALTMAP           DETERMINE
     4629   01 0148B    30101A17              AW,R1    POINT               CYLINER
     4630   01 0148C    6B2A1AB4              INT,R2   FDATA,R5            BY POSITION IN TABLE
     4631   01 0148D    30100002 A            AW,R1    R2                  PLUS BEG. ALT. CYL. NUMBER
     4632   01 0148E    35100544              STW,R1   ALTCYL
     4633   01 0148F    6AC03314              EXIT,1   GETALT            SUCCESSFUL EXIT
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  105
A    4635         01 01491           MASK     EQU      %                 MASK OUT ALL BUT REQUIRED TRACKS
     4636         0000001F           J        DO       31
     4637   01 01491    00000001 A            DATA     1**J-1
     4638                                     FIN
            01 01492    00000003 A
            01 01493    00000007 A
            01 01494    0000000F A
            01 01495    0000001F A
            01 01496    0000003F A
            01 01497    0000007F A
            01 01498    000000FF A
            01 01499    000001FF A
            01 0149A    000003FF A
            01 0149B    000007FF A
            01 0149C    00000FFF A
            01 0149D    00001FFF A
            01 0149E    00003FFF A
            01 0149F    00007FFF A
            01 014A0    0000FFFF A
            01 014A1    0001FFFF A
            01 014A2    0003FFFF A
            01 014A3    0007FFFF A
            01 014A4    000FFFFF A
            01 014A5    001FFFFF A
            01 014A6    003FFFFF A
            01 014A7    007FFFFF A
            01 014A8    00FFFFFF A
            01 014A9    01FFFFFF A
            01 014AA    03FFFFFF A
            01 014AB    07FFFFFF A
            01 014AC    0FFFFFFF A
            01 014AD    1FFFFFFF A
            01 014AE    3FFFFFFF A
            01 014AF    7FFFFFFF A
     4639   01 014B0    FFFFFFFF A            DATA     -1
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  106
A    4641                            ************************************************************************
     4642                            *                                                                      *
     4643                            *        DELETALT .. TO DELETE AN ALTERNATE TRACK FROM THE LIST        *
     4644                            *        OF AVAILABLE ALTERNATES.  CALLING SEQUENCE ..                 *
     4645                            *                                                                      *
     4646                            *                 CALL     DELETALT .. DELETE (CYL,TRACK)              *
     4647                            *                 PAR      CYL      ..                                 *
     4648                            *                 PAR      TRACK    ..                                 *
     4649                            *                                                                      *
     4650                            ************************************************************************

     4652   01 014B1    6AC03308     DELETALT MODULE   IN(CYL,TRACK),USE(R5)  DEFINE ENTRY TO 'DELETALT'
     4653   01 014B3    6A001571              BAL,R0   SETUP             SET UP REGISTERS & TRACK ADDRESS
     4654   01 014B4    6A0015AC              BAL,R0   GETMAP            PICK UP MAP ENTRY POINTERS
     4655   01 014B5    680014B7              BAR      %+2               IGNORE ROUTINE IF NOT AN ALTERNATE
     4656   01 014B6    475819E5              STS,R5   ALTMAP,R4         SET 'UNAVAILABLE' BIT IN MAP
     4657   01 014B7    6AC03314              EXIT     DELETALT          AND RETURN TO CALLING PROGRAM

     4659                            ************************************************************************
     4660                            *                                                                      *
     4661                            *        MAPALT .. TO ASSIGN ALTERNATES TO REJECTED TRACKS AND TO      *
     4662                            *        WRITE FLAW MARKS & ALTERNATE HEADERS.  CALLING SEQUENCE ..    *
     4663                            *                                                                      *
     4664                            *                 CALL     MAPALT   .. NO PARAMETERS FOR 'MAPALT'      *
     4665                            *                                                                      *
     4666                            ************************************************************************

     4668   01 014B9    6AC03308     MAPALT   MODULE   USE(R11)          DEFINE ENTRY TO 'MAPALT'

     4670   01 014BB    330015E2              MTW,0    NMAP              IS THERE ANYTHING IN THE MAP.
     4671   01 014BC    68301501              BEZ      MAPALTX           NO, TAKE RETURN TO CALLING PROGRAM

     4673   01 014BD    52201A72              LH,R2    DEVICE            PICK UP DEVICE TYPE/CLASS IN R2/R3
     4674   01 014BE    6A001598              BAL,R0   SORT              SORT MAP ENTRIES BY TRACK ADDRESS
     4675   01 014BF    22400000 A            LI,R4    0                 INITIALIZE MAP POINTER

     4677   01 014C0    6B0815E3     ASSIGN   INT,R0   MAP1,R4           PICK UP NEXT TRACK IN MAP
     4678   01 014C1    688014FE              BCR,8    NEXTMAP           IS THIS TRACK A REJECT.

     4680   01 014C2    55000001 A            STH,R0   R1                YES, FORM 28-BIT TRACK ADDRESS
     4681   01 014C3    22800000 A            LI,R8    0                 COMPUTE & SAVE TRUE ADDRESS
     4682   01 014C4    32900001 A            LW,R9    R1                .. CYLINDER ADDRESS TO R9
     4683   01 014C5    36841A7E              DW,R8    NTRKS,R2          .. TRACK ADDRESS TO R8

     4685   01 014C6    6BA817E4              INT,R10  MAP2,R4           HAS ALTERNATE ALREADY BEEN ASSIGNED
     4686   01 014C7    31A0000B A            CW,R10   R11               ..
     4687   01 014C8    697014FE              BCS,7    NEXTMAP           YES, IGNORE PROCESSING THIS ENTRY

     4689   01 014C9    22003526     ASSIGN0  LI,R0    =0                NO, SET NULL ERROR POINTER (YES: LI)
     4690   01 014CA    32700001 A            LW,R7    R1                ..
     4691   01 014CB    38701A18              SW,R7    PRIMESIZ          CHECK IF TRACK IS IN ALT. AREA
     4692   01 014CC    6810150E              BGEZ     FLAWALT           IF SO, FLAW W/O ASSIGNMENT
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  107
A    4694                            *  HERE IF WE HAVE A REJECTED PRIME TRACK
     4695         01 014CD           ASSIGNX  EQU      %
     4696   01 014CD    22500000 A            LI,R5    0
     4697   01 014CE    3B001A73              LAW,R0   DSKFLAG           CHECK FOR 7275-LIKE DISK
     4698   01 014CF    21000001 A            CI,R0    1
     4699   01 014D0    693014D5              BNE      AX005             SKIP IF NOT (7242-LIKE)
     4700   01 014D1    22500001 A            LI,R5    1

     4702                            *SEE IF DEVICE IS 7275 AND WHETHER IT IS TRACK #18
     4703   01 014D2    21800012 A            CI,R8    18                YES..IS TRACK # = 18
     4704   01 014D3    693014D5              BNE      AX005              NO..FLAW IN PAIRS
     4705   01 014D4    33F00005 A            MTW,-1   R5                 YES..FLAW SINGLE TRACK

     4707   01 014D5    35501521     AX005    STW,R5   PAIRFLAG          NOT 0 IF HANDLING TRACKS IN PAIRS
     4708   01 014D6    20500001 A            AI,R5    1                 GET 1 OR 2 ALTERNATES

     4710   01 014D7    320015C4     AX008    LW,R0    GMASK+2           SET ERROR FLAG FOR ASIGNERR
     4711   01 014D8    6AF01477              CALL     GETALT
     4712   01 014D9    32D00005 A            PAR      R5                NO. OF TRACKS TO GET
     4713   01 014DA    35D0000B A            RTN      R11               RET W/ R11=ALT CYL
     4714   01 014DB    35D0000A A            RTN      R10                      R10=FIRST ALT TRK
     4715   01 014DC    6800150F              BAR      ASIGNERR

     4717                            * FLAW WITHOUT ALTERNATES
     4718   01 014DD    22C00000 A            LI,E1    0                 FOR 1ST ALT TRK ASSIGNMENT
     4719   01 014DE    35C01520              STW,E1   FLAG1               FLAG1 = 0

     4721   01 014DF    3270000B A            LW,R7    R11               COMPUTE R7
     4722   01 014E0    37741A7E              MW,R7    NTRKS,R2            = ABSOLUTE ALTERNATE
     4723   01 014E1    3070000A A            AW,R7    R10                   TRACK ADDRESS

     4725         01 014E2           AX010    EQU      %                 LINK REJECTED PRIMES TO ALTS
     4726   01 014E2    6AF014B1              CALL     DELETALT          RESERVE THIS ALTERNATE TRACK
     4727   01 014E3    32D0000B A            PAR      R11               .. PASS CYLINDER ADDRESS
     4728   01 014E4    32D0000A A            PAR      R10               .. PASS TRACK ADDRESS

     4730   01 014E5    6AF01175              CALL     FORMALT           WRITE BACK POINTER IN ALTERNATE
     4731   01 014E6    32D0000B A            PAR      R11               .. PASS ALTERNATE CYLINDER ADDRESS
     4732   01 014E7    32D0000A A            PAR      R10               .. PASS ALTERNATE TRACK ADDRESS
     4733   01 014E8    32D00009 A            PAR      R9                .. PASS REJECT CYLINDER ADDRESS
     4734   01 014E9    32D00008 A            PAR      R8                .. PASS REJECT TRACK ADDRESS
     4735   01 014EA    68001503              BAR      ALTREJ            .. SCRUB ALTERNATE IF FORMAT ERROR

     4737   01 014EB    44603537              LWA,R6   *FLAG1,R4         R6 = R4 + (0 OR 1)
     4738   01 014EC    44303527              LBA,R3   *R6               USE R3 FOR BYTE ALIGNMENT
     4739   01 014ED    703617E4              LCF      MAP2,R3           HAVE TO SAVE ERROR COUNT
     4740   01 014EE    357C17E4              STW,R7   MAP2,R6           BECAUSE AN ALTERNATE
     4741   01 014EF    740617E4              STCF     MAP2,R3           MAY HAVE BEEN ASSIGNED PREVIOUSLY
     4742   01 014F0    20700001 A            AI,R7    1                 BUMP ALT TRK FOR NEXT TIME THRU

     4744   01 014F1    6AF01179              CALL     FLAW              WRITE FLAW/ALTERNATE IN BAD TRACK
     4745   01 014F2    32D00009 A            PAR      R9                .. PASS REJECT CYLINDER ADDRESS
     4746   01 014F3    32D00008 A            PAR      R8                .. PASS REJECT TRACK ADDRESS
     4747   01 014F4    32D0000B A            PAR      R11               .. PASS ALTERNATE CYLINDER ADDRESS
     4748   01 014F5    32D0000A A            PAR      R10               .. PASS ALTERNATE TRACK ADDRESS
     4749   01 014F6    6A00151C              BAL,R0   AX400             ..UNABLE TO FLAW,FLAG ERROR

     4751   01 014F7    33101520              MTW,1    FLAG1             FOR 2ND ALT TRK ASSIGNMENT,FLAG1=1
     4752   01 014F8    20A00001 A            AI,R10   1                 BUMP ALT TRK
     4753   01 014F9    20800001 A            AI,R8    1                 BUMP REJ TRK--SHOULD NOTCROSS CYLINERS

     4755                            * EXCEPT IF = NEXT GOOD TRACK IN PRIME
     4756   01 014FA    645014E2              BDR,R5   AX010             DO TWICE IF 7260
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  108
A    4758   01 014FB    33001521     AX100    MTW,0    PAIRFLAG          UPDATE MAP POINTER
     4759   01 014FC    683014FE              BEZ      %+2
     4760   01 014FD    20400001 A            AI,R4    1                   BY 2 IF 7260
     4761   01 014FE    20400001 A   NEXTMAP  AI,R4    1                   BY 1 IF 7242
     4762   01 014FF    314015E2              CW,R4    NMAP              ..
     4763   01 01500    691014C0              BL       ASSIGN            PROCESS ANY MORE ENTRIES

     4765   01 01501    6AC03314     MAPALTX  EXIT     MAPALT            THEN RETURN TO CALLING PROGRAM

     4767   01 01503    6AF01179     ALTREJ   CALL     FLAW              HERE WHEN ALTERNATE IS BAD
     4768   01 01504    32D0000B A            PAR      R11               .. PASS ALTERNATE CYLINDER
     4769   01 01505    32D0000A A            PAR      R10               .. PASS ALTERNATE TRACK
     4770   01 01506    22DFFFFF A            IPAR     -1                ..PASS ALTERNATE CYLINDER
     4771   01 01507    22DFFFFF A            IPAR     -1                .. AND TRACK ADDRESS
     4772   01 01508    02000000 A            NOP                        .. MAY IGNORE ERRORS FLAWING

     4774   01 01509    33001520              MTW,0    FLAG1             SEE IF ONE ALT HAD
     4775   01 0150A    683014D7              BEZ      AX008               ALREADY BEEN PROCESSED

     4777   01 0150B    208FFFFF A            AI,R8    -1                YES, RE-INITIALIZE
     4778   01 0150C    20500001 A            AI,R5    1                  REGISTERS FOR RE-DOING
     4779   01 0150D    680014D7              B        AX008             GO ASSIGN NEW ALTERNATES
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  109
A    4781                            ************************************************************************
     4782                            *                                                                      *
     4783                            * ENTER WITH R0 = FLAGS FOR MAP                                        *
     4784                            *                                                                      *
     4785                            * FLAW TRACK(S) AND RETURN TO PROCESS NEXT MAP ENTRY                   *
     4786                            *                                                                      *
     4787                            ************************************************************************

     4789   01 0150E    22500000 A   FLAWALT  LI,R5    0                 FLAW TRACK IN ALTERNATE AREA

     4791   01 0150F    6AF01179     ASIGNERR CALL     FLAW              HERE TO FLAW WITHOUT ALTERNATE
     4792   01 01510    32D00009 A            PAR      R9                .. PASS CYLINDER ADDRESS OF REJECT
     4793   01 01511    32D00008 A            PAR      R8                .. PASS TRACK ADDRESS OF REJECT
     4794   01 01512    22DFFFFF A            IPAR     -1                ..PASS ALTERNATE CYLINDER
     4795   01 01513    22DFFFFF A            IPAR     -1                ..AND ALTERNATE TRACK
     4796   01 01514    02000000 A            NOP                        .. FLAW INABILITY NOT SERIOUS HERE

     4798   01 01515    B2300000 A   FLAGERR  LW,R3    *R0               PICK UP ERROR FLAG, IF ANY
     4799   01 01516    47301A19              STS,R3   ERRFLAG           INCLUDE IN COMPOSITE ERROR FLAG
     4800   01 01517    473815E3              STS,R3   MAP1,R4           AND LOCAL ERROR FLAG ENTRY

     4802                            *   SEE IF NEED TO DO TWIN
     4803   01 01518    20800001 A            AI,R8    1                 BUMP ALTERNATE TRACK ADDRESS
     4804   01 01519    20400001 A            AI,R4    1                 BUMP MAP POINTER
     4805   01 0151A    6450150F              BDR,R5   ASIGNERR          DO TWIN IF NECESSARY
     4806   01 0151B    680014FF              B        NEXTMAP+1         DO NEXT ENTRY FOR 7260

     4808         01 0151C           AX400    EQU      %                 HERE IF UNABLE TO FLAW PRIME
     4809   01 0151C    32D015C5              LW,E2    GMASK+3           SET BIT 3
     4810   01 0151D    47D01A19              STS,E2   ERRFLAG           INCLUDE IN COMPOSITE  ERROR FLAG
     4811   01 0151E    47DC15E3              STS,E2   MAP1,R6           R6 = R4 + (0 OR 1)
     4812   01 0151F    E8000000 A            B        *R0               RETURN TO CONTINUE

     4814                            * THE FOLLOWING FLAGS ARE TRUE IF CONTENTS.NE.0

     4816   01 01520                 FLAG1    RES      1                 ONE TWIN ALREADY ASSIGNED
     4817   01 01521                 PAIRFLAG RES      1                 ASSIGN TRACKS IN PAIRS
     4818   01 01522                 TWINFLAG RES      1                 TRACK'S TWIN TO BE REJECTED
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  110
A    4820                            ************************************************************************
     4821                            *                                                                      *
     4822                            *        PMSTAT .. TO PRINT MAP STATISTICS.  CALLING SEQUENCE ..       *
     4823                            *                                                                      *
     4824                            *                 CALL     PMSTAT   .. NO PARAMETERS                   *
     4825                            *                 ...      ...      .. RETURN IF MAPPING INCOMPLETE    *
     4826                            *                 ...      ...      .. RETURN IF MAPPING SUCCESSFUL    *
     4827                            *                                                                      *
     4828                            ************************************************************************

     4830   01 01523    6AC03308     PMSTAT   MODULE   USE(R11)          DEFINE ENTRY TO 'PMSTAT'

     4832   01 01525    330015E2              MTW,0    NMAP              IS THERE ANYTHING IN MAP.
     4833   01 01526    6830155E              BEZ      PFSTAT            NO, PRINT FINAL STATISTICS ONLY

     4835   01 01527    52201A72              LH,R2    DEVICE            SET UP DEVICE TYPE & CLASS

     4837   01 01528    6AF01091              CALL     TYPE
     4838   01 01529    22D01B3B              EFA      DSPACE
     4839   01 0152A    6AF0108D              CALL     PRINT             SET UP TITLE FOR MAP STATISTICS
     4840   01 0152B    22D01A3F              EFA      HEADING                                           *G02
     4841   01 0152C    6AF0108D              CALL     PRINT             PRINT BLANK LINE FOLLOWING TITLE
     4842   01 0152D    22D01B3B              EFA      DSPACE

     4844   01 0152E    6A001598              BAL,R0   SORT              SORT THE MAP (PROBABLY AGAIN)
     4845   01 0152F    22400000 A            LI,R4    0                 INITIALIZE MAP INDEX POINTER

     4847   01 01530    22601A1F     PSTAT1   LI,R6    PTOTAL            SET POINTERS TO EXPECTED SPECIFIERS
     4848   01 01531    22701A21              LI,R7    PDISP             ..
     4849   01 01532    22801A23              LI,R8    PALT1             ..
     4850   01 01533    22901A25              LI,R9    PALT2             ..

     4852   01 01534    32A817E4              LW,R10   MAP2,R4           CHECK FOR UPDATED, FLAWED
     4853   01 01535    20A00001 A            AI,R10   1                 ALTERNATE TRACK
     4854   01 01536    69301538              BNEZ     %+2
     4855   01 01537    35A817E4              STW,R10  MAP2,R4           MAP WILL CONTAIN BLANK ALT

     4857   01 01538    6BA817E4              INT,R10  MAP2,R4           PICK UP ALTERNATE & COUNT
     4858   01 01539    74000005 A            STCF     R5                SAVE ERROR COUNT IN R5
     4859   01 0153A    25500064 A            SLS,R5   -28               ..

     4861   01 0153B    55A0000B A            STH,R10  R11               FORM ALTERNATE CYLINDER/TRACK
     4862   01 0153C    23A00001 A            MI,R10   1                 IS THERE AN ALTERNATE ASSIGNED.
     4863   01 0153D    68301542              BEZ      PSTAT2            NO, SKIP FORMING ALTCYL/ALTTRACK

     4865   01 0153E    20800001 A            AI,R8    1                 YES, UPDATE SPECIFIER POINTERS
     4866   01 0153F    20900001 A            AI,R9    1                 ..

     4868   01 01540    36A41A7E              DW,R10   NTRKS,R2          FORM ALTERNATE CYLINDER/TRACK
     4869   01 01541    55A0000B A            STH,R10  R11               SAVE ALTERNATE TRACK IN LEFT R11

     4871   01 01542    22A01A27     PSTAT2   LI,R10   PCOMNT            INITIALIZE COMMENT SPECIFIER

     4873   01 01543    6B0815E3              INT,R0   MAP1,R4           PICK UP ADDRESS AND FLAGS
     4874   01 01544    68101548              BCR,1    PFSTAT3            SKIP IF NO HEADER ERROR

     4876   01 01545    69201548              BCS,2    PFSTAT3            SKIP IF FLAW MARK BAD

     4878   01 01546    22A01A2A              LI,R10   PHREMSG           HEADER ERROR SPECIFIER
     4879   01 01547    6800154C              B        PFSTAT4
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  111
A    4881         01 01548           PFSTAT3  EQU      %

     4883   01 01548    6830154C              BCR,3    %+4               WERE THERE ERRORS ASSIGNING/FLAWING.
     4884   01 01549    65A0154A              BIR,R10  %+1               YES, ASSUME UNABLE TO ASSIGN
     4885   01 0154A    6810154C              BCR,1    %+2               AND CHECK IF IT WAS FLAW ERROR
     4886   01 0154B    65A0154C              BIR,R10  %+1               ..

     4888         01 0154C           PFSTAT4  EQU      %
     4889   01 0154C    6B0815E3              INT,R0   MAP1,R4           PICK UP NEXT ADDRESS & FLAGS
     4890   01 0154D    6840154F              BCR,4    %+2               CHANGE SPECIFIER IF ERRORS > 15.
     4891   01 0154E    6560154F              BIR,R6   %+1               ..
     4892   01 0154F    68801552              BCR,8    %+3               CHANGE SPECIFIER IF REJECTED.
     4893   01 01550    65701551              BIR,R7   %+1               ..

     4895                            * NOTE: KEEP COUNT OF REJECTS HERE,
     4896                            * NOT IN 'REJECT' (MULTIPLE CALLS)

     4898   01 01551    33101A1C              MTW,1    REJTOTAL          AND UPDATE TOTAL REJECTS IF SO
     4899   01 01552    55000001 A            STH,R0   R1                FORM TRUE CYLINDER/TRACK ADDRESS
     4900   01 01553    22000000 A            LI,R0    0                 ..
     4901   01 01554    36041A7E              DW,R0    NTRKS,R2          ..
     4902   01 01555    6AF0108D              CALL     PRINT             PRINT LINE OF STATISTICS
     4903   01 01556    22D01A43              EFA      STATMSG           ..
     4904   01 01557    20400001 A            AI,R4    1                 UPDATE MAP INDEX POINTER
     4905   01 01558    314015E2              CW,R4    NMAP              PROCESS ANY MORE MAP ENTRIES
     4906   01 01559    69101530              BL       PSTAT1            ..

     4908   01 0155A    33001A1A              MTW,0    OVFFLAG           IF MAP OVERFLOWED, STATE SO
     4909   01 0155B    6830155E              BEZ      %+3               ..
     4910   01 0155C    6AF0108D              CALL     PRINT             ..
     4911   01 0155D    22D01A52              EFA      OVFMSG            ..

     4913   01 0155E    12400BDE     PFSTAT   LD,R4    INITDATE          GET DATE (MMDDBBYY)
     4914   01 0155F    25400370 A            SCD,R4   -16               ...YYMMDDBB
     4915   01 01560    20502121 A            AI,R5    '//'-'  '         ...YYMMDD//
     4916   01 01561    25500278 A            SCS,R5   -8                ...YYMM/DD/
     4917   01 01562    25400310 A            SCD,R4   16                MM/DD/YY

     4919   01 01563    6AF0108D              CALL     PRINT
     4920   01 01564    22D01B3B              EFA      DSPACE
     4921   01 01565    6AF0108D              CALL     PRINT             THEN PRINT FINAL STATISTICS
     4922   01 01566    22D01A58              EFA      ENDSTAT           ..
     4923   01 01567    6AF0108D              CALL     PRINT
     4924   01 01568    22D01B3B              EFA      DSPACE

     4926   01 01569    33001A19              MTW,0    ERRFLAG           PRINT ERROR MESSAGE IF REQUIRED
     4927   01 0156A    6830156F              BEZ      NORMEXIT          ..
     4928   01 0156B    6AF0108D              CALL     PRINT             ..
     4929   01 0156C    22D01A62              EFA      ERRMSG            ..

     4931   01 0156D    6AC03314     ERREXIT  EXIT,0   PMSTAT            TAKE ERROR RETURN IF SPECIFIED

     4933   01 0156F    6AC03314     NORMEXIT EXIT,1   PMSTAT            OTHERWISE, TAKE NORMAL EXIT
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  112
A    4935                            ************************************************************************
     4936                            *                                                                      *
     4937                            *        SETUP .. COMMON ROUTINE TO SET UP TRACK ADDRESS AND           *
     4938                            *        REGISTERS AS FOLLOWS ..                                       *
     4939                            *                                                                      *
     4940                            *        R1  ..  ABSOLUTE TRACK ADDRESS (CYL*(TRKS/CYL)+TRACK)         *
     4941                            *        R2  ..  DEVICE TYPE INDEX                                     *
     4942                            *        R3  ..  DEVICE CLASSIFICATION INDEX                           *
     4943                            *                                                                      *
     4944                            ************************************************************************

     4946   01 01571    52201A72     SETUP    LH,R2    DEVICE            PICK UP DEVICE TYPE INDEX
     4947   01 01572    6B341AB4              INT,R3   FDATA,R2          PICK UP DEVICE CLASS INDEX
     4948   01 01573    32100540              LW,R1    CYL               FORM CYLINDER/TRACK ADDRESS
     4949   01 01574    37141A7E              MW,R1    NTRKS,R2          ..
     4950   01 01575    30100541              AW,R1    TRACK             ..
     4951   01 01576    E8000000 A            B       *R0                AND RETURN TO CALLING PROGRAM

     4953   01 01577    3500157E     SETUPA   STW,R0   SETUPA1           OBTAIN TWIN ADDRESS FOR R1
     4954   01 01578    32C00541              LW,E1    TRACK             E1=ORIG TRACK ADDRESS
     4955   01 01579    48C03528              EOR,E1   =1                E1=TWIN ADDRESS
     4956   01 0157A    46C00541              XW,E1    TRACK
     4957   01 0157B    6A001571              BAL,R0   SETUP             SET UP TWIN ADDRESS
     4958   01 0157C    35C00541              STW,E1   TRACK             REPLACE ORIG ADDRESS
     4959   01 0157D    E800157E              B        *SETUPA1

     4961   01 0157E                 SETUPA1  RES      1

     4963                            ************************************************************************
     4964                            *                                                                      *
     4965                            *        SEARCH .. TO SCAN MAP FOR PREVIOUS ENTRY MATCH                *
     4966                            *        CALLING SEQUENCE (INTERNALLY) ..                              *
     4967                            *                                                                      *
     4968                            *                 BAL,R0   SEARCH   .. ENTER WITH ADDRESS IN R1        *
     4969                            *                 ...      ...      .. RETURN HERE IF NO FIND          *
     4970                            *                 ...      ...      .. OTHERWISE, R4 POINTS TO ENTRY   *
     4971                            *                                                                      *
     4972                            ************************************************************************

     4974   01 0157F    32C00001 A   SEARCH   LW,E1    R1                PICK UP TRACK ADDRESS
     4975   01 01580    32D014AC              LW,E2    MASK+28-1         SET SELECTIVE MASK FOR COMPARE
     4976   01 01581    22400000 A            LI,R4    0                 INITIALIZE MAP POINTER
     4977   01 01582    32E015E2              LW,E3    NMAP              PICK UP MAP LENGTH
     4978   01 01583    E8300000 A            BEZ     *R0                EMPTY, RETURN IMMEDIATELY

     4980   01 01584    45C815E3     SEARCH1  CS,E1    MAP1,R4           ELSE SCAN MAP FOR ADDRESS MATCH
     4981   01 01585    68301589              BE       SEARCH2           MATCH, TAKE 'FIND' EXIT
     4982   01 01586    20400001 A            AI,R4    1                 NO MATCH, CONTINUE UNTIL EMPTY
     4983   01 01587    64E01584              BDR,E3   SEARCH1           ..
     4984   01 01588    E8000000 A            B       *R0                THEN TAKE 'NO FIND' EXIT

     4986   01 01589    20000001 A   SEARCH2  AI,R0    1                 FOUND MATCH, UPDATE RETURN
     4987   01 0158A    E8000000 A            B       *R0                AND EXIT TO CALLING PROGRAM
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  113
A    4989                            ************************************************************************
     4990                            *                                                                      *
     4991                            *        MAPENT .. TO ENTER AN ADDRESS IN ERROR MAP.  ADDRESS IS       *
     4992                            *        IN R1, DEVICE TYPE/CLASS IN R2/R3, & MAP INDEX IN R4.  USES   *
     4993                            *        ERASIBLE REGISTERS E1 THRU E4.                                *
     4994                            *                                                                      *
     4995                            ************************************************************************

     4997   01 0158B    324015E2     MAPENT   LW,R4    NMAP              PICK UP CURRENT SIZE OF MAP
     4998   01 0158C    21400200 A            CI,R4    MAPSIZE           ARE WE GOING TO OVERFLOW
     4999   01 0158D    68101593              BGE      MAPOVF            YES, DO NOT MAKE ENTRY
     5000   01 0158E    331015E2              MTW,1    NMAP              NO, UPDATE MAP LENGTH COUNTER
     5001   01 0158F    351815E3              STW,R1   MAP1,R4           MOVE TRACK ADDRESS TO MAP
     5002   01 01590    22C00000 A            LI,E1    0                 CLEAR 'MAP2' COUNT/ALT FIELDS
     5003   01 01591    35C817E4              STW,E1   MAP2,R4           ..
     5004   01 01592    E8000000 A            B       *R0                RETURN TO MAIN PROGRAM

     5006   01 01593    33101A1A     MAPOVF   MTW,1    OVFFLAG           MAP OVERFLOW, FLAG FOR STATISTICS
     5007   01 01594    33101A19              MTW,1    ERRFLAG           MARK INITIALIZATION ERROR FLAG
     5008   01 01595    6AF01523              CALL     PMSTAT            PRINT STATS
     5009   01 01596    6AF01ABD              CALL     ABORT             AND QUIT
     5010   01 01597    6AF01ABD              CALL     ABORT             IN CASE OF NORMAL RETURN FROM PMSTAT

     5012                            ************************************************************************
     5013                            *                                                                      *
     5014                            *        SORT .. TO SORT ENTRIES IN MAP BY TRACK ADDRESS.              *
     5015                            *        VERY SIMPLE LINEAR SORT ALGORITHM.                            *
     5016                            *        CALLING SEQUENCE ..                                           *
     5017                            *                                                                      *
     5018                            *        BAL,R0   SORT              INTERNAL CALL, NO ARGUMENTS        *
     5019                            *                                                                      *
     5020                            ************************************************************************

     5022   01 01598    02200050 A   SORT     LCI      5                 SAVE 5 INDEX REGISTERS
     5023   01 01599    0B101B66              PSM,R1   STACK             ..
     5024   01 0159A    321015E2              LW,R1    NMAP              PICK UP LENGTH OF MAP
     5025   01 0159B    201FFFFF A            AI,R1    -1                EXIT IF MAP IS TRIVIAL (0 OR 1)
     5026   01 0159C    682015A9              BLEZ     SORTEXIT          ..
     5027   01 0159D    325014AC              LW,R5    MASK+28-1         OTHERWISE, SET UP SELECTIVE MASK
     5028   01 0159E    32200001 A   SORT1    LW,R2    R1                PICK UP SUB-BLOCK END POINTER
     5029   01 0159F    324215E3              LW,R4    MAP1,R1           PICK UP MAP1/MAP2 OF BLOCK END
     5030   01 015A0    323217E4              LW,R3    MAP2,R1           ..
     5031   01 015A1    454415E2     SORT2    CS,R4    MAP1-1,R2         FIND LARGEST ADDRESS IN SUB-BLOCK
     5032   01 015A2    681015A5              BGE      SORT3             ..
     5033   01 015A3    464415E2              XW,R4    MAP1-1,R2         SWAP MAP1/MAP2 IF LARGER
     5034   01 015A4    463417E3              XW,R3    MAP2-1,R2         ..
     5035   01 015A5    642015A1     SORT3    BDR,R2   SORT2             SCAN DOWN TO MAP ORIGIN
     5036   01 015A6    354215E3              STW,R4   MAP1,R1           THEN RETURN LARGEST ENTRIES TO END
     5037   01 015A7    353217E4              STW,R3   MAP2,R1           ..
     5038   01 015A8    6410159E              BDR,R1   SORT1             THEN RETURN FOR REMAINING ENTRIES
     5039   01 015A9    02200050 A   SORTEXIT LCI      5                 WHEN FINISHED, PULL REGISTERS
     5040   01 015AA    0A101B66              PLM,R1   STACK             ..
     5041   01 015AB    E8000000 A            B       *R0                AND RETURN TO CALLING PROGRAM
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  114
A    5043                            ************************************************************************
     5044                            *                                                                      *
     5045                            *        GETMAP .. INTERNAL ROUTINE TO GET ALTERNATE MAP BIT ADDRESS.  *
     5046                            *        CALLINGS EQUENCE ..                                           *
     5047                            *                                                                      *
     5048                            *                 BAL,R0   GETMAP   .. LINK R0 WITH R1,R2,R3 SET UP    *
     5049                            *                 ...      ...      .. RETURN IF NOT AN ALTERNATE TRACK*
     5050                            *                 ...      ...      .. ELSE R4=WORD ADDRESS IN 'ALTMAP'*
     5051                            *                                   .. WITH R5=BIT POINTER FOR 'ALTMAP'*
     5052                            *                                                                      *
     5053                            *    ENTER WITH R2 = DEVICE TYPE INDEX                                 *
     5054                            *     SET TWINFLAG IF PRIME TRACK IS TO BE HANDLED IN PAIR             *
     5055                            *                                                                      *
     5056                            ************************************************************************

     5058   01 015AC    22400000 A   GETMAP   LI,R4    0                 GET ABSOLUTE TRACK ADDRESS IN R4/R5
     5059   01 015AD    35401522              STW,R4   TWINFLAG          INIT. FLAG TO 0
     5060   01 015AE    32400001 A            LW,R4    R1                ..
     5061                            *                                   R4=REL TRK IN ALT AREA
     5062   01 015AF    22C00000 A            LI,E1    0                 DETERMINE R4 AND R5
     5063   01 015B0    38441A7E              SW,R4    NTRKS,R2          FOR ALTMAP INDICES
     5064   01 015B1    691015B4              BLZ      %+3
     5065   01 015B2    20C00001 A            AI,E1    1                 E1=WORD INDEX FOR CYL
     5066   01 015B3    680015B0              B        %-3
     5067   01 015B4    30441A7E              AW,R4    NTRKS,R2          R4=TRACK NO. WITHIN CYLINDER

     5069   01 015B5    32501A73              LW,R5    DSKFLAG           IT IS CERTAINLY TRUE THAT THE
     5070   01 015B6    21500001 A            CI,R5    1                 XEROX 7275 DISK IS THE ONLY ONE
     5071   01 015B7    693015BB              BNE      GM20              WITH AN ODD NUMBER OF SECTORS

     5073   01 015B8    33101522     GM10     MTW,1    TWINFLAG          (BUT THIS CODE STINKS ANYHOW)
     5074   01 015B9    35400541              STW,R4   TRACK             SAVE TRACK W/IN CYLINDER ADDRESS
     5075   01 015BA    35C00540              STW,E1   CYL               SAVE TRUE CYLINDER ADDRESS

     5077   01 015BB                 GM20     RES      0
     5078   01 015BB    325815C2              LW,R5    GMASK,R4          R5=BIT INDEX FOR TRK
     5079   01 015BC    3240000C A            LW,R4    E1                R4=WORD INDEX FOR CYL
     5080   01 015BD    6BC41AB4              INT,E1   FDATA,R2
     5081   01 015BE    3840000C A            SW,R4    E1                  IN  ALT AREA

     5083                            * DETERMINE PROPER EXIT
     5084   01 015BF    E9100000 A            BLZ      *R0               1ST EXIT FOR ALTERNATE TRACK

     5086   01 015C0    20000001 A            AI,R0    1
     5087   01 015C1    E8000000 A            B        *R0               2ND EXIT FOR PRIME TRACK
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  115
A    5089         01 015C2           GMASK    EQU      %                 ALTMAP BITS
     5090   01 015C2    80000000 A            GEN,1,31      1,0          TRACK 0
     5091         0000001F           J        DO       31
     5092   01 015C3    40000000 A            GEN,J,1,31-J               0,1,0 TRACKS 1-32
     5093                                     FIN
            01 015C4    20000000 A
            01 015C5    10000000 A
            01 015C6    08000000 A
            01 015C7    04000000 A
            01 015C8    02000000 A
            01 015C9    01000000 A
            01 015CA    00800000 A
            01 015CB    00400000 A
            01 015CC    00200000 A
            01 015CD    00100000 A
            01 015CE    00080000 A
            01 015CF    00040000 A
            01 015D0    00020000 A
            01 015D1    00010000 A
            01 015D2    00008000 A
            01 015D3    00004000 A
            01 015D4    00002000 A
            01 015D5    00001000 A
            01 015D6    00000800 A
            01 015D7    00000400 A
            01 015D8    00000200 A
            01 015D9    00000100 A
            01 015DA    00000080 A
            01 015DB    00000040 A
            01 015DC    00000020 A
            01 015DD    00000010 A
            01 015DE    00000008 A
            01 015DF    00000004 A
            01 015E0    00000002 A
            01 015E1    00000001 A
1 C00   23:14 JUN 20,'83    ALTERNATE TRACK ALLOCATION SUBROUTINES                                PAGE  116
A    5096         01 015E2           TABLES   EQU      %                 DEFINE ORIGIN OF TABLE AREA

     5098   01 015E2                 NMAP     RES      1                 CURRENT LENGTH OF MAP
     5099   01 015E3                 MAP1     RES      MAPSIZE+1         FOR FLAGS & TRACK ADDRESSES
     5100   01 017E4                 MAP2     RES      MAPSIZE+1         FOR ERROR COUNT & ALTERNATE TRACKS
     5101   01 019E5                 ALTMAP   RES      ALTSIZE           ALT MAP (WORD/CYL, 0=>END)
     5102   01 01A17                 POINT    RES      1                 POINTER FOR CURRENT AVAIL. ALT. CYL
     5103   01 01A18                 PRIMESIZ RES      1                 NO. PRIME TRKS IN DISK PACK
     5104   01 01A19                 ERRFLAG  RES      1                 FLAG FOR INITIALIZATION ERROR
     5105   01 01A1A                 OVFFLAG  RES      1                 FLAG FOR MAP OVERFLOW ERROR
     5106   01 01A1B                 ERRTOTAL RES      1                 COUNT OF TOTAL DEVICE I/O ERRORS
     5107   01 01A1C                 REJTOTAL RES      1                 COUNT OF TOTAL REJECTED TRACKS
     5108   01 01A1D                 7275FLAG RES      1                 NOT 0 = DEVICE IS 7275
     5109   01 01A1E                 REJECTS  RES      1                 RUNNING COUNT OF REJECTED TRACKS

     5111         0000043D           NTABLES  EQU      %-TABLES          DEFINE LENGTH OF TABLE AREA

     5113   01 01A1F    0E0E0005 A   PTOTAL   DATA     ILB(R5,24,8)      I/O ERROR COUNT LISTING SPECIFIERS
     5114   01 01A20    48063529 N            DATA     TXT(L('>15 '),3)  ..
     5115   01 01A21    50800008 A   PDISP    DATA     DUP(8,' ')        DISPOSITION PRINT SPECIFIERS
     5116   01 01A22    48101A66 N            DATA     TXT(RJTMSG,8)     ..
     5117   01 01A23    50800005 A   PALT1    DATA     DUP(5,' ')        ALTERNATE CYLINDER PRINT SPECIFIERS
     5118   01 01A24    0C1E000B A            DATA     ILB(R11,16,16)    ..
     5119   01 01A25    50800005 A   PALT2    DATA     DUP(5,' ')        ALTERNATE TRACK PRINT SPECIFIERS
     5120   01 01A26    081E000B A            DATA     ILB(R11,0,16)     ..

     5122   01 01A27    50800001 A   PCOMNT   DATA     DUP(1,' ')        COMMENT FIELD PRINT SPECIFIERS
     5123   01 01A28    48001A33 N            DATA     TXC(UAGMSG)       ..
     5124   01 01A29    48001A2F N            DATA     TXC(UFLMSG)       ..
     5125   01 01A2A    48001A2B N   PHREMSG  DATA     TXC(HREMSG)

     5127                            HREMSG   MESSAGE  'HEADER ERROR'
     5128                            UFLMSG   MESSAGE  'UNABLE TO FLAW'
     5129                            UAGMSG   MESSAGE  'UNABLE TO ASSIGN ALTERNATE'
        1*                           ALTOVER  MESSAGE  DSP,'DEVICE CONFIGURED FOR MORE THAN ',;          *H01
        2*                                             IVL(L(ALTSIZE)),' ALTERNATE CYLINDERS'            *H01
            01 01A3A    00000004 A
     5130                            HEADING  MESSAGE  PGE,' CYLINDER   TRACK  I/O FAILURES    ',;       *G02
     5131                                              'DISPOSITION    ALT CYL   ALT TRACK    COMMENTS'
            01 01A3F    00000003 A
     5132                            STATMSG  MESSAGE  DUP(4,' '),ILB(R1,16,16),DUP(3,' '),ILB(R0,16,16),;
     5133                                              DUP(11,' '),SPE(*R6),DUP(7,' '),SPE(*R7),;
     5134                                              DUP(6,' '),SPE(*R8),DUP(7,' '),SPE(*R9),;
     5135                                              DUP(4,' '),SPE(*R10)
            01 01A43    0000000E A
     5136                            OVFMSG   MESSAGE  DSP,'MORE THAN ',IVL(NMAP),' ENTRIES TO ERROR MAP, ',;
     5137                                              'INITIALIZATION INCOMPLETE'
            01 01A52    00000005 A
     5138                            ENDSTAT  MESSAGE  SSP,'TOTAL I/O ERRORS = ',IVL(IOERRORS),;
     5139                                              ', TOTAL I/O FAILURES = ',IVL(ERRTOTAL),;
     5140                                              ', TOTAL TRACKS REJECTED = ',IVL(REJTOTAL),;
     5141                                              DUP(4,' '),TXT(R4,8)
            01 01A58    00000009 A
     5142                            ERRMSG   MESSAGE  DSP,'INITIALIZATION ABORTED FOR THIS DEVICE'
            01 01A62    00000002 A
     5143                                     BOUND    8
     5144   01 01A66    D9C5D1C5 A   RJTMSG   TEXT     'REJECTED'        TEXT TO PRINT 'REJECTED'
            01 01A67    C3E3C5C4 A

1 C00   23:14 JUN 20,'83    10/10/73 DEVICE PARAMETER DEFINITIONS AND TABLES                      PAGE  117
A    5147                            ************************************************************************
     5148                            *                                                                      *
     5149                            *        DEVICE PARAMETER GENERATION PROGRAM                           *
     5150                            *                                                                      *
     5151                            *        THESE MACROS ALLOW SYMBOLIC AND PARAMETRIC GENERATION OF      *
     5152                            *        TABLES OF RANDOM-ACCESS DEVICE DATA TABLES.  DEFINITION       *
     5153                            *        AND GENERATION IS CONTROLLED THROUGH PROGRAMMER SPECIFIED     *
     5154                            *        DATA NAMES AND FORMATS.                                       *
     5155                            *                                                                      *
     5156                            ************************************************************************

     5158                                     CLOSE    FLAW,SENSE,START,CYL,SECTOR

     5160         00000000           NITEMS   SET      0                 INITIALIZE COUNT OF ITEM NAMES

     5162         00000000           ITEM     CNAME                      TO DEFINE DATA-DEFINITION MACROS
     5163                                     PROC                       ..
     5164                            J        DO       NUM(AF)           DEFINE DATA NAMES BY LIST POSITION
     5165                            AF(J)    EQU      NITEMS+J          ..
     5166                                     FIN                        ..
     5167                            NITEMS   SET      NITEMS+J          UPDATE NUMBER OF DATA ITEMS
     5168                                     PEND                       ..

     5170         00000001           SEEK     CNAME    NBSK,1
     5171         00000001           SEEK     FNAME    NBSK,0
     5172                                     ITEM     NBSK,NBC,NBT,NBS  SEEK ADDRESS FORMAT
     5173         00000005           CLASS    CNAME    PCODE,1
     5174         00000005           CLASS    FNAME    PCODE,0
     5175                                     ITEM     PCODE,SCODE,OCODE PATTERN, STROBE, ODD-TRACK
     5176         00000008           DIMEN    CNAME    CYLS,1
     5177         00000008           DIMEN    FNAME    CYLS,0
     5178                                     ITEM     CYLS,TRKS,SECTS   ADDRESSING DIMENSIONS
     5179         0000000B           FLAGS    CNAME    SINC,1
     5180         0000000B           FLAGS    FNAME    SINC,0
     5181                                     ITEM     SINC,WCHK         SPECIAL FUNCTION FLAGS
     5182         0000000D           SENSE    CNAME    NBSN,1
     5183         0000000D           SENSE    FNAME    NBSN,0
     5184                                     ITEM     NBSN,NSC,NST,NSS  SENSE DATA FORMAT
     5185         00000011           ALTERN   CNAME    AORG,1
     5186         00000011           ALTERN   FNAME    AORG,0
     5187                                     ITEM     AORG,ACODE        ALTERNATE ASSIGNMENTS
     5188                        *S* SEGSIZE  CNAME    SEGLEN,1
     5189         00000013           SEGSIZE  FNAME    SEGLEN,0
     5190                                     ITEM     SEGLEN            TRACKS IN LOGICAL SEGMENT
     5191                        *S* GRANSIZE CNAME    WGRAN,1
     5192         00000014           GRANSIZE FNAME    WGRAN,0
     5193                                     ITEM     WGRAN             STANDARD DEVICE 'GRANULE'
     5194         00000015           SECTSIZE CNAME    WSECT,1
     5195         00000015           SECTSIZE FNAME    WSECT,0
     5196                                     ITEM     WSECT             SECTOR SIZE IN WORDS

     5198                                     PROC                       DEFINE ALL 'ITEM'-GENERATED CNAMES
     5199                                     LOCAL    J,K               ..
     5200                            J        DO       NUM(AF)*NAME(2)   IF COMMAND, DEFINE TABLE ENTRIES
     5201                            K        SET      I,NAME(1)+J-1     DEFINE WHERE ITEM GOES IN TABLE
     5202                            TABLE(K) SET      AF(J)             INSERT ARGUMENT IN DATA BASE
     5203                                     FIN                        ..
     5204                                     PEND     NAME(1)           RETURN TABLE INDEX IF FUNCTION
1 C00   23:14 JUN 20,'83    10/10/73 DEVICE PARAMETER DEFINITIONS AND TABLES                      PAGE  118
A    5207         00000000           DEFAULT  CNAME                      TO SPECIFY DEFAULT VALUES FOR ITEMS
     5208                                     PROC                       ..
     5209                                     LOCAL    J,K               ..
     5210                            K        SET      LF                DEFINE K TO BE TABLE INDEX FOR NAME
     5211                            #        DO       I                 ITERATE FOR EACH DEVICE ENTRY
     5212                            J        DO       NUM(AF)              DEFINE ALL VALUES
     5213                            TABLE(#,J+K-1) SET AF(J)                       ..
     5214                                     FIN                                   ..
     5215                                     FIN                        ..
     5216                                     PEND                       ..

     5218         00000000           DEVICE   CNAME                      TO DEFINE A RANDOM ACCESS DEVICE
     5219                                     PROC                       ..
     5220                            I        SET      I+1               INCREMENT MODEL COUNTER
     5221                            LF       DATA     STRINGS           DEFINE NAME LIST POINTER
     5222                                     LIST     OFF               TURN OFF LISTING OF TEXTC NAME
     5223                                     EMIT     AF
     5224                                     LIST     ON                ..
     5225                                     PEND                       ..

     5227         00000000           GTAB     CNAME                      TO DEFINE PARAMETER TABLE ENTRIES
     5228                                     PROC                       ..
     5229                                     BOUND    4                 REFERENCE TABLE ON WORD BOUNDARY
     5230                            DATA     SET      0                 INITIALIZE DATA WORD ITEM
     5231                            F        SET      32                ASSUME DEFAULT FIELD OF 32 BITS
     5232                            J        DO       NUM(CF)-1         IS A FIELD LIST SPECIFIED.
     5233                            F(J)     SET      CF(J+1)           YES, DEFINE FIELD 'F' FROM LIST
     5234                                     FIN                        ..
     5235                            J        DO       NUM(AF)-NUM(F)    DOES FIELD LIST COVER ARGUMENT LIST.
     5236                            F        SET      F,F(NUM(F))       NO, USE LAST ENTRY AS DEFAULT
     5237                                     FIN                        ..
     5238                            J        DO       I                 DO ONE ITEM FOR EACH DEVICE
     5239                            K        DO       NUM(AF)           COUNT SPECIFIED ITEM NAMES
     5240                                     DO       AF(K)=0           IS A NULL ENTRY SPECIFIED.
     5241                            DATA(K)  SET      0                 YES, SPECIFY ZERO ITEM FOR IT
     5242                                     ELSE                       NO, USE GIVEN ITEM NAME
     5243                            DATA(K)  SET      TABLE(J,AF(K))    GET J'TH TABLE ITEM FOR K'TH NAME
     5244                                     FIN                        ..
     5245                                     FIN                        ..
     5246                                     DO       J=1               IS THIS THE FIRST GENERATED ITEM
     5247                            LF       GEN,F    DATA              YES, DO A STRAIGHT GENERATE
     5248                                     ELSE                       NO, GENERATE AND PRINT CONTINUATION
     5249                                     GEN,F    DATA
     5250                                     FIN                        ..
     5251                                     FIN                        ..
     5252                                     PEND                       ..

     5254         00000000           CORRESP  FNAME                      TO DEFINE TABLE CORRESPONDENCE
     5255                                     PROC                       ..
     5256                                     PEND     TABLE(#,AF)       RETURN CORRESPONDING TABLE ENTRY
1 C00   23:14 JUN 20,'83    10/10/73 DEVICE PARAMETER DEFINITIONS AND TABLES                      PAGE  119
A    5259                            ************************************************************************
     5260                            *                                                                      *
     5261                            *        DIRECT-ACCESS DEVICE DEFINITIONS                              *
     5262                            *                                                                      *
     5263                            ************************************************************************

     5265   01 01A68    00000009 A   NDEVICES DATA     NUMLIST           NUMBER OF DEVICES DEFINED
     5266   01 01A69                 DEVICES  RES      0                 ORIGIN OF DEVICE NAME LIST

     5268         00000001           ODD      EQU      1
     5269         00000000           I        SET      0                 INITIALIZE DEVICE COUNT


     5272   01 01A69    0000030B     7242PARS DEVICE   '7242'            XEROX 7242
     5273                                     CLASS    0                 .. DEVICE CLASS=0
     5274                                     DIMEN    203,20,6          .. CYL/MOD,TRK/CYL,SEC/TRK
     5275                                     SEEK     4,16,8,8          .. SEEK ADDRESS FORMAT
     5276                                     SENSE    10,8,5,3          .. FORMAT OF DEVICE SENSE DATA
     5277                                     ALTERN   200               .. SPARE CYLINDER ASSIGNMENTS
     5278                                     SECTSIZE 256               .. 256 WORDS/SECTOR
     5279                                     FLAGS    1,1               .. INCREMENT SECTOR AFTER ERROR


     5282   01 01A6A    0000030D     D215PARS DEVICE   'D215'            TELEFILE 215 DUAL DENSITY
     5283                                     CLASS    2
     5284                                     DIMEN    406,20,6
     5285                                     SEEK     4,16,8,8
     5286                                     SENSE    10,9,5,3
     5287                                     ALTERN   404
     5288                                     SECTSIZE 256
     5289                                     FLAGS    1,1

     5291   01 01A6B    0000030F     D225PARS DEVICE   'D225'            TELEFILE 225 QUAD DISK
     5292                                     CLASS    4
     5293                                     DIMEN    406,20,12
     5294                                     SEEK     4,16,8,8
     5295                                     SENSE    10,9,5,4
     5296                                     ALTERN   404
     5297                                     SECTSIZE 256
     5298                                     FLAGS    1,1

     5300   01 01A6C    00000311     7270PARS DEVICE   '7270'            XEROX 7270
     5301                                     CLASS    0
     5302                                     DIMEN    406,20,6
     5303                                     SEEK     4,16,8,8
     5304                                     SENSE    10,9,5,3
     5305                                     ALTERN   400
     5306                                     SECTSIZE 256
     5307                                     FLAGS    1,1
1 C00   23:14 JUN 20,'83    10/10/73 DEVICE PARAMETER DEFINITIONS AND TABLES                      PAGE  120
A    5309   01 01A6D    00000313     7272PARS DEVICE   '7272'            TELEFILE 225 QUAD DRIVE THAT WAS
     5310                                     CLASS    4                   SYSGENED AS A 7270
     5311                                     DIMEN    406,20,12
     5312                                     SEEK     4,16,8,8
     5313                                     SENSE    10,9,5,4
     5314                                     ALTERN   400
     5315                                     SECTSIZE 256
     5316                                     FLAGS    1,1

     5318   01 01A6E    00000315     7275PARS DEVICE   '7275'            XEROX 7275
     5319                                     CLASS    1,,ODD            ..SET ODD-TRACK FLAG
     5320                                     DIMEN    411,19,11
     5321                                     SEEK     4,16,8,8
     5322                                     SENSE    16,9,5,5
     5323                                     ALTERN   404
     5324                                     SECTSIZE 256
     5325                                     FLAGS    0,1               DO NOT INCREMENT SECTOR AFTER ERROR


        1*  01 01A6F    00000317     3281PARS DEVICE   '3281'            STC 8350 WINCHESTER             *H00
     5329                                     CLASS    3
     5330                                     DIMEN    555,30,16
     5331                                     SEEK     4,16,8,8
     5332                                     SENSE    16,10,5,5
     5333                                     ALTERN   546
     5334                                     SECTSIZE 256
     5335                                     FLAGS    0,1               DO NOT INCREMENT SECTOR AFTER ERROR

        2*  01 01A70    00000319     3282PARS DEVICE   '3282'            STC 8775 WINCHESTER             *H00
        3*                                    CLASS    3                                                 *H00
        4*                                    DIMEN    1123,30,16                                        *H00
        5*                                    SEEK     4,16,8,8                                          *H00
        6*                                    SENSE    16,11,5,5                                         *H00
        7*                                    ALTERN   1092              CPV LIMITED                     *H00
        8*                                    SECTSIZE 256                                               *H00
        9*                                    FLAGS    0,1               NO INCREMENT ON ERROR           *H00

       11*  01 01A71    0000031B     3283PARS DEVICE   '3283'            T302/306 REMOVABLE MEDIA        *H00
       12*                                    CLASS    3                                                 *H00
       13*                                    DIMEN    815,19,16                                         *H00
       14*                                    SEEK     4,16,8,8                                          *H00
       15*                                    SENSE    16,10,5,5                                         *H00
       16*                                    ALTERN   810                                               *H00
       17*                                    SECTSIZE 256                                               *H00
       18*                                    FLAGS    0,1               NO INCREMENT ON ERROR           *H00

     5337                            ************************************************************************
     5338                            * THE FOLLOWING DEFAULTS APPLY TO EVERY DEVICE IN THE SYSTEM           *
     5339                            * RESTRICTIONS IN THE PROCEDURES REQUIRE A PARAMETER BE                *
     5340                            * EXPLICITLY SPECIFIED IN EACH DEFINITION OR NOT AT ALL                *
     5341                            ************************************************************************

     5343                            SEGSIZE  DEFAULT  CORRESP(TRKS)     DEFAULT VALUES FOR TRACKS/SEGMENT
     5344                            GRANSIZE DEFAULT  512               DEFAULT GRANULE SIZE

     5346         00000009           NUMLIST  EQU      I                 NUMBER OF DEVICES IN SYSTEM
1 C00   23:14 JUN 20,'83    10/10/73 DEVICE PARAMETER DEFINITIONS AND TABLES                      PAGE  121
A    5348                            ************************************************************************
     5349                            *                                                                      *
     5350                            *        DEVICE PARAMETER TABLES FOLLOW .....                          *
     5351                            *                                                                      *
     5352                            ************************************************************************

     5354   01 01A72                 DEVICE   RES      1                 DEVICE INDEX AND DEVICE ADDRESS
     5355   01 01A73                 DSKFLAG  RES      1                 DEVICE CLASS
     5356   01 01A74                 PATFLAG  RES      1                 PATTERN CLASS

     5358   01 01A75    000000CB A   NCYLS    GTAB     CYLS              DEVICE CYLINDERS/MODULE PARAMETER
            01 01A76    00000196 A
            01 01A77    00000196 A
            01 01A78    00000196 A
            01 01A79    00000196 A
            01 01A7A    0000019B A
            01 01A7B    0000022B A
            01 01A7C    00000463 A
            01 01A7D    0000032F A
     5359   01 01A7E    00000014 A   NTRKS    GTAB     TRKS              DEVICE TRACKS/CYLINDER PARAMETER
            01 01A7F    00000014 A
            01 01A80    00000014 A
            01 01A81    00000014 A
            01 01A82    00000014 A
            01 01A83    00000013 A
            01 01A84    0000001E A
            01 01A85    0000001E A
            01 01A86    00000013 A
     5360   01 01A87    00000006 A   NSECS    GTAB     SECTS             DEVICE SECTORS/TRACK PARAMETER
            01 01A88    00000006 A
            01 01A89    0000000C A
            01 01A8A    00000006 A
            01 01A8B    0000000C A
            01 01A8C    0000000B A
            01 01A8D    00000010 A
            01 01A8E    00000010 A
            01 01A8F    00000010 A
     5361   01 01A90    04100808 A   ADATA    GTAB,8   NBSK,NBC,NBT,NBS  GENERATE DEVICE SEEK DATA ITEMS
            01 01A91    04100808 A
            01 01A92    04100808 A
            01 01A93    04100808 A
            01 01A94    04100808 A
            01 01A95    04100808 A
            01 01A96    04100808 A
            01 01A97    04100808 A
            01 01A98    04100808 A
     5362   01 01A99    0A080503 A   BDATA    GTAB,8   NBSN,NSC,NST,NSS  DEVICE SENSE DATA FORMAT ITEMS
            01 01A9A    0A090503 A
            01 01A9B    0A090504 A
            01 01A9C    0A090503 A
            01 01A9D    0A090504 A
            01 01A9E    10090505 A
            01 01A9F    100A0505 A
            01 01AA0    100B0505 A
            01 01AA1    100A0505 A
1 C00   23:14 JUN 20,'83    10/10/73 DEVICE PARAMETER DEFINITIONS AND TABLES                      PAGE  122
A    5364   01 01AA2    02000100 A   SDATA    GTAB,16  WGRAN,WSECT       DEVICE GRANULE/SECTOR SIZE DATA
            01 01AA3    02000100 A
            01 01AA4    02000100 A
            01 01AA5    02000100 A
            01 01AA6    02000100 A
            01 01AA7    02000100 A
            01 01AA8    02000100 A
            01 01AA9    02000100 A
            01 01AAA    02000100 A
     5365   01 01AAB    00000014 A   SEGDATA  GTAB     SEGLEN            DEVICE TRACKS/SEGMENT DATA
            01 01AAC    00000014 A
            01 01AAD    00000014 A
            01 01AAE    00000014 A
            01 01AAF    00000014 A
            01 01AB0    00000013 A
            01 01AB1    0000001E A
            01 01AB2    0000001E A
            01 01AB3    00000013 A
     5366                            FDATA    GTAB,1,1,1,1,12,16   SCODE,;    GENERATE FLAG BITS, ALT CYL,
     5367   01 01AB4    30C80000 A            OCODE,SINC,WCHK,AORG,PCODE      AND PATTERN CLASS
            01 01AB5    31940002 A
            01 01AB6    31940004 A
            01 01AB7    31900000 A
            01 01AB8    31900004 A
            01 01AB9    51940001 A
            01 01ABA    12220003 A
            01 01ABB    14440003 A
            01 01ABC    132A0003 A
1 C00   23:14 JUN 20,'83    10/1073  ... ABORT, DUMP, ENDJOB ... TERMINATION ROUTINES             PAGE  123
A    5369                            ************************************************************************
     5370                            *                                                                      *
     5371                            *        JOB ABORT HANDLER                                             *
     5372                            *                                                                      *
     5373                            ************************************************************************

     5375   01 01ABD    74001AE6     ABORT    STCF     SAVECCF           ABORT HANDLER, SAVE CONDITION CODE
     5376   01 01ABE    02200000 A            LCI      0                 SAVE ALL REGISTERS
     5377   01 01ABF    2B001AE7              STM,R0   SAVEREGS          ..
     5378   01 01AC0    20FFFFFF A            AI,R15   -1                SET TRUE CALL ADDRESS TO 'ABORT'
     5379   01 01AC1    35F00002 A            STW,R15  R2                SAVE IN PERMANENT REGISTER

     5381   01 01AC2    6AF01091              CALL     TYPE
     5382   01 01AC3    22D01B3B              EFA      DSPACE
     5383   01 01AC4    6AF01091              CALL     TYPE              PRINT OUT ABORT MESSAGE
     5384   01 01AC5    22D01AF7              EFA      ABORTMSG          ..
     5385   01 01AC6    6AF01091              CALL     TYPE
     5386   01 01AC7    22D01B3B              EFA      DSPACE
     5387   01 01AC8    6AF01091              CALL     TYPE              PRINT REGISTER CONTENTS
     5388   01 01AC9    22D01AFD              EFA      REGMSG            ..
     5389   01 01ACA    6AF01091              CALL     TYPE
     5390   01 01ACB    22D01B3B              EFA      DSPACE
     5391   01 01ACC    6AF01091              CALL     TYPE              DUMP REGISTERS ON PRINTER
     5392   01 01ACD    22D01B02              EFA      RLINE1            ..
     5393   01 01ACE    6AF01091              CALL     TYPE              ..
     5394   01 01ACF    22D01B0D              EFA      RLINE2            ..
     5395   01 01AD0    6AF01091              CALL     TYPE              ..
     5396   01 01AD1    22D01B18              EFA      RLINE3            ..
     5397   01 01AD2    6AF01091              CALL     TYPE              ..
     5398   01 01AD3    22D01B23              EFA      RLINE4            ..

     5400   01 01AD4    22100001 A            LI,R1    1
     5401   01 01AD5    53021A72              MTH,0    DEVICE,R1         SKIP SENSE IF NO DEVICE DEFINED
     5402   01 01AD6    68301AE3              BEZ      ABORT0

     5404   01 01AD7    22100000 A            LI,R1    0
     5405   01 01AD8    22200002 A            LI,R2    2
     5406   01 01AD9    22300003 A            LI,R3    3

     5408   01 01ADA    6AF00F7E              CALL     SENSADD
     5409   01 01ADB    22D00001 A            EFA      R1                CODE = 0, NO ERROR
     5410   01 01ADC    55D0346E              RTH      SKADR1            RETURN CYLINDER
     5411   01 01ADD    75D4346E              RTB      SKADR1,R2        ..     TRACK
     5412   01 01ADE    75D6346E              RTB      SKADR1,R3         ..     SECTOR

     5414   01 01ADF    6AF01091              CALL     TYPE
     5415   01 01AE0    22D01B3B              EFA      DSPACE
     5416   01 01AE1    6AF01091              CALL     TYPE
     5417   01 01AE2    22D01B2E              EFA      SENMSG

     5419         01 01AE3           ABORT0   EQU      %
     5420   01 01AE3    6AF01091              CALL     TYPE
     5421   01 01AE4    22D01B3B              EFA      DSPACE

     5423   01 01AE5    68000910              B        ENDPROC

     5425   01 01AE6                 SAVECCF  RES      1                 SAVE AREA FOR CONDITION CODE
     5426   01 01AE7                 SAVEREGS RES      16                SAVE AREA FOR REGISTERS
1 C00   23:14 JUN 20,'83    10/1073  ... ABORT, DUMP, ENDJOB ... TERMINATION ROUTINES             PAGE  124
A    5428         283E1AE7 S         R        EQU      XLZ(SAVEREGS)     DEFINE REGISTER PRINT SPECIFIER
     5429         50800003           S        EQU      DUP(3,' ')        SKIP OF 3 SPACES

     5431                            ABORTMSG MESSAGE  TSP,'VOLINIT ABORT AT LOCATION ',XLZ(R2,15,17),;
     5432                                              ', CONDITION CODE = ',BLZ(SAVECCF,0,4)
            01 01AF7    00000005 A
     5433                            REGMSG   MESSAGE  SSP,'     ',S,'* * * REGISTERS * * *'
            01 01AFD    00000004 A
     5434                            RLINE1   MESSAGE  SSP,'00-03',S,R+0,S,R+1,S,R+2,S,R+3
            01 01B02    0000000A A
     5435                            RLINE2   MESSAGE  SSP,'04-07',S,R+4,S,R+5,S,R+6,S,R+7
            01 01B0D    0000000A A
     5436                            RLINE3   MESSAGE  SSP,'08-11',S,R+8,S,R+9,S,R+10,S,R+11
            01 01B18    0000000A A
     5437                            RLINE4   MESSAGE  SSP,'12-15',S,R+12,S,R+13,S,R+14,S,R+15
            01 01B23    0000000A A
     5438                            SENMSG   MESSAGE  SSP,'SENSE ADDRESS',SSP,;
     5439                                     ' CYL=',XLZ(SKADR1,0,16),', TRK=',XLZ(SKADR1,16,8),;
     5440                                     ', SEC=',XLZ(SKADR1,24,8)
            01 01B2E    00000009 A
     5441                            EJECT    MESSAGE  PGE,'  '
            01 01B38    00000002 A
     5442                            DSPACE   MESSAGE  DSP,'  '          MUST BE >1 CHARACTER
            01 01B3B    00000002 A
1 C00   23:14 JUN 20,'83    10/10/73           .. STACK & FREE STORAGE MANAGEMENT FUNCTIONS       PAGE  125
A    5446                            ************************************************************************
     5447                            *                                                                      *
     5448                            *        1.  ALLOCATE .. TO RESERVE BLOCK OF CORE                      *
     5449                            *                 CALL     ALLOCATE .. CALL TO GET BLOCK               *
     5450                            *                 PAR      NWORDS   .. NUMBER OF WORDS NEEDED          *
     5451                            *                 RTN      START    .. RETURN STARTING ADDRESS         *
     5452                            *                                                                      *
     5453                            *        2.  RELEASE .. TO RELEASE BLOCK TO FREE STORAGE               *
     5454                            *                 CALL     RELEASE  .. CALL TO RELEASE BLOCK           *
     5455                            *                 EFA      START    .. PASS STARTING ADDRESS           *
     5456                            *                 PAR      NWORDS   .. PASS NUMBER OF WORDS IN BLOCK   *
     5457                            *                                                                      *
     5458                            *        3.  SETSTACK .. TO INITIALIZE PUSHDOWN STACK DOUBLEWORD       *
     5459                            *                                                                      *
     5460                            *        WARNING:  BLOCKS ARE ALLOCATED IN DESCENDING ORDER FROM       *
     5461                            *        THE END OF THE STACK (THIS IS A SIMPLE ALGORITHM).  BLOCKS    *
     5462                            *        'ALLOCATED' IN ORDER B1 ... BN MUST BE 'RELEASED' IN ORDER    *
     5463                            *        BN ... B1.                                                    *
     5464                            *                                                                      *
     5465                            ************************************************************************

     5467   01 01B3E    6AC03308     ALLOCATE MODULE   IN(NWORDS),OUT(START),USE(R1)

     5469   01 01B40    52001B67              LH,R0    STACK+1           PICK UP STACK SPACE COUNT
     5470   01 01B41    38000546              SW,R0    NWORDS            DELETE REQUESTED BLOCK SIZE
     5471   01 01B42    69101B5D              BLZ      OVERFLOW          IS THERE ENOUGH ROOM FOR BLOCK.
     5472   01 01B43    55001B67              STH,R0   STACK+1           YES, UPDATE STACK AVAILABLE WORD CT
     5473   01 01B44    30001B66              AW,R0    STACK             COMPUTE ALLOCATED BLOCK ORIGIN
     5474   01 01B45    20000001 A            AI,R0    1                 ..
     5475   01 01B46    35000547              STW,R0   START             RETURN RESULT TO CALLING PROGRAM
     5476   01 01B47    6AC03314              EXIT     ALLOCATE          AND EXIT TO CALLING PROGRAM

     5478   01 01B49    6AC03308     RELEASE  MODULE   IN(BLOCK,BLKSIZE),USE(R2)

     5480   01 01B4B    32000548              LW,R0    BLOCK             VALIDITY-CHECK BLOCK ORIGIN
     5481   01 01B4C    58001B67              SH,R0    STACK+1           ..
     5482   01 01B4D    38001B66              SW,R0    STACK             ..
     5483   01 01B4E    68201B5A              BLEZ     UNDRFLOW          ..
     5484   01 01B4F    64001B5A              BDR,R0   UNDRFLOW          ..
     5485   01 01B50    32000549              LW,R0    BLKSIZE           GOOD, COMPUTE NEW STACK SPACE COUNT
     5486   01 01B51    50001B67              AH,R0    STACK+1           ..
     5487   01 01B52    21001770 A            CI,R0    STAKSIZE          VALIDITY-CHECK NEW SPACE COUNT
     5488   01 01B53    69201B5A              BG       UNDRFLOW          ..
     5489   01 01B54    55001B67              STH,R0   STACK+1           VALID, UPDATE STACK POINTER
     5490   01 01B55    6AC03314              EXIT     RELEASE           AND RETURN TO CALLING PROGRAM
1 C00   23:14 JUN 20,'83    10/10/73           .. STACK & FREE STORAGE MANAGEMENT FUNCTIONS       PAGE  126
A    5493   01 01B57    12C01B68     SETSTACK LD,R12   NEWSTACK          SET NEW STACK POINTER DOUBLEWORD
     5494   01 01B58    15C01B66              STD,R12  STACK             ..
     5495   01 01B59    E800000F A            B       *LNK               AND RETURN TO CALLING PROGRAM

     5497   01 01B5A    6AF01091     UNDRFLOW CALL     TYPE              STACK UNDERFLOW
     5498   01 01B5B    22D01B63              EFA      UNDERMSG
     5499   01 01B5C    6AF01ABD              CALL     ABORT

     5501   01 01B5D    6AF01091     OVERFLOW CALL     TYPE              STACK OVERFLOW
     5502   01 01B5E    22D01B60              EFA      OVERMSG
     5503   01 01B5F    6AF01ABD              CALL     ABORT

     5505                            OVERMSG  MESSAGE  DSP,'STACK OVERFLOW  - PROGRAM ERROR'
            01 01B60    00000002 A
     5506                            UNDERMSG MESSAGE  DSP,'STACK UNDERFLOW - PROGRAM ERROR'
            01 01B63    00000002 A

     5508         00001770           STAKSIZE EQU      6000

     5510                                     BOUND    8                 SET POINTER DOUBLEWORD BOUNDARY
     5511   01 01B66    00001B69     STACK    DATA     STAKBUFF-1        INITIALIZE TOP OF PUSHDOWN STACK
     5512   01 01B67    1770     A            DATA,2   STAKSIZE          INITIALIZE STACK SPACE COUNT
     5513   01 01B67 2  0000     A            DATA,2   0                 INITIALIZE WORD COUNT

     5515   01 01B68    00001B69     NEWSTACK DATA     STAKBUFF-1        PROTOTYPE STACK POINTER DOUBLEWORD
     5516   01 01B69    1770     A            DATA,2   STAKSIZE          ..
     5517   01 01B69 2  0000     A            DATA,2   0                 ..

     5519   01 01B6A                 STAKBUFF RES      STAKSIZE          RESERVE PUSHDOWN STACK BUFFER
1 C00   23:14 JUN 20,'83    10/10/73           .. DATE, TIME .. SPECIAL KEY-IN PROCESSORS         PAGE  127
A    5523                            ************************************************************************
     5524                            *                                                                      *
     5525                            *        CALLING SEQUENCES ..                                          *
     5526                            *                                                                      *
     5527                            *        1.       CALL     DATE     .. TO INPUT THE DATE               *
     5528                            *                 RTN      MONTH    .. RETURN NUMERIC MONTH IN BCD     *
     5529                            *                 RTN      DAY      .. RETURN DAY IN BCD               *
     5530                            *                 RTN      YEAR     .. RETURN YEAR IN BCD              *
     5531                            *                                                                      *
     5532                            ************************************************************************

     5534   01 032DA    6AC03308     DATE     MODULE   OUT(MONTH,DAY,YEAR),USE(R3)

     5536   01 032DC    23000000 A   DATEIN   MI,R0    0                 INITIALIZE 4-WORD INPUT BUFFER
     5537   01 032DD    150032FC              STD,R0   KEYBUFF           ..
     5538   01 032DE    150032FE              STD,R0   KEYBUFF+2         ..

     5540   01 032DF    6AF0104A              CALL     TYPEIN            THEN WAIT FOR KEYIN MESSAGE
     5541   01 032E0    22D03300              EFA      DATINMSG          .. PASS REQUEST MESSAGE
     5542   01 032E1    22D032FC              EFA      KEYBUFF           .. ORIGIN OF KEYIN BUFFER
     5543   01 032E2    22D00004 A            IPAR     4                 .. LENGTH OF BUFFER IN WORDS

     5545   01 032E3    323032FC              LW,R3    KEYBUFF           VALIDITY-CHECK COMMANDS
     5546   01 032E4    23200100 A            MI,R2    1**8              AND ISOLATE INPUT CHARACTER COUNT
     5547   01 032E5    202FFFF5 A            AI,R2    -11
     5548   01 032E6    692032DC              BGZ      DATEIN            IN 11 OR FEWER CHARACTERS

     5550   01 032E7    22100001 A            LI,R1    1                 INDEX INTO BUFFER FOR DATE
     5551   01 032E8    222FFFFD A            LI,R2    -3                COUNT 3 FIELDS FOR MONTH/DAY/YEAR
     5552   01 032E9    223000F0 A   DATEIN1  LI,R3    '0'               ALLOW SINGLE DEFAULT ZERO LEAD
     5553   01 032EA    720232FC     DATEIN2  LB,R0    KEYBUFF,R1        PICK UP NEXT INPUT CHARACTER
     5554   01 032EB    20100001 A            AI,R1    1                 ..
     5555   01 032EC    190032FA              CLM,R0   NUMTEST           IS CHARACTER NUMERIC.
     5556   01 032ED    699032F2              BCS,9    DATEIN3           NO, PRESUMABLY IS SEPARATOR
     5557   01 032EE    25300008 A            SLS,R3   8                 YES, INSERT IN PARTIAL RESULT
     5558   01 032EF    49300000 A            OR,R3    R0                ..
     5559   01 032F0    684032EA              BNOV     DATEIN2           ALLOW AT MOST 2 CHARACTERS
     5560   01 032F1    680032DC              B        DATEIN

     5562   01 032F2    6B300003 A   DATEIN3  INT,R3   R3                SEPARATOR, PICK UP 2-DIGIT FIELD
     5563   01 032F3    2130FF00 A            CI,R3    X'FF00'           WAS FIELD NON-EMPTY.
     5564   01 032F4    684032DC              BAZ      DATEIN            RE-EXECUTE THE KEYIN
     5565   01 032F5    3534054D              STW,R3   MONTH+3,R2        YES, MOVE RESULT TO ARGUMENT LIST
     5566   01 032F6    652032E9              BIR,R2   DATEIN1           RETURN FOR MORE FIELDS
     5567   01 032F7    6AC03314              EXIT     DATE

     5569                                     BOUND    8
     5570   01 032FA    000000F0 A   NUMTEST  DATA     '0'               COMPARE LIMITS FOR NUMERIC TEST
     5571   01 032FB    000000F9 A            DATA     '9'               ..

     5573   01 032FC                 KEYBUFF  RES      4                 BUFFER FOR KEY-IN COMMANDS

     5575                            DATINMSG MESSAGE  'PLEASE KEY-IN DATE (MM/DD/YY): '
1 C00   23:14 JUN 20,'83    10/10/73          .. ENTER, EXIT .. MODULE LINKAGE FUNCTIONS          PAGE  128
A    5579                            ************************************************************************
     5580                            *                                                                      *
     5581                            *        CALLING SEQUENCES ..                                          *
     5582                            *                                                                      *
     5583                            *                 BAL,R12      <NAME>                                  *
     5584                            *                 GEN,4,4,7,17 NSTACK,DISP,NPARS,PARBUFF               *
     5585                            *                                                                      *
     5586                            *        WHERE:   'NSTACK' = NUMBER OF REGISTERS TO PUSH/PULL          *
     5587                            *                 'DISP' = RETURN DISPLACEMENT (FOR 'EXIT')            *
     5588                            *                 'NPARS' = NUMBER OF INPUT/OUTPUT PARAMETERS          *
     5589                            *                 'PARBUFF' = PARAMETER STORAGE AREA                   *
     5590                            *                                                                      *
     5591                            *                                                                      *
     5592                            *        SYSTEM ERASABLE REGISTERS             ..                      *
     5593                            *                                                                      *
     5594                            *                R12           .. LINKAGE TO ENTER/EXIT                *
     5595                            *                R13           .. PARAMETER PASSAGE REGISTER           *
     5596                            *                R14           .. WORKING REGISTER FOR ENTER/EXIT      *
     5597                            *                R15           .. STANDARD MODULE LINKAGE REGISTER     *
     5598                            *                                                                      *
     5599                            ************************************************************************

     5601   01 03308    B2E0000C A   ENTER    LW,R14  *R12               PICK UP ENTRY CONTROL WORD
     5602   01 03309    4BE03321              AND,R14  PARMASK           ISOLATE PARAMETER BUFFER/COUNT
     5603   01 0330A    20EE0000 A            AI,R14   -1**17            ARE THERE ANY INPUT PARAMETERS.
     5604   01 0330B    69103310              BLZ      ENTER2            NO, IGNORE PARAMETER SETUP

     5606   01 0330C    E700000F A   ENTER1   EXU     *R15               YES, PICK UP NEXT INPUT PARAMETER
     5607   01 0330D    B5D0000E A            STW,R13 *R14               MOVE VALUE TO PARAMETER BUFFER
     5608   01 0330E    10E03322              AD,R14   UPDATE            UPDATE BUFFER/COUNT/LINKAGE
     5609   01 0330F    6920330C              BGZ      ENTER1            ARE THERE ANY MORE PARAMETERS.

     5611   01 03310    F020000C A   ENTER2   LC      *R12               NO, PUSH SPECIFIED WORKING REGISTERS
     5612   01 03311    0BF01B66              PSM,R15  STACK             .. LINKAGE IS INCLUDED IN COUNT
     5613   01 03312    20C00001 A            AI,R12   1                 SET RETURN ADDRESS IN 'ENTER' LINK
     5614   01 03313    E800000C A            B       *R12               AND RETURN TO CALLING MODULE

     5616   01 03314    B2E0000C A   EXIT     LW,R14  *R12               PICK UP EXIT CONTROL WORD
     5617   01 03315    6BC0000E A            INT,R12  R14               PICK UP STACK COUNT, DISPLACEMENT
     5618   01 03316    0AF01B66              PLM,R15  STACK             PULL STACKED WORKING REGISTERS
     5619   01 03317    4BE03321              AND,R14  PARMASK           ISOLATE OUTPUT PARAMETER ARGUMENTS
     5620   01 03318    20EE0000 A            AI,R14   -1**17            ARE THERE ANY OUTPUT PARAMETERS.
     5621   01 03319    6910331E              BLZ      EXIT2             NO, SKIP PARAMETER RETURN

     5623   01 0331A    B2D0000E A   EXIT1    LW,R13  *R14               YES, FETCH NEXT PARAMETER
     5624   01 0331B    E700000F A            EXU     *R15               EXECUTE PARAMETER RETURN FUNCTION
     5625   01 0331C    10E03322              AD,R14   UPDATE            UPDATE BUFFER/COUNT/LINKAGE
     5626   01 0331D    6920331A              BGZ      EXIT1             DO ANY MORE PARAMETERS REMAIN.

     5628   01 0331E    25C00078 A   EXIT2    SLS,R12  -8                NO, ADD DISPLACEMENT TO LINKAGE
     5629   01 0331F    30F0000C A            AW,R15   R12               ..
     5630   01 03320    E800000F A            B       *R15               AND RETURN TO CALLING PROGRAM

     5632   01 03321    00FFFFFF A   PARMASK  DATA     X'00FFFFFF'       .. MASK FOR PARAMETER BUFFER/COUNT

     5634                                     BOUND    8                 ..
     5635   01 03322    FFFE0001 A   UPDATE   DATA     -1**17+1          .. TO UPDATE PARAMETER BUFFER/COUNT
     5636   01 03323    00000001 A            DATA     1                 .. TO UPDATE PROGRAM LINKAGE

1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  129
A    5640                            ************************************************************************
     5641                            *                                                                      *
     5642                            *        CALL     VERIFY                                               *
     5643                            *                                                                      *
     5644                            ************************************************************************

     5646         01 01A1E           FLW:CNT  EQU      REJECTS           RUNNING COUNT OF FLAW MARKS
     5647         01 01A1B           ERR:CNT  EQU      ERRTOTAL          RUNNING COUNT OF DISK ERRORS

     5649   01 03324    6AC03308     VERIFY   MODULE   USE(R11)

     5651         01 03326           VER00    EQU      %
     5652   01 03326    22100000 A            LI,R1    0
     5653   01 03327    35103340              STW,R1   VERFLAG           CLEAR RESPONSE
     5654   01 03328    35101A1E              STW,R1   FLW:CNT
     5655   01 03329    35101A1B              STW,R1   ERR:CNT

     5657   01 0332A    6AF0104A              CALL     TYPEIN            TYPE VERIFY
     5658   01 0332B    22D03334              EFA      VERMSG              MESSAGE
     5659   01 0332C    22D03340              EFA      VERFLAG           REQUEST
     5660   01 0332D    22D00001 A            IPAR     1                   KEYIN

     5662   01 0332E    22100003 A   VER10    LI,R1    NUMREP            SEARCH FOR
     5663   01 0332F    32203340              LW,R2    VERFLAG             MATCH ON
     5664   01 03330    3122333C              CW,R2    KEYREP-1,R1         KEYIN
     5665   01 03331    68303347              BE       VER20             GOT IT
     5666   01 03332    64103330              BDR,R1   %-2
     5667   01 03333    68003326              B        VER00

     5669                            VERMSG   MESSAGE  'VERIFY MODE, TYPE  H, G, OR HG: '

     5671   01 0333D    02C81500 A   KEYREP   GEN,8,8,8,8  2,'H',X'15',0 1=>H   SCAN HEADERS
     5672   01 0333E    02C71500 A            GEN,8,8,8,8  2,'G',X'15',0 2=>G   DUMP GRANULES 0-3 (VTOC)
     5673   01 0333F    03C8C715 A            GEN,8,16,8   3,'HG',X'15'  3=>HG  SCAN AND DUMP
     5674         00000003           NUMREP   EQU      %-KEYREP

     5676   01 03340                 VERFLAG  RES      1                 FOR SAVING REPLY

     5678   01 03341    6AC03308     VERIFY:S MODULE   *VERIFY           SPECIAL ENTRY

     5680   01 03343    22100040 A            LI,R1    X'40'             SET UPDATE FLAG
     5681   01 03344    75103340              STB,R1   VERFLAG
     5682   01 03345    52701A72              LH,R7    DEVICE
     5683   01 03346    6800334E              B        VER30
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  130
A    5685   01 03347    25100404 A   VER20    SAS,R1   4                 SHIFT AND
     5686   01 03348    75103340              STB,R1   VERFLAG           SAVE REPLY

     5688   01 03349    52701A72              LH,R7    DEVICE            R7=DEVICE TYPE

     5690   01 0334A    70203340              LC       VERFLAG
     5691   01 0334B    681033E8              BCR,1    RDGRAN            HEADER VER. NOT DESIRED

     5693   01 0334C    6AF0108D              CALL     PRINT
     5694   01 0334D    22D01B38              EFA      EJECT             TITLE IS SIMPLY AN EJECT

     5696   01 0334E    22100000 A   VER30    LI,R1    0                 INITIALIZE
     5697   01 0334F    35103486              STW,R1   SKADR              SEEK ADDR
     5698   01 03350    35103487              STW,R1   HDR                 AND INT CTR

     5700   01 03351    3A3E1A87              LCW,R3   NSECS,R7          # SECS/TRACK
     5701   01 03352    20300100 A            AI,R3    256               FROM 2**8=VALUE
     5702   01 03353    35303484              STW,R3   SECMOD              FOR INCREMENT TO NEXT TRACK

     5704   01 03354    323E1A87              LW,R3    NSECS,R7          # SECS/TRACK
     5705   01 03355    23300008 A            MI,R3    8                   * BYTES/HEADER
     5706   01 03356    35303485              STW,R3   TRKHDSZ             = HEADER BYTES/TRACK

     5708   01 03357    373E1A7E              MW,R3    NTRKS,R7          COMPUTE BYTES OF HEADER PER CYL
     5709   01 03358    4450352B              LWA,R5   8,R3              TO INSURE EVEN WORD BOUND
     5710   01 03359    2550047E A            SAS,R5   -2                R5=REQ. NUM. OF WORDS

     5712   01 0335A    6AF01B3E              CALL     ALLOCATE          GET BUFFER FOR HEADERS
     5713   01 0335B    32D00005 A            PAR      R5
     5714   01 0335C    35D00004 A            RTN      R4                RTN BUFF ADDRESS
     5715   01 0335D    154034E2              STD,R4   ALLOCPAR          SAVE FOR RELEASING

     5717   01 0335E    20400001 A            AI,R4    1                 FORCE TO
     5718   01 0335F    4B40352C              AND,R4   =X'FFFFFE'        EVEN WORD BOUND
     5719   01 03360    25400402 A            SAS,R4   2                 GET BA OF BUFFER
     5720   01 03361    4940352D              OR,R4    =X'0A000000'      HEADER READ ORDER
     5721   01 03362    35403482              STW,R4   RDHDR+2           PLACE IN CCDW CHAIN
     5722   01 03363    30400003 A            AW,R4    R3                CALCULATE BA OF
     5723   01 03364    3540346F              STW,R4   BUFFEND            END OF BUFFER +1
     5724   01 03365    4930352E              OR,R3    =X'14000000'      FLAGS FOR HDR READ ORDER
     5725   01 03366    35303483              STW,R3   RDHDRSZ             AND BYTE SIZE

        2*  01 03367    6AF011CF              BAL,E4   WINDUP                                            *H01

     5727   01 03368    70203340              LC       VERFLAG
     5728   01 03369    6840336F              BCR,4    READHEAD          SKIP IF NOT UPDATING

     5730   01 0336A    321E1AB4              LW,R1    FDATA,R7          ELSE START READING AT
     5731   01 0336B    25100070 A            SLS,R1   -16
     5732   01 0336C    4B10149C              AND,R1   MASK+12-1         FIRST ALTERNATE CYLINDER

     5734   01 0336D    55103486              STH,R1   CYL
     5735   01 0336E    55103487              STH,R1   HDR
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  131
A    5737                            *READ HEADERS ON ONE CYLINDER

     5739         01 0336F           READHEAD EQU      %
     5740   01 0336F    22100000 A            LI,R1    0                 ZERO
     5741   01 03370    22200008 A            LI,R2    TR:CYL/4           OUT
     5742   01 03371    3514348B              STW,R1   FLAG-1,R2         FLAG
     5743   01 03372    64203371              BDR,R2   %-1                 TABLE

     5744   01 03373    32B00BA8              LW,R11   NRTRIES           PREPARE TO READ HEADERS

     5746                            *FULL CYLINDER READ--VERIFY AND FLAG FLAWS AND ALTS

     5748         01 03374           READCYCL EQU      %

     5750   01 03374    6AF00D9C              CALL     IOEX              SUBR TO READ
     5751   01 03375    22D01A40              EDA      RDHDR             ..IOCD
     5752   01 03376    35D03488              RTN      VERTIO            ..TIO
     5753   01 03377    35D00001 A            RTN      R1                ..TDV
     5754   01 03378    35D03489              RTN      VERCTR            ..CCTR
     5755   01 03379    35D00002 A            RTN      R2                ..BCTR
     5756   01 0337A    68003454              BAR      RDERR             ERROR EXIT

     5758   01 0337B    32103482     CHECK    LW,R1    RDHDR+2           R1=BA (BUFFER)
     5759   01 0337C    4B1014A8              AND,R1   MASK+24-1         ZERO OUT ORDER CODE
     5760   01 0337D    2510047D A            SAS,R1   -3                  =DA (BUFFER)
     5761   01 0337E    22500000 A            LI,R5    0                 R5=TRACK COUNT
     5762   01 0337F    22600002 A            LI,R6    2                 R6=PRLN POINTER
     5763   01 03380    730A348C     CHKT     MTB,0    FLAG,R5           SKIP IF TRK FLAGGED FOR ERROR
     5764   01 03381    68303385              BEZ      CHK010            --NO ERR,  DO IT

     5765   01 03382    301E1A87              AW,R1    NSECS,R7          --ERR, DO NEXT  TRACK
     5766                            *                                     SKIP SECSIZE*2 WORDS IN BUFFER
     5767   01 03383    20600003 A            AI,R6    3                 SKIP TO NEXT PRINT POSITION
     5768   01 03384    680033C0              B        NXTRK

     5770   01 03385    324E1A87     CHK010   LW,R4    NSECS,R7          R4=SECTOR COUNT

     5772         01 03386           CHKS     EQU      %
     5773   01 03386    12820000 A            LD,R8    0,R1              R8/R9=HEADER
     5774   01 03387    72300008 A            LB,R3    R8                R3=FLAW BYTE
     5775   01 03388    6830338A              BEZ      %+2               IF ANY SECTOR IS FLAWED
     5776   01 03389    7530348A              STB,R3   FLAW              FLAG TRACK AS FLAWED
     5777   01 0338A    25800108 A            SLD,R8   8                 R8=O,CYL,TRK,SEC;R9=ALT CYL,TRK,0,0
     5778   01 0338B    31803487              CW,R8    HDR               COMPARE TO INTERNAL COUNTER
     5779   01 0338C    69303470              BNEZ     CHKERR            NOT WHAT IT SHOULD BE
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  132
A    5781   01 0338D    52300009 A   CHK020   LH,R3    R9                R3=ALTERNATE ASSIGNMENT
     5782   01 0338E    5530348B              STH,R3   ALT               SAVE ASSIGNMENT

     5784   01 0338F    20100001 A            AI,R1    1                 INCR BUFFER POINTER
     5785   01 03390    33103487              MTW,1    HDR                BUMP INT. CTR--SECTOR COUNT
     5786   01 03391    64403386              BDR,R4   CHKS              LOOP TILL TRK DONE

     5788   01 03392    52C0348B              LH,E1    ALT               DISPLAY CRITERIA:
     5789   01 03393    21CFFFFF A            CI,E1    -1                 ALLOCATED ALTERNATE
     5790   01 03394    69303399              BNE      CHK025
     5791   01 03395    7300348A              MTB,0    FLAW               FLAWED ALTERNATE
     5792   01 03396    69303399              BNEZ     CHK025
     5793   01 03397    730A348C              MTB,0    FLAG,R5
     5794   01 03398    683033C0              BEZ      NXTRK              ERROR READING HEADER

     5796         01 03399           CHK025   EQU      %                 DISPLAY CYL/TRK, FLAW, ALT, ERROR
     5797   01 03399    25C0017B A            SLD,E1   -5                FIRST COMPUTE NEW ALTERNATE
     5798   01 0339A    25D00065 A            SLS,E2   5-32              CYLINDER ADDRESS, SHOULD WORK
     5799   01 0339B    35D03495              STW,E2   ALT:TRK           FOR ALL DISK FORMATS

        1*  01 0339C    33000BF5              MTW,0    TCPVFLAG          SKIP IF NOT RUNNING             *H01
        2*  01 0339D    683033A1              BEZ      CHK025B            NEW HEADER FORMAT              *H01

        4*  01 0339E    4BC0149B              AND,E1   MASK+11-1         ELSE TAKE 11-BIT CYLINDER       *H01
        5*  01 0339F    35C03494              STW,E1   ALT:CYL                                           *H01
        6*  01 033A0    680033AE              B        CHK025A                                           *H01

        8*  01 033A1    25C0017D A   CHK025B  SLD,E1   -3                CONVENTIONAL HEADERS            *H01
     5802   01 033A2    25D00203 A            SCS,E2   +3
     5803   01 033A3    4BC01498              AND,E1   MASK+8-1

     5805   01 033A4    21D00004 A            CI,E2    4
     5806   01 033A5    684033A7              BAZ      %+2
     5807   01 033A6    20C00100 A            AI,E1    256
     5808   01 033A7    21D00002 A            CI,E2    2
     5809   01 033A8    684033AA              BAZ      %+2
     5810   01 033A9    20C00200 A            AI,E1    512
     5811   01 033AA    21D00001 A            CI,E2    1
     5812   01 033AB    684033AD              BAZ      %+2
     5813   01 033AC    20C00400 A            AI,E1    1024
     5814   01 033AD    35C03494              STW,E1   ALT:CYL

        1*  01 033AE    70203340     CHK025A  LC       VERFLAG           SKIP IF NOT UPDATE              *H01
     5817   01 033AF    684033B2              BCR,4    CHK026

     5819   01 033B0    6AF03438              CALL     UPDMAP            ELSE PUT TRACK INTO ALTMAP
     5820   01 033B1    680033BE              B        CHK030

     5822   01 033B2    22B00040 A   CHK026   LI,R11   ' '               ASSUME TRACK NOT FLAWED
     5823   01 033B3    7300348A              MTB,0    FLAW
     5824   01 033B4    683033B7              BEZ      %+3
     5825   01 033B5    22B0005C A            LI,R11   '*'               FLAW MARK DETECTED
     5826   01 033B6    33101A1E              MTW,1    FLW:CNT            UPDATE FLAWMARK COUNTER

     5828   01 033B7    32A0352F              LW,R10   =TXT(BLANKS,1)    ASSUME NO ERROR READING HEADER
     5829   01 033B8    730A348C              MTB,0    FLAG,R5
     5830   01 033B9    683033BC              BEZ      %+3
     5831   01 033BA    32A03538              LW,R10   =TXC(HDRERR)
     5832   01 033BB    33101A1B              MTW,1    ERR:CNT

     5834   01 033BC    6AF0108D              CALL     PRINT             DISPLAY THE INFORMATION
     5835   01 033BD    22D034A0              EFA      VFYMSG

     5837   01 033BE    22C00000 A   CHK030   LI,E1    0                 CLEAR FLAGS
     5838   01 033BF    75C0348A              STB,E1   FLAW
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  133
A    5840   01 033C0    32203484     NXTRK    LW,R2    SECMOD            BUMP INT CTR TO NEXT TRK
     5841   01 033C1    66203487              AWM,R2   HDR                  SECTOR 0
     5842   01 033C2    20500001 A            AI,R5    1                 UPDATE TRACK CTR
     5843   01 033C3    315E1A7E              CW,R5    NTRKS,R7            AND
     5844   01 033C4    69103380              BL       CHKT              LOOP TILL CYL DONE

     5846                            *PREPARE TO DO ANOTHER CYLINDER
     5847         01 033C5           NXCYL    EQU      %
     5848   01 033C5    52C03486              LH,E1    CYL               COMPUTE CYL MOD 25
     5849   01 033C6    25C00160 A            SLD,E1   -32
     5850   01 033C7    36C011DB              DW,E1    CYL:MOD

     5852   01 033C8    3300000C A            MTW,0    E1                HAVE WE REACHED THE
     5853   01 033C9    693033D0              BNEZ     NXCYL0            END OF A CYCLE

     5855   01 033CA    6C000000 A            RD,0     0                 CHECK THE STATE OF SSW1
     5856   01 033CB    698033D0              BCS,8    NXCYL0            (SAME AS FOR FORMAT OPERATION)

        2*  01 033CC    321011D9              LW,R1    TOCK              CONVERT TIME                    *H01
        3*  01 033CD    36103521              DW,R1    =500               TO SECONDS FOR DISPLAY         *H01

     5858   01 033CE    6AF01091              CALL     TYPE              DISPLAY ONLY THE CYLINDER
     5859   01 033CF    22D0349A              EFA      SCN:MSG

     5861   01 033D0    32203486     NXCYL0   LW,R2    SKADR             UPDATE TO
     5862   01 033D1    20210000 A            AI,R2    1**16               NEXT CYLINDER
     5863   01 033D2    35203486              STW,R2   SKADR              FOR SEEKADDRESS
     5864   01 033D3    35203487              STW,R2   HDR                AND INT. COUNTER

     5866   01 033D4    52103486              LH,R1    CYL               IF NOT LAST
     5867   01 033D5    311E1A75              CW,R1    NCYLS,R7          CYLINDER
     5868   01 033D6    6930336F              BNE      READHEAD          DO ANOTHER CYL

     5870   01 033D7    122034E2              LD,R2    ALLOCPAR          RELEASE
     5871   01 033D8    6AF01B49              CALL     RELEASE           BUFFER
     5872   01 033D9    32D00002 A            PAR      R2                ..
     5873   01 033DA    32D00003 A            PAR      R3                ..

     5875   01 033DB    70203340              LC       VERFLAG           EXIT NOW IF UPDATING
     5876   01 033DC    684033DF              BCR,4    NXCYL1            (DONOT PRINT SUMMARY)
     5877   01 033DD    6AC03314              EXIT     VERIFY

     5879   01 033DF    6AF0108D     NXCYL1   CALL     PRINT             PRINT FINAL SUMMARY
     5880   01 033E0    22D01B3B              EFA      DSPACE

        1*  01 033E1    325011D9              LW,R5    TOCK                                              *H02
        2*  01 033E2    36503521              DW,R5    =500                                              *H02

     5882   01 033E3    52903486              LH,R9    CYL
     5883   01 033E4    6AF0108D              CALL     PRINT             USE MESSAGE FORMAT FROM
     5884   01 033E5    22D011DC              EFA      CYL:MSG           THE MAIN PROGRESS REPORT

     5886   01 033E6    6AF0108D              CALL     PRINT
     5887   01 033E7    22D01B3B              EFA      DSPACE
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  134
A    5889                            *READ GRANULES 0-3 AND SPARE TRACK
     5890   01 033E8    70203340     RDGRAN   LC       VERFLAG           RETRIEVE REPLY
     5891   01 033E9    692033EC              BCS,2    RDG00             GRANULE VERIFICATION NOT DESIRED
     5892   01 033EA    6AC03314              EXIT     VERIFY            THEN SIMPLY EXIT BACK TO CONTROLLER

     5894         01 033EC           RDG00    EQU      %
     5895   01 033EC    22300100 A            LI,R3    256               AND ALLOCATE
     5896   01 033ED    6AF01B3E              CALL     ALLOCATE            ANOTHER BUFFER
     5897   01 033EE    32D00003 A            PAR      R3                  FOR GRANULES
     5898   01 033EF    35D00002 A            RTN      R2                  ..
     5899   01 033F0    152034E2              STD,R2   ALLOCPAR          SAVE FOR RELEASING

     5901   01 033F1    22100000 A   RDG050   LI,R1    0                 PERMANENT 0
     5902   01 033F2    351034AD              STW,R1   SECTOR            START W/ SECTOR 0
     5903   01 033F3    351034AE     RDG100   STW,R1   LCOUNT            DISPLACEMENT FOR PRINT
     5904   01 033F4    351034B0              STW,R1   ZFLAG             ZERO-LINE FLAG
     5905   01 033F5    6AF00F0F              CALL     DREAD             READ
     5906   01 033F6    44D03539              EFA      *HDRBUFF            INTO BUFFER
     5907   01 033F7    22D00100 A            IPAR     256                   1 SECTOR
     5908   01 033F8    22D00000 A            IPAR     0                 CYLINDER 0
     5909   01 033F9    22D00000 A            IPAR     0                 TRACK 0
     5910   01 033FA    32D034AD              PAR      SECTOR            SECTOR X
     5911   01 033FB    680033FB              BAR      %                 HANG IF I/O ERROR
     5912   01 033FC    6AF0108D              CALL     PRINT             PRINT GRAN NUMBER
     5913   01 033FD    22D034B1              EFA      GRTITLE
     5914   01 033FE    22B03422              LI,R11   RDG800            EXIT FROM RDG700 TO RDG800

     5916                            * PROCESS GRANULE
     5917   01 033FF    22400000 A            LI,R4    0                 HDRBUFF INDEX
     5918   01 03400    351034AF     RDG200   STW,R1   ZCOUNT            INIT. ZERO-LINE COUNTER
     5919   01 03401    225FFFF8 A            LI,R5    -8                INDEX TO DO ONE LINE
     5920   01 03402    B23834E2     RDG300   LW,R3    *HDRBUFF,R4       --
     5921   01 03403    69303405              BNEZ     %+2               IF ALL ZERO
     5922   01 03404    331034AF              MTW,1    ZCOUNT              SWITCH ON
     5923   01 03405    20400001 A            AI,R4    1                  --
     5924   01 03406    6A0034E4              BAL,R0   HEX                 --CONVERT TO
     5925   01 03407    152A34E2              STD,R2   PRHEX+16,R5         --HEX DOUBLEWORDS
     5926   01 03408    65503402              BIR,R5   RDG300             --

     5928   01 03409    338034AF              MTW,-8   ZCOUNT            WAS LINE ALL ZEROES?
     5929   01 0340A    6930340D              BNEZ     RDG400             NO--PRINT IT
     5930   01 0340B    331034B0              MTW,1    ZFLAG              YES--FLAG, BUT DON'T PRINT
     5931   01 0340C    68003414              B        RDG600

     5933   01 0340D    330034B0     RDG400   MTW,0    ZFLAG             WAS PREVIOUS LINE ALL ZEROES?
     5934   01 0340E    68303412              BEZ      RDG500            --NO, SKIP
     5935   01 0340F    351034B0              STW,R1   ZFLAG             --YES, RESET ZFLAG
     5936   01 03410    6AF0108D              CALL     PRINT             PRINT ***COMMENT
     5937   01 03411    22D034CC              EFA      GZERO
     5938   01 03412    6AF0108D     RDG500   CALL     PRINT             PRINT HEX LINE
     5939   01 03413    22D034B9              EFA      GLINE
     5940   01 03414    22C00008 A   RDG600   LI,E1    8
     5941   01 03415    66C034AE              AWM,E1   LCOUNT            BUMP LCOUNT
     5942   01 03416    21400100 A            CI,R4    256
     5943   01 03417    69103400              BL       RDG200            FINISH GRANULE

     5945   01 03418    330034B0              MTW,0    ZFLAG             LAST LINE ALL ZEROES?
     5946   01 03419    6830341C              BEZ      RDG700            NO--SKIP
     5947   01 0341A    6AF0108D              CALL     PRINT             PRINT ***COMMENT
     5948   01 0341B    22D034CC              EFA      GZERO
     5949   01 0341C    32C034AD     RDG700   LW,E1    SECTOR
     5950   01 0341D    20C00001 A            AI,E1    1                 BUMP TO NEXT GRANULE
     5951   01 0341E    35C034AD              STW,E1   SECTOR
     5952   01 0341F    21C00006 A            CI,E1    6
     5953   01 03420    691033F3              BL       RDG100            DO 3 GRANULES
     5954   01 03421    E800000B A            B        *R11              READ SPARE OR DONE

     5956                            *READ SPARE TRACK, FIRST GRANULE
     5957   01 03422                 RDG800   RES      0
     5958   01 03422    323E1A75              LW,R3    NCYLS,R7          LAST RELATIVE CYLINDER
     5959   01 03423    203FFFFF A            AI,R3    -1                  NUMBER
     5960   01 03424    324E1A7E              LW,R4    NTRKS,R7          LAST RELATIVE TRACK
     5961   01 03425    204FFFFF A            AI,R4    -1                  NUMBER

     5963   01 03426    6AF00F0F              CALL     DREAD             READ INTO
     5964   01 03427    44D03539              EFA      *HDRBUFF            BUFFER
     5965   01 03428    22D00100 A            IPAR     256                 1 SECTOR
     5966   01 03429    32D00003 A            PAR      R3                FROM LAST
     5967   01 0342A    32D00004 A            PAR      R4                  TRACK
     5968   01 0342B    22D00000 A            IPAR     0
     5969   01 0342C    6800342C              BAR      %                 HANG IF I/O ERROR

     5971   01 0342D    6AF0108D              CALL     PRINT             PRINT SPARE TITLE
     5972   01 0342E    22D034B6              EFA      SPTITLE
     5973   01 0342F    6AB033FF              BAL,R11  RDG200-1

     5975   01 03430    122034E2              LD,R2    ALLOCPAR          RELEASE
     5976   01 03431    6AF01B49              CALL     RELEASE             BUFFER
     5977   01 03432    32D00002 A            PAR      R2
     5978   01 03433    32D00003 A            PAR      R3

     5980   01 03434    6AF0108D              CALL     PRINT
     5981   01 03435    22D01B3B              EFA      DSPACE

     5983   01 03436    6AC03314              EXIT     VERIFY
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  135
A    5985   01 03438    6AC03308     UPDMAP   MODULE   USE(R1)           ENTER TRACK INTO ALT MAP

     5987   01 0343A    322015E2              LW,R2    NMAP              POINT TO CURRENT MAP ENTRY

     5989   01 0343B    7300348A              MTB,0    FLAW              SKIP IF THIS IS NOT A
     5990   01 0343C    68303445              BEZ      UPDMAP0           FLAWED ALTERNATE TRACK

     5992   01 0343D    52103486              LH,R1    CYL               ELSE FROM SEEK ADDRESS
     5993   01 0343E    371E1A7E              MW,R1    NTRKS,R7          OF CURRENT HEADER COMPOSE
     5994   01 0343F    30100005 A            AW,R1    R5                RELATIVE TRACK ADDRESS
     5995   01 03440    491015C2              OR,R1    GMASK+0           OF PRIMARY ENTRY
     5996   01 03441    351415E3              STW,R1   MAP1,R2           (MARKED REJECTED)

     5998   01 03442    221FFFFF A            LI,R1    -1                MAKE ALTERNATE FIELD LOOK
     5999   01 03443    351417E4              STW,R1   MAP2,R2           ALLOCATED (FOR MAPALT)

     6001   01 03444    6800344E              B        UPDMAP1           DELETE CURRENT TRACK

     6003   01 03445    321E1A7E     UPDMAP0  LW,R1    NTRKS,R7          FROM ALT FIELD OF CURRENT
     6004   01 03446    37103494              MW,R1    ALT:CYL           HEADER COMPOSE PRIMARY
     6005   01 03447    30103495              AW,R1    ALT:TRK           RELATIVE TRACK ADDRESS
     6006   01 03448    491015C2              OR,R1    GMASK+0           SET REJECT BIT
     6007   01 03449    351415E3              STW,R1   MAP1,R2

     6009   01 0344A    52103486              LH,R1    CYL               FROM SEEK ADDRESS OF
     6010   01 0344B    371E1A7E              MW,R1    NTRKS,R7          CURRENT HEADER COMPOSE
     6011   01 0344C    30100005 A            AW,R1    R5                ALTERNATE RELATIVE
     6012   01 0344D    351417E4              STW,R1   MAP2,R2           TRACK ADDRESS

     6014   01 0344E    6AF014B1     UPDMAP1  CALL     DELETALT          DELETE CURRENT TRACK
     6015   01 0344F    52D03486              HPAR     CYL               FROM POOL OF AVAILABLE
     6016   01 03450    32D00005 A            WPAR     R5                ALTERNATE TRACKS

     6018   01 03451    331015E2              MTW,1    NMAP              UPDATE MAP POINTER
     6019   01 03452    6AC03314              EXIT     UPDMAP
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  136
A    6021         01 03454           RDERR    EQU      %             ERROR IN READING HEADERS
     6025   01 03454    64B03374              BDR,R11  READCYCL          ELSE TRY AGAIN (NTRIES)

     6027   01 03455    6AF00E41              CALL     IODIAG
     6028   01 03456    22D0345A              EFA      IOERRX            DISPLAY ERROR STATUS


     6031   01 03457    6AF01091              CALL     TYPE
     6032   01 03458    22D03462              EFA      IOERRMSG          DISPLAY SEEK INFORMATION

        1*  01 03459    680033C5              B        NXCYL             CONTINUE WITH NEXT CYLINDER     *H01

     6036                            IOERRX   MESSAGE  'ERROR READING HEADERS (VERIFY)'
     6037                            IOERRMSG MESSAGE  'CYL:',ILZ(SKADR,16-11,11),;
     6038                                              ', TRACK:',ILZ(SKADR,24-5,5),;
     6039                                              ', SECTOR:',ILZ(SKADR,24,8)
            01 03462    00000006 A
     6040                                     BOUND    8
     6041   01 0346A    0300D1B8     RDHDR1   GEN,8,24 X'03',BA(SKADR1)  IOCD--NEW SEEK
     6042   01 0346B    2C000004 A            GEN,8,24 X'2C',4
     6043   01 0346C    0A000000 A            GEN,8,24 X'0A',00          BUFF ADDR INSERTED HERE
     6044   01 0346D    14000000 A            GEN,8,24 X'14',00          BYTE CT INSERTED HERE

     6046   01 0346E    00000000 A   SKADR1   DATA     0                 NEW SEEK ADDR BUILT HERE
     6047   01 0346F                 BUFFEND  RES      1                 END OF BUFFER

     6049         01 03470           CHKERR   EQU      %
     6050   01 03470    6AF01091              CALL     TYPE
     6051   01 03471    22D03473              EFA      CHKERMSG          PRINT MSSG ON OC
     6052   01 03472    6800338D              B        CHK020

     6054                            CHKERMSG MESSAGE  'CHECK ERROR, HEADER:',;
     6055                                              ILZ(R8,16-11,11),'/',ILZ(R8,19,5),'/',ILZ(R8,24,8),;
     6056                                              '; INTERNAL COUNTER:',;
     6057                                              ILZ(HDR,16-11,11),'/',ILZ(HDR,19,5),'/',ILZ(HDR,24,8)
            01 03473    0000000C A
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  137
A    6059                                     BOUND  8
     6060   01 03480    0300D218     RDHDR    GEN,8,24 X'03',BA(SKADR)   CDW--SEEK
     6061   01 03481    2C000004 A            GEN,8,24 X'2C',4           ..COMMAND  CHAIN
     6062   01 03482    0A000000 A            GEN,8,24 X'0A',0           CDW--READ HEADERS, SET BUFFER ADDRESS
     6063   01 03483    1C000000 A   RDHDRSZ  GEN,8,24 X'1C',0           ..MUST SET BYTE SIZE

     6065   01 03484    00000000 A   SECMOD   DATA     0                 VALUE FOR INCR TO NEXT TRK
     6066   01 03485    00000000 A   TRKHDSZ  DATA     0                 HDR SIZE FOR TRK

     6068   01 03486    00000000 A   SKADR    GEN,16,8,8  0,0,0          SEEK ADDR: CYL,TRK,SEC
     6069         01 03486           CYL      EQU      SKADR
     6070   01 03487    00000000 A   HDR      GEN,16,8,8  0,0,0          INT CTR: CYL, TRK, SEC

     6072   01 03488                 VERTIO   RES      1                 FOR TIO STATUS
     6073   01 03489                 VERCTR   RES      1                 FOR CURRENT COMMAND DW
     6074   01 0348A    00000000 A   FLAW     DATA     0                 SWITCH FOR FLAW MARK
     6075   01 0348B    00000000 A   ALT      DATA     0                 FOR ALT ASSIGNMENT

     6077         00000020           TR:CYL   EQU      32                MAXIMUM TRACKS/CYL EVER POSSIBLE
     6078   01 0348C                 FLAG     RES,1    TR:CYL            TABLE FOR READ ERRORS

     6080   01 03494                 ALT:CYL  RES      1
     6081   01 03495                 ALT:TRK  RES      1
     6082   01 03496    0E40C8C5 A   HDRERR   TEXTC    ' HEADER ERRORS'
            01 03497    C1C4C5D9 A
            01 03498    40C5D9D9 A
            01 03499    D6D9E240 A
        1*                           SCN:MSG  MESSAGE  SSP,'CYL:',ILZ(CYL,16-11,11),;                    *H01
        2*                                             ', SECONDS:',ILZ(R1,32-16,16)                     *H01
            01 0349A    00000005 A
     6084                            VFYMSG   MESSAGE  SSP,'CYL:',ILZ(CYL,16-11,11),;
     6085                                              ', TRK:',ILZ(R5,32-5,5),;
     6086                                              ', ',CLB(R11,24,8),;
     6087                                              'ALTCYL:',ILZ(ALT:CYL,32-11,11),;
     6088                                              ', ALTTRK:',ILZ(ALT:TRK,32-5,5),SPE(R10)
            01 034A0    0000000C A
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  138
A    6090   01 034AD                 SECTOR   RES      1                 FOR SECTOR COUNT
     6091   01 034AE                 LCOUNT   RES      1                 DISPLACEMENT FOR PRINTING
     6092   01 034AF                 ZCOUNT   RES      1                 ZERO-COUNTER WITHIN LINE
     6093   01 034B0                 ZFLAG    RES      1                 ZERO-LINE FLAG

     6095                            GRTITLE  MESSAGE  TSP,TSP,;
     6096                                              '  GRANULE  ',ILB(SECTOR,0,31)
            01 034B1    00000004 A
     6097                            SPTITLE  MESSAGE  TSP,'  SPARE TRACK'
            01 034B6    00000002 A
     6098                            GLINE    MESSAGE  DUP(5,' '),ILB(LCOUNT),;
     6099                                              DUP(4,' '),TXT(PRHEX,8),;
     6100                                              DUP(2,' '),TXT(PRHEX+2,8),;
     6101                                              DUP(2,' '),TXT(PRHEX+4,8),;
     6102                                              DUP(2,' '),TXT(PRHEX+6,8),;
     6103                                              DUP(4,' '),TXT(PRHEX+8,8),;
     6104                                              DUP(2,' '),TXT(PRHEX+10,8),;
     6105                                              DUP(2,' '),TXT(PRHEX+12,8),;
     6106                                              DUP(2,' '),TXT(PRHEX+14,8)
            01 034B9    00000012 A
     6107                            GZERO    MESSAGE  DSP,DUP(20,' '),;
     6108                                              '***  ALL ZEROES  ***',DSP
            01 034CC    00000004 A
     6109                                     BOUND 8
     6110   01 034D2                 PRHEX    RES      16                HEX DOUBLEWORDS
     6111   01 034E2                 ALLOCPAR RES      2                 FOR ALLOCATED BUFFER
     6112         01 034E2           HDRBUFF  EQU      ALLOCPAR           AND ITS SIZE
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  139
A    6114                            ************************************************************************
     6115                            *                                                                      *
     6116                            *        CONVERT BINARY HEX TO EBCDIC HEX (USED ONLY BY VERIFY-G)      *
     6117                            *        INPUT  : REG RITE (RITE IS ODD)                               *
     6118                            *        OUTPUT : REG LEFT AND RITE (RITE=LEFT+1)                      *
     6119                            *                                                                      *
     6120                            ************************************************************************

     6122         00000002           LEFT     EQU       2
     6123         00000003           RITE     EQU       3
     6124         00000000           LINK     EQU       0

     6126   01 034E4    22200008 A   HEX      LI,LEFT   8
     6127   01 034E5    352034FF              STW,LEFT  HX4
     6128   01 034E6    222FFFFF A            LI,LEFT   X'FFFFF'  ........ 12345678
     6129   01 034E7    25200304 A            SCD,LEFT  4         .......1 2345678.
     6130   01 034E8    25200204 A            SCS,LEFT  4         ......1.
     6131   01 034E9    25200378 A            SCD,LEFT  -8        8....... 1.234567
     6132   01 034EA    2520027C A            SCS,LEFT  -4        .8......
     6133   01 034EB    2520030C A            SCD,LEFT  12        .....1.2 34567.8.
     6134   01 034EC    25200204 A            SCS,LEFT  4         ....1.2.
     6135   01 034ED    25200370 A            SCD,LEFT  -16       7.8..... 1.2.3456
     6136   01 034EE    2520027C A            SCS,LEFT  -4        .7.8....
     6137   01 034EF    25200314 A            SCD,LEFT  20        ...1.2.3 456.7.8.
     6138   01 034F0    25200204 A            SCS,LEFT  4         ..1.2.3.
     6139   01 034F1    25200368 A            SCD,LEFT  -24       6.7.8... 1.2.3.45
     6140   01 034F2    2520027C A            SCS,LEFT  -4        .6.7.8..
     6141   01 034F3    2520031C A            SCD,LEFT  28        .1.2.3.4 5.6.7.8.
     6142   01 034F4    2530027C A            SCS,RITE  -4                 .5.6.7.8
     6143   01 034F5    680034F9              B         HX3

     6145   01 034F6    25200378 A   HX1      SCD,LEFT  -8
     6146   01 034F7    33F034FF     HX2      MTW,-1    HX4
     6147   01 034F8    E8300000 A            BEZ       *LINK
     6148   01 034F9    71303530     HX3      CB,RITE   =C'9   '
     6149   01 034FA    682034F6              BLE       HX1
     6150   01 034FB    25200378 A            SCD,LEFT  -8
     6151   01 034FC    4B203531              AND,LEFT  =X'C7FFFFFF'
     6152   01 034FD    73F00002 A            MTB,-1    LEFT
     6153   01 034FE    680034F7              B         HX2

     6155   01 034FF    00000000 A   HX4      DATA      0
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  140
A    6157         01 00900                    END      VOLINIT
            01 03500    68000900 N
            01 03501    40020000 A
            01 03502    00000003 A
            01 03503    32040000 N
            01 03504    FFFFFF00 A
            01 03505    20010003 A
            01 03506    7AD3C2D3 A
            01 03507    00070000 A
            01 03508    0021000C A
            01 03509    0B404040 A
            01 0350A    00010004 A
            01 0350B    00354020 A
            01 0350C    01000000 A
            01 0350D    00010005 A
            01 0350E    00740000 A
            01 0350F    0A000202 A
            01 03510    0D000101 A
            01 03511    0C000707 A
            01 03512    09010303 A
            01 03513    00000020 A
            01 03514    00007600 A
            01 03515    B2000512 N
            01 03516    1C000000 A
            01 03517    03000000 A
            01 03518    03030300 A
            01 03519    40404040 A
            01 0351A    02404040 A
            01 0351B    10400000 A
            01 0351C    320C0001 A
            01 0351D    02040810 A
            01 0351E    BFBFBFBF A
            01 0351F    D2000007 A
            01 03520    D2020006 A
            01 03521    000001F4 A
            01 03522    B2080533 N
            01 03523    8C000000 A
            01 03524    90000000 A
            01 03525    00000FF0 A
            01 03526    00000000 A
            01 03527    F2000006 A
            01 03528    00000001 A
            01 03529    6EF1F540 A
            01 0352A    00000032 A
            01 0352B    32060008 A
            01 0352C    00FFFFFE A
            01 0352D    0A000000 A
            01 0352E    14000000 A
            01 0352F    48020D22 N
            01 03530    F9404040 A
            01 03531    C7FFFFFF A
            01 03532    00000014 A
            01 03533    32020D08 N
            01 03534    F2001314 N
            01 03535    03005008 N
            01 03536    12021402 N
            01 03537    B2081520 N
            01 03538    48003496 N
            01 03539    B20034E2 N

  CONTROL SECTION SUMMARY: 01 0353D   PT 0
  * NO UNDEFINED SYMBOLS
  *    ERROR SEVERITY LEVEL: 0
  * NO ERROR LINES
1 C00   23:14 JUN 20,'83    VERIFY HEADERS AND VTOC FOR CP-V                                      PAGE  141
A  A                420/OPEN     423-SET      424/GEN      426/DO       427/GEN      431/CLOSE
   ABORT           1895/CALL    2063/CALL    2152/CALL    2157/CALL    2492/CALL    2586/CALL    2854/CALL
      3144/CALL    3407/CALL    3953/CALL    3957/CALL    4456/CALL  4510.8/CALL    5009/CALL    5010/CALL
      5375-STCF    5499/CALL    5503/CALL
   ABORTMSG        5384/EFA     5431-MESSAGE
   ABORT0          5402/BEZ     5419-EQU
   ACCNTNO          744/DATA    1158/PTY     1159/PTY     1347-RES
   ACCOUNT          594/FUNCTION 729-LW
   ACKLIST         2098/LW      2467/STW     2504-RES     2512/MTW     2559/STW
   ACODE           5187/ITEM
   ACTCHAR         1549-LB      1578/B
   ACYL            4210-EQU     4213/FORMAT
   ADATA           2877/LW      2904/LW      5361-GTAB
   ADDCHECK         651/EXU      689-CW
   ADDRESS         3426-SET     3427/PEND
   ADJUST          2797-MTW     2801/BDR
   ADSCAN           643-LI       673/B
   ADSCAN1          644-LI       658/BIR
   ADSCAN2          646-CALL     657/BIR
   ADSCAN3          654-CALL     686/BIR
   ADSCAN4          659-XW       687/B
   ADSCAN5          670-CALL     684/B
   ADVANCE         4436/GEN     4440-DATA
   AGAINMSG        2481/LI      2499-MESSAGE
   AHPAR            218-CNAME
   ALLERR        4549.1/B     4549.4/BEZ   4549.8-MODULE             4594.1/EXIT
   ALLMODE        773.4/MTW   1360.3-RES   4549.3/MTW
   ALLOCATE         792/CALL    3588/CALL    3593/CALL    4255/CALL    4264/CALL    5467-MODULE  5476/EXIT
      5712/CALL    5896/CALL
   ALLOCPAR        5715/STD     5870/LD      5899/STD     5975/LD      6111-RES     6112/EQU
   ALPHA           1485-CNAME
   ALT             5782/STH     5788/LH      6075-DATA
   ALT:CYL       5800.5/STW     5814/STW     6004/MW      6080-RES     6084/MESSAGE
   ALT:TRK         5799/STW     6005/AW      6081-RES     6084/MESSAGE
   ALTBITS         4067-EQU     4123/LW
   ALTCYL          3531/CLOSE
   ALTCYL          3539-EQU     3548/STW     3616/PAR     4095/CLOSE
   ALTCYL          4098/MODULE  4111/INT     4116/PAR     4480/CLOSE
   ALTCYL          4607/MODULE  4632/STW
   ALTD215         2682/AND     2683/CW      2721-DATA
   ALTERN          5185-CNAME   5186-FNAME
   ALTHDR          2675-LW      2726/B       3494/CLOSE
   ALTHDR          4190-FNAME   4210/EQU     4211/EQU
   ALTMAP       4510.10/STW     4521/STW     4524/LI      4628/LI      4656/STS     5101-RES
   ALTMASK         2689/AND     2690/CW      2720-DATA
   ALTOVER       4510.6/EFA   5129.1-MESSAGE
   ALTREJ          4735/BAR     4767-CALL
   ALTSIZE       4476.2-EQU   4510.2/CI      5101/RES   5129.1/MESSAGE
   ALTSTART      2684.1/B     2699.1/B     2699.9-LI
   ALTTABLE        2032/LH      2401-GENL
   ALTTRACK        3531/CLOSE
   ALTTRACK        3540-EQU     3549/STW     3617/PAR     4095/CLOSE
   ALTTRACK        4098/MODULE  4117/PAR
   ALTTRK          4480/CLOSE
   ALTTRK          4607/MODULE  4627/STW
   AORG            5185/CNAME   5186/FNAME   5187/ITEM    5366/GTAB
   APAR             213-CNAME
   APPEND          2266-CNAME
   ARG               32/OPEN     185-SET      187/DO       197-SET      204/PEND     382-SET      384/PEND
       390/CLOSE
   ARGUMENT          37-SET      196/ORG      201-SET
   ASIGNERR        4715/BAR     4791-CALL    4805/BDR
   ASSIGN            32/OPEN     132/SET      138/SET      182-FNAME    390/CLOSE
   ASSIGN          4677-INT     4763/BL
   ASSIGNX         4695-EQU
   ASSIGN0         4689-LI
   ATRACK          4211-EQU     4213/FORMAT
   AVRINDEX        1349-RES
   AWPAR            220-CNAME
   AX005           4699/BNE     4704/BNE     4707-STW
   AX008           4710-LW      4775/BEZ     4779/B
   AX010           4725-EQU     4756/BDR
   AX100           4758-MTW
   AX400           4749/BAL     4808-EQU
   BACKCHAR         493/CALL     537/CALL     637/CALL    1620-MODULE  1626/EXIT
   BADAIOS         2099/STW     2171-RES     2211/MESSAGE
   BADHDMES0       3805/EFA     3826-MESSAGE
   BADHDMES1       3812/EFA     3828-MESSAGE
   BADHEAD         3765-EQU     3907/BEZ     4397/BNEZ
   BADHEADER       3777/STW     3801/STB     3826/MESSAGE 3826/MESSAGE 3832-RES     4019/STW
      4025/MESSAGE 4025/MESSAGE
   BADHEAD1        3786/BANZ    3791-LW
   BADHEAD2        3795/BANZ    3799-AW
   BADHEAD3        3808/BCS     3814-LW
   BADHFLG         1988/STW     2138/MTW     2170-DATA    3725/MTW     3904/MTW     4011/MTW     4396/MTW
   BADIOCD         2105/STW     2130/LW      2169-RES     2201/LW      3781/LW
   BADSENS         1981/STW     2125/STM     2168-RES     2775/MTW     2782/LI      3828/MESSAGE
      3828/MESSAGE 3828/MESSAGE 3828/MESSAGE
   BADTDVS         2102/STD     2167-RES     2211/MESSAGE 2211/MESSAGE 3828/MESSAGE 3828/MESSAGE
   BAR               78-CNAME
   BASE            1416/CW      1423/MW      1439-DATA
   BCTR            1890/CLOSE
   BCTR            1978/MODULE  2000/RTN     2057/SW      2507/CLOSE
   BCTR            2509/MODULE
   BDATA           2827/LW      2913/LW      5362-GTAB
   BITPTR          1236/LW      1269-DATA
   BLANKCHK        1551/BE      1595-AI
   BLANKS          1511/LW      1572/LW      1685/LW      1759/LW      1760/LW      1861-TEXT    5828/LW
   BLKSIZE         5478/MODULE  5485/LW
   BLOCK           5478/MODULE  5480/LW
   BLZ              325-FNAME   2592/MESSAGE 2594/MESSAGE 3444-CONVERT 4467/MESSAGE 4468/MESSAGE
      5431/MESSAGE
   BPAR             214-CNAME
   BUFF            2618/CLOSE
   BUFF            2623/MODULE  2634/LW      2936/CLOSE
   BUFF            2938/MODULE  2941/LW      2953/LM      2973/STB*    2974/LB*     2989/STB*    3008/STB*
      3022/PAR     3030/STB*    3032/STB*    3035/LW      3066/STW     4096/CLOSE
   BUFF            4098/MODULE  4102/LW
   BUFFEND         5723/STW     6047-RES
   BUFFORG         2874/MODULE  2894/LW      2901/MODULE  2905/LW      3532/CLOSE
   BUFFORG         3590/RTDC    3612/EBA*    3637/PAR     3926/LB*     3982/LBA*    4007/LBA*    4063-RES
      4096/CLOSE
   BUFFORG         4257/RTN  4285.17/LW    4306.1/STW*    4315/LW      4387/PAR     4430-RES
   BYTESIZE        2874/MODULE  2893/STW
   C               1102/SET     1108-FNAME   1143/PTY     1144/PTY     1146/PTY     1158/PTY     1159/PTY
      1174/PTY     1175/PTY     1182/PTY     1183/PTY     1184/PTY     1185/PTY
   CALL              73-CNAME
   CALLERR         3731/EXU     3847-CALL
   CALLFCN          923/EXU     1004-BAL
   CALLFMT         1004/BAL     1008-CALL
   CALLREJ         1005/BAL     1015-CALL    1021/BGZ
   CARD            1398-EQU
   CARDBUFF        1521/EFA     1522/IPAR    1569/EFA     1570/IPAR    1870-RES     1876/MESSAGE
   CARDERR          473/BAR      479/BAR      481/BNE      489/BAR      498/BAR      499/BAR      502/BCS
       506/BAR      507/BAR      513/BAR      518/BAR      526/BAR      541/BAR      552/BAR      558/BAR
       560/BAR      567/BAR      572-CALL     593/FUNCTION 615/BAR   622.11/BAR   622.12/BAR   622.14/B
       634/BAR      640/BC       649/BAR      650/BAR      652/BGE      665/BLEZ     671/BAR      677/BAR
       681/BAR      683/BC       707/BAR      715/BAZ      731/BC       736/BAR      741/BAR      770/BAR
     773.1/BLZ      776/BGE
   CARDERR1         573-CALL     575/BAR
   CARDERR2         576-LCW      782/BNEZ
   CARDFLAG         781/MTW     1517/STW     1829/MTW     1865-RES
   CARDREAD        1520/CALL    1568/CALL    2938-MODULE  2990/EXIT
   CARRIAGE        3264-LC      3454/FUNCTION
   CATALOG            3-EQU        5/EQU
   CBUFORG         3488-RES
   CCATEST         3854/STW     3856/STW     3913/CLM     4060-DATA
   CCHAR           1544/MODULE  1559/STW     1591/STW
   CCPOS           1519/STW     1543/MTW     1546/LW      1577/STW     1584/STW     1623/LW      1625/MTW
      1637/MTW     1653/MTW     1826/LW      1863-RES
   CCR              340-FNAME    357/PEND    1876/MESSAGE 3454-FUNCTION
   CCTR            1890/CLOSE
   CCTR            1978/MODULE  1999/RTN     2001/MTW     2055/LW      2507/CLOSE
   CCTR            2509/MODULE
   CDATA1          3296-AI      3300/BANZ
   CDERRMSG         580/EFA     1367-MESSAGE
   CFLAG           3423-SET     3427/PEND
   CHARBUFF        1869-GEN
   CHARDATA        3295-LI      3445/CONVERT 3446/CONVERT
   CHARTEST         654/CALL    1655-MODULE  1661/EXIT    1663/EXIT
   CHECK           5758-LW
   CHECKIO         2517/B       2531-CW
   CHECKIO1        2537-INT     2539/BIR
   CHKERMSG        6051/EFA     6054-MESSAGE
   CHKERR          5779/BNEZ    6049-EQU
   CHKNONE          636/BE       675-CALL
   CHKS            5772-EQU     5786/BDR
   CHKT            5763-MTB     5844/BL
   CHK010          5764/BEZ     5770-LW
   CHK020          5781-LH      6052/B
   CHK025          5790/BNE     5792/BNEZ    5796-EQU
   CHK025A       5800.6/B     5815.1-LC
   CHK025B       5800.2/BEZ   5800.8-SLD
   CHK026          5817/BCR     5822-LI
   CHK030          5820/B       5837-LI
   CHPAR            219-CNAME
   CLASS           5173-CNAME   5174-FNAME
   CLB              327-FNAME   1877/MESSAGE 2210/MESSAGE 3445-CONVERT 6084/MESSAGE
   CLNMSG           865/EFA     1033-MESSAGE 1082/EFA
   CLN0MSG          873/EFA     1038-MESSAGE
   CMPERR          4022/EFA     4025-MESSAGE
   CODE            2770/MODULE  2772/MTW     2790/MTW
   COMLIST         2632/RTH     2640/STD     2643/STW     2645/EDA     2706-GEN     3494/CLOSE
   COMLIST         3599/STH     3791/LW      3855/LI      3861/LH      3892/SW      3915/LW      4057-GEN
      4061/DATA
   COMPARE         3843/DISPATCH           3971.1-EQU
   COMPARE1        3975-LB      3980/BDR
   COMPARE2        3982-LBA
   COMPARE3        3977/BNE     4006-EQU
   COMPOSE         2219-CNAME
   CONT             835/B        842-EQU      866/B        870/B        874/B        880/B        887/B
   CONTCOL         1497-EQU     1576/LI
   CONTIN          1553/BE      1562-LI
   CONT0            811/B        864-CALL
   CONT1            809/BAR      868-CALL
   CONT2            847/BNE      850/BLZ      854-EQU
   CONT4            801/BNEZ     872-CALL
   CONVBUFF        3289/STB     3297/STB     3310/LB      3489-EQU
   CONVERT         3280/B       3285-LI      3413-CNAME
   CONVERT1        3286-DW      3291/BNEZ
   CONVEXIT        1426/BAL     1429/BAL     1432/BAL     1435-STW
   CONV1           1409-AI      1424/BNOV
   CONV2           1411/BCR     1415-AI
   CORRESP         5254-FNAME   5343/DEFAULT
   CPARFCN         3843-DISPATCH
   CPREAD           803/CALL    1042/CALL    2620-MTB
   CR               355-FNAME
   CREP             860/CH      1036-DATA    1315/CH
   CRSETUP         2940-EQU     2998/B
   CRSETUP0        2956-EQU     2985/B
   CRSETUP1        2976/BE      2992-EQU
   CRSETUP2        2978/BNE     2987-EQU
   CRSETUP3        2951-EQU     2994/BLE
   CTERRMSG        1581/EFA     1878-MESSAGE
   CTEST           1695/LH      1853-GENLIST
   CTINERR         1571/BAR     1580-CALL
   CURCHAR         1544-MODULE  1560/EXIT    1592/EXIT    1656/CALL    1792/CALL
   CVL              326-FNAME   3446-CONVERT
   CWPAR            221-CNAME
   CYL             2618/CLOSE
   CYL             2623/MODULE  2629/PAR     2768/CLOSE
   CYL             2770/MODULE  2786/RTN     2872/CLOSE
   CYL             2874/MODULE  2887/AWM     2888/OR      2901/MODULE  2918/STW     3533/CLOSE
   CYL             3537/MODULE  3608/LW      3613/PAR     3628/AWM     3642/LW      3654/LW      3732/PAR
      3874/PAR     3922/EOR     3937/LW      3994/PAR     4094/CLOSE
   CYL             4098/MODULE  4128/PAR     4236/CLOSE
   CYL             4238/MODULE  4278/PAR     4413/EOR     4480/CLOSE
   CYL           4549.8/MODULE  4652/MODULE  4948/LW      5075/STW     5158/CLOSE
   CYL             5734/STH     5848/LH      5866/LH      5882/LH      5992/LH      6009/LH      6015/HPAR
      6069-EQU   6082.1/MESSAGE 6084/MESSAGE
   CYL:BEG         3609/STW     3643/SW      3660-RES
   CYL:MOD         3646/DW      3661-DATA    5850/DW
   CYL:MSG         3657/EFA     3663-MESSAGE 5884/EFA
   CYL:SCN         3631/BG      3641-EQU
   CYLBITS         2699/AW      2739-EQU
   CYLS            5176/CNAME   5177/FNAME   5178/ITEM    5358/GTAB
   CYL0            4206-EQU     4213/FORMAT
   CYL1            4207-EQU     4213/FORMAT
   DATA            5230-SET     5241-SET     5243-SET     5247/GEN     5249/GEN
   DATAERR         2352-EQU     2365/TDVMAP  2365/TDVMAP
   DATE             449/CALL    5534-MODULE  5567/EXIT
   DATEIN          5536-MI      5548/BGZ     5560/B       5564/BAZ
   DATEIN1         5552-LI      5566/BIR
   DATEIN2         5553-LB      5559/BNOV
   DATEIN3         5556/BCS     5562-INT
   DATINMSG        5541/EFA     5575-MESSAGE
   DAY             5534/MODULE
   DECCONV          612/CALL   622.8/CALL     646/CALL     704/CALL     767/CALL    1402-MODULE  1427/EXPAR
      1430/EXPAR   1433/EXPAR
   DEFAULT         5207-CNAME
   DELETALT         895/CALL    4578/CALL    4652-MODULE  4657/EXIT    4726/CALL    6014/CALL
   DELIMITS        1555/LB      1556/CB      1862-TEXTC
   DELIMRTN        1557/BE      1591-STW
   DEVICE           503/STW      520/STH      642/LH       785/INT     1922/RPAR    1927/RPAR    1984/INT
      2066/RPAR    2086/RPAR    2186/INT     2490/STH     2651/LH      2793/LH      2826/LH      2835/RPAR
      2840/RPAR    2876/LH      2903/LH      3542/LH      3578/LH      3796/LH      4101/LH      4244/INT
      4351/HIO*    4502/LH      4608/LH      4673/LH      4835/LH      4946/LH      5218-CNAME   5354-RES
      5401/MTH     5682/LH      5688/LH
   DEVICES         1465/PAR     5266-RES
   DFIELD          3283/LB      3483-GENFIELD
   DFLTPASS        40.1-EQU    467.1/LI     622.2/LI
   DFLTRTRY          40-EQU      466/LI       764/LI      1290/DATA
   DIAGMSG         2192/EFA     2210-MESSAGE
   DIAGMSG1      2196.6/EFA   2210.1-MESSAGE
   DIMEN           5176-CNAME   5177-FNAME
   DISCNEW       2691.3/BNEZ  2699.3-SLD
   DISC225         2679/BNE     2689-AND
   DISPATCH        3834-CNAME
   DLIMSRCH        1555-LB      1598/BNE
   DLIMTEST         655/BPAR    1292-DATA
   DONE            3895/STW     3963/MESSAGE 3963/MESSAGE 3969-RES     4368/STW
   DPPTB           1122/GEN     1129-PTB     1136/TERMIN
   DPRST           1923/IPAR    1960-GEN
   DPSIZ           1122/GEN     1136-TERMIN
   DPSPT            790/STW      983/CW      1121/GEN     1135-PTB
   DPTIO           1897/LW      1928/RTN     1929/RTH     1952-RES
   DREAD            820/CALL    2623-MODULE  2654/EXIT    2663/EXIT    2673/EXIT    5905/CALL    5963/CALL
   DSEARCH          515/CALL    1460-MODULE  1470/EXIT    1473/EXIT
   DSKATEST      4285.6/BE      4301-INT
   DSKATST1      4301.8-LW      4308/BGZ
   DSKCLEN         2661/CW      2731-EQU
   DSKFLAG          522/STW      846/CW      2031/AW      2660/LW      2677/LW      4149/LW      4697/LAW
      5069/LW      5355-RES
   DSP              353-FNAME   1026/MESSAGE 1027/MESSAGE 1029/MESSAGE 1031/MESSAGE 1032/MESSAGE
      1033/MESSAGE 1038/MESSAGE 1367/MESSAGE 1368/MESSAGE 1370/MESSAGE 1372/MESSAGE 1374/MESSAGE
      1878/MESSAGE 2159/MESSAGE 2162/MESSAGE 2210/MESSAGE 2596/MESSAGE 3146/MESSAGE 3409/MESSAGE
      3959/MESSAGE 3966/MESSAGE 4469/MESSAGE            5129.1/MESSAGE 5136/MESSAGE 5142/MESSAGE
      5442/MESSAGE 5505/MESSAGE 5506/MESSAGE 6107/MESSAGE 6107/MESSAGE
   DSPACE          1303/EFA     4838/EFA     4842/EFA     4920/EFA     4924/EFA     5382/EFA     5386/EFA
      5390/EFA     5415/EFA     5421/EFA     5442-MESSAGE 5880/EFA     5887/EFA     5981/EFA
   DUMMY           4446/STCF    4458-RES     4467/MESSAGE 4468/MESSAGE
   DUP              339-FNAME   1876/MESSAGE 3455-FUNCTION             5115/DATA    5117/DATA    5119/DATA
      5122/DATA    5132/MESSAGE 5132/MESSAGE 5132/MESSAGE 5132/MESSAGE 5132/MESSAGE 5132/MESSAGE
      5132/MESSAGE 5138/MESSAGE 5429/EQU     6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE
      6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6107/MESSAGE
   DUPE            3256-AND     3455/FUNCTION
   DVARS            461/STW     1345-EQU     1362/TERMIN
   DVCCODE         2189/OR      2207-GEN
   DWRITE           964/CALL    2621-MTB
   D215DP          2344/SEQ1    2387-TDVMAP
   D215PARS        5282-DEVICE
   D225DP          2344/SEQ1    2395-TDVMAP
   D225PARS        5291-DEVICE
   EBA              248-CNAME
   EDA              249-CNAME
   EDCHAR          1620/MODULE  1622/LW
   EFA              250-CNAME
   EFFADD          3201/BAL     3223/BAL     3237/BAL     3271/BAL     3384-AND
   EHA              251-CNAME
   EJECT           5441-MESSAGE 5694/EFA
   EMIT             304-CNAME
   ENDBUFF         1513/STW     1522/IPAR    1549/LB      1570/IPAR    1597/CB      1602/CB      1624/STB
      1871-GEN
   ENDDATA         1547/BGEZ    1583-LI      1596/BGEZ    1601/BGEZ    1605/B
   ENDFBUFF        1514/STW     1574/STW     1827/STB     1868-RES
   ENDIOTST        3824/B       4374/BEZ     4382-AWM
   ENDITEM         3248/B       3257/BEZ     3261/B       3265/BCR     3267/B       3319-BDR
   ENDPROC        457.1-EQU      459/BAR      475/BE       581/B        861/BNEZ    1071/B       1076/B
      1079/B       1083/B       1334/DATA    5423/B
   ENDSTAT         4922/EFA     5138-MESSAGE
   ENTER            154/BAL     5601-LW
   ENTER1          5606-EXU     5609/BGZ
   ENTER2          5604/BLZ     5611-LC
   ENTRY            151-CNAME   3417/SET     3420-FNAME
   EOBCHAR         1498-EQU     1590/LI      1813/DATA    1871/GEN
   EOBEXIT         1586/BEZ     1590-LI
   EQUCHAR         1660/BEZ     1663-EXIT
   EQVTAB            32/OPEN      71-SET      107-SET      107/SET      375/SET      390/CLOSE
   ERR:CNT         5647-EQU     5655/STW     5832/MTW
   ERRCOUNT        3582/STW     3705/MTW     3706/LW      3714/XW      4050-RES
   ERRECOV         2011/BANZ    2021-EQU
   ERRETURN        2662/BAZ     2666/BAZ     2673-EXIT    2684/BE      2691/BE
   ERREXIT         2025/BEZ     2040/BCR     2047-EXIT    3494/CLOSE
   ERREXIT         4931-EXIT
   ERRFLAG         4799/STS     4810/STS     4926/MTW     5007/MTW     5104-RES
   ERRMSG          4929/EFA     5142-MESSAGE
   ERRORS          4480/CLOSE
   ERRORS        4549.8/MODULE  4557/LW
   ERRSCAN         2027-INT     2037/BDR
   ERRSCAN1        2035-MTB
   ERRSCAN2        2029/BAZ     2037-BDR     2351/EQU
   ERRSCAN3        2042-BDR     2136/BNE   2139.1/B
   ERRTABLE        2023/INT     2027/INT     2399-COMPOSE
   ERRTOTAL        4558/AWM     5106-RES     5138/MESSAGE 5647/EQU
   EWA              252-CNAME
   EXCONV          3276-LWA     3444/CONVERT 3451/CONVERT 3452/CONVERT
   EXIT             160-CNAME    162/BAL     1437/B       1807/B       5616-LW
   EXIT1           5623-LW      5626/BGZ
   EXIT2           5621/BLZ     5628-SLS
   EXPAR            168-CNAME
   E1                25-EQU      154/BAL      162/BAL     1053/LW      1054/AND     1055/CW      1192/LI
      1193/STW     1194/INT     1196/INT     1196/INT     1200/DW      1202/LI      1203/DW      1204/MTW
      1208/LW      1209/STH     1219/LI      1221/SLD     1225/SLD     1226/STW     1234/LW      1235/AW
      1243/BDR     1245/LI      1246/STW     1248/LW      1249/STW     1252/STD     1258/LD      1426/BAL
      1429/BAL     1432/BAL     1759/LW      1763/STB     1765/STW     1806/LWA     2059/LB      2124/LM
      2125/STM     2515/LD      2520/TIO     2531/CW      2533/LW      2534/SCD     2583/STM     2634/LW
      2636/SLD     2638/OR      2640/STD     2641/LI      2642/OR      2643/STW     2668/LI      2675/LW
      2682/AND     2683/CW      2689/AND     2690/CW      2694/LS      2695/EOR     2699/AW    2699.3/SLD
    2699.4/SLS   2699.7/SLD  2699.10/STS     2879/MI      2890/SCD     2895/SCD     2908/SLD     2921/SLD
      3141/LW      3401/LW      3402/STW     3404/LW      3608/LW      3609/STW     3620/INT     3625/INT
      3626/DW      3627/STW     3642/LW      3643/SW      3644/AI      3645/SLD     3646/DW      3648/MTW
    3658.2/LI    3658.3/WD    3658.5/LW    3658.6/STW   3658.8/LI    3658.9/STW  3658.11/LI   3658.12/WD
      3684/LD      3709/LW      3853/LI      3854/STW     3855/LI      3856/STW     3857/ANLZ    3858/OR
      3865/STD     3866/AW      3871/STD     3975/LB      3976/CB    3986.1/LW    3986.2/CI    4124.3/LI
    4124.4/AND   4124.9/SLD  4124.15/STB   4285.3/LW    4285.5/CI    4285.9/CI   4285.17/LW   4285.18/AI
   4285.22/STW*  4301.3/LI    4301.4/DW    4301.5/AI    4301.6/LCW     4315/LW      4317/SLD     4318/OR
      4322/STD     4326/STD     4365/LW      4366/SW      4400/LW      4401/CW      4718/LI      4719/STW
      4954/LW      4955/EOR     4956/XW      4958/STW     4974/LW      4980/CS      5002/LI      5003/STW
      5062/LI      5065/AI      5075/STW     5079/LW      5080/INT     5081/SW      5788/LH      5789/CI
      5797/SLD   5800.4/AND   5800.5/STW   5800.8/SLD     5803/AND     5807/AI      5810/AI      5813/AI
      5814/STW     5837/LI      5838/STB     5848/LH      5849/SLD     5850/DW      5852/MTW     5940/LI
      5941/AWM     5949/LW      5950/AI      5951/STW     5952/CI
   E2                26-EQU      231/GEN      234/COM      235/COM      256/SET     1197/MW      1198/MW
      1199/SAS     1201/STW     1206/AI      1207/STW     1210/AI      1211/STW     1212/STW     1220/LI
      1224/LI      1236/LW      1237/SCS     1242/STS     1760/LW      1766/STW     2635/LW      2639/OR
      2669/LI      2677/LW      2678/CI      2693/LI      2694/LS      2695/EOR     2697/SLS     2698/LW
    2699.6/SLS   2699.9/LI      2888/OR      2896/STB     2909/OR      2917/AND     3628/AWM     3710/LI
      3781/LW      3782/SLS     3783/LB*     3784/SLS     3793/SW      3797/DW      3799/AW      3801/STB
      3802/LW      3814/LW      3817/LW      3859/LW      3860/OR      3870/EOR     4013/LW      4014/INT
      4014/INT     4015/SLS     4016/LW      4016/LW*     4017/SLS     4018/AW      4019/STW   4124.6/LW
    4124.7/SLS  4124.10/SCS  4124.12/STB   4285.8/LI   4285.11/LI   4285.15/LW   4285.15/LW*  4285.22/STW
    4301.2/LCW   4301.8/LW    4306.1/STW     4316/INT     4319/OR      4325/EOR     4809/LW      4810/STS
      4811/STS     4975/LW      5798/SLS     5799/STW     5802/SCS     5805/CI      5808/CI      5811/CI
   E3                27-EQU     1259/LI      1260/STW     2098/LW      2099/STW     2101/LD      2102/STD
      2104/AND     2105/STW     2516/LD      2528/TDV     2531/CW      2880/MI      2882/DW      2883/XW
      2885/DW      2886/STW     2906/LB      2911/BDR     2914/LI      2916/SLS     2917/AND     2918/STW
      4977/LW      4983/BDR
   E4                28-EQU       30/EQU     2130/LW      2131/SLS     2132/LB      2132/LB*     2133/CI
      2135/CI      2533/LW      2552/INT     2553/CI      2556/CW      2561/TIO*    2562/TDV*    2881/XW
      2884/AW      2887/AWM     2907/LB      2909/OR    3609.2/BAL  3658.14/B*      4564/LW      4565/LC
    5725.2/BAL
   F               5231-SET     5233-SET     5235/DO      5236-SET     5236/SET     5236/SET     5236/SET
      5247/GEN     5249/GEN
   F                 32/OPEN     116-SET      367-SET      369/DO       370-SET      373/DO       374/DO
       375-SET      378/PEND     390/CLOSE
   F               2218/OPEN    2226-SET     2229-SET     2229/SET     2232/GOTO    2249/CLOSE
   FALTERR         3564/BNEZ    3569-EXIT
   FCNTAB          3205/INT     3305/LW      3459-GENTABLE
   FDATA            521/INT      845/AND     1194/INT     2652/INT     2794/INT     4250/INT     4503/INT
      4527/INT     4630/INT     4947/INT     5080/INT     5366-GTAB    5730/LW
   FILL            3395-STB     3397/BDR
   FLAG            5742/STW     5763/MTB     5793/MTB     5829/MTB     6078-RES
   FLAGBUFF        1831/STB     1867-RES     1877/MESSAGE
   FLAGCCHR         572/CALL    1604/CALL    1698/CALL    1705/CALL    1800/CALL    1824-MODULE  1832/EXIT
   FLAGERR         4798-LW
   FLAGLINE        1866-GEN     1877/MESSAGE
   FLAGS           1516/STW     1563/XW      1585/XW      1828/MTW     1864-RES     1880/CLOSE
   FLAGS           5179-CNAME   5180-FNAME
   FLAG1           4719/STW     4737/LWA*    4751/MTW     4774/MTW     4816-RES
   FLAW            3557-MODULE  3567/EXIT    3569/EXIT    4744/CALL    4767/CALL    4791/CALL    5158/CLOSE
   FLAW            5776/STB     5791/MTB     5823/MTB     5838/STB     5989/MTB     6074-DATA
   FLAWALT         4692/BGEZ    4789-LI
   FLAWBYTE        3532/CLOSE
   FLAWBYTE        3546/STW     3560/STW     3618/PAR     3906/MTW     3990/MTW     4051-RES     4095/CLOSE
   FLAWBYTE        4098/MODULE  4105/AND
   FLAWENT         3555/B       3560-STW
   FLAWEXIT        3566-EQU
   FLAWMARK        4188-EQU     4213/FORMAT
   FLIST           3417-SET     3434/DO      3437/GEN     3442-SET
   FLW:CNT         5646-EQU     5654/STW     5826/MTW
   FMATIND          692/MTW      695/MTW      849/MTW      903/MTW      908/MTW     1352-RES
   FOLLOWON        2653/EXU     2723-NOP
   FORMALT         3553-MODULE  4730/CALL
   FORMAT          1008/CALL    3537-MODULE  3551/EXIT    3553/MODULE* 3557/MODULE* 4194-CNAME
   FORMATT         3622/BAL     3682-LCI     3711/BAL
   FORMAT0         3686-LI      3750/BLZ
   FORMAT1         3687-AI      3699/BGZ
   FORMAT2         3688-PSW     3737/BDR
   FORMAT25        3697-EQU     3820/CI
   FORMAT3         3701-PLW     3739/BDR
   FORMAT4         3703/BEZ     3739-BDR
   FORMAT5         3741-LCI     3751/B
   FPROCESS         918/BEZ      922-LW       926/BGZ
   FTABLE           544/INT      593-FUNCTION 606/TERMIN
   FUNCTION         585-CNAME   1382/CLOSE
   FUNCTION        3412-CNAME
   FVECT           3695/EXU     3837/EQU     3840-RES
   GALT10          4610-LW      4621/B
   GALT20          4615-AND     4619/BIR
   GALT30          4611/BEZ     4623-EXIT
   GALT40          4616/BEZ     4625-EQU
   GAVAL           1168/PTY     1273-EQU
   GAV10           1278/STB     1279/LW      1281-DATA
   GENFIELD        3462-CNAME
   GENHDRS         3611/CALL    4098-MODULE  4182/EXIT
   GENL            2252-CNAME
   GENLIST          421-CNAME
   GENTABLE        3429-CNAME
   GETALT          4607-MODULE  4623/EXIT    4633/EXIT    4711/CALL
   GETCHAR         1546-LW
   GETMAP          4654/BAL     5058-LI
   GLINE           5939/EFA     6098-MESSAGE
   GMASK            815/LW      1055/CW      4587/OR      4592/LW      4710/LW      4809/LW      5078/LW
      5089-EQU     5995/OR      6006/OR
   GM10            5073-MTW
   GM20            5071/BNE     5077-RES
   GRAN:CYL         705/RTN      708/STW     1190/MTW     1193/STW     1200/DW      1208/LW      1217/LW
      1230/LW      1275/LW      1358-RES
   GRANSIZE        5191-CNAME   5192-FNAME   5344-DEFAULT
   GRAN0           1129/PTB     1142-PTY     1150/TERMIN
   GRAN0A          1130/PTB     1151-PTY     1153/TERMIN
   GRAN1           1131/PTB     1156-PTY     1162/TERMIN
   GRAN2           1133/PTB     1164-PTY     1169/TERMIN
   GRAN3           1134/PTB     1171-PTY     1179/TERMIN
   GREETMSG         444/EFA     1366-MESSAGE
   GRTITLE         5913/EFA     6095-MESSAGE
   GTAB            5227-CNAME
   GZERO           5937/EFA     5948/EFA     6107-MESSAGE
   HANGWAIT        2065-CALL    2074/BNEZ    2094/B
   HBUFF           4106/STH     4115/EBA     4122/LB      4124/STS   4124.4/AND   4124.6/LW   4124.12/STB
   4124.15/STB     4127/EBA     4154/LB      4157/STB     4163/LB      4184/STS     4185/STH     4204-RES
   HDR             5698/STW     5735/STH     5778/CW      5785/MTW     5841/AWM     5864/STW
      6054/MESSAGE 6054/MESSAGE 6054/MESSAGE 6070-GEN
   HDRBUFF         2668/LI      2675/LW      2711-RES     3494/CLOSE
   HDRBUFF         5906/EFA*    5920/LW*     5964/EFA*    6112-EQU
   HDRERR          5831/LW      6082-TEXTC
   HEADDATA        3579/LB      4160/LB      4162/LB      4213-FORMAT
   HEADER          4189-FNAME   4206/EQU     4207/EQU     4208/EQU     4209/EQU
   HEADING         4840/EFA     5130-MESSAGE
   HEX             5924/BAL     6126-LI
   HEXCONV          495/CALL    1400-MTB
   HIO             4351-HIO     4462/DATA
   HPAR             215-CNAME
   HREJECT         3849/CALL    4547-MTB
   HREMSG          5125/DATA    5127-MESSAGE
   HX1             6145-SCD     6149/BLE
   HX2             6146-MTW     6153/B
   HX3             6143/B       6148-CB
   HX4             6127/STW     6146/MTW     6155-DATA
   I                 32/OPEN      68-SET      109-SET      109/SET      110-SET      111-SET      112-SET
       113-SET      114-SET      115-SET      124/DO       125-SET      132-SET      133-SET      138-SET
       139-SET      390/CLOSE
   I               5201/SET     5211/DO      5220-SET     5220/SET     5238/DO      5269-SET     5346/EQU
   I                420/OPEN     426-DO       427/GEN      431/CLOSE
   I               2218/OPEN    2224-DO      2225/SET     2236/SET     2240/SET     2249/CLOSE
   ICONV           3283-LB      3447/CONVERT 3448/CONVERT 3449/CONVERT 3450/CONVERT
   IDENTIFY         584-CNAME
   IFZERO          2277-CNAME
   IGNORE          2230/IFZERO  2351-EQU
   ILB              320-FNAME   3447-CONVERT 3826/MESSAGE 3826/MESSAGE 4025/MESSAGE 4025/MESSAGE 5113/DATA
      5118/DATA    5120/DATA    5132/MESSAGE 5132/MESSAGE 6095/MESSAGE 6098/MESSAGE
   ILNK            3535-EQU     3583/BAL     3622/BAL     3629/BAL     3682/LCI     3711/BAL     3741/LCI
      3743/B*      3820/CI      3821/BLE*    3836/BAL     3902/B*      3909/B*      3985/B*      4001/B*
      4004/B*      4023/B*      4043/BLE*    4045/B*
   ILZ              321-FNAME   3448-CONVERT 3663/MESSAGE 3663/MESSAGE 3663/MESSAGE 3663/MESSAGE
      6037/MESSAGE 6037/MESSAGE 6037/MESSAGE 6054/MESSAGE 6054/MESSAGE 6054/MESSAGE 6054/MESSAGE
      6054/MESSAGE 6054/MESSAGE            6082.1/MESSAGE            6082.1/MESSAGE 6084/MESSAGE
      6084/MESSAGE 6084/MESSAGE 6084/MESSAGE
   IN               130-FNAME   1460/MODULE  1620/MODULE  1655/MODULE  1727/MODULE  1754/MODULE
      1978/MODULE  2184/MODULE  2464/MODULE  2509/MODULE  2623/MODULE  2770/MODULE  2874/MODULE
      2901/MODULE  2938/MODULE  3002/MODULE  3064/MODULE  3162/MODULE  3537/MODULE  4098/MODULE
      4238/MODULE             4549.8/MODULE  4607/MODULE  4652/MODULE  5467/MODULE  5478/MODULE
   INDEX           1460/MODULE  1469/STW
   INITDATE         453/STD     1174/PTY     1175/PTY     1184/PTY     1185/PTY     1342-RES     4913/LD
   INITERR          784/BAR      997-CALL    1382/CLOSE
   INITERR         1899/BANZ    1902-LI
   INITMAP         1149/PTY     1229-EQU
   INITMAPA        1151/PTY     1255-EQU
   INITMAP1        1237-SCS     1243/BDR
   INITMAP2        1238/BOD     1242-STS     1261/B
   INITMSG2        1902/LI      1907-MESSAGE
   INITMSG4        1948/EFA     1956-MESSAGE
   INITM10         1241/BGE     1252-STD
   INITM50         1252/STD     1256/MTW     1258/LD      1260/STW     1264-DATA
   INITRMSG         998/EFA     1368-MESSAGE
   INITSEEK        4274/LW      4425-GEN
   INIT10          1933-EQU     1941/BLZ
   INIT20          1924/BAR     1947-CALL
   INIT25          1919/STW     1943/LW      1949/LW      1953-RES
   INIT27          1935/RTN     1937/LW      1954-RES
   INSCAN2          544-INT      548/BDR
   INSCAN3          555-CI       617/B        622/B      622.6/BANZ  622.13/B        631/BANZ     672/BAR
       709/B        716/B        733/BANZ     742/B        759/B        777/B
   INSCAN4          559/BAR      561-CALL
   INSCAN5          556/BANZ     562-CALL
   INST              32/OPEN     261/ANLZ     386-FNAME    390/CLOSE
   INTERP           402-CNAME
   INVALADD        2523/BCS     2557/BNE     2577-EQU
   INVALEN         1758/BG      1769-EXIT
   INVALID         1413/BL      1417/BGE     1419/BOV     1426-BAL     1880/CLOSE
   INVALID         3400-EQU     3435/GEN     3494/CLOSE
   INVALMSG        3406/EFA     3409-MESSAGE
   INVNTMSG        2589/EFA     2594-MESSAGE
   INVSTAT         2532/BNE     2582-LCI
   INVSTMSG        2585/EFA     2596-MESSAGE
   IOABORT         1993/BAR     2128/BAR     2149-LW
   IOADRESS        2464/MODULE  2470/SIO*    2497/MESSAGE 2509/MODULE  2520/TIO*    2528/TDV*    2556/CW
   IOCHECK         2065/CALL    2085/CALL    2519-MODULE  2540/EXIT
   IOCHECK1        2520-TIO     2526/B
   IOCHECK2        2523-BCS     2529/BCS
   IOCHECK3        2521/BCR     2528-TDV
   IOCODE          4318/OR      4427-GEN
   IODIAG          1903/CALL    1947/CALL    2080/CALL    2114/CALL    2155/CALL    2184-MODULE  2205/EXIT
      6027/CALL
   IOERRCHK        4361/BAR     4396-MTW
   IOERRMAX         7.1-EQU   1982.1/LI
   IOERRMSG        6032/EFA     6037-MESSAGE
   IOERROR         2650/BAR     2657-CI
   IOERRORS       889.3/STW     1351-RES     2022/MTW     3663/MESSAGE 5138/MESSAGE
   IOERRX          6028/EFA     6036-MESSAGE
   IOERR1          2658/BNE     2665-CI
   IOEX            1978-MODULE  2012/EXIT    2047/EXIT    2644/CALL    3881/CALL    4338/CALL    4355/CALL
      5750/CALL
   IOINITT          783/CALL    1892-MODULE  1900/EXIT    1905/EXIT
   IOINT           2545-PSM     2574/DATA
   IOINTPSD        2462/XPSD    2569/LPSD    2572-DATA
   IOINTX          2554/BLE     2566-EQU     2580/B       2590/B
   IOINVERR        4402/BL      4416-B
   IOLIST          2464/MODULE  2469/LW
   IOLOOP          2511-EQU     2513/BEZ
   IOMAIN          1986-EQU     2002/BEZ     2042/BDR
   IOMSG2          2151/EFA     2162-MESSAGE
   IOMSG3          2156/EFA     2163-MESSAGE
   IOPCODE         2188/LB      2208-TEXT
   IOPINITT         442/CALL    2452-MODULE  2460/EXIT
   IOSTART         1921/CALL    1990/CALL    2464-MODULE  2472/EXIT    2834/CALL
   IOSTART1        2469-LW      2484/BE
   IOSTART2        2472-EXIT
   IOTEST          3993/CALL    4238-MODULE  4392/EXIT    4394/EXIT
   IOTEST1       4285.3-LW      4380/BIR
   IOTEST11        4298/B       4309/B       4312-LI
   IOTEST2         4315-LW      4375/BIR     4379/BDR
   IOTEST2A        4336-LI
   IOTEST21        4324/BEZ     4329-CI
   IOTEST3         4330/BE      4333/BEZ     4355-CALL
   IOTEST4         4364-EQU
   IOTEST5         4372-EQU     4414/BEZ
   IOTNEXIT        4391/BE      4394-EXIT
   IOWAIT          1926/CALL    1995/CALL    2509-MODULE  2519/MODULE* 2839/CALL
   IOXPSD          2454/LW      2462-XPSD
   IPAR             234-COM
   IPARS             32/OPEN     112-SET      132-SET      156/GEN      390/CLOSE
   ITB              322-FNAME   3449-CONVERT
   ITEM            5162-CNAME
   IVL              319-FNAME   1370/MESSAGE 1370/MESSAGE 1372/MESSAGE 1372/MESSAGE 3450-CONVERT
    5129.1/MESSAGE 5136/MESSAGE 5138/MESSAGE 5138/MESSAGE 5138/MESSAGE
   J                 32/OPEN     123-DO       124/DO       125/SET      153-SET      156/GEN      156/GEN
       156/GEN      170-SET      171/GEN      171/GEN      171/GEN      186-DO       187/DO       188/ERROR
       188/ERROR    198-DO       199-RES      292-DO       293/DO       295/EMIT     297/DATA     390/CLOSE
   J               4636-DO      4637/DATA    5091-DO      5092/GEN     5092/GEN     5164-DO      5165-EQU
      5165/EQU     5167/SET     5232-DO      5233-SET     5233/SET     5235-DO      5238-DO      5243/SET
      5246/DO
   J               2218/OPEN    2227-DO      2228-IFZERO  2229/SET     2230-IFZERO  2237-SET
      2238-IFZERO  2239-SET     2240-SET     2240/SET     2243-DO      2244/INTERP  2244/INTERP
      2244/INTERP  2249/CLOSE
   JUSTIFY         3309/BAL     3315/BAL     3391-BEZ
   K               5239-DO      5240/DO      5241-SET     5243-SET     5243/SET
   KBUFF           3064/MODULE  3065/LW      3080/LM      3109/LB*     3130/STB*    3133/STB*
   KEOB             574/IPAR    1364-EQU
   KEYBUFF          857/EFA      859/LH      1311/EFA     1314/LH      2478/EFA     2482/LW      5537/STD
      5538/STD     5542/EFA     5545/LW      5553/LB      5573-RES
   KEYFLAGS         730/MTH     1350-RES
   KEYREP          5664/CW      5671-GEN     5674/EQU
   KEYSCAN          530-MI       568/B
   KEYSCAN1         535/BE       539-CALL
   KMSG            3064/MODULE  3073/PAR     3116/PAR
   KSIZE           3064/MODULE  3067/LW
   L                261/ANLZ    1102/SET     2670/LB      3128/EFA     3279/LB      5114/DATA
    5129.1/MESSAGE
   LABNONE          713/MTW      800/MTW      935/MTW     1360-RES
   LBA              244-CNAME
   LBUFF           3857/ANLZ    3926-LB    3971.3/ANLZ    3973/ANLZ
   LCOUNT          5903/STW     5941/AWM     6091-RES     6098/MESSAGE
   LDA              245-CNAME
   LEFT            6122-EQU     6126/LI      6127/STW     6128/LI      6129/SCD     6130/SCS     6131/SCD
      6132/SCS     6133/SCD     6134/SCS     6135/SCD     6136/SCS     6137/SCD     6138/SCS     6139/SCD
      6140/SCS     6141/SCD     6145/SCD     6150/SCD     6151/AND     6152/MTB
   LGEREXIT        4576/BNOV    4584/BEZ   4594.1-EXIT
   LHA              246-CNAME
   LINK            6124-EQU     6147/BEZ*
   LISTCTR           32/OPEN      51-SET       55-SET       55/SET       56/PEND     390/CLOSE
   LNK               30-EQU       75/BAL      156/GEN      171/GEN     1400/MTB     1404/LB      1638/B*
      2149/LW      2154/LW      2620/MTB     2621/MTB     2625/STW     3141/LW      3404/LW      4547/MTB
      4549/MTB   4549.6/MTB     4553/LB      5495/B*
   LOGCLN          1050/BAR     1081-CALL
   LOGERR          1001/CALL    3847/CALL  4549.3-MTW
   LOGERROR         976/EXU     1001-CALL
   LOGFLAG          780/MTW      796/MTW     1354-RES
   LOGIN            525/BAR      780-MTW
   LOGON            797/BNEZ    1041-EQU
   LOGONMSG        1070/EFA     1374-MESSAGE
   LOGRUB          2980/CALL    3002-MODULE  3045/EXIT    3115/CALL
   LOGRUB0         3019/BEZ     3024-EQU
   LOGSKP          4566/BCS     4569/BAZ     4573-EQU
   LPADS           3308/LB      3490-DATA
   LWA              247-CNAME
   M               2218/OPEN    2225-SET     2228-IFZERO  2228/IFZERO  2229/SET     2229/SET
      2230-IFZERO  2233-SET     2234/APPEND  2235/GOTO    2237/SET     2239/SET     2249/CLOSE
   MAIN            3611-CALL    3649/BNEZ    3652/BCS     3658/B
   MAINSCAN         457-EQU    992.1/B        999/B
   MAP             1493-SET     1493/SET     1845-SET     1853/GENLIST 2224/DO      2225/SET     2302-SET
      2347-SET
   MAPALT           930/CALL    4668-MODULE  4765/EXIT
   MAPALTX         4671/BEZ     4765-EXIT
   MAPENT          4556/BAL     4589/BAL     4997-LW
   MAPINITT         894/CALL    4495-MODULE  4530/EXIT
   MAPINIT0      4510.3/BLE  4510.10-STW
   MAPOVF          4999/BGE     5006-MTW
   MAPSIZE       4476.1-EQU     4998/CI      5099/RES     5100/RES
   MAPWL           1146/PTY     1207/STW     1209/STH     1287-RES
   MAP1            4564/LW      4575/STS     4593/STS     4677/INT     4800/STS     4811/STS     4873/INT
      4889/INT     4980/CS      5001/STW     5029/LW      5031/CS      5033/XW      5036/STW     5099-RES
      5996/STW     6007/STW
   MAP2            4560/AWM     4685/INT     4739/LCF     4740/STW     4741/STCF    4852/LW      4855/STW
      4857/INT     5003/STW     5030/LW      5034/XW      5037/STW     5100-RES     5999/STW     6012/STW
   MASK             949/LW      2104/AND     3222/AND     3256/AND     3384/AND     3779/AND     3792/AND
      4519/LW      4615/AND     4635-EQU     4975/LW      5027/LW      5732/AND     5759/AND   5800.4/AND
      5803/AND
   MASKBIT         2236/SET     2240/SET     2335-FNAME
   MEMERR          2055-LW      2365/TDVMAP  2365/TDVMAP
   MESSAGE          282-CNAME
   MESSG           2184/MODULE  2196/EFA*
   MINDEX            32/OPEN     107/SET      153/SET      170/SET      365-FNAME    390/CLOSE
   MODNAME         1460/MODULE  1466/PAR
   MODULE           102-CNAME
   MONTH           5534/MODULE  5565/STW
   MOVE            2895-SCD     2898/BDR
   MOVECBUF        3310-LB      3313/BIR
   MOVETEXT        3240/BNE     3243-LB      3247/BDR
   MOVNAME         1761-LB      1764/BGZ
   MOVSENSE        2907-LB      2911/BDR
   MTAB              32/OPEN      69-SET      110-SET      368/DO       369/DO       390/CLOSE
   NAMECHK          737/CALL    1754-MODULE  1767/EXIT    1769/EXIT
   NAMESCAN         511/CALL     539/CALL     675/CALL     734/CALL    1679-MODULE  1710/EXIT    1712/EXIT
   NAMETEST         545/CALL     678/CALL    1464/CALL    1727-MODULE  1736/EXIT    1738/EXIT
   NBC             5172/ITEM    5361/GTAB
   NBS             5172/ITEM    5361/GTAB
   NBSK            5170/CNAME   5171/FNAME   5172/ITEM    5361/GTAB
   NBSN            5182/CNAME   5183/FNAME   5184/ITEM    5362/GTAB
   NBT             5172/ITEM    5361/GTAB
   NBUFF           2623/MODULE  2635/LW
   NBYTRK          3581/STW     3691/LW      3859/LW      3866/AW      3984/DW      4009/DW      4048-RES
   NCHARS          1402/MODULE  1436/STW
   NCYLINDS        3533/CLOSE
   NCYLINDS        3537/MODULE  3539/EQU     3543/LW
   NCYLS            689/CW       786/LW       911/LW      4509/LW      5358-GTAB    5867/CW      5958/LW
   NDEVICES        1463/LW      5265-DATA
   NDVARS           460/INT     1362-TERMIN
   NEGINT          2550/BCS     2588-CALL
   NEWSTACK        5493/LD      5515-DATA
   NEXBLOCK        3583/BAL     3629/BAL     4041-LW
   NEXTCHAR         471/CALL     477/CALL     484/CALL     531/CALL     632/CALL    1406/CALL    1420/CALL
      1543-MTW     1682/CALL    1700/CALL    1801/CALL
   NEXTITEM        1467/BAR     1472-BDR     1880/CLOSE
   NEXTITEM        3195-MTW     3319/BDR     3494/CLOSE
   NEXTMAP         4678/BCR     4687/BCS     4761-AI      4806/B
   NFCNS            542/LI       606-TERMIN
   NFQUEUE          465/MTW      576/LCW      578/AWM      666/MTW      899/LW      1356-RES
   NGC              597/FUNCTION 700-EQU
   NGC10            703/BANZ     708-STW
   NGRN0           1129/PTB     1150-TERMIN
   NGRN0A          1130/PTB     1153-TERMIN
   NGRN1           1131/PTB     1162-TERMIN
   NGRN2           1133/PTB     1169-TERMIN
   NGRN3           1134/PTB     1179-TERMIN
   NIPRS             32/OPEN     114-SET      133-SET      156/GEN      390/CLOSE
   NITEMS          5160-SET     5165/EQU     5167-SET     5167/SET
   NLCYLS          1201/STW     1234/LW      1288-RES
   NMAP            4670/MTW     4762/CW      4832/MTW     4905/CW      4977/LW      4997/LW      5000/MTW
      5024/LW      5098-RES     5136/MESSAGE 5987/LW      6018/MTW
   NMAPS           2344-SEQ1    2346/EQU
   NOALT           4112/BCS     4184-STS
   NOCOMPAR        1731/BNE     1734/BNE     1738-EXIT
   NODEVICE        2579/EFA     2592-MESSAGE
   NOINPUT         1523/BAR     1526-EXIT
   NOLAB            605/FUNCTION 713-MTW
   NOLAB0         709.5/B      713.2-CI
   NONEFCN          682/EXU      695-MTW
   NOPAR            235-COM
   NOPRS             32/OPEN     115-SET      139-SET      171/GEN      390/CLOSE
   NOREP           2485/CW      2495-GEN
   NORMEXIT        1422/BAR     1432-BAL     1880/CLOSE
   NORMEXIT        4927/BEZ     4933-EXIT
   NPBUFF          1686/LI      1703/CI      1874-EQU
   NREGS             32/OPEN     111-SET      124/DO       125-SET      156/GEN      171/GEN      390/CLOSE
   NRTRIES          467/STW      768/RTN      771/STW      773/LW      1290-DATA    3716/LW      3749/SW
      5744/LW
   NSC             5184/ITEM    5362/GTAB
   NSCAN1          1691-AI      1704/BL
   NSCAN2          1697/BIR     1700-CALL
   NSCAN3          1702/BAR     1707-STB
   NSECS           1198/MW      2805/LW      2882/DW      3580/MW      3797/DW      4108/LW      4260/MW
      4321/MW      4367/DW      5360-GTAB    5700/LCW     5704/LW      5765/AW      5770/LW
   NSEPLIST        1795/LI      1818-EQU
   NSPT            1135/PTB     1186-TERMIN
   NSS             5184/ITEM    5362/GTAB
   NST             5184/ITEM    5362/GTAB
   NTABLES         3494/CLOSE
   NTABLES         4497/LI      5111-EQU
   NTEST1          1732-LB      1735/BDR
   NTRACKS         3533/CLOSE
   NTRACKS         3537/MODULE  3540/EQU     3545/AW      4094/CLOSE
   NTRACKS         4098/MODULE  4109/MW      4236/CLOSE
   NTRACKS         4238/MODULE  4241/LW      4259/LW      4284/LW      4390/CW
   NTRKS            661/MW       690/CW       788/OR       912/MW      1197/MW      2804/LW      2885/DW
      3544/MW      3626/DW      4505/MW      4517/LCW     4612/LCW     4626/AW      4683/DW      4722/MW
      4868/DW      4901/DW      4949/MW      5063/SW      5067/AW      5359-GTAB    5708/MW      5843/CW
      5960/LW      5993/MW      6003/LW      6010/MW
   NTYPES          2227/DO      2346-EQU
   NULL            2221/SET     2222/SET     2223/SET     2339-CNAME   2340-FNAME   2347/SET     2348/SET
   NULLNAME        1684/BAR     1712-EXIT
   NULLRTN         1408/BAR     1429-BAL
   NUMLIST         5265/DATA    5346-EQU
   NUMREP          5662/LI      5674-EQU
   NUMTEST         1410/CLM     1442-DATA    1880/CLOSE
   NUMTEST         5555/CLM     5570-DATA
   NVALDEV         1026-MESSAGE
   NVARS           2796/LI      2797/MTW     2800/AWM     2807-EQU
   NVAT            1147/PTY     1215-EQU
   NWORDS          5467/MODULE  5470/SW
   NXCRTEST         573/CALL    1653-MTW
   NXCYL           5847-EQU   6033.1/B
   NXCYL0          5853/BNEZ    5856/BCS     5861-LW
   NXCYL1          5876/BCR     5879-CALL
   NXTRK           5768/B       5794/BEZ     5840-LW
   OCODE           5175/ITEM    5366/GTAB
   ODD             5268-EQU     5319/CLASS
   OFF               52-FNAME    155/LIST     163/LIST     284/LIST     291/LIST     425/LIST     588/LIST
      5222/LIST
   ON                53-FNAME    157/LIST     165/LIST     289/LIST     301/LIST     429/LIST     590/LIST
      5224/LIST
   ONEPAR           680/EFA     1293-TEXTC
   ONETEXT         3193/BNEZ    3251-LI
   OPARS             32/OPEN     113-SET      138-SET      171/GEN      390/CLOSE
   ORDER           3858/OR      3929-GEN
   ORDLIST         2638/OR      2714-GEN
   ORIG              42-EQU      547/EFA      550/BANZ     554/B        954/BCS      956/LW      1113/PEND
      2030/BCR     2033/B       3206/BCR     3227/B       3426/SET     3435/GEN
   OUT              136-FNAME   1402/MODULE  1460/MODULE  1544/MODULE  1679/MODULE  1754/MODULE
      1978/MODULE  2509/MODULE  2770/MODULE  2821/MODULE  2874/MODULE  2901/MODULE  3002/MODULE
      4238/MODULE  4607/MODULE  5467/MODULE  5534/MODULE
   OVERFLOW        5471/BLZ     5501-CALL
   OVERMSG         3494/CLOSE
   OVERMSG         5502/EFA     5505-MESSAGE
   OVFFLAG         4908/MTW     5006/MTW     5105-RES
   OVFMSG          4911/EFA     5136-MESSAGE
   PACK            2888-OR      2892/BDR
   PAIRFLAG        4707/STW     4758/MTW     4817-RES
   PALT1           4849/LI      5117-DATA
   PALT2           4850/LI      5119-DATA
   PAR              212-CNAME
   PARITMSG        2062/EFA     2159-MESSAGE
   PARMASK         5602/AND     5619/AND     5632-DATA
   PASS           605.2/FUNCTION            622.2-LI
   PASSMAX        467.2/STW    622.3/STW    622.9/RTN   1360.2-RES   3986.1/LW    4285.1/LCW
   PATFLAG        522.5/STW    608.1/LW       613/RTN      616/STW   4285.3/LW      5356-RES
   PATTERN          603/FUNCTION 608-EQU
   PBUFF           1692/STB     1707/STB     1708/LI      1872-RES     1874/EQU
   PBUFFEND        1687/STW     1873-RES     1874/EQU
   PCODE           5173/CNAME   5174/FNAME   5175/ITEM    5366/GTAB
   PCOMNT          4871/LI      5122-DATA
   PDISP           4848/LI      5115-DATA
   PFSTAT          4833/BEZ     4913-LD
   PFSTAT3         4874/BCR     4876/BCS     4881-EQU
   PFSTAT4         4879/B       4888-EQU
   PGE              351-FNAME   5130/MESSAGE 5441/MESSAGE
   PHREMSG         4878/LI      5125-DATA
   PLIST           3162/MODULE  3189/LW*     3195/MTW     3196/LW*     3252/LW
   PMSTAT           991/CALL    4830-MODULE  4931/EXIT    4933/EXIT    5008/CALL
   POINT           4525/STW     4610/LW*     4620/MTW     4629/AW      5102-RES
   POSITION        3292/B       3305-LW
   PRABORT         2154-LW      2365/TDVMAP  2365/TDVMAP
   PRBUFF          3165/GEN     3171/GEN     3327/STB     3334/LI      3487-RES
   PRHEX           5925/STD     6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE
      6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6110-RES
   PRIMESIZ        4506/STW     4691/SW      5103-RES
   PRINCBUF        1876-MESSAGE
   PRINFBUF        1566/EFA     1588/EFA     1877-MESSAGE
   PRINT           3162-MODULE  3167/MODULE* 3372/EXIT    4839/CALL    4841/CALL    4902/CALL    4910/CALL
      4919/CALL    4921/CALL    4923/CALL    4928/CALL    5693/CALL    5834/CALL    5879/CALL    5883/CALL
      5886/CALL    5912/CALL    5936/CALL    5938/CALL    5947/CALL    5971/CALL    5980/CALL
   PRIVIND          600/FUNCTION 720-AI
   PRIVINIT        1181/PTY     1283-LW
   PROCESS          563/BAR      781-MTW     1382/CLOSE
   PROCESS         3198-LW      3273/B
   PROC05           803-CALL
   PROC20           810/BAR      813-LW
   PROC22           820-CALL
   PROC23           830/BE       837-EQU
   PROC25           826/B        882-EQU
   PROC30           862/B        889-EQU
   PROC35           904/BNEZ     909/B        916-EQU
   PROG            1978/MODULE  1992/PAR
   PROGERR         2077-MTB     2365/TDVMAP
   PROGRAM           36-SET       43/ORG      195-SET      202/ORG      306-SET      310/ORG
   PROMPT          2949/EFA     2981/EFA     3000-TEXTC
   PRVTMSG         1377-MESSAGE 1380/DATA
   PSTAT1          4847-LI      4906/BL
   PSTAT2          4863/BEZ     4871-LI
   PTB             1086-CNAME
   PTNALTN      4285.11/LI    4421.2-DATA
   PTN7242       4285.8/LI    4421.1-DATA
   PTN7275       4301.8/LW    4417.1-DATA
   PTOTAL          4847/LI      5113-DATA
   PTRLIST          729/LW       744-DATA
   PTRN0            611/BANZ     616-STW
   PTY             1096-CNAME
   PUB              817/BNE      876-AI
   PUBLIND          599/FUNCTION 724-STW
   PUBLMSG         1376-MESSAGE 1379/DATA
   PVTFLAG          724/STW      940/LW      1283/LW      1357-RES
   R               2218/OPEN    2221-SET     2237/SET     2238/IFZERO  2239-SET     2242/INTERP  2243/DO
      2244/INTERP  2244/INTERP  2249/CLOSE
   R               5428-EQU     5434/MESSAGE 5434/MESSAGE 5434/MESSAGE 5434/MESSAGE 5435/MESSAGE
      5435/MESSAGE 5435/MESSAGE 5435/MESSAGE 5436/MESSAGE 5436/MESSAGE 5436/MESSAGE 5436/MESSAGE
      5437/MESSAGE 5437/MESSAGE 5437/MESSAGE 5437/MESSAGE
   RA                32/OPEN     263/LI       380-FNAME    390/CLOSE
   RBUFFORG        3591/AWM     3927/LB*     4064-RES
   RDERR           5756/BAR     6021-EQU
   RDGRAN          5691/BCR     5890-LC
   RDG00           5891/BCS     5894-EQU
   RDG050          5901-LI
   RDG100          5903-STW     5953/BL
   RDG200          5918-STW     5943/BL      5973/BAL
   RDG300          5920-LW      5926/BIR
   RDG400          5929/BNEZ    5933-MTW
   RDG500          5934/BEZ     5938-CALL
   RDG600          5931/B       5940-LI
   RDG700          5946/BEZ     5949-LW
   RDG800          5914/LI      5957-RES
   RDHDR           5721/STW     5751/EDA     5758/LW      6060-GEN
   RDHDRSZ         5725/STW     6063-GEN
   RDHDR1          6041-GEN
   RDSPARE         1042-CALL
   RDSPERR         1048/BAR     1073-EQU
   RDSPMSG          869/EFA     1075/EFA     1372-MESSAGE
   READCYCL        5748-EQU     6025/BDR
   READFCN         3842-DISPATCH
   READHDR         3842/DISPATCH           3850.1-EQU
   READHEAD        5728/BCR     5739-EQU     5868/BNE
   READNEXT        1564/BEZ     1568-CALL
   RECOVER         3705-MTW
   RECOVER2        3723/BNE     3726/BEZ     3730-EQU
   RECOVER3        3707/BDR     3746-BDR
   REGMSG          5388/EFA     5433-MESSAGE
   REINIT          1894/BAL     1918-EQU     2127/CALL
   REJECT          1002/CALL    1015/CALL    3848/CALL    4549-MTB
   REJECTS         3663/MESSAGE 4571/MTW     5109-RES     5646/EQU
   REJTOTAL        4898/MTW     5107-RES     5138/MESSAGE
   RELEASE         3633/CALL    3636/CALL    4383/CALL    4386/CALL    5478-MODULE  5490/EXIT    5871/CALL
      5976/CALL
   RESTORE         2799/EXU     2804-LW      2807/EQU
   RETARD          4434/GEN     4439-DATA
   RETRY           2075/B     2145.1/BCS   2349.1-EQU     2380/TDVMAP  2383/TDVMAP  2387/TDVMAP
      2391/TDVMAP  2395/TDVMAP
   RETURN          2791/BEZ     2795/BCR     2798/BGEZ    2802-EXIT
   RETURN1         1806/LWA     1809-EXPAR
   RETURN2         1810-EXPAR
   RETURN3         1811-EXPAR
   RINIT           2078/B       2096-EQU     2147/B       2365/TDVMAP  2365/TDVMAP  2380/TDVMAP
      2383/TDVMAP  2387/TDVMAP  2391/TDVMAP  2395/TDVMAP
   RINITMSG        2115/EFA     2164-MESSAGE
   RINIT0          2108/BNEZ    2113-EQU
   RINIT1          2111/BCS     2118-EQU
   RINIT2          2116/B       2122-EQU
   RITE            6123-EQU     6142/SCS     6148/CB
   RJTMSG          5116/DATA    5144-TEXT
   RLINE1          5392/EFA     5434-MESSAGE
   RLINE2          5394/EFA     5435-MESSAGE
   RLINE3          5396/EFA     5436-MESSAGE
   RLINE4          5398/EFA     5437-MESSAGE
   RNORM           3889-LW
   ROM              227-CNAME
   RPADS           3314/LB      3491-DATA
   RPAR             216-CNAME
   RSETUP          3865-STD     3868/BDR
   RSETUP2         3863/BEZ     3870-EOR
   RSM              228-CNAME
   RTB              222-CNAME
   RTDC             226-CNAME
   RTH              223-CNAME
   RTN              224-CNAME
   RTW              225-CNAME
   RUBBUF          3002/MODULE  3038/STW
   RUBLEN          3002/MODULE  3004/LW
   RUBMSG          3002/MODULE  3016/PAR
   RUBSIZ          3002/MODULE  3043/STW
   RUBWARN         2997/EFA     3011/EFA     3047-TEXTC   3090/EFA
   RWCHECK         3892-SW      3923/BEZ
   RWERROR         3887/BAR     3904-MTW
   RWERROR2        3905/BEZ     3911-EQU
   RWERR1          3898/BDR     3937-LW      4370/BNE
   RWERR2          3924/B       3955-CALL    4416/B
   RWMSG1          3943/EFA     3959-MESSAGE
   RWMSG1A         3945/EFA     3960-MESSAGE
   RWMSG1B         3947/EFA     3961-MESSAGE
   RWMSG1C         3950/EFA     3963-MESSAGE
   RWMSG1D         3952/EFA     3965-MESSAGE
   RWMSG2          3956/EFA     3966-MESSAGE
   S               5429-EQU     5433/MESSAGE 5434/MESSAGE 5434/MESSAGE 5434/MESSAGE 5434/MESSAGE
      5435/MESSAGE 5435/MESSAGE 5435/MESSAGE 5435/MESSAGE 5436/MESSAGE 5436/MESSAGE 5436/MESSAGE
      5436/MESSAGE 5437/MESSAGE 5437/MESSAGE 5437/MESSAGE 5437/MESSAGE
   S               1095/OPEN    1099-SET     1101/DO      1102-SET     1102/SET     1105/INTERP
      1105/INTERP  1114/CLOSE
   S               2218/OPEN    2222-SET     2240-SET     2240/SET     2244/INTERP  2249/CLOSE
   S:C              286/DO       293/DO
   S:LIST          2258/DO
   S:PT               5/EQU
   S:RAD            184/DO
   S:UFV            382/SET      382/SET      382/SET      382/SET     1099/SET     1113/PEND
   SAVE              32/OPEN     390/CLOSE
   SAVECCF         5375/STCF    5425-RES     5431/MESSAGE
   SAVEFCN         2625/STW     2633/LB      2712-RES
   SAVEREGS        5377/STM     5426-RES     5428/EQU
   SCN:MSG         5859/EFA   6082.1-MESSAGE
   SCODE           5175/ITEM    5366/GTAB
   SDATA            791/INT     4256/RPAR 4285.20/INT     4301/INT     4316/INT     4388/RPAR    5364-GTAB
   SEARCH          1464-CALL    1472/BDR     1880/CLOSE
   SEARCH          4555/BAL     4588/BAL     4974-LW
   SEARCH1         4980-CS      4983/BDR
   SEARCH2         4981/BE      4986-AI
   SEC             2618/CLOSE
   SEC             2623/MODULE  2631/PAR     2768/CLOSE
   SEC             2770/MODULE  2788/RTN     2797/MTW     2800/AWM     2872/CLOSE
   SEC             2874/MODULE  2881/XW      2883/XW      2901/MODULE
   SECMOD          5702/STW     5840/LW      6065-DATA
   SECTOR          4209-EQU     4213/FORMAT  5158/CLOSE
   SECTOR          5902/STW     5910/PAR     5949/LW      5951/STW     6090-RES     6095/MESSAGE
   SECTS           5178/ITEM    5360/GTAB
   SECTSIZE        5194-CNAME   5195-FNAME
   SEEK            5170-CNAME   5171-FNAME
   SEEKADDR        2627/CALL    2874-MODULE  2899/EXIT    3872/CALL    4114/CALL    4126/CALL    4276/CALL
   SEEKBUFF      2210.1/MESSAGE 3873/EBA     4052-RES     4055/GEN     4096/CLOSE
   SEEKBUFF        4273/LW      4277/EBA     4425/GEN     4431-RES
   SEEKCOM         3769/LW      3853/LI      3877/RTH     3882/EDA     4013/LW      4055-GEN     4060/DATA
   SEEKDATA        2628/EBA     2641/LI   2699.10/STS     2706/GEN     2710-RES
   SEGDATA         3602/DW      3603/AW      4042/CW      4044/LW      5365-GTAB
   SEGLEN          5188/CNAME   5189/FNAME   5190/ITEM    5365/GTAB
   SEGSIZE         5188-CNAME   5189-FNAME   5343-DEFAULT
   SENMSG          5417/EFA     5438-MESSAGE
   SENSADD         2770-MODULE  2802/EXIT    3916/CALL    4406/CALL    5408/CALL
   SENSADDR        2784/CALL    2901-MODULE  2923/EXIT
   SENSBUFF        2124/LM      2211/MESSAGE 2211/MESSAGE 2211/MESSAGE 2211/MESSAGE 2823/LI      2846/LI
      2860-RES
   SENSCOM         2825/STS     2830/STS     2836/EDA     2858-GEN
   SENSDATA        2821/MODULE  2847/STW
   SENSE           1934/CALL    2119/CALL    2198/CALL    2778/CALL    2821-MODULE  2848/EXIT    5158/CLOSE
   SENSE           5182-CNAME   5183-FNAME
   SENSERR         2837/BAR     2850-BDR
   SENSFAIL        2853/EFA     2856-MESSAGE
   SENSIO          2834-CALL    2850/BDR
   SENSMSG         2204/EFA     2211-MESSAGE
   SENS0           2773/BEZ     2778-CALL
   SENS1           2776/BNEZ    2782-LI
   SENS2           2780/B       2784-CALL
   SEPCHECK         505/CALL     524/CALL     551/CALL     557/CALL     562/CALL     670/CALL
      1791-MODULE  1809/EXPAR   1810/EXPAR   1811/EXPAR
   SEPEXIT         1798/BE      1806-LWA
   SEPLIST         1796/INT     1813-DATA    1818/EQU
   SEPSCAN         1795-LI      1804/B
   SEPTEST         1796-INT     1799/BDR
   SEQ0            2284-CNAME
   SEQ1            2285-CNAME
   SERIALNO         745/DATA     746/DATA    1143/PTY     1144/PTY     1182/PTY     1183/PTY     1248/LW
      1348-RES
   SETCHECK        2725/BCS     2728-BDR
   SETFCN           639/EXU      692-MTW
   SETOP           2634-LW      2728/BDR
   SETSTACK       457.2/CALL    5493-LD
   SETUP           2618/CLOSE
   SETUP           2638-OR      2671/BGZ     2936/CLOSE
   SETUP           3164/BAL     3170/BAL     3183-INT     4096/CLOSE
   SETUP         4124.1/B       4126-CALL    4180/BDR     4186/B       4480/CLOSE
   SETUP           4554/BAL     4653/BAL     4946-LH      4957/BAL
   SETUPA          4586/BAL     4953-STW
   SETUPA1         4953/STW     4959/B*      4961-RES
   SETUP0          4151/BNE     4159-EQU
   SETUP1          2936/CLOSE
   SETUP1          3186/BCR     3189-LW      4096/CLOSE
   SETUP1          4162-LB      4177/BDR
   SETUP2          4176-AI
   SETUP3        4119.3/BNEZ  4124.3-LI
   SINC            5179/CNAME   5180/FNAME   5181/ITEM    5366/GTAB
   SIOFAIL         2471/BCS     2474-LI
   SIOFAIL1        2475-EQU     2486/BNE
   SIOFMSG         2474/LI      2497-MESSAGE
   SIZE            2938/MODULE  2942/LW      2967/LW      3040/LW      3068/STW     3102/LW
   SKADR           5697/STW     5861/LW      5863/STW     6037/MESSAGE 6037/MESSAGE 6037/MESSAGE 6060/GEN
      6068-GEN     6069/EQU
   SKADR1          5410/RTH     5411/RTB     5412/RTB     5438/MESSAGE 5438/MESSAGE 5438/MESSAGE 6041/GEN
      6046-DATA
   SKIPBLNK        1600-AI      1603/BE
   SKIPCHAR         561/CALL    1637-MTW
   SKIPFLD          656/BAR      686-BIR
   SKIP1           2232/GOTO    2235-GOTO
   SKIP2           2235/GOTO    2241-FIN
   SNMSG2           856/EFA     1024-MESSAGE 1310/EFA
   SNTD            1145/PTY     1189-EQU
   SNTD2           1212/STW     1244/LW      1289-RES
   SORT            4674/BAL     4844/BAL     5022-LCI
   SORTEXIT        5026/BLEZ    5039-LCI
   SORT1           5028-LW      5038/BDR
   SORT2           5031-CS      5035/BDR
   SORT3           5032/BGE     5035-BDR
   SPE              341-FNAME   1027/MESSAGE 1374/MESSAGE 3456-FUNCTION             5132/MESSAGE
      5132/MESSAGE 5132/MESSAGE 5132/MESSAGE 5132/MESSAGE 6084/MESSAGE
   SPECIFYR        3271-BAL     3456/FUNCTION
   SPT             1135/PTB     1181-PTY     1186/TERMIN
   SPTITLE         5972/EFA     6097-MESSAGE
   SSETUP           930-CALL     984/BNE
   SSETUP1          943-INT      989/BLZ
   SSETUP2          953-INT      960/BGZ
   SSETUP3          955/BCR      958-STW     1277/BLEZ    1280/B       1285/B
   SSETUP4          959-AI      1213/B       1227/B       1250/B       1253/B       1257/BEZ
   SSETUP5          951/BEZ      962-LI
   SSETUP6          964-CALL     970/BIR
   SSETUP7          974/BEZ      982/B        988-AI
   SSETUP8          933/BNEZ     936/BNEZ     991-CALL
   SSP              352-FNAME   2856/MESSAGE 3663/MESSAGE 5138/MESSAGE 5433/MESSAGE 5434/MESSAGE
      5435/MESSAGE 5436/MESSAGE 5437/MESSAGE 5438/MESSAGE 5438/MESSAGE            6082.1/MESSAGE
      6084/MESSAGE
   STACK            464/PSM      577/MSP      669/PSM      900/LW      2545/PSM     2568/PLM     3388/AW
      3683/PSM     3688/PSW     3689/AWM*    3701/PLW     3742/PLM     3745/PLW     3767/PSM     3816/PLM
      3889/LW*     4000/LW*     5023/PSM     5040/PLM     5469/LH      5472/STH     5473/AW      5481/SH
      5482/SW      5486/AH      5489/STH     5494/STD     5511-DATA    5612/PSM     5618/PLM
   STAKBUFF        5511/DATA    5515/DATA    5519-RES
   STAKSIZE        5487/CI      5508-EQU     5512/DATA    5516/DATA    5519/RES
   STANDARD        2344/SEQ1    2365-TDVMAP
   START           2633-LB   2699.11/B       3494/CLOSE
   START           3550/BAL     3562/BAL     3577-LI      5158/CLOSE
   START           5467/MODULE  5475/STW
   STARTIN          458/CALL    1510-MODULE  1524/EXIT    1526/EXIT
   STATMSG         4903/EFA     5132-MESSAGE
   STBLIST          941/LW      1121-GEN
   STRCDW          4339/EDA     4434-GEN
   STRERR          4344/BAR     4348/BCR     4353/BCS     4445-BDR
   STRING          1754/MODULE  1756/LB*     1761/LB*
   STRINGS           38-SET      294/DATA     307/ORG      309-SET      587/INTERP  5221/DATA
   STRMSG          4453/EFA     4469-MESSAGE
   STROBE          4253/STW     4313/LW      4332/MTW     4441-RES
   STRTAB          4448/CH      4451/INT     4459-DATA
   STRTRACK        3879/STW     3938/LW      3968-RES     4240/STW
   STR10           4459/DATA    4463-MESSAGE
   STR20           4460/DATA    4465-MESSAGE
   STR30           4461/DATA    4467-MESSAGE
   STR40           4462/DATA    4468-MESSAGE
   SUBL            2234/APPEND  2306-FNAME
   SYNTAB            32/OPEN      70-SET      106-SET      106/SET      373/DO       374/DO       390/CLOSE
   T               1095/OPEN    1098-SET     1100/DO      1112-SET     1114/CLOSE
   T               2218/OPEN    2223-SET     2236-SET     2236/SET     2242/INTERP  2249/CLOSE
   TABLE           5202-SET     5213-SET     5243/SET     5256/PEND
   TABLES          3494/CLOSE
   TABLES          4498/STW     5096-EQU     5111/EQU
   TCHAR           1655/MODULE  1659/EOR
   TCPV           605.1/FUNCTION            709.4-MTW
   TCPVFLAG       709.4/MTW   1360.1-RES   2691.2/MTW   4119.2/MTW   5800.1/MTW
   TDV             4347-TDV     4461/DATA
   TDVADR          4247/STW     4347/TDV*    4442-RES
   TDVLIST         2101/LD      2503-RES     2516/LD      2564/STD     3948/LW
   TDVMAP          2296-CNAME   2297-FNAME   2399/COMPOSE
   TDVSTAT         1890/CLOSE
   TDVSTAT         1978/MODULE  1998/RTN     2024/AND     2028/CW      2507/CLOSE
   TDVSTAT         2509/MODULE
   TERMIN           415-CNAME
   TEST            3844/DISPATCH           3986.1-LW
   TESTFCN         3844-DISPATCH
   TESTM           4338-CALL    4460/DATA
   TEST1         3986.3/BLE     3991/BNEZ    4000-LW
   TEST2           3998/BAR     4003-SW
   TEXT            3237-BAL     3457/FUNCTION
   TEXTC           3241-LB      3253/B
   TEXTNAME        1679/MODULE  1709/STW
   TEXT1           1727/MODULE  1729/LB*     1732/LB*
   TEXT2           1727/MODULE  1730/CB*     1733/CB*
   TICK          3658.5/LW   3658.16-MTW
   TIMEBUFF        1343-RES
   TIOLIST         2502-RES     2515/LD      2563/STD
   TIOMAP          2294-CNAME   2295-FNAME
   TIOSTAT         1890/CLOSE
   TIOSTAT         1978/MODULE  1997/RTN     2009/LW      2507/CLOSE
   TIOSTAT         2509/MODULE  2538/STW     2583/STM     2596/MESSAGE 2596/MESSAGE 2596/MESSAGE
      2596/MESSAGE
   TITLE              5-EQU       44/TITLE   1366/MESSAGE
   TMAP            2233/SET     2234-APPEND  2348-SET     2401/GENL
   TOCK          3655.2/LW    3658.9/STW  3658.16/MTW  3658.17-RES   5856.2/LW    5881.1/LW
   TOUT1           3323/BLE     3325/BNEZ    3330-EQU
   TR:CYL          5741/LI      6077-EQU     6078/RES
   TRACK           2770/MODULE  2787/RTN     3533/CLOSE
   TRACK           3537/MODULE  3600/LCW     3614/PAR     3624/AW      3627/STW     3733/EFA*    3818/SW
      3875/EFA*    3878/LW      3921/SW      3995/EFA*    4003/SW      4094/CLOSE
   TRACK           4098/MODULE  4129/PAR     4480/CLOSE
   TRACK         4549.8/MODULE  4652/MODULE  4950/AW      4954/LW      4956/XW      4958/STW     5074/STW
   TRANSERR        2144-EQU   2349.1/EQU     2365/TDVMAP
   TRANSLAT        3287/LB      3492-TEXT
   TRAP             434/LW      1331-XPSD
   TRAPA           1320/LCF     1325/LPSD    1327/MESSAGE 1327/MESSAGE 1331/XPSD    1336-DATA
   TRAPB           1321/LPSD    1334-DATA
   TRAPMSG         1305/EFA     1327-MESSAGE
   TRAPREGS        1297/STM     1319/LM      1324/LM      1329-RES
   TRAPS           1295-EQU     1338/DATA
   TRAPS0          1316/BE      1323-LCI
   TRIES            602/FUNCTION 763-EQU     1382/CLOSE
   TRIES           4336/LI      4444-EQU
   TRK             2618/CLOSE
   TRK             2623/MODULE  2630/PAR     2768/CLOSE
   TRK             2872/CLOSE
   TRK             2874/MODULE  2884/AW      2886/STW     2901/MODULE  4096/CLOSE
   TRK             4208-EQU     4213/FORMAT  4236/CLOSE
   TRK             4238/MODULE  4238/MODULE  4239/LW      4279/PAR     4382/AWM     4412/SW
   TRKHDSZ         5706/STW     6066-DATA
   TRKS            5178/ITEM    5343/DEFAULT 5359/GTAB
   TRY5             766/BANZ     771-STW
   TRY6           773.2/BGZ    773.7-CI
   TSP              354-FNAME   5431/MESSAGE 6095/MESSAGE 6095/MESSAGE 6097/MESSAGE
   TWINFLAG        4583/MTW     4818-RES     5059/STW     5073/MTW
   TXC              294/DATA     337-FNAME   1379/DATA    1380/DATA    1876/MESSAGE 1877/MESSAGE 5123/DATA
      5124/DATA    5125/DATA    5831/LW
   TXT              338-FNAME   1027/MESSAGE 1029/MESSAGE 1031/MESSAGE 1374/MESSAGE 1374/MESSAGE
      3457-FUNCTION             5114/DATA    5116/DATA    5138/MESSAGE 5828/LW      6098/MESSAGE
      6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE 6098/MESSAGE
   TYPE             443/CALL     579/CALL     831/CALL     833/CALL     839/CALL     851/CALL     864/CALL
       868/CALL     872/CALL     878/CALL     883/CALL     885/CALL     985/CALL     997/CALL    1069/CALL
      1074/CALL    1081/CALL    1302/CALL    1304/CALL    1565/CALL    1580/CALL    1587/CALL    2061/CALL
      2082/CALL    2150/CALL    2191/CALL    2195/CALL  2196.5/CALL    2203/CALL    2578/CALL    2584/CALL
      2588/CALL    2852/CALL    2948/CALL    2996/CALL    3010/CALL    3015/CALL    3021/CALL    3072/CALL
      3089/CALL    3127/CALL    3142/CALL    3167-MODULE  3405/CALL    3656/CALL    3804/CALL    3811/CALL
      3942/CALL    3944/CALL    3946/CALL    3949/CALL    3951/CALL    3955/CALL    4021/CALL    4452/CALL
      4454/CALL  4510.5/CALL    4837/CALL    5381/CALL    5383/CALL    5385/CALL    5387/CALL    5389/CALL
      5391/CALL    5393/CALL    5395/CALL    5397/CALL    5414/CALL    5416/CALL    5420/CALL    5497/CALL
      5501/CALL    5858/CALL    6031/CALL    6050/CALL
   TYPECCW         3332/STW     3335/STW     3336/MTB     3338/LI      3375-RES
   TYPEFLAG        3169/MTW     3371/STW     3485-DATA
   TYPEIN           855/CALL    1309/CALL    2476/CALL    3064-MODULE  3134/EXIT    5540/CALL    5657/CALL
   TYPEIN0         3085-EQU     3111/BE
   TYPEIN1         3070-MTW     3091/B
   TYPEIN2         3082/BDR     3093-AD      3121/B
   TYPEIN3         3109-LB
   TYPEIN4         3113/BNE     3123-EQU
   TYPEIN5         3078-EQU     3087/BLE
   TYPEIN6         3125/BE      3132-EQU
   TYPEMSG         3143/EFA     3146-MESSAGE
   TYPEOUT         3321-EQU
   TYPERR          3083/B       3141-LW
   TYPINCDW        2957/AD      3093/AD      3137-GEN
   TYPINCMD        2958/STD     2960/LI      3094/STD     3095/LI      3139-RES
   TYPINF          2185/MTW   2196.3/STW     3014/STW     3026/STW     3070/MTW     3076/STW     3324/MTW
      3402/STW     3486-DATA
   TYPNAMES         838/LW       877/LW      1067/LW      1379-DATA
   UAGMSG          5123/DATA    5129-MESSAGE
   UFLMSG          5124/DATA    5128-MESSAGE
   UNDERMSG        5498/EFA     5506-MESSAGE
   UNDRFLOW        5483/BLEZ    5484/BDR     5488/BG      5497-CALL
   UNPACK          2914-LI      2922/BDR
   UPDATE           604/FUNCTION 619-EQU     1382/CLOSE
   UPDATE          5608/AD      5625/AD      5635-DATA
   UPDFLAG          621/STW      906/MTW      917/MTW      932/MTW     1359-RES
   UPDMAP          5819/CALL    5985-MODULE  6019/EXIT
   UPDMAP0         5990/BEZ     6003-LW
   UPDMAP1         6001/B       6014-CALL
   USE              121-FNAME   1402/MODULE  1460/MODULE  1510/MODULE  1544/MODULE  1620/MODULE
      1655/MODULE  1679/MODULE  1727/MODULE  1754/MODULE  1791/MODULE  1824/MODULE  1892/MODULE
      1978/MODULE  2184/MODULE  2452/MODULE  2464/MODULE  2509/MODULE  2623/MODULE  2770/MODULE
      2821/MODULE  2874/MODULE  2901/MODULE  2938/MODULE  3002/MODULE  3064/MODULE  3162/MODULE
      3537/MODULE  4098/MODULE  4238/MODULE  4495/MODULE             4549.8/MODULE  4607/MODULE
      4652/MODULE  4668/MODULE  4830/MODULE  5467/MODULE  5478/MODULE  5534/MODULE  5649/MODULE
      5985/MODULE
   VAFRQ           1235/AW      1266-DATA
   VALUE           1402/MODULE  1435/STW
   VAR             3425-SET     3427/PEND
   VCOR            2237/SET     2323-FNAME
   VERCTR          5754/RTN     6073-RES
   VERFLAG          758/MTW      798/MTW     1355-RES     1382/CLOSE
   VERFLAG         5653/STW     5659/EFA     5663/LW      5676-RES     5681/STB     5686/STB     5690/LC
      5727/LC    5815.1/LC      5875/LC      5890/LC
   VERHDR           799/BNEZ    1078-CALL
   VERIFY          1078/CALL    5649-MODULE  5678/MODULE* 5877/EXIT    5892/EXIT    5983/EXIT
   VERIFY:S         920/CALL    5678-MODULE
   VERIND           601/FUNCTION 758-MTW
   VERMSG          5658/EFA     5669-MESSAGE
   VERSION          3.1-EQU        5/EQU
   VERTIO          5752/RTN     6072-RES
   VER00           5651-EQU     5667/B
   VER10           5662-LI
   VER20           5665/BE      5685-SAS
   VER30           5683/B       5696-LI
   VFYMSG          5835/EFA     6084-MESSAGE
   VOLINIT          433-EQU      439/LW      6157/END
   VOLNTMSG         840/EFA      879/EFA     1027-MESSAGE
   VTOCMSG          832/EFA     1029-MESSAGE
   VTOCMSG3         884/EFA     1032-MESSAGE
   VTOCMS1          834/EFA      886/EFA     1031-MESSAGE
   WCHK            5181/ITEM    5366/GTAB
   WGRAN           5191/CNAME   5192/FNAME   5193/ITEM    5364/GTAB
   WINDUP        3609.2/BAL   3658.2-LI    5725.2/BAL
   WORD1           1754/MODULE  1765/STW
   WORD2           1754/MODULE  1766/STW
   WPAR             217-CNAME
   WPMSG1          2081/EFA     2160-MESSAGE
   WPMSG2          2083/EFA     2161-MESSAGE
   WPROT           2080-CALL    2383/TDVMAP  2387/TDVMAP  2391/TDVMAP  2395/TDVMAP
   WPRTWAIT        2085-CALL    2093/BANZ
   WRITEFCN        3841-DISPATCH             3857/ANLZ    3858/OR
   WRITEHDR        3841/DISPATCH           3850.3-EQU
   WRITFLAW         595/FUNCTION 626-AI
   WRITFMAT         596/FUNCTION 630-CI
   WRSPMSG          986/EFA     1370-MESSAGE
   WSECT           5194/CNAME   5195/FNAME   5196/ITEM    5364/GTAB
   X                 32/OPEN     256-SET      258-SET      261/ANLZ     263/LI       368-DO       369/DO
       370/SET      373-DO       374/DO       375/SET      390/CLOSE
   XC              1109-FNAME
   XEQ             1110-FNAME   1145/PTY     1147/PTY     1149/PTY     1151/PTY     1168/PTY     1181/PTY
   XLZ              324-FNAME   1327/MESSAGE 1327/MESSAGE 1907/MESSAGE 1907/MESSAGE 2210/MESSAGE
    2210.1/MESSAGE 2211/MESSAGE 2211/MESSAGE 2211/MESSAGE 2211/MESSAGE 2211/MESSAGE 2211/MESSAGE
      2211/MESSAGE 2211/MESSAGE 2211/MESSAGE 2497/MESSAGE 2592/MESSAGE 2594/MESSAGE 2596/MESSAGE
      2596/MESSAGE 2596/MESSAGE 2596/MESSAGE 3451-CONVERT 3828/MESSAGE 3828/MESSAGE 3828/MESSAGE
      3828/MESSAGE 3828/MESSAGE 3828/MESSAGE 3828/MESSAGE 3828/MESSAGE 3961/MESSAGE 3961/MESSAGE
      3963/MESSAGE 3963/MESSAGE 3965/MESSAGE 4463/MESSAGE 4463/MESSAGE 4465/MESSAGE 4465/MESSAGE 5428/EQU
      5431/MESSAGE 5438/MESSAGE 5438/MESSAGE 5438/MESSAGE
   XVL              323-FNAME   3452-CONVERT
   YEAR            5534/MODULE
   YESREP          2483/CW      2494-GEN
   ZCOUNT          5918/STW     5922/MTW     5928/MTW     6092-RES
   ZFLAG           5904/STW     5930/MTW     5933/MTW     5935/STW     5945/MTW     6093-RES
   3281DP           844/LI      2344/SEQ1    2391-TDVMAP
   3281PARS      5327.1-DEVICE
   3281WM           852/EFA   1033.1-MESSAGE
   3282PARS      5335.2-DEVICE
   3283PARS     5335.11-DEVICE
   7242DP          2344/SEQ1    2380-TDVMAP
   7242PARS        5272-DEVICE
   7270PARS        5300-DEVICE
   7272PARS        5309-DEVICE
   7275DP          2344/SEQ1    2383-TDVMAP
   7275FLAG        4529/MTW     5108-RES
   7275PARS        5318-DEVICE
   #               5211-DO      5213-SET     5256/PEND
   #TRACKS         3621/STW     3939/LW      3967-RES     4242/STW
