UTILITY 
         IDENT     UTILITY                                              UTILITY      1
         TITLE MISCELLANEOUS SUBROUTINES                                UTILITY      2
*  FOR A LISTING OF THE SNODEF COMDECK, CALLED BELOW, SEE MAINLUP.      UTILITY      3
         LIST  -L                                                       UTILITY      4
*CALL,SNODEF                                                            UTILITY      5
         LIST  L                                                        UTILITY      6
*  ERROR                                                                UTILITY      7
         EXT   RTERROR                                                  UTILITY      8
         EXT   ERR1,ERR2,ERR3,ERR4,ERR5,ERR6,ERR7,ERR8,ERR9             UTILITY      9
         EXT   ERR10,ERR11,ERR13,ERR14,ERR15,ERR16,ERR17,ERR18,ERR19    UTILITY     10
         EXT   ERR20,ERR21,ERR22,ERR23,ERR24,ERR26,ERR27,ERR28          UTILITY     11
         EXT   ERR29,ERR30,ERR31,ERR32,ERR35,ERR36,ERR37,ERR38,ERR39    UTILITY     12
         EXT   ERR40,ERR41,ERR42,ERR43,ERR44,ERR48,ERR49                UTILITY     13
         EXT   ERR50,ERR52,ERR53,ERR55,ERR56                            UTILITY     14
*  MAINLUP                                                              UTILITY     15
         EXT   NEXTMIC,SNDMIC,FAIL                                      UTILITY     16
         EXT   CHEK,SCATS,MCOPTBL,JPB1                                  UTILITY     17
         EXT   CTSFSS0,CALL0                                            UTILITY     18
*  IO                                                                   UTILITY     19
         EXT   INPUT,OUTPUT,CLOSOUT                                     UTILITY     20
*  STORMAN                                                              UTILITY     21
         EXT   PUSHSTK,RESERVE,MORFREE,GETSTAK,GRBCOLL,RESHB            UTILITY     22
         EXT   FREEHB                                                   UTILITY     23
*  UTILITY                                                              UTILITY     24
         ENTRY ITOS,SSTOS,STOSFX6,PTOPX4,ICX1X6,ZROX7,SSTOSF,ITOSF      UTILITY     25
         ENTRY ITOSFTP,SOPERND,X1VALUE,FREESVD,SASSIGN,INDRCT,INDRX     UTILITY     26
         ENTRY SEARCH,FREESTR,UCAT                                      UTILITY     27
         ENTRY DECFIL,SCHHBC                                            UTILITY     28
         ENTRY RTOSF,TEN,TENTH                                          UTILITY     29
         ENTRY TEN,TENTH                                                UTILITY     30
*  PATMAT                                                               UTILITY     31
         EXT   PRDPM,DOLPM,ENDEXPM,ALTPM,EXPPM,ARBPM,LENPM,POSPM        UTILITY     32
         EXT   RPOSPM,TABPM,REMPM,BALPM,FAILPM,FENCEPM,ABORTPM          UTILITY     33
         EXT   ARBNOPM,STARPM,LITPM,ANYPM,NTANYPM,SPANPM,BREAKPM        UTILITY     34
*                                                                       UTILITY     35
*  EXPECTED LENGTH OF A PATTERN/2:                                      UTILITY     36
BUFF3    EQU   20                                                       UTILITY     37
         EJECT                                                          UTILITY     38
*  ITOS                                                                 UTILITY     39
*  ROUTINE MUST BE CALLED WITH INTEGER TOP OPERAND. IT                  UTILITY     40
*        WILL BE REMOVED AND REPLACED WITH A NORMALIZED STRING (S)      UTILITY     41
*        X1,X2,X3,X4,X6,X7,B1                                           UTILITY     42
*                                                                       UTILITY     43
ITOS     NO                                                             UTILITY     44
+        SA0   10                  . RESERVE FOR WORST CASE, TEN        UTILITY     45
         RJ    RESERVE             . DIGITS AND A SIGN                  UTILITY     46
         SA1   B6-11               . B6 HAS BEEN INCREASED              UTILITY     47
         RJ    ICX1X6              . CONVERT INTEGER TO STRING          UTILITY     48
         MX2   54                  . MASK 1 CHAR LONG                   UTILITY     49
         SB1   A1                                                       UTILITY     50
         NG    X7,ITOS1            . IF THE NUMBER WAS NEGATIVE         UTILITY     51
         SB6   B6-1                . FIRST CHAR IS A -                  UTILITY     52
         EQ    ITOS3               .                                    UTILITY     53
ITOS1    SX7   1R-                                                      UTILITY     54
ITOS2    SA7   B1                  . LOOP, STORE NEXT CHAR              UTILITY     55
         SB1   B1+1                                                     UTILITY     56
ITOS3    LX6   6                   . UNPACK NEXT CHAR                   UTILITY     57
         BX7   -X2*X6              . LOOP IF NOT ZERO                   UTILITY     58
         ZR    X7,ITOS4            . OR ELEVENTH DIGIT                  UTILITY     59
         NE    B1,B6,ITOS2                                              UTILITY     60
ITOS4    SX1   A1-B1               . -(BYPASS LENGTH-1) TO X1           UTILITY     61
         SB6   B1                  . STACK TOP                          UTILITY     62
         SX1   X1-1                                                     UTILITY     63
         SX7   STY                                                      UTILITY     64
         LX7   55                                                       UTILITY     65
         BX1   -X1                                                      UTILITY     66
         BX7   X1+X7                                                    UTILITY     67
         SA7   B6                  . S TYPE HEADING                     UTILITY     68
         EQ    ITOS                                                     UTILITY     69
*                                                                       UTILITY     70
*  SSTOS                                                                UTILITY     71
*  THIS ROUTINE BREAKS DOWN A STRING OF LENGTH B5 INTO                  UTILITY     72
*  CHARACTERS.  THE LAST CHARACTER, IF ANY, WILL BE STORED AT           UTILITY     73
*  B6-1.  X1 IS THE ADDRESS OF THE FIRST WORD OF THE STRING.            UTILITY     74
*  X0,X1,X2,X3,X7,B5                                                    UTILITY     75
*                                                                       UTILITY     76
*                                                                       UTILITY     77
SSTOS1   SA2   X1                  .NO,THIS IS NOT THE ENTRY            UTILITY     78
         SX1   X2                  . LINK TO NEXT WORD                  UTILITY     79
         BX2   X0*X2               . MASK LINK OFF, THIS WILL PRODUCE   UTILITY     80
SSTOS2   LX2   6                   . A ZERO CHARACTER AT THE            UTILITY     81
         BX7   -X3*X2              . END OF THE WORD                    UTILITY     82
         ZR    X7,SSTOS1                                                UTILITY     83
         SA7   B6-B5                                                    UTILITY     84
         SB5   B5-1                . DECREASE LENGTH                    UTILITY     85
SSTOS3   NE    B5,B0,SSTOS2        . GO BACK IF NOT ZERO                UTILITY     86
*                                                                       UTILITY     87
SSTOS    NO                        .ENTER HERE                          UTILITY     88
+        MX0   42                  . SET UP MASKS                       UTILITY     89
         MX3   54                                                       UTILITY     90
         NE    B5,B0,SSTOS1                                             UTILITY     91
         EQ    SSTOS                                                    UTILITY     92
*                                                                       UTILITY     93
*  STOSFX6                                                              UTILITY     94
*  THE FOLLOWING SUBROUTINE ASSIGNS A STRING TO A LIST                  UTILITY     95
*  STRUCTURE.  B2 POINTS TO THE FIRST, B3 TO THE LAST CHARACTER         UTILITY     96
*  UPON ENTRY.  THE SVD OF THE CREATED LIST WILL BE PUT                 UTILITY     97
*  INTO X6                                                              UTILITY     98
*        X0,X1,X2,X6,B2,B3,B1                                           UTILITY     99
*                                                                       UTILITY    100
STOSFX6  NO                                                             UTILITY    101
+        SB2   B2-1                                                     UTILITY    102
         SX1   B7                  . FIRST IN LIST                      UTILITY    103
         LX1   24                                                       UTILITY    104
         SX6   B3-B2               . STRING LENGTH                      UTILITY    105
         BX0   X1+X6                                                    UTILITY    106
         EQ    STOSF3                                                   UTILITY    107
STOSF1   SX6   B0+0                                                     UTILITY    108
         SB1   42                                                       UTILITY    109
STOSF2   EQ    B2,B3,STOSF5        . ASSEMBLE SEVEN CHARACTERS          UTILITY    110
         SB2   B2+1                . LEFT JUSTIFIED ZERO FILL           UTILITY    111
         LX6   6                                                        UTILITY    112
         SA2   B2                                                       UTILITY    113
         BX6   X6+X2                                                    UTILITY    114
         SB1   B1-6                                                     UTILITY    115
         NE    B1,B0,STOSF2                                             UTILITY    116
         EQ    B2,B3,STOSF5                                             UTILITY    117
         LX6   18                                                       UTILITY    118
         BX6   X1+X6               . ADD A POINTER TO THE WORD          UTILITY    119
         SA6   B7                  . AND STORE IT                       UTILITY    120
         SB7   X1                                                       UTILITY    121
STOSF3   SA1   B7+0                . GET NEXT FREE WORD                 UTILITY    122
         NZ    X1,STOSF4                                                UTILITY    123
         RJ    MORFREE             . END OF FREE CHAIN HAS BEEN MET     UTILITY    124
STOSF4   SX1   X1                                                       UTILITY    125
         EQ    STOSF1                                                   UTILITY    126
STOSF5   LX6   18                                                       UTILITY    127
         LX6   B1,X6               . LEFT JUSTIFY LAST WORD             UTILITY    128
         SA6   B7                                                       UTILITY    129
         SB7   X1                                                       UTILITY    130
         LX0   36                                                       UTILITY    131
         SX6   A6                                                       UTILITY    132
         LX6   18                                                       UTILITY    133
         BX6   X0+X6               . FORM SVD IN X6                     UTILITY    134
         EQ    STOSFX6             . AND RETURN                         UTILITY    135
*                                                                       UTILITY    136
*  PTOPX4                                                               UTILITY    137
*  WHEN CALLING THIS SUBROUTINE, X4 MUST POINT TO A CELL WHERE          UTILITY    138
*  A P TYPE SVD CAN BE FOUND.  THE PATTERN WILL BE LOADED TO THE        UTILITY    139
*  STACK FROM B6+1 TOWARD HIGH CORE.  B6 WILL BE INCREASED              UTILITY    140
*  TO POINT TO THE END WHILE THE ORIGINAL VALUE IS SAVED IN B3          UTILITY    141
*  A0 IS SET TO THE LENGTH OF THE PATTERN                               UTILITY    142
*  X0,X1,X2,X4,X7,B2,B3,A0                                              UTILITY    143
*                                                                       UTILITY    144
PTOPX4   NO                                                             UTILITY    145
PTOP1    SA1   X4                  . TAKE SVD AFRESH                    UTILITY    146
         SB3   B6                                                       UTILITY    147
         SA2   MAXSTAK                                                  UTILITY    148
         SB2   X2                                                       UTILITY    149
         MX0   33                                                       UTILITY    150
         SB2   B0-B2                                                    UTILITY    151
PTOP2    SA2   X1                  . NEXT WORD IN LIST                  UTILITY    152
         SX1   X2                                                       UTILITY    153
         SB6   B6+1                                                     UTILITY    154
         GE    B6,B2,PTOP3         . OUT OF SPACE, WE ARE IN TROUBLE    UTILITY    155
         BX7   X2*X0               . CONVERT PATTERN WORD INTO          UTILITY    156
         LX7   18                  . PM OPERATION FORMAT                UTILITY    157
         SA7   B6                                                       UTILITY    158
         NZ    X1,PTOP2            . LOOP IF NOT END OF LIST            UTILITY    159
         SA0   B6-B3                                                    UTILITY    160
         EQ    PTOPX4                                                   UTILITY    161
PTOP3    SB6   B6+BUFF3            . WE DO NOT HAVE ANY INFORMATION     UTILITY    162
         SA0   B6-B3                                                    UTILITY    163
         RJ    GETSTAK             . HOW LONG THE PATTERN WILL BE, SO   UTILITY    164
         SB6   B3                  . WE REQUEST A REASONABLE AMOUNT     UTILITY    165
         EQ    PTOP1               . AND TRY AGAIN. NOTE THAT THE LIST  UTILITY    166
                                   . STRUCTURE MIGHT HAVE CHANGED.      UTILITY    167
*                                                                       UTILITY    168
*                                                                       UTILITY    169
*        ROUTINE TO CONVERT AN INTEGER IN X1 INTO A DISPLAY CODED       UTILITY    170
*        STRING IN X6. THE RESULT IS THE ABS VALUE LEFT JUSTIFIED       UTILITY    171
*        WITH ZERO FILL.                                                UTILITY    172
*        X1,X2,X3,X6,X7,B1                                              UTILITY    173
*                                                                       UTILITY    174
ICX1X6   NO                                                             UTILITY    175
+        BX7   X1                  . SAVE OLD SIGN                      UTILITY    176
         PL    X1,IC1              .                                    UTILITY    177
         BX1   -X1                 . ABS VALUE                          UTILITY    178
IC1      BX6   X6-X6               . INITIALIZE RESULT                  UTILITY    179
         SA2   TEN                                                      UTILITY    180
         PX1   X1                                                       UTILITY    181
IC2      FX3   X1/X2               . LOOP, X3 IS THE NUMBER             UTILITY    182
         UX3   B3,X3               . LESS THE LAST DIGIT                UTILITY    183
         LX3   B3,X3                                                    UTILITY    184
         PX4   X3                                                       UTILITY    185
         NX4   X4                                                       UTILITY    186
         FX4   X4*X2                                                    UTILITY    187
         FX4   X1-X4                                                    UTILITY    188
         UX4   B3,X4                                                    UTILITY    189
         LX4   B3,X4                                                    UTILITY    190
         SX4   X4+1R0                                                   UTILITY    191
         BX6   X6+X4                                                    UTILITY    192
         LX6   54                                                       UTILITY    193
         PX1   X3                                                       UTILITY    194
         SX0   X0+1                . COUNT NUMBER OF DIGITS             UTILITY    195
         NZ    X3,IC2              . LOOP IF THERE ARE MORE DIGITS      UTILITY    196
         EQ    ICX1X6                                                   UTILITY    197
TEN      DATA 10.0                                                      UTILITY    198
*                                                                       UTILITY    199
*        X1,X2                                                          UTILITY    200
ZROX7    NO                                                             UTILITY    201
+        SA1   B7                                                       UTILITY    202
         BX7   X7-X7                                                    UTILITY    203
         NZ    X1,ZROX7A                                                UTILITY    204
         RJ    MORFREE                                                  UTILITY    205
ZROX7A   SA7   A1                  . CREATE A NULL STRING VALUE         UTILITY    206
         SB7   X1                  .  AND RETURN ITS SVD IN X7          UTILITY    207
         SX1   A1                                                       UTILITY    208
         SX7   A1                                                       UTILITY    209
         LX1   18                                                       UTILITY    210
         BX1   X1+X7                                                    UTILITY    211
         SX7   SSTY                                                     UTILITY    212
         LX7   55                                                       UTILITY    213
         BX7   X1+X7                                                    UTILITY    214
         EQ    ZROX7                                                    UTILITY    215
*  SSTOSF                                                               UTILITY    216
*  COPY THE SS STRING WITH SVD IN X2, AND RETURN THE                    UTILITY    217
*  SF TYPE SVD OF THE COPY IN X6                                        UTILITY    218
*  X0,X1,X2,X6,X7                                                       UTILITY    219
*                                                                       UTILITY    220
SSTOSF   NO                                                             UTILITY    221
+        MX0   18                                                       UTILITY    222
         SX6   B7                                                       UTILITY    223
         LX0   54                                                       UTILITY    224
         BX0   X2*X0               . LENGTH AND FIRST TO X6             UTILITY    225
         BX6   X0+X6                                                    UTILITY    226
         MX0   42                                                       UTILITY    227
         EQ    SSTOSF2                                                  UTILITY    228
SSTOSF1  SA2   X2                  . NEXT WORD IN SS                    UTILITY    229
         BX7   X0*X2                                                    UTILITY    230
         SX2   X2                                                       UTILITY    231
         SB7   X1                                                       UTILITY    232
         ZR    X2,SSTOSF3          . BRANCH IF END LIST                 UTILITY    233
         BX7   X7+X1                                                    UTILITY    234
         SA7   A1                                                       UTILITY    235
SSTOSF2  SA1   B7                  . NEXT FREE WORD TO X1               UTILITY    236
         ZR    X1,SSTOSF4          . BRANCH IF END OF FREE LIST         UTILITY    237
         SX1   X1                                                       UTILITY    238
         EQ    SSTOSF1                                                  UTILITY    239
SSTOSF3  SX1   A1                                                       UTILITY    240
         SA7   A1                                                       UTILITY    241
         LX1   18                                                       UTILITY    242
         BX6   X6+X1                                                    UTILITY    243
         EQ    SSTOSF                                                   UTILITY    244
SSTOSF4  RJ    MORFREE                                                  UTILITY    245
         SX1   X1                                                       UTILITY    246
         EQ    SSTOSF1                                                  UTILITY    247
*  ITOSF                                                                UTILITY    248
*  CONVERT INTEGER IN X1 INTO SF FORM.  RETURN SVD IN X6.               UTILITY    249
*  X0,X1,X2,X3,X4,X6,X7,B1,B3                                           UTILITY    250
*                                                                       UTILITY    251
ITOSF4       SX4    A1                                                  UTILITY    252
             SA6    A1             . STORE LAST WORD                    UTILITY    253
             LX4    18                                                  UTILITY    254
             BX6    X7+X4          . ADD LWA TO THE SVD                 UTILITY    255
ITOSF        DATA   0              . ENTRY POINT                        UTILITY    256
             BX0    X0-X0          . INITIALIZE CHARACTER COUNT         UTILITY    257
             RJ     ICX1X6         . CONVERT INTEGER INTO DISPLAY       UTILITY    258
             BX3    X3-X3          . INITIALIZE SIGN TO POSITIVE        UTILITY    259
             MX2    54                                                  UTILITY    260
             SX1    B7+0           . FIRST FOR SVD                      UTILITY    261
             PL     X7,ITOSF1      . BRANCH IF POSITIVE                 UTILITY    262
             SX4    1R-                                                 UTILITY    263
             BX3    -X2*X6         . 10TH DIGIT MAY OVERFLOW TO X3      UTILITY    264
             BX6    X6*X2                                               UTILITY    265
             LX4    54                                                  UTILITY    266
             LX6    54                                                  UTILITY    267
             LX3    36                                                  UTILITY    268
             BX6    X6+X4          . INSERT - SIGN                      UTILITY    269
             SX0    X0+1           . BUMP CHARACTER COUNT               UTILITY    270
ITOSF1       SB3    X0-7                                                UTILITY    271
             LX0    36             . ADD NUMBER OF CHARACTERS TO SVD    UTILITY    272
             BX7    X1+X0          .                                    UTILITY    273
ITOSF2       SA1    B7+0           . GET A FREE WORD                    UTILITY    274
             NZ     X1,ITOSF3                                           UTILITY    275
             RJ     MORFREE                                             UTILITY    276
ITOSF3       SB7    X1                                                  UTILITY    277
             SX1    X1                                                  UTILITY    278
             GE     B0,B3,ITOSF4   . BRANCH IF THE NUMBER FITS INTO A   UTILITY    279
             MX0    42             .  SINGLE WORD                       UTILITY    280
             BX2    -X0*X6         . OTHERWISE   STORE THE FIRST SEVEN  UTILITY    281
             BX6    X0*X6          .  CHARACTERS                        UTILITY    282
             BX6    X6+X1          .  AND REPEAT THE LOOP WITH THE      UTILITY    283
             SA6    A1             .  REMAINING ONES                    UTILITY    284
             LX2    42                                                  UTILITY    285
             BX6    X2+X3                                               UTILITY    286
             SB3    B0-B3          . MAKE B3 NEGATIVE (ZERO IS OK)      UTILITY    287
             EQ     ITOSF2                                              UTILITY    288
ITOSFTP  SA1   B6-1                . CONVERT TOP ENTRY IN               UTILITY    289
         RJ    ITOSF               .  STACK FROM I TO SF                UTILITY    290
         SX7   2                                                        UTILITY    291
         SA6   B6-1                                                     UTILITY    292
         SA7   B6                                                       UTILITY    293
         JP    B1                                                       UTILITY    294
*                                                                       UTILITY    295
HALF      DATA     0.5                                                  UTILITY    296
ONE       DATA     1.0                                                  UTILITY    297
TENTO13   DATA     1.0E13                                               UTILITY    298
*                                                                       UTILITY    299
RTOSF0    ZR       B5,RTOSF02      . STORE WORD                         UTILITY    300
          SB5      B5-6                                                 UTILITY    301
RTOSF01   LX6      6                                                    UTILITY    302
          BX6      X0+X6                                                UTILITY    303
          SA0      A0+1            . CHARACTER COUNT                    UTILITY    304
          JP       B4                                                   UTILITY    305
RTOSF02   LX6      18                                                   UTILITY    306
          SB5      36                                                   UTILITY    307
          SA1      B7                                                   UTILITY    308
          NZ       X1,RTOSF03                                           UTILITY    309
          RJ       MORFREE                                              UTILITY    310
RTOSF03   SX1      X1                                                   UTILITY    311
          SB7      X1                                                   UTILITY    312
          BX6      X1+X6                                                UTILITY    313
          SA6      A1                                                   UTILITY    314
          BX6      X6-X6                                                UTILITY    315
          EQ       RTOSF01                                              UTILITY    316
RTOSF     DATA     0               . REAL IN X1 TO SVD IN X6            UTILITY    317
          SX7      B7              . START OF FREE CHAIN                UTILITY    318
         SA2   MINHS                                                    UTILITY    319
          BX6      X6-X6           . X6 WILL BE CHARACTER BUFFER        UTILITY    320
         SA7   X2                                                       UTILITY    321
          SB5      42              . BIT COUNT FOR XHARACTER BUFFER     UTILITY    322
          SA0      B0              . CHARACTER COUNT                    UTILITY    323
          SB2      B0              . SCALE FACTOR                       UTILITY    324
          NX4      X1                                                   UTILITY    325
          SB3      13              . SIGNIFICANT DIGIT COUNT            UTILITY    326
          ZR       X4,RTOSF6       . ZERO IS ALREADY NORMALIZED.        UTILITY    327
          PL       X1,RTOSF1                                            UTILITY    328
          SX0      1R-                                                  UTILITY    329
          BX4      -X4                                                  UTILITY    330
          SB4      RTOSF1                                               UTILITY    331
          EQ       RTOSF0          . OUTPUT MINUS SIGN                  UTILITY    332
RTOSF1    SA2      ONE                                                  UTILITY    333
         SA1   TENTH                                                    UTILITY    334
          SA3      TEN                                                  UTILITY    335
RTOSF2    FX0      X4-X2                                                UTILITY    336
          NG       X0,RTOSF3       . R < 1.0                            UTILITY    337
          RX4      X4/X3                                                UTILITY    338
          SB2      B2+1                                                 UTILITY    339
          EQ       RTOSF2                                               UTILITY    340
RTOSF3    FX0      X4-X1                                                UTILITY    341
          PL       X0,RTOSF4                                            UTILITY    342
          RX4      X3*X4                                                UTILITY    343
          SB2      B2-1                                                 UTILITY    344
          EQ       RTOSF3                                               UTILITY    345
RTOSF4    SA1      TENTO13                                              UTILITY    346
          RX5      X4*X1                                                UTILITY    347
          SA4      HALF                                                 UTILITY    348
          FX4      X4+X5                                                UTILITY    349
          UX4      B1,X4                                                UTILITY    350
          LX4      B1,X4                                                UTILITY    351
          PX4      X4                                                   UTILITY    352
          NX4      X4                                                   UTILITY    353
          RX4      X4/X1                                                UTILITY    354
          FX1      X4-X2                                                UTILITY    355
          NG       X1,RTOSF45                                           UTILITY    356
          RX4      X4/X3                                                UTILITY    357
          SB2      B2+1                                                 UTILITY    358
RTOSF45   LE       B2,B0,RTOSF6    . R WAS < 1.0                        UTILITY    359
          SB4      RTOSF5                                               UTILITY    360
RTOSF5    ZR       B2,RTOSF8       . INTEGER PART CONVERTED             UTILITY    361
          SB2      B2-1                                                 UTILITY    362
          SB3      B3-1                                                 UTILITY    363
          NG       B3,RTOSF7       . OUTPUT A ZERO                      UTILITY    364
          FX5      X4*X3           . R*10.0                             UTILITY    365
          UX0      X5,B1                                                UTILITY    366
          LX0      X0,B1                                                UTILITY    367
          PX7      X0                                                   UTILITY    368
          SX0      X0+1R0                                               UTILITY    369
          NX7      X7                                                   UTILITY    370
          FX4      X5-X7                                                UTILITY    371
          NX4      X4                                                   UTILITY    372
          EQ       RTOSF0          . OUTPUT DIGIT                       UTILITY    373
RTOSF6    SB4      RTOSF8                                               UTILITY    374
RTOSF7    SX0      1R0                                                  UTILITY    375
          EQ       RTOSF0                                               UTILITY    376
RTOSF8    SX0      1R.                                                  UTILITY    377
          SB4      RTOSF9                                               UTILITY    378
          EQ       RTOSF0                                               UTILITY    379
RTOSF9    SB2      B2+1                                                 UTILITY    380
          LE       B2,B0,RTOSF7    . OUTPUT A ZERO                      UTILITY    381
          LE       B3,B0,RTOSF10   . FINISHED                           UTILITY    382
          SB3      B3-1                                                 UTILITY    383
          FX5      X4*X3           . R*10.0                             UTILITY    384
          UX0      X5,B1                                                UTILITY    385
          LX0      X0,B1                                                UTILITY    386
          PX7      X0                                                   UTILITY    387
          SX0      X0+1R0                                               UTILITY    388
          NX7      X7                                                   UTILITY    389
          FX4      X5-X7                                                UTILITY    390
          NX4      X4                                                   UTILITY    391
          NZ       X4,RTOSF0       . FINISHED                           UTILITY    392
          SB4      RTOSF10                                              UTILITY    393
          EQ       RTOSF0                                               UTILITY    394
RTOSF10  SA2   MINHS                                                    UTILITY    395
          ZR       X6,RTOSF12      . NO CHARS TO STORE                  UTILITY    396
          SB5      B5+18                                                UTILITY    397
          LX6      B5,X6                                                UTILITY    398
          SA1      B7                                                   UTILITY    399
          NZ       X1,RTOSF11                                           UTILITY    400
          RJ       MORFREE                                              UTILITY    401
RTOSF11   SA6      A1+0                                                 UTILITY    402
          SB7      X1+0                                                 UTILITY    403
RTOSF12  SA1   X2                  . FWA                                UTILITY    404
          SX6      A6              . LWA                                UTILITY    405
          LX6      18                                                   UTILITY    406
          BX6      X1+X6                                                UTILITY    407
          SX5      A0              . CHAR COUNT                         UTILITY    408
          LX5      36                                                   UTILITY    409
          BX6      X5+X6                                                UTILITY    410
          BX7      X7-X7                                                UTILITY    411
          SA7      A1              . ZERO XWDREL                        UTILITY    412
          EQ       RTOSF           . RETURN                             UTILITY    413
TENTH    DATA  0.1E0               . =.1                                UTILITY    414
         TITLE OPERAND TO THE TOP OF THE STACK                          UTILITY    415
X1VALUE  SX4   X1+0                                                     UTILITY    416
          SX6      X1+0                                                 UTILITY    417
         SB1   SNDMIC                                                   UTILITY    418
         SA6   UA                  . SAVE ADDRESS FOR PMCHEK            UTILITY    419
*        RETURN IS IN B1                                                UTILITY    420
SOPERND  SA1   X4                  . SVD OF OPERAND TO X1               UTILITY    421
         SA2   OPRNDWD             .  SWITCH ON TYPE (CF. CHEK)         UTILITY    422
         BX3   X1                                                       UTILITY    423
         AX1   55                                                       UTILITY    424
         LX1   2                                                        UTILITY    425
         SB4   X1                                                       UTILITY    426
         MX0   56                                                       UTILITY    427
         AX2   B4,X2                                                    UTILITY    428
         BX2   -X0*X2                                                   UTILITY    429
         SB3   X2+0                                                     UTILITY    430
         JP    B3+OPRNDSW                                               UTILITY    431
*                                                                       UTILITY    432
 OPRNDWD SWITCH OPRNDSW,0,0,1,1,4,4,4,2,8,7,7,7,0,5,6                   UTILITY    433
*                                                                       UTILITY    434
+        MX0   5                   . 0, C                               UTILITY    435
         BX6   X3                                                       UTILITY    436
         EQ    OPRNDR1                                                  UTILITY    437
+        MX0   5                   . 1,  SS,SI                          UTILITY    438
         BX6   X4                                                       UTILITY    439
         EQ    OPRNDR1                                                  UTILITY    440
+        MX0   5                   . 2,  I                              UTILITY    441
         BX6   X3                                                       UTILITY    442
         LX6   6                   . EXTEND THE SIGN                    UTILITY    443
         AX6   6                                                        UTILITY    444
         EQ    OPRNDR1                                                  UTILITY    445
+        MX0   5                   . 4,  PS,PE,PA                       UTILITY    446
         BX6   X0*X3                                                    UTILITY    447
         EQ    OPRNDP                                                   UTILITY    448
+        SA0   B1                  . 5,  IN                             UTILITY    449
         BX5   X4                                                       UTILITY    450
         EQ    OPRNDIN                                                  UTILITY    451
+        EQ    OPRNDOT             . 6,  OUT                            UTILITY    452
+        MX0   5                   . 7, A,D,N                           UTILITY    453
         MX7   59                                                       UTILITY    454
         JP    OPRNDST                                                  UTILITY    455
+        SA1   X3+0                . 8, R                               UTILITY    456
         MX0   5                                                        UTILITY    457
         BX6   X1                                                       UTILITY    458
OPRNDR1  SA0   2                   . RESERVE 2 LOCATIONS IN THE STACK   UTILITY    459
         RJ    RESERVE                                                  UTILITY    460
OPRNDR2  SX2   A0                                                       UTILITY    461
         BX7   X0*X3               . HEADING TO X7                      UTILITY    462
         SA6   B6-1                . STORE SECONDARY WORD FROM X6       UTILITY    463
         BX7   X7+X2                                                    UTILITY    464
         SA7   B6                                                       UTILITY    465
         JP    B1+0                . RETURN                             UTILITY    466
*                                                                       UTILITY    467
OPRNDP   AX3   36                  . PATTERN TYPE OPERAND               UTILITY    468
         SX3   X3                  . PARAMETER TO X3                    UTILITY    469
         RJ    PTOPX4              . LOAD PATTERN TO THE STACK          UTILITY    470
         LX3   18                                                       UTILITY    471
         SA0   A0+1                . RESERVE ONE WORD FOR HEADING       UTILITY    472
         BX6   X6+X3                                                    UTILITY    473
         SB6   B3                  . B3 AND A0 GOT THEIR VALUES         UTILITY    474
         SX3   A0                  . IN PTOPX4                          UTILITY    475
         RJ    RESERVE                                                  UTILITY    476
         BX6   X6+X3                                                    UTILITY    477
         SA6   B6                  . STORE HEADING                      UTILITY    478
         JP    B1+0                . RETURN                             UTILITY    479
*                                                                       UTILITY    480
OPRNDIN  RJ    FREESVD             . OPERAND INPUT ASSOCIATED           UTILITY    481
         SB3   X5                                                       UTILITY    482
         RJ    INPUT               . CALL INPUT                         UTILITY    483
         SX4   X5+0                                                     UTILITY    484
         SB1   A0+0                . RESTORE REGISTERS                  UTILITY    485
OPRNDOT  SA0   2                   . ALSO FOR OUTPUT                    UTILITY    486
         RJ    RESERVE                                                  UTILITY    487
         SA1   X4                  . MAKE A COPY OF THE RESULTING       UTILITY    488
         SA2   X1                  .  STRING AND USE ITS SF TYPE        UTILITY    489
         RJ    SSTOSF              .  DESCRIPTION INSTEAD               UTILITY    490
         BX3   X3-X3                                                    UTILITY    491
         EQ    OPRNDR2                                                  UTILITY    492
*                                                                       UTILITY    493
 OPRNDST BX6   X3                                                       UTILITY    494
         AX3   18                  . UNPACK BASE POINTER                UTILITY    495
         SX1   X3                                                       UTILITY    496
         LX3   18                                                       UTILITY    497
         ZR    X1,OPRNDR1          . BRANCH IF SIMPLE NAME              UTILITY    498
         SA1   X1                                                       UTILITY    499
         IX7   X1-X7               . INCREMENT REF. COUNT               UTILITY    500
         SX2   X7                                                       UTILITY    501
         SA7   A1                                                       UTILITY    502
         PL    X2,OPRNDR1          . BRANCH IF NO OVERFLOW              UTILITY    503
         MX0   42                                                       UTILITY    504
         MX7   43                  . KEEP REF. COUNT AT 377777B         UTILITY    505
         BX1   X1*X0                                                    UTILITY    506
         BX7   -X7+X1                                                   UTILITY    507
         SA7   A1                                                       UTILITY    508
         JP    OPRNDR1                                                  UTILITY    509
         TITLE ASSIGNMENT TO A SIMPLE VARIABLE                          UTILITY    510
*  FREESVD                                                              UTILITY    511
*  RELEASE OBJECTS REFERENCED BY THE SVD, SO IT CAN BE                  UTILITY    512
*  DESTROYED.                                                           UTILITY    513
*  PARAM:   X3  POINTS TO THE SVD                                       UTILITY    514
*  RESULTS:  X4  THE SVD SHIFTED LEFT 5 (TRACE BIT TO SIGN)             UTILITY    515
*            B4  IS NEGATIVE IFF SVD IS INTY/OUTTY                      UTILITY    516
*  IF X3 POINTS TO AN EMPTY VALUE CELL, FREESVD SETS B4=0 AND RETURNS.  UTILITY    517
*  X0,X1,X2,X4,X7,B3,B4                                                 UTILITY    518
*                                                                       UTILITY    519
*                                                                       UTILITY    520
FREESVD  NO                                                             UTILITY    521
+        SA1   X3                  . SVD TO BE FREED TO X1              UTILITY    522
         SA2   FSVDWD                                                   UTILITY    523
         MX0   56                                                       UTILITY    524
         SB4   B0                  . ENSURE B4 IS NON-NEGATIVE IN CASE  UTILITY    525
         ZR    X1,FREESVD          .   VALUE CELL IS EMPTY              UTILITY    526
         BX4   X1                  . SWITCH ON TYPE (CF. CHEK)          UTILITY    527
         AX1   55                                                       UTILITY    528
         LX1   2                                                        UTILITY    529
         SB4   X1                                                       UTILITY    530
         AX2   B4,X2                                                    UTILITY    531
         BX2   -X0*X2                                                   UTILITY    532
         SB3   X2                                                       UTILITY    533
         JP    B3+FSVDSW                                                UTILITY    534
*                                                                       UTILITY    535
 FSVDWD  SWITCH FSVDSW,0,0,4,0,4,4,4,1,0,2,1,1,1,3,3                    UTILITY    536
*                                                                       UTILITY    537
+        SX7   B7                  . 0, R                               UTILITY    538
         SB7   X4                                                       UTILITY    539
         SA7   X4+0                                                     UTILITY    540
 FSVD0   LX4   5                   . 1, I,C                             UTILITY    541
         SB4   B0                                                       UTILITY    542
         EQ    FREESVD                                                  UTILITY    543
+        EQ    FSVD1               . 2, A,D,N                           UTILITY    544
+        SB4   B0-B4               . 3, IN,OUT                          UTILITY    545
         SA4   X4+0                                                     UTILITY    546
+        SX7   B7                  . 3, SS,PS,PE,PA                     UTILITY    547
         SB7   X4                                                       UTILITY    548
         AX4   18                                                       UTILITY    549
         SA7   X4                                                       UTILITY    550
         LX4   18+5                                                     UTILITY    551
         EQ    FREESVD                                                  UTILITY    552
*  RELEASE A,D, OR N USING THE RECURSIVE FREESTR                        UTILITY    553
 FSVD1   SB3   X3                                                       UTILITY    554
         BX4   X3                  . SAVE X3                            UTILITY    555
         RJ    FREESTR                                                  UTILITY    556
         BX3   X4                                                       UTILITY    557
         SA4   X4                                                       UTILITY    558
         EQ    FSVD0                                                    UTILITY    559
*                                                                       UTILITY    560
*  SASSIGN                                                              UTILITY    561
*  B2 POINTS TO THE STACK HEADING OF A VALUE, WHICH                     UTILITY    562
*  WILL BE ASSIGNED TO THE VARIABLE AT X3.                              UTILITY    563
*  THE CONTENTS OF THE STACK ENTRY MUST BE DISCARDED AFTER THE          UTILITY    564
*  ASSIGNMENT                                                           UTILITY    565
*  X3,X5,B1,B2 ARE SAVED                                                UTILITY    566
*                                                                       UTILITY    567
SASSIGN  NO                                                             UTILITY    568
+         MX0       56                                                  UTILITY    569
          SA1    B2                . FETCH HEADING OF THE VALUE         UTILITY    570
         SA2   SASGNWD             .  TO BE ASSIGNED                    UTILITY    571
         BX4   X1                  . SWITCH ON ITS TYPE                 UTILITY    572
         AX1   55                                                       UTILITY    573
         LX1   2                                                        UTILITY    574
         SB3   X1                                                       UTILITY    575
         AX2   B3,X2                                                    UTILITY    576
         BX2   -X0*X2                                                   UTILITY    577
         SB3   X2                                                       UTILITY    578
         JP    B3+SASGNSW                                               UTILITY    579
*                                                                       UTILITY    580
 SASGNWD SWITCH SASGNSW,4,0,1,12,11,11,11,6,14,9,9,9,9,0,0              UTILITY    581
*                                                                       UTILITY    582
+        SB3   X4                  . 0, S                               UTILITY    583
         SB3   B2-B3                                                    UTILITY    584
         EQ    SASGNS                                                   UTILITY    585
         SA4   B2-1                . 1, SS                              UTILITY    586
         SA2   X4+0                                                     UTILITY    587
         RJ    SSTOSF                                                   UTILITY    588
         EQ    SASGNSF                                                  UTILITY    589
+         SA2   B2-1               . 4, SF                              UTILITY    590
         BX6   X2                                                       UTILITY    591
         EQ    SASGNSF                                                  UTILITY    592
+        SX2   ITY                 . 6, I                               UTILITY    593
         SA1   B2-1                                                     UTILITY    594
SASGNI1  LX2   55                                                       UTILITY    595
         MX0   6                                                        UTILITY    596
         BX1   -X0*X1                                                   UTILITY    597
         BX6   X1+X2                                                    UTILITY    598
         EQ    SASGN2                                                   UTILITY    599
+        SA1   B2-1                . 9, A,D,N,C                         UTILITY    600
         BX6   X1                                                       UTILITY    601
         JP    SASGN2                                                   UTILITY    602
+        EQ    SASGNP              . 11, P                              UTILITY    603
+        SA4   B2-1                . 12, SI                             UTILITY    604
         SA1   X4+1                                                     UTILITY    605
         SX2   ITY                                                      UTILITY    606
         EQ    SASGNI1                                                  UTILITY    607
+        SA2   B2-1                . 14, R                              UTILITY    608
         SA1   B7                                                       UTILITY    609
         BX6   X2                                                       UTILITY    610
         NZ    X1,SASGNR1          . GET A FREE WORD AND STORE          UTILITY    611
         RJ    MORFREE             .  THE REAL VALUE THERE              UTILITY    612
 SASGNR1 SB7   X1                                                       UTILITY    613
         SA6   A1                                                       UTILITY    614
         SX7   A1-2                                                     UTILITY    615
         IX6   X7+X4                                                    UTILITY    616
         EQ    SASGN2                                                   UTILITY    617
SASGNIO  SA1   X3                  . I/O ASSOCIATED                     UTILITY    618
         SB4   B4+INTY*4                                                UTILITY    619
         SA6   X1                  . PERFORM ASSIGNMENT                 UTILITY    620
*                                                                       UTILITY    621
*  TRACER CODE HERE TOO                                                 UTILITY    622
*                                                                       UTILITY    623
TRACER2  EQ    B0,B4,SASSIGN       . READY IF INPUT                     UTILITY    624
         BX1   X6                  . TEST TYPE TO BE OUTPUT             UTILITY    625
         AX6   55                                                       UTILITY    626
         SX6   X6-SSTY             . CHECK FOR STRING TYPE              UTILITY    627
         NZ    X6,SASGNO1                                               UTILITY    628
SASGNO2  SB3   X3                                                       UTILITY    629
         RJ    OUTPUT              . CALL OUTPUT                        UTILITY    630
         EQ    SASSIGN             . AND RETURN                         UTILITY    631
*                                                                       UTILITY    632
SASGNO1  SB4   X3                  . TEST TYPE TO BE OUTPUT             UTILITY    633
         LX1   6                   . MASK VALUE PART OFF                UTILITY    634
         SX7   X6-ITY+SSTY                                              UTILITY    635
         NZ    X7,ERR52            . ERROR IF NOT INTEGER               UTILITY    636
         SB2   A6                  . SAVE X3,A6                         UTILITY    637
         AX1   6                   . EXTEND THE SIGN                    UTILITY    638
         RJ    ITOSF               . CONVERT IT INTO STRING             UTILITY    639
         SX0   SSTY                                                     UTILITY    640
         LX0   55                                                       UTILITY    641
         SX3   B4                                                       UTILITY    642
         BX6   X6+X0               . STORE SS TYPE RESULT               UTILITY    643
         SA6   B2                                                       UTILITY    644
         EQ    SASGNO2             . GO AND OUTPUT IT                   UTILITY    645
*                                                                       UTILITY    646
SASGNS   SB2   B2-1                . PROCESS S TYPE                     UTILITY    647
         SB3   B3+1                .  BY CONVERTING IT INTO SF FORM     UTILITY    648
         RJ    STOSFX6                                                  UTILITY    649
 SASGNSF SX0   SSTY                . PROCESS SF TYPE                    UTILITY    650
         LX0   55                                                       UTILITY    651
         BX6   X6+X0               . MERGE IN SS TYPE                   UTILITY    652
*  SVD TO BE ASSIGNED TO X3 IS IN X6 NOW...                             UTILITY    653
 SASGN2  RJ    FREESVD                                                  UTILITY    654
 SASGN3  LT    B4,B0,SASGNIO       . BRANCH IF INTY/OUTTY               UTILITY    655
         SA6   X3                  . PERFORM ACTUAL ASSIGNMENT          UTILITY    656
         PL    X4,SASSIGN          . RETURN IF NO TRACING               UTILITY    657
*  TRACER CODE MAY BE INSERTED HERE                                     UTILITY    658
*                                                                       UTILITY    659
*                                                                       UTILITY    660
SASGNP   MX0   5                   . PROCESS P TYPE                     UTILITY    661
         SB3   X4                                                       UTILITY    662
         SX1   B7                  . FIRST                              UTILITY    663
         BX7   X0*X4                                                    UTILITY    664
         MX0   42                                                       UTILITY    665
         AX4   18                  . PARAMETER OF PA                    UTILITY    666
         SB3   B2-B3                                                    UTILITY    667
         BX7   X7+X1               . PACK FIRST AND TYPE TO X7          UTILITY    668
         BX4   -X0*X4                                                   UTILITY    669
         SB3   B3+1                                                     UTILITY    670
         LX4   36                                                       UTILITY    671
SASGNP1  SA1   B7+0                . GET NEXT FREE WORD                 UTILITY    672
         NZ    X1,SASGNP2                                               UTILITY    673
         RJ    MORFREE                                                  UTILITY    674
 SASGNP2 SA2   B3+0                . FETCH PATTERN WORD                 UTILITY    675
         LX2   42                                                       UTILITY    676
         BX6   X2*X0               . CONVERT IT INTO LIST FORMAT        UTILITY    677
         SB3   B3+1                                                     UTILITY    678
         EQ    B2,B3,SASGNP3       . END LOOP                           UTILITY    679
         SX1   X1                                                       UTILITY    680
         SB7   X1                                                       UTILITY    681
         BX6   X6+X1               . ADD LINK TO THE WORD               UTILITY    682
         SA6   A1                  .  AND STORE                         UTILITY    683
         EQ    SASGNP1                                                  UTILITY    684
SASGNP3  SA6   A1                  . STORE LAST WORD WITH 0 LINK        UTILITY    685
         SB7   X1                                                       UTILITY    686
         SX1   A1                                                       UTILITY    687
         BX7   X7+X4                                                    UTILITY    688
         LX1   18                  . PACK PA PARAMETER AND LAST         UTILITY    689
         BX6   X7+X1               .  INTO THE DESCRIPTOR               UTILITY    690
         EQ    SASGN2              . GO TO ASSIGN IT                    UTILITY    691
*                                                                       UTILITY    692
*                                                                       UTILITY    693
         TITLE INDIRECT SEARCH                                          UTILITY    694
*  GO INDIRECT THROUGH TOP OPERAND, RETURN                              UTILITY    695
*  ABS ADDRESS OF VARIABLE IN X1                                        UTILITY    696
*  TOP OPERAND IS DESTROYED                                             UTILITY    697
*                                                                       UTILITY    698
INDRCT   NO                                                             UTILITY    699
+        SA2   INDCWD              . SWITCH ON THE TYPE OF TOPOPERAND   UTILITY    700
         SB3   INDCSW                                                   UTILITY    701
         EQ    CHEK                                                     UTILITY    702
*                                                                       UTILITY    703
INDCWD   SWITCH INDCSW,5,4,6,6,0,0,0,3,0,0,0,1,0,0,0                    UTILITY    704
*                                                                       UTILITY    705
+        ERROR 33                  . 0, P,A,D,C,R                       UTILITY    706
+        SA1   B6-1                . 1, N                               UTILITY    707
         SB6   B6-2                . RETURN NAME AND REMOVE TOPOPERAND  UTILITY    708
          SX1      X1                                                   UTILITY    709
         EQ    INDRCT                                                   UTILITY    710
+        RJ    ITOS                . 3, I                               UTILITY    711
+        RJ    SCATS               . 4, S                               UTILITY    712
+        SA4   B6-1                . 5, SF                              UTILITY    713
         EQ    INDR1                                                    UTILITY    714
+        SA4   B6-1                . 6, SS,SI                           UTILITY    715
         SA4   X4+0                                                     UTILITY    716
INDR1    SX0   VARTYP              . SET UP SEARCH CALL FOR A VARIABLE  UTILITY    717
         RJ    INDRX                                                    UTILITY    718
         NE    B3,B0,INDR8                                              UTILITY    719
         RJ    ZROX7               . ASSIGN NULL VALUE                  UTILITY    720
         SX1   X3+1                .  IF NEW VARIABLE                   UTILITY    721
         SA7   X3+1                                                     UTILITY    722
INDR8    SB6   B6-2                                                     UTILITY    723
         NE    B4,B0,INDRCT        . END IF NOT SF                      UTILITY    724
         SX7   B7                                                       UTILITY    725
         SB7   X4                                                       UTILITY    726
         AX4   18                                                       UTILITY    727
         SA7   X4                                                       UTILITY    728
         EQ    INDRCT                                                   UTILITY    729
*                                                                       UTILITY    730
*  FIND HBWN WITH TYPE AS INDICATED IN X0, AND NAME AS                  UTILITY    731
*  INDICATED BY THE STRING WITH SVD IN X4 AND AT THE TOP                UTILITY    732
*  OF THE STACK.                                                        UTILITY    733
*  PARAM:  B4 = 0 IFF TOP OF STACK IS SF                                UTILITY    734
*          X4 SVD                                                       UTILITY    735
*  RESULT: X1 POINTS TO THE VALUE WORD OF THE HBWN                      UTILITY    736
*          B3 = 0 IFF IT IS A NEW HBWN                                  UTILITY    737
*                                                                       UTILITY    738
INDRX    NO                                                             UTILITY    739
+        BX1   X4                                                       UTILITY    740
         SB5   X4                                                       UTILITY    741
         AX1   36                                                       UTILITY    742
         LX0   55                                                       UTILITY    743
         SB3   X1                  . LENGTH TO B3                       UTILITY    744
         SX5   X1                                                       UTILITY    745
         LX5   36                                                       UTILITY    746
         BX5   X5+X0               . PREPARE HBWN WORD 0                UTILITY    747
         EQ    B3,B0,ERR27         . ERROR IF NULL STRING               UTILITY    748
         RJ    SEARCH                                                   UTILITY    749
         NZ    X1,INDRX            . BRANCH IF FOUND                    UTILITY    750
         SX1   B3+6                . 6 IS TO ROUND OFF                  UTILITY    751
         PX1   X1                                                       UTILITY    752
         SB5   A2                  . SAVE ADDRESS OF X2                 UTILITY    753
         SA4   SEVEN                                                    UTILITY    754
         FX1   X1/X4                                                    UTILITY    755
         UX6   X1,B2                                                    UTILITY    756
         LX6   X6,B2               . NUMBER OF WORDS FOR THE NAME       UTILITY    757
         BX4   X2                  . SAVE LAST HASH LIST WORD           UTILITY    758
         SB1   X6+2                . ALLOW FOR HEADING AND VALUE WORD   UTILITY    759
         RJ    RESHB                                                    UTILITY    760
         SX0   B3                  . BASE FOR THE NEW HB                UTILITY    761
         BX7   X0+X4                                                    UTILITY    762
         NG    X4,INDR2                                                 UTILITY    763
         NG    X3,INDR2                                                 UTILITY    764
         LX7   30                                                       UTILITY    765
 INDR2   SA7   B5                  . UPDATE HASH LIST                   UTILITY    766
         SA4   B6-1                . FETCH OPERAND AFRESH               UTILITY    767
         SX3   B3                  . HB BASE TO X3                      UTILITY    768
         EQ    B0,B4,INDR5         . BYPASS IF SF                       UTILITY    769
         SA4   X4+0                                                     UTILITY    770
 INDR5   SX1   X3+3                                                     UTILITY    771
         SX6   X4                                                       UTILITY    772
INDR6    SA2   X6                  . NEXT WORD                          UTILITY    773
         SX6   X2+0                                                     UTILITY    774
         BX7   X2-X6                                                    UTILITY    775
         ZR    X6,INDR7            . END OF LIST                        UTILITY    776
         BX7   X7+X1                                                    UTILITY    777
         SA7   X1-1                . STORE WORD IN STATIC               UTILITY    778
         SX1   X1+1                                                     UTILITY    779
         EQ    INDR6                                                    UTILITY    780
INDR7    SA7   X1-1                . STORE LAST WORD                    UTILITY    781
         IX7   X1-X3                                                    UTILITY    782
         LX7   18                                                       UTILITY    783
         BX6   X5+X7                                                    UTILITY    784
         SX1   X3+1                                                     UTILITY    785
         SA6   X3                  . STORE HEADING                      UTILITY    786
         SB3   B0                  . INDICATE NEW RECORD IN B3          UTILITY    787
         EQ    INDRX                                                    UTILITY    788
*                                                                       UTILITY    789
SEVEN    DATA  7.0                 . NUMBER OF CHARACTERS IN A WORD     UTILITY    790
         TITLE SEARCH ROUTINE                                           UTILITY    791
*  FIND HBWN WITH TYPE X0 AND NAME AS INDICATED BY                      UTILITY    792
*  THE LIST STARTING AT B5.  B3 CONTAINS THE NUMBER OF                  UTILITY    793
*  CHARACTERS IN THE NAME.  IF B3 IS NEGATIVE, NO SEARCH                UTILITY    794
*  IS DONE AND THE HASH CODE IS RETURNED IN X2.                         UTILITY    795
*  RESULTS:   X1  =0 IF NO HBWN WAS FOUND OR                            UTILITY    796
*             X1  POINTS TO THE VALUE WORD OF THE HBWN                  UTILITY    797
*             X2(A2) AND X3 RETURN INFORMATION NECESSARY                UTILITY    798
*             FOR INSERTING A NEW HBWN INTO THE HASH LIST.              UTILITY    799
*  X0,X1,X2,X3,X6,X7,B2,B3,B5                                           UTILITY    800
*                                                                       UTILITY    801
SEARCH   NO                                                             UTILITY    802
+        MX7   42                  . X7 IS A MASK AND A FLAG            UTILITY    803
         BX2   X2-X2                                                    UTILITY    804
         SB2   B5                                                       UTILITY    805
         MX6   2                                                        UTILITY    806
         LX6   58                                                       UTILITY    807
         BX6   X0*X6               . BYPASS IF TYPE IS NOT INTEGER      UTILITY    808
         NZ    X6,SEARCH1          .  OR REAL CONSTANT                  UTILITY    809
         SA2   B5                                                       UTILITY    810
         MX7   12                                                       UTILITY    811
         BX2   -X7*X2              . MASK 48 BITS OFF                   UTILITY    812
         BX7   X7-X7               . SET FLAG                           UTILITY    813
         EQ    SEARCH2                                                  UTILITY    814
SEARCH1  SA1   B2                  . OTHERWISE EXOR THE WORDS IN        UTILITY    815
         SB2   X1+0                .  THE NAME TOGETHER                 UTILITY    816
         BX2   X2-X1                                                    UTILITY    817
         NE    B2,B0,SEARCH1                                            UTILITY    818
         BX2   X2*X7               . AND MASK 42 BITS OFF               UTILITY    819
         LX2   42                                                       UTILITY    820
SEARCH2  SA3   HASHLWD             . THE HASH FUNCTION IS A SIMPLE      UTILITY    821
         PX2   X2                  .  INTEGER DIVISION                  UTILITY    822
         FX1   X2/X3                                                    UTILITY    823
         UX1   X1,B2                                                    UTILITY    824
         LX1   X1,B2                                                    UTILITY    825
         PX1   X1                                                       UTILITY    826
         NX1   X1                                                       UTILITY    827
         FX3   X1*X3                                                    UTILITY    828
         FX2   X2-X3                                                    UTILITY    829
         UX2   X2,B2                                                    UTILITY    830
         LX3   X2,B2               . HASHTABLE INDEX TO X3              UTILITY    831
         LX3   59                                                       UTILITY    832
         MX6   5                                                        UTILITY    833
         SA2   X3+HASHTBL          . START OF THE LIST OF HBWN-S        UTILITY    834
         NG    X3,SEARCHA          . OR HBL-S WITH THIS HASH CODE       UTILITY    835
         LX2   30                  . TO X2                              UTILITY    836
 SEARCHA LT    B3,B0,SEARCH        . RETURN HASH CODE ONLY              UTILITY    837
SEARCH3  SX1   X2                  . SEARCH LOOP                        UTILITY    838
         ZR    X1,SEARCH           . END OF THE CHAIN RETURN NOT FOUND  UTILITY    839
         SA2   X1                                                       UTILITY    840
         BX3   X2                                                       UTILITY    841
         AX3   36                                                       UTILITY    842
         SB2   X3                  . CHECK LENGTH OF NAME               UTILITY    843
         NE    B2,B3,SEARCH3                                            UTILITY    844
         BX3   X0-X2                                                    UTILITY    845
         BX3   X3*X6               . CHECK TYPE                         UTILITY    846
         NZ    X3,SEARCH3                                               UTILITY    847
         SB2   A2+2                                                     UTILITY    848
         PL    X7,SEARCH5          . BYPASS IF INTEGER OR REAL CONST.   UTILITY    849
         SX1   B5+0                                                     UTILITY    850
SEARCH4  SX1   X1                                                       UTILITY    851
         ZR    X1,SEARCH3          . END OF THE NAME                    UTILITY    852
         SA3   B2                                                       UTILITY    853
         SA1   X1                  . NEXT WORD IN NAME                  UTILITY    854
         SB2   X3                                                       UTILITY    855
         BX3   X1-X3                                                    UTILITY    856
         BX3   X3*X7               . COMPARE THE CHARACTERS ONLY        UTILITY    857
         NZ    X3,SEARCH3                                               UTILITY    858
         NE    B0,B2,SEARCH4       . THERE ARE MORE WORDS               UTILITY    859
         SX1   X1+0                                                     UTILITY    860
         NZ    X1,SEARCH3                                               UTILITY    861
SEARCH6  SX1   A2+1                . RETURN FOUND                       UTILITY    862
         EQ    SEARCH                                                   UTILITY    863
SEARCH5  SA1   B5                  . FOR CONSTANTS COMPARE VALUES       UTILITY    864
         SA3   B2                                                       UTILITY    865
         BX3   X1-X3                                                    UTILITY    866
         NZ    X3,SEARCH3                                               UTILITY    867
         EQ    SEARCH6                                                  UTILITY    868
*                                                                       UTILITY    869
*                                                                       UTILITY    870
*  UCAT                                                                 UTILITY    871
*  CONCATENATE THE STRING WITH (SS OR SF) SVD IN X6                     UTILITY    872
*  TO THE SF STRING WITH SVD AT MINHS, AND LEAVE                        UTILITY    873
*  THE SVD OF THE RESULT AT MINHS.  IF THE ARGUMENT IS                  UTILITY    874
*  SF, IT WILL BE RELEASED.                                             UTILITY    875
*  PARAM:  X6 CONTAINS THE SVD OF THE RIGHT OPERAND                     UTILITY    876
*  ALL REGISTERS ARE DESTROYED EXCEPT A0,A5,B6,B7                       UTILITY    877
*                                                                       UTILITY    878
 UCAT    DATA  0                                                        UTILITY    879
         SA1   MINHS                                                    UTILITY    880
         SA4   X1+0                . SVD OF LEFT OPERAND                UTILITY    881
         SA6   X1+1                . STORE SVD OF RIGHT OP              UTILITY    882
         AX4   18                                                       UTILITY    883
         SB5   UCATR               . RETURN ADDRESS                     UTILITY    884
         SA4   X4                  . FETCH LAST WORD OF LEFT OPERAND    UTILITY    885
         BX2   X6                  . PARAMETERS FOR CTSFSS0             UTILITY    886
         SB3   B0                                                       UTILITY    887
         JP    CTSFSS0             . PERFORM CONCATENATION              UTILITY    888
 UCATR   SA1   MINHS                                                    UTILITY    889
         SA7   X3                  . STORE LAST WORD                    UTILITY    890
         SA4   X1                  . LEFT OPERAND                       UTILITY    891
         SA2   X1+1                . RIGHT OPERAND                      UTILITY    892
         BX1   X2                                                       UTILITY    893
         AX2   55                                                       UTILITY    894
         NZ    X2,UCAT1            . RELEASE RIGHT OP IF SF             UTILITY    895
         SX7   B7                                                       UTILITY    896
         BX2   X1                                                       UTILITY    897
         SB7   X1                                                       UTILITY    898
         AX2   18                                                       UTILITY    899
         SA7   X2+0                                                     UTILITY    900
 UCAT1   AX1   36                  . LENGTH OF RIGHT OP                 UTILITY    901
         BX1   -X0*X1              . MX0 42 IN SUBROUTINE               UTILITY    902
         LX3   18                  . ADDRESS OF LAST WORD               UTILITY    903
         LX0   18                                                       UTILITY    904
         LX1   36                                                       UTILITY    905
         BX6   X0*X4                                                    UTILITY    906
         IX6   X1+X6               . TOTAL LENGTH                       UTILITY    907
         BX6   X6+X3               . PACK LAST INTO RESULT SVD          UTILITY    908
         SA6   A4                  . STORE RESULT                       UTILITY    909
         JP    UCAT                                                     UTILITY    910
*                                                                       UTILITY    911
         EJECT                                                          UTILITY    912
*                                                                       UTILITY    913
*  FREESTR                                                              UTILITY    914
*  RELEASE VALUE DESCRIBED IN SVD.  THIS SUBROUTINE IS                  UTILITY    915
*  SLOW AND SHOULD BE USED TO RELEASE STRUCTURES.                       UTILITY    916
*  SINCE THE RELEASE OF ONE ELEMENT IN A STRUCTURE MAY                  UTILITY    917
*  TRIGGER THE RELEASE OF ANOTHER STRUCTURE, A RECURSIVE                UTILITY    918
*  ALGORITHM SIMILAR TO THE ONE IN WSVD IS EMPLOYED                     UTILITY    919
*  X3, B3 AND B4 HAVE THE SAME ASSIGNMENT AS B1, B2 AND B3              UTILITY    920
*  IN WSVD.                                                             UTILITY    921
*  PARAM:   B3 POINTS TO THE SVD                                        UTILITY    922
*  X0,X1,X2,X3,X7,B3,B4                                                 UTILITY    923
*                                                                       UTILITY    924
 FREESTR DATA  0                                                        UTILITY    925
         SB4   B3+1                . SEE ALSO WSVD                      UTILITY    926
         SX3   -1                                                       UTILITY    927
*                                                                       UTILITY    928
 FSTRA   SA1   B3                  . FETCH NEXT SVD                     UTILITY    929
         BX2   X1                  . DISPATCH ON TYPE                   UTILITY    930
         AX1   55                                                       UTILITY    931
         SX7   B7                  . PREPARE FOR LIST RELEASE           UTILITY    932
         SX0   X1-ITY                                                   UTILITY    933
         NG    X0,FSTRB            . LIST STRUCTURE                     UTILITY    934
         ZR    X0,FSTRC            . IGNORE INTEGER                     UTILITY    935
         SX0   X1-RTY                                                   UTILITY    936
         ZR    X0,FSTRE            . REAL NUMBER (IN LS)                UTILITY    937
         SX0   X1-CTY                                                   UTILITY    938
         NG    X0,FSTRD            . BRANCH IF ATY, DTY OR NTY          UTILITY    939
         ZR    X0,FSTRC            . IGNORE CODE                        UTILITY    940
*  RELEASE INTY/OUTTY                                                   UTILITY    941
         BX1   X2                                                       UTILITY    942
         RJ    DECFIL              . DECREMENT FILE REF. COUNT          UTILITY    943
         SB7   X2                  . RELEASE VALUE SVD                  UTILITY    944
         SA2   X2                                                       UTILITY    945
         SA7   B7                                                       UTILITY    946
         SX7   B7                                                       UTILITY    947
*                                                                       UTILITY    948
 FSTRB   SB7   X2                  . RELEASE LIST STRUCTURE             UTILITY    949
         AX2   18                                                       UTILITY    950
         SA7   X2+0                                                     UTILITY    951
 FSTRC   SB3   B3+1                                                     UTILITY    952
         LT    B3,B4,FSTRA         . PROCEED TO NEXT SVD IF NOT END     UTILITY    953
         NG    X3,FREESTR          . EXIT IF OUTERMOST LEVEL            UTILITY    954
*                                                                       UTILITY    955
*  RESTORE B3 TO POINT TO WORD 0 OF CURRENT BLOCK                       UTILITY    956
         SA1   X3                                                       UTILITY    957
         AX1   18                                                       UTILITY    958
         SB3   X1                                                       UTILITY    959
*  RETURN STORAGE FROM B3 TO B4-1 TO FREE HEAP BLOCK POOL               UTILITY    960
         RJ    FREEHB                                                   UTILITY    961
*  RESTORE OLD X3, B3 AND B4                                            UTILITY    962
         SB3   X3                  . RESTORE OLD B3                     UTILITY    963
         SA1   X3                  . FETCH SVD AT X3                    UTILITY    964
         LX1   24                                                       UTILITY    965
         SX3   X1                  . RESTORE OLD X3 FROM F3             UTILITY    966
         NG    X3,FREESTR          . EXIT IF OUTERMOST LEVEL            UTILITY    967
         SA1   X1                  . FETCH OLD SVD                      UTILITY    968
         AX1   18                                                       UTILITY    969
         SA2   X1                  . WORD 0 OF OLD STRUCTURE            UTILITY    970
         AX2   18                                                       UTILITY    971
         SA1   X2                                                       UTILITY    972
         SB4   X1                  . SIZE OF OLD STRUCTURE TO B4        UTILITY    973
         SB4   B4+A2                                                    UTILITY    974
         JP    FSTRC                                                    UTILITY    975
*                                                                       UTILITY    976
*  FIND WORD 0 OF STRUCTURE REFERENCED BY ATY, DTY OR NTY               UTILITY    977
 FSTRD   LX2   60-18                                                    UTILITY    978
         SX1   X2                                                       UTILITY    979
         ZR    X1,FSTRC            . IGNORE SIMPLE VARIABLE NAME        UTILITY    980
         SA1   X1                  . WORD 0 TO X1                       UTILITY    981
         MX0   1                                                        UTILITY    982
         LX0   60-2                                                     UTILITY    983
         BX7   X1*X0                                                    UTILITY    984
         ZR    X7,FSTRC            . IGNORE BLOCK IF ALREADY FREE       UTILITY    985
         MX0   59                  . =-1                                UTILITY    986
         IX7   X1+X0               . DECREMENT REFERENCE COUNT          UTILITY    987
         SX0   X7                                                       UTILITY    988
         SA7   A1                                                       UTILITY    989
         NZ    X0,FSTRC            . IGNORE IF REF. COUNT NOT ZERO      UTILITY    990
         SX0   5                   . MASK TO CHANGE 10111 INTO 10010    UTILITY    991
         LX0   60-5                . FRETYP IS 10010                    UTILITY    992
         BX7   X7-X0               . MAKE CURRENT BLOCK LOOK FREE       UTILITY    993
         SA7   A1                                                       UTILITY    994
         LX2   60-18                                                    UTILITY    995
         MX0   42                                                       UTILITY    996
         BX3   -X0*X3              . PACK X3 INTO F3 OF SVD             UTILITY    997
         BX7   X0*X2                                                    UTILITY    998
         BX7   X7+X3                                                    UTILITY    999
         LX7   36                                                       UTILITY   1000
         SX3   B3                  . NEW X3                             UTILITY   1001
         SA7   B3                                                       UTILITY   1002
         AX1   18                                                       UTILITY   1003
         SA2   X1                  . SIZE OF NEW STRUCTURE TO X2        UTILITY   1004
         SB3   A1                  . ADDRESS OF WORD 0                  UTILITY   1005
         SB4   B3+X2               . ADDRESS OF LAST WORD+1             UTILITY   1006
         JP    FSTRC                                                    UTILITY   1007
*                                                                       UTILITY   1008
*  RELEASE LS FOR RTY...                                                UTILITY   1009
 FSTRE   SA7   X2                                                       UTILITY   1010
         SB7   X2                                                       UTILITY   1011
         EQ    FSTRC                                                    UTILITY   1012
         EJECT                                                          UTILITY   1013
*                                                                       UTILITY   1014
*  DECFIL                                                               UTILITY   1015
*  CODE TO RELEASE BUFFER OF INTY/OUTTY SVD                             UTILITY   1016
*  PARAM:  X1,F2 POINTS TO WORD 0 OF A FILTYP HB                        UTILITY   1017
*  RESULT: X7 CONTAINS B7                                               UTILITY   1018
*  X0,X1,X7                                                             UTILITY   1019
 DECFIL  DATA  0                                                        UTILITY   1020
         MX0   59                  . =-1                                UTILITY   1021
         AX1   18                                                       UTILITY   1022
         SA1   X1+1                . FETCH REF. COUNT                   UTILITY   1023
         IX7   X1+X0               . DECREMENT IT                       UTILITY   1024
         SX1   X7                                                       UTILITY   1025
         SA7   A1                                                       UTILITY   1026
         NZ    X1,DECFIL1                                               UTILITY   1027
         RJ    SCHHBC              . SCHEDULE HBC IF HIT 0              UTILITY   1028
 DECFIL1 SX7   B7                                                       UTILITY   1029
         EQ    DECFIL                                                   UTILITY   1030
*                                                                       UTILITY   1031
*  SCHHBC                                                               UTILITY   1032
*  SCHEDULE A HEAP BLOCK COMPACTION AT THE END OF THE                   UTILITY   1033
*  CURRENT RULE.                                                        UTILITY   1034
*  X1,X7                                                                UTILITY   1035
*                                                                       UTILITY   1036
 SCHHBC  DATA  0                                                        UTILITY   1037
         SA1   STATWD                                                   UTILITY   1038
         SX7   STATHBC             . SET HBC BIT IN STATUS              UTILITY   1039
         BX7   X7+X1                                                    UTILITY   1040
         SA7   A1                                                       UTILITY   1041
         SX7   0                   . SET INTERRUPT                      UTILITY   1042
         SA7   INTRPT                                                   UTILITY   1043
         EQ    SCHHBC                                                   UTILITY   1044
         END                                                            UTILITY   1045