Revision 62edbcc8c6021789df156749d71229308ba4313a authored by Ronald Burkey on 08 August 2021, 00:25:00 UTC, committed by GitHub on 08 August 2021, 00:25:00 UTC
yaAGCb1: Fixed a few errors identified by SELF-CHECK
2 parent s 1bd6f8f + b8b57e2
Raw File
YUL_SYSTEM_ASSEMBLER_SACO_PASS_2.argus
# Copyright:    Public domain.
# Filename:     YUL_SYSTEM_ASSEMBLER_SACO_PASS_2.mitigus
# Purpose:      Part of the source code for YUL (revision 9).
# Assembler:    TBD
# Contact:      Jim Lawton <jim.lawton@gmail.com>
# Website:      https://www.ibiblio.org/apollo/index.html
# Page scans:   https://archive.org/details/yulsystemsourcec00hugh
# Pages:        360-384
# Mod history:  2016-10-06 JL   Created.
#               2016-12-23 JL   Transcribed pages 360-384.

# Annotations:
#
#   B L A I R - S M I T H
#    Y U L   S Y S T E M
#
#       Listings in
#    MITIGUS  Format
#

# Note: Page numbers are scan page numbers rather than listing.


L      @YUL SYSTEM ASSEMBLER SACO PASS 2

# Page 360
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   1        PAGE  96

R0001   WE ARE DEEPLY INDEBTED TO THE ONE, THE ONLY, THE GREAT JOHN SHAW FOR THE FOLLOWING STRONG MAGIC....
R0003   JSOCTL

 0004              SETLOC,2     SIZ PASS 2    B1

 0005              MASKGRP,4    S,1           F,1

R0006              THE SACO PART OF PASS 2 CONTAINS THE CUSS LIST AND CUSSES FOR SACO, TOGETHER WITH CODING TO PLANT A
R0008   MODIFIED CUSS LIST AT THE BEGINNING OF BANK 2, AND CODING TO PROCESS INSTRUCTIONS AND CLERICAL CODES FOR SACO.

R0010              THE CUSS LIST AND CUSSES ARE LOADED INTO BANK 5 ALONG WITH CODING TO CONVERT THE CUSS LIST FROM THE
R0012   FOLLOWING MIXED-CONSTANT FORMAT:

R0013   OP CODE:   FOR EACH OF 3 CUSSES, A POISON BIT AND A 3-BIT CUSS LENGTH.
R0014   A ADDRESS: DEMAND BIT AND SUBADDRESS OF CUSS 1,
R0015   B ADDRESS: DEMAND BIT AND SUBADDRESS OF CUSS 2,
R0016   C ADDRESS: DEMAND BIT AND SUBADDRESS OF CUSS 3

R0017   TO A CAC-WORD FORMAT IN WHICH EACH CAC CONTAINS THE DEMAND BIT, POISON BIT, LENGTH AND SUBADDRESS OF A CUSS.
R0019   THE CONVERSION IS REQUIRED ONLY TO MAKE USE OF EXISTING MASKS IN GENERAL PASS 2.

R0021              THE PROCESSING CODING IN THE BANK 1 PORTION OF SACO PASS 2 HAS THE FOLLOWING FUNCTIONS:

R0023           1) FOR ALL WORDS, TO SET IN PRINT THE WORD AND ITS LOCATION, AND ANNOUNCE END OF BANK OR END OF BLOCK IF
R0025   APPROPRIATE.

R0026           2) FOR INSTRUCTIONS, TO TRANSLATE THE ADDRESS FIELD AND REDUCE IT IF ITS VALUE IS IN ONE OF THE BANKS
R0028   3-7, NOTING BANK ERROR IF APPROPRIATE.  SUPPLY AN IMPLIED ADDRESS IF REQUIRED.  CUSS POLISH INDEXING IF IT IS
R0030   SPECIFIED.
R0031              FOR BASIC INSTRUCTIONS, CHECK THAT "CAF" REFERS TO FIXED AND "TS" TO ERASABLE (0000-1777), UNLESS
R0033   PRECEDED BY "INDEX", CHECK THAT EXTRACODES ARE INDEXED, AND FLAG "ADRES", "CADR", "XCADR" CODES AND POLISH AND
R0035   STORE ADDRESSES AS CONSTANTS.  FLAG UNINDEXED BASIC INSTRUCTIONS.
R0036              FOR POLISH OPERATOR WORDS, TO TRANSLATE THE ADDRESS FIELD IF IT IS AN OPERATOR WORD COUNT, OR FORM A
R0038   WORD FROM THE TWO OPERATORS OTHERWISE, ADDING 1 AND COMPLEMENTING.  CUSS ALL ERRORS OF THE SECOND OPERATOR.

R0040           3) FOR CONSTANTS, TO FLAG THEM AS SUCH AND CHECK ON MAGNITUDE.

R0041           4) FOR SETLOC, EQUALS, MEMORY, BLOCK, SUBRO, AND ERASE, TO SET APPROPRIATE ADDRESSES IN PRINT.

# Page 361
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   2        PAGE  97

P0043              QUANTITIES FILLED IN BY THE SACO PART OF PASS 2 FOR REFERENCE BY GENERAL PASS 2.



 0045   SC PROC OP CAC          SACO INST     SACO 1P       SACO PREL
 0046   SC D1 PARS FLDEC        16383.0, 16384.0
 0047              FXBIN        -16383

 0048   SC K1 MAX  OCT          -77777
 0049   SC D2 PARS FLDEC        268 435 455.0, 268 435 456.0
 0050              FXBIN        -268 435 455

 0051   SC PROC 2P CAC          SACO 2P       SACO PLEB
 0052   SC K2 MAX  OCT          -77 7777 7777
 0053   SC MAX LOC OCT          -71777

 0054   SC CON MSX OCT          -77, 7777 7777
 0055   SC PRET FL OCT          0000 0010
 0056   SC FLG MSK OCT          7400 0077

 0057   SC CONS FL OCT          0000 0020
 0058   SACO MXR   MASKBASE     S,1           F,1
 0059   SC MISC FL OCT          0000 0030

# Page 362
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   3        PAGE  98

P0060              FIELD AND SHIFT MASKS FOR SACO PART OF PASS 2.



 0061              SETLOC,4     768           B5

 0062   B,BIT1M    OCT          4
 0063   B,BIT7M    OCT          004
 0064   B,BIT17M   DEC          00008
 0065   B,BIT25M   OCT          -4000 0000

 0066   B,BIT28M   OCT          -400 0000
 0064   B,BIT31M   OCT          -40 0000
 0068   B,BIT32M   OCT          -20 0000
 0069   B,BIT33M   OCT          -10 0000

 0070   B,B25T29M  OCT          -7600 0000
 0071   B,B25T31M  OCT          -7740 0000
 0072   B,B34T36M  OCT          -7 0000
 0073   B,B34T48M  OCT          -77777

 0074   B,B41T48M  OCT          -377
 0075   B,B42T48M  OCT          -177
 0076   B,CHAR1M   OCT          77
 0077   B,CHAR5M   OCT          -7700 0000

 0078   B,CHAR8M   OCT          -77
 0079   B,C1T4M    OCT          7777 7777
 0080   B,C3T4M    OCT          0000 7777
 0081   SPECMAG M  EQUALS       B34T48M
 0082   B,BANKMASK OCT          -16000

 0084   B,B35T48M  OCT          -37777

# Page 363
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   4        PAGE  99


P0085              FURTHER SHIFT MASKS FOR SACO PART OF PASS 2.

 0086   S,BIT2M    OCT          2
 0087   S,BIT38M   OCT          -2000
 0088   S,BIT39M   OCT          -1000
 0089   S,BIT40M   OCT          -400

 0090   S,B2T5M    OCT          36
 0091   S,B6T16M   OCT          0177 74
 0092   S,B18T21M  OCT          0000 017

 0093   S,B22T25M  OCT          0000 0007 4
 0094   S,B22T32M  OCT          -7 7760 0000
 0095   S,B28T30M  OCT          -700 0000
 0096   S,B34T37M  OCT          -7 4000

 0097   S,B35T41M  OCT          -37600
 0098   S,B38T48M  OCT          -3777
 0099   S,B40T42M  OCT          -700

 0100   S,ACO1     OCT          07
 0101   S,ACO2     OCT          0007
 0102   S,ACO3     OCT          0000 07
 0103   S,ACO4     OCT          0000 0007
 0104   ACO5       EQUALS       B28T30M
 0105   ACO6       EQUALS       B34T36M
 0106   ACO7       EQUALS       B40T42M

 0107   S,CHAR3M   OCT          0000 77
 0108   S,CHAR4M   OCT          0000 0077
 0109   S,CHAR7M   OCT          -7700
 0110   S,C3T6M    OCT          0000 7777 7777

 0111   S,ONESM    OCT          7777 7777  7777 7777
 0112   S,THREEM   OCT          -3

# Page 364
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   5        PAGE 100

P0115              CONSTANTS AND EQUIVALENCES FOR THE SACO PART OF PASS 2.



 0116              SETLOC,2

R0117   NUMERICAL CONSTANTS.

 0118   SPECOND 1  OCT          -0200 0000
 0119   SPECOND 4  OCT          -1000 0000
 0120   SPECOND 5  OCT          -1200 0000

 0121   SPECOND 6  OCT          -1400 0000
 0122   SPECOND 7  OCT          -1600 0000
 0123   SPECON 11  OCT          -2200 0000
 0124   SPECON 12  OCT          -2400 0000

 0125   2 POLOP 7  OCT          -0340 0000
 0126   2 POLOP 17 OCT          -0740 0000
 0127   2 POLOP 27 OCT          -1340 0000
 0128   PL 77776   OCT          +77776

 0129   PL 72000   OCT          +72000
 0130   PL 71777   OCT          +71777
 0131   PL 57776   OCT          +57776
 0132   PLUS 1776  OCT          +1776

 0134   OCT 77776  OCT          -77776
 0135   MIN 37777  OCT          -37777
 0136   OCT 32000  OCT          -32000

 0139   OCT 6000   OCT          -6000
 0140   OCT 5777   OCT          -5777
 0141   DEC 48 FLG DEC          48

 0146   OP COUNT   OCT          -77777
 0147   C3T6       OCT          0000 7777 7777

# Page 365
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   6        PAGE 101

P0149   ALPHABETIC CONSTANTS.

 0150   END BL MC  ALF            EB  MC
 0151   HI EQUALS  ALF          = 0,0000
 0152   ALF 6000   EQUALS       00006000
 0153   COMMA C2   ALF          0,0000

 0154   COMMA C8   ALF                0,
 0155   MINUS C8   ALF                 -



R0157   ADDRESS CONSTANTS AND MISCELLANEOUS.



 0158   IMPAD BAS  SPEC                                     IMPLADS
 0160   IMPLADS    CAC          1                           0              -
 0161              CAC          14                          2              -
 0162              CAC          21                          15             -
 0163              CAC                                      3071           -

 0164   SAV ADREF  RESERVE      2
 0165   ADDITIVE   RESERVE      1
 0166   MAX ADRES  RESERVE      1
 0168   ADRE CUSS  ASSIGN       4,0

# Page 366
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   7        PAGE 102

P0169              SUBROUTINE IN PASS 2 FOR SACO TO FORM A WORD FROM AN OPERATION CODE AND AN ADDRESS (BASIC INSTRUC-
R0171   TIONS AND ADDRESS CONSTANTS), OR FROM TWO POLISH OPERATOR CODES (POLISH OPERATOR WORDS).  THE OPERATION CODE(S)
R0173   AND SOME ASSOCIATED INFORMATION BITS ARE TAKEN FROM THE HEALTH WORD OF THE CURRENT POPO ITEM.  THE ADDRESS IS
R0175   OBTAINED FROM THE CARD VIA A GENERAL SUBROUTINE IN PASS 2 CALLED PROC ADR.  IMPLIED ADDRESSES, BANK ERRORS, AND
R0177   INAPPROPRIATE ADDRESSES ARE CHECKED FOR, AND ADDRESS VALUE CUSSING IS DONE.

 0179   SACO INST  TX           SACO MXR      -             Z,MXR               USE MASKBASE FOR THIS MACHINE.
 0181              NA, BIT 32M  HEALTH        ZERO          POLISH OP           BRANCH IF A POLISH OPERATOR WORD.

 0183              SWE, B34T36M HEALTH        12            WORD                INSERT BASIC OP CODE INTO WORD.
 0185              SWS, BIT1M   HEALTH        10,L          CUSS LIST +30       MAYBE CUSS ILLEGAL OP CODE ASTERISK.
 0187              NA, BIT 31M  HEALTH        ONES          NO IMPLAD           BRANCH IF NO IMPLIED ADDRESS.

 0189   IMPLAD     NA           ADDRESS 1     BLANKS        C,+3
 0190              NA           ADDRESS 2     BLANKS        C,+2
 0191              TS           IMPAD BAS     Z,X6          C,+2                PROCEED IF ADDRESS FIELD IS BLANK.
 0193              TS, BIT 1M   ONES          CUSS LIST +21 C,-1                OTHERWISE CUSS MILDLY AND PROCEED.
 0195              SWS, B22T25M HEALTH        5,L           C,+1
 0196              SWE, B34T48M 6,0           0             ADDRESS             SUPPLY IMPLIED ADDRESS.
 01972             BS           ZERO          ADDRESS       ADR WD
 0198              NA, BIT 25M  HEALTH        ONES          NOT SQUAR           BRANCH UNLESS OP CODE IS "SQUARE".

 0200   SQUARE     NA, BIT 7M   SWITCH        ZERO          NOT SQUAR +2        BR IF EXTRACODE "SQUARE" IS INDEXED.
 0202              TS, BIT 1M   ONES          CUSS LIST +12 NOT SQUAR +2        CUSS OTHERWISE.

 0204   NOT SQUAR  SWS, BIT 28M HEALTH        2             SWITCH              SET CURRENT INDEX BIT FOR "EXTEND".
 02052             SWS, BIT17M  SWITCH        10            CUSS LIST +2        CUSS INDEXING ON NON-EXTRACODE IMPLADS.
 0206              TS, CHAR5M   ZERO          HEALTH        BASIC SBA           CLEAR FALSE SPECIAL CONDITION FLAGS.

 0208   NO IMPLAD  TN           ADDRESS 1     2             SAV ADREF           SAVE ADDRESS FIELD IN CASE OF POLADRES.
 0210              LA, B25T29M  HEALTH        SPECOND 5     NON CONST           BRANCH IF SPECIAL CONDITION 5 OR LESS.
 0212              LA, B25T29M  SPECON 13     HEALTH        NON CONST           BRANCH IF SPECIAL CONDITION 13 OR MORE.

 0214   ADR CONST  SM           WORD          DEC 6 FLAG    WORD                PUT CONSTANT FLAG ON ADDRESS CONSTANT.
 0216              LA, B25T29M  HEALTH        SPECOND 7     NON CONST +1        BRANCH IF CODE = ADRES OR CADR.
 0218              LA, B25T29M  HEALTH        SPECON 11     POL STORE           BRANCH IF CODE IS NOT XCADR.
 0220              TS, SPECMAGM SPECON 13     WORD          NON CONST +2        SET UP 47777 IN WORD AND ALLOW -ADDRESS.

 0222   POL STORE  TS           ONE           ADDITIVE      RITE NORM      C    GO FISH FOR ",1" OR ",2".
 0224              LA, CHAR8M   ADDRESS 2     ZERO          NO POLIX            NO INDEXING IF LAST CHAR IS 0.
 0226              LA, CHAR8M   THREE         ADDRESS 2     NO POLIX            NOR IF IT IS 3 OR MORE.

 0228              TS, CHAR8M   ADDRESS 2     ADDITIVE      RITE NORM +1   C    IT WAS 1 OR 2 AND NOW WE SEEK A COMMA.
 0230              NA, CHAR8M   ADDRESS 2     COMMA C8      NO POLIX

 0231   POLE INDX  TS, BIT1M    ONES          ADDITIVE      RITE NORM +1   C    INDICATE INDEXING AND REMOVE COMMA.
 0233              NA, B25T29M  HEALTH        SPECON 11     POLISH AD

 0234   STORE AD   SWS, BIT38M  ADDITIVE      37            ADDITIVE
 0235              WA           ADDITIVE      OCT 32000     ADDITIVE            ADD 32000 (DIRECT) OR 34000 (INDEXED).
 0237              TS           PLUS 1776     MAX ADRES     POL SIGN T          SET MAX ADR VALUE FOR STORE ADDRESSES.

 0239   NO POLIX   TN           SAV ADREF     2             ADDRESS 1           RESTORE ADDRESS FIELD IF NO INDEXING.
 0241              TS           ONE           ADDITIVE      POLE INDX +1        GO TO FIND WHETHER POLISH OR STORE.

# Page 367
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   8        PAGE 103

P0243   INACTIVE ADDRESS CHECK AND LIMIT SETUP FOR POLISH ADDRESSES.

 0244   POLISH AD  NA, CHAR1M   CARD +2       BIT 1         C,+3                BRANCH IF NO MINUS IN COL 17.
 0246              SWS, BIT 1M  SWITCH        16,L          CUSS LIST +22       CUSS MINUS IF FIRST ADDRESS OF EQUATION.
 0248              BS           ZERO          ONE           MIN ADRES           MINIMUM MAGNITUDE IS ONE IF MINUS.
 0250              NA, BIT17M   SWITCH        ONES          C,+4                BRANCH IF NOT FIRST ADDRESS OF EQUATION.
 0252              LA           OP COUNT      ZERO          C,+2                BRANCH IF LAST OPERATOR WORD COUNT OK.
 0254              SM           CUSS LIST +23 BIT 17        CUSS LIST +23       CUSS BAD OPERATOR WORD COUNT.
 0256              SS           ZERO          BIT 17        SWITCH              RESET PERMISSION BIT FOR MINUS POLADS.
 0258              LA           ADDITIVE      BIT 1         PO DIRECT           TEST FOR INACTIVE ADDRESS IF UNINDEXED.
 0260              TX           PL 17776      -             MAX ADRES           MAXIMUM AUGMENTER FOR POLISH INDEXED.

 0262   POL SIGN T NA, CHAR1M   CARD +2       BIT 1         MAX AD SET          TEST STORE AND/OR POLISH INDEXED ADDR.
 0264              TS           PL 20000      MIN ADRES     MAX AD SET          FORCE RANGE ERROR IF MINUS SIGN HERE.

 0266   PO DIRECT  TS           PL 77776      MAX ADRES     RITE NORM      C    MAXIMUM VALUE FOR POLISH UNINDEXED.
 0268              NA           ADDRESS 1     BLANKS        ACTIVE
 0269              NA           ADDRESS 2     BLANKS        C,+2
 0270              SM           CUSS LIST +11 BIT 17        CUSS LIST +11       POLAD W/ BL ADR FLD MAY BE BLANK CARD.
 0272              NA           ADDRESS 2     MINUS C8      ACTIVE
 0273              TN           SAV ADREF     2             ADDRESS 1           RESTORE ADDRESS FIELD IF INACTIVE.
 0275              TS, SPECMAGM ONES          WORD          GUD BASIC           MINUS ZERO REPRESENTS INACTIVE ADDRESS.
 0277   ACTIVE     TS           SPEC MAG      MIN ADRES     MAX AD SET          (PERMITTED UNTIL OPS ARE EXAMINED).

 0279   NON CONST  NA, B34T36M  WORD          OP CODE 4     C,+2                BRANCH TO PERMIT NEGATIVE ADDRESS.
 0281              TS           PL 17777      MAX ADRES     MAX AD SET          MAX FOR ALL CASES BUT POLISH AND STORE.
 0283              TS           OCT 7777      MIN ADRES     C,-1                ALLOW -7777 TO 17777 EXCEPT ON CS, MP.
 0285   MAX AD SET TX           GENL MXR      -             Z,MXR
 0286              TS           Z,SC          Z,X6          PROC ADR            TRANSLATE ADDRESS FIELD.
 0288              TN           SAV ADREF     2             ADDRESS 1           RESTORE ORIGINAL ADDRESS FIELD FOR PRNT.
 0290              TS           ZERO          MIN ADRES     SACO INST      C    RESTORE MIN ADR VALUE AND MXR.
 0292              SWS, BIT 17M HEALTH        8             CUSS LIST           CUSS LACK OF "D" IN DECIMAL SUBFIELD.
 0294              LA           ONES          ADDRESS       BAD BASIC           MEANINGLESS OR ATROCIOUS ADDRESS.

 0296              LN           ADR WD        MAX ADRES     CONST Q             BRANCH IF NO RANGE ERROR.
 0298              LN           PL 20000      ADR WD        C,+2
 0299   RNG ERROR  TS, BIT33M   ONES          CUSS LIST +11 PRB ADRES      C    PRINT BAD-SIZE ADDRESS IF POSSIBLE.
 0301              TS, BIT17M   ONES          CUSS LIST +3  BAD BASIC           CUSS RANGE ERROR IN ADDRESS VALUE.

 0303   CONST Q    LA           WORD          BIT 17        INSTROP             BRANCH IF NO CONSTANT FLAG.
 0305              LA, B25T29M  HEALTH        SPECOND 6     BASIC SBA           BRANCH IF CODE IS "ADRES".
 0307              LA, B25T29M  HEALTH        SPECOND 7     CADR
 0308              LA, B25T29M  SPECON 12     HEALTH        BASIC ADR           BRANCH IF CODE IS XCADR.

 0310   PO STOR AD WA, B35T48M  ADDRESS       ADDITIVE      WORD                USE ADDITIVE ON POLISH OR STORE ADDRESS.
 0312              LA           ADDITIVE      BIT 1         C,+2
 0313              WA, B35T48M  WORD          ADDRESS       WORD                USE 2 X ADDRESS IF INDEXED.
 0315              NA, CHAR1M   CARD +2       BIT 1         GUD BASIC           BRANCH IF NO MINUS SIGN IN COLUMN 17.
 0317              WD           WORD          TWO           WORD                SINCE INTERPRETER DOES NOT CCS THESE.
 0319              TS, C1T4M    ZERO          LINE +6       GUD BASIC +1        CLEAR ADDRESS IMAGE AND GO TO PRINT.

 0321   CADR       TS, SPECMAGM ADDRESS       WORD          GUD BASIC           USE ADDRESS AS IS FOR CADR.

# Page 368
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.   9        PAGE 104

P0323   SPECIFIC PROCESSING FOR BASIC INSTRUCTIONS.

 0324   INSTROP    LN           ZERO          ADR WD        C,+3                BRANCH IF POSITIVE ADDRESS VALUE.
 0326              NA, BIT 7M   SWITCH        ZERO          C,+2
 0327              SM           CUSS LIST +12 BIT 1         CUSS LIST +12       CUSS IF NO INDEX BEFORE MINUS ADDRESS.

 0329              LA, B25T29M  HEALTH        ZERO          BASIC ADR           BRANCH IF THERE ARE NO SPECIAL CONDS.
 0331              LA, B25T29M  HEALTH        SPECOND 1     CAF
 0332              LA, B25T29M  HEALTH        SPECOND 4     INDEX
 0333              LA, B25T29M  HEALTH        SPECOND 5     TS

 0334   XTRACODE   NA, BIT7M    SWITCH        ZERO          BASIC ADR
 0335              TS, BIT 1M   ONES          CUSS LIST +12 BASIC ADR           CUSS UNINDEXED EXTRACODE.

 0337   TS         NA, BIT7M    SWITCH        ZERO          BASIC ADR           BYPASS CHECK IF INSTRUCTION IS INDEXED.
 0339              LA           ADDRESS       OCT 1777      BASIC ADR
 0340              TS, BIT17M   ONES          CUSS LIST +11 BASIC ADR           TS MAY NOT REFER TO FIXED MEMORY.

 0342   INDEX      TS, BIT28M   ONES          SWITCH        BASIC ADR           SET CURRENT INDEX BIT.

 0344   CAF        NA, BIT 7M   SWITCH        ZERO          BASIC ADR           NO CHECK ON INDEXED CAF.
 0346              LA           OCT 2000      ADDRESS       BASIC ADR           BRANCH IF VALUE CORRECT FOR CAF.
 0348              SM           CUSS LIST +11 BIT 17        CUSS LIST +11       CUSS INAPPROPRIATE ADDRESS.

 0350   BASIC ADR  LN           ZERO          ADR WD        BASIC SBA           BRANCH IF POSITIVE ADDRESS.
 0352              NA           WORD          ZERO          C,+2
 0353              TX           SPEC MAG      -             WORD                +0 MUST BECOME -0 FOR SUBTRACTION.
 0355              WD           WORD          ADDRESS       WORD                ADD IN NEGATIVE ADDRESS.
 0357              TS, C1T4M    ZERO          LINE +6       GUD BASIC +1        CLEAR ADDRESS IMAGE AND GO TO PRINT.

 0359   BASIC SBA  LA           ADDRESS       OCT 5777      CUSS BANK +1        BRANCH IF ADDRESS NOT IN A BANK.

 0361              TX, BANKMASK OCT 6000      -             ADR WD              PUT SUBADDRESS IN 6000-7777 CLASS.
 0363              LA           LOCATION      OCT  5777     CUSS BANK +1        BRANCH IF LOCATION IS NOT IN A BANK.

 0365              NA, BANKMASK LOCATION      ADDRESS       C,+2                BRANCH ON BANK ERROR.
 0367              TS           -             -             CUSS BANK +1        GO TO ASSEMBLE WORD.

 0369              TX           Z,R5          -             Z,X6                PUT BANK INDICATOR 5 IN X6.
 0371              SWS, BIT2M   SWITCH        5,L           CUSS LIST +11       SET POISON BIT OF BANK ERROR CUSS TO -
 0373              HA           CUSS LIST +11 B1 B2         CUSS LIST +11       INDEXED, AND CALL FOR THE CUSS.
 0375              SWS, B38T48M CUSS LIST +11 32            Z,X6
 0376   CUSS BANK  SWS, ACO4    ADDRESS       14,L          6,2                 INSERT BANK NUMBER IN BANK CUSS.

 0378              WA, SPECMAGM WORD          ADR WD        WORD                PUT ADDRESS OR SUBADDRESS IN WORD.

# Page 369
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  10        PAGE 105

P0380   PRINTING PROCEDURES FOR BASIC INSTRUCTIONS AND ADDRESS CONSTANTS.

 0381   GUD BASIC  SS           ZERO          C1T4          LINE +6             CLEAR ADDRESS FIELD OF PRINT IMAGE.
 0383              NA, CHAR1M   CARD +2       BIT 1         C,+2                BRANCH IF NO MINUS SIGN IN COLUMN 17.
 0385              HA           WORD          SPEC MAG      WORD                COMPLEMENT NEGATIVE INSTRUCTION.
 0387              SWS, ACO1    WORD          33,L          LINE +6
 0388              SWS, ACO2    WORD          30,L          LINE +6
 0389              SWS, ACO3    WORD          27,L          LINE +6
 0390              SWS, ACO4    WORD          24,L          LINE +6             PUT BASIC CODE ADDRESS INTO PRINT IMAGE.
 0392              LA           DEC 6 FLAG    WORD          ACON PRNT           BRANCH IF WORD IS AN ADDRESS CONSTANT.

 0394   INST PRNT  SWS, CHAR7M  WORD          6             LINE +5             PRINT OP CODE OF INSTRUCTION.
 0396              NA, BIT 7M   SWITCH        ZERO          C,+2                BRANCH ON INDEXED INSTRUCTION.
 0398              TX, CHAR1M   DEC 48 FLG    -             WORD                MARK AS SUBJECT TO BAD REFERENCE CHECK.
 0400              SWS, CHAR3M  ADDRESS       20,L          WORD                SUPPLY BANK INDICATOR TO SIMULATOR.
 0402              SWS, CHAR4M  WORD          6             WORD                STORE IT TWICE TO MAKE PARITY OK.
 0404              SWS, BIT7M   SWITCH        21,L          SWITCH              MOVE CURRENT INDEX BIT TO PREVIOUS.
 0406              TS, BIT28M   ZERO          SWITCH        BC CHECK            CLEAR CURRENT INDEX BIT.

 0408   BAD BASIC  SS           BLOTS         C1T4          LINE +6             BLOT OUT BAD ADDRESS FIELD.
 0410              LA           WORD          BIT 17        C,+2
 0411              TS, CHAR8M   BLOTS         LINE +5       NAUGHTY             BLOT FIRST DIGIT OF BAD CONSTANT.

 0413              NA, B25T29M  HEALTH        SPECOND 4     C,+2
 0414              TS, BIT 7M   ONES          SWITCH        C,+2                SET PREVIOUS INDEX BIT IF INDEX.
 0416              SS           ZERO          BIT 7         SWITCH              CLEAR PREVIOUS INDEX BIT.
 0418              NA, CHAR1M   CARD +2       BIT 1         C,+2                BRANCH IF NO MINUS SIGN IN COLUMN 17.
 0420              HA           WORD          SPEC MAG      WORD                COMPLEMENT GOOD OP OF BAD NEG. INSTR.
 0422              SWS, CHAR7M  WORD          6             LINE +5             PRINT GOOD OP CODE IN BAD INSTRUCTION.

 0424   NAUGHTY    TS           W BAD WORD    WORD          BC CHECK

 0425   ACON PRNT  SWS, CHAR8M  WORD          12            LINE +5             PRINT FIRST DIGIT OF CONSTANT.

 0427   BC CHECK   NA, CHAR1M   CARD +2       BIT 1         C,+2
 0428              TS, BIT 1M   ZERO          CUSS LIST +12 C,+2                CLEAR "SHOULD-BE-INDEXED" CUSS IF MINUS.
 0430              NA, CHAR1M   CARD +2       BLANKS        QUEER C17           CUSS IF NEITHER BLANK OR MINUS IN CC 17.
 0432              NA, CHAR1M   CARD          J COLUMN 1    C,+2
 0433              TS, BIT 1M   ZERO          CUSS LIST +12 C,+2                CLEAR "SHOULD-BE-INDEXED" CUSS IF LFTVR.
 0435              NA, CHAR1M   CARD          BLANKS        QUEER C1            CUSS IF NEITHER BLANK NOR J IN COLUMN 1.
 0437              NA, CHAR8M   CARD +2       BLANKS        QUEER C24           CUSS IF COLUMN 24 NON-BLANK.
 0439   INSTR XIT  TS           MOD RETRN     Z,SC          RSTOR MXR      C    RETURN TO GENERAL PROCEDURE.

# Page 370
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  11        PAGE 106

P0441   WHEN ADDRESS IS WRONG BUT NOT ATROCIOUS, TELL THE MAN WHAT IT IS.

 0442   PRB ADRES  TX           Z,R5          -             Z,X4           C    BANK INDICATOR 5 TO X4.
 0444              SS           CUSS LIST +11 B38T48        Z,X4           C    SET UP ADDRESS OF ADR CUSS.
 0446              TX           HI EQUALS     -             ADRECUSS +1    C    INITIALIZE TO ALF = 0,0000.
 0448              SS           ADDRESS       B46T48        ADRECUSS +1    C
 0449              SWS, B40T42M ADDRESS       3,L           ADRECUSS +1    C
 0450              SWS, B34T36M ADDRESS       6,L           ADRECUSS +1    C
 0451              SWS, B28T30M ADDRESS       9,L           ADRECUSS +1    C    PUT ADDRESS OR SUBADDRESS INTO CUSS.
 0453              LA           OCT 6000      ADDRESS       ACUSS BNK      C    BRANCH IF ADDRESS IS IN A BANK.

 0455              SWS, C3T6M   ADRECUSS +1   A,2,L         ADRECUSS +1    C    MOVE UP NON-BANK ADDRESS.
 0457              SS           BLANKS        C7T8          ADRECUSS +1

 0458   ACUSS BNK  SM           ADRECUSS +1   ALF 6000      ADRECUSS +1    C    PUT SUBADDRESS IN THE RANGE 6000-7777.
 0460              SWS, ACO3    ADDRESS       20,L          ADRECUSS +1         PUT BANK NUMBER INTO CUSS.



R0462              MINOR SUBROUTINE IN SACO PASS 2 TO RIGHT-NORMALIZE THE ADDRESS FIELD BY SHIFTING END-OFF.  EXITS IF
R0464   THE FIELD IS OR BECOMES ALL BLANK.

 0465   RITE NORM  NA, CHAR8M   ADDRESS 2     BLANKS        END RNORM      C    BRANCH IF FINISHED.
 0467              SWS, ONESM   ADDRESS 1     A,1           ADDRESS 1      C
 0468              SWS, ONESM   ADDRESS 2     A,1           ADDRESS 2      C
 0469              SS           ADDRESS 1     CHAR1         ADDRESS 2      C
 0470              SS           BLANKS        CHAR1         ADDRESS 1      C    SHIFT RIGHT ONE CHARACTER.
 0472              NA           ADDRESS 1     BLANKS        RITE NORM      C
 0473              NA           ADDRESS 2     BLANKS        RITE NORM      C    REPEAT UNLESS ALL BLANK.
 0475   END RNORM  TX           -             -             -



R0476   OPERATOR WORD COUNT CHECKING FOR STORE ADDRESSES.

 0477   OP CK STOR NA, BIT17M   SWITCH        ONES          POL SIGN T          EXIT IF NOT BEGINNING OF EQUATION.
 0479              LA           OP COUNT      ZERO          C,+2
 0480              SM           CUSS LIST +23 BIT 17        CUSS LIST +23       CUSS BAD OPERATOR WORD COUNT.
 0482              TS,BIT17M    ZERO          SWITCH        POL SIGN T

# Page 371
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  12        PAGE 107

P0483   SACO PASS 2 PROCESSING FOR POLISH OPERATOR WORDS.

 0484   POLISH OP  SWE, B35T41M HEALTH        17            WORD                SET UP 7-BIT LEFT OPERATOR.
 0486              TS, BIT17M   ONES          SWITCH        SEL STAR 1          REVOKE PERMISSION FOR MINUS ADDRESSES.
 0488              SWS, BIT 40M HEALTH        29            WORD                MOVE INDEX BIT TO GENERAL OPERATOR.
 0490              SWS, BIT17M  HEALTH        6             CUSS LIST +22       CUSS INDEXING OF MISCELLANEOUS OPERATOR.
 0492   SPECON 13  OCT          -2604 7777
 0493              SWS, BIT 39M HEALTH        28            WORD                MOVE INDEX BIT TO UNARY OPERATOR.
 0495   SEL STAR 1 SSL, THREEM  HEALTH        24            C,-4           C    BRANCH ON TYPE OF FIRST OPERATOR.
 0497              NA, B25T31M  HEALTH        2 POLOP 7     NOT COUNT           BRANCH UNLESS SECOND HALF IS OP WORD CT.

 0499              TX           GENL MXR      -             Z,MXR
 0500              TS           Z,SC          Z,X6          PROC ADR            TRANSLATE ADDRESS FIELD.
 0502              TS           ADDRESS       OP COUNT      SACO INST      C    SET OP COUNT (PERHAPS TO ONES).
 0504              SWS, BIT 17M HEALTH        8             CUSS LIST           MAYBE CUSS "D" ERROR.
 0506              LA           ONES          ADDRESS       BAD POLE            BRANCH IF MEANINGLESS OR ATROCIOUS ADR.

 0508              LA           ADDRESS       OCT 177       OK COUMT            BRANCH IF COUNT IS 127 OR LESS.
 0510              LN           PL 20000      ADR WD        C,+2                BRANCH IF ADDRESS IS UNPRINTABLE.
 0512              TS, BIT 33M  ONES          CUSS LIST +11 PRB ADRES      C    PRINT OVERSIZE ADDRESS.
 0514              TX           ONES          -             OP COUNT            GUARANTEE OP COUNT CUSS.
 0516              TS, BIT 17M  ONES          CUSS LIST +3  BAD POLE            CUSS RANGE ERROR IN ADDRESS VALUE.

 0518   OK COUNT   TS, B42T48M  ADDRESS       WORD          SEL STAR 2 +2       SET UP COUNT AS OPERATOR 2.

 05192  NOT COUNT  NA           OP COUNT      ZERO          C,+2                BRANCH IF OP COUNT MIGHT STILL MAKE IT.
 05194             TS           ONES          OP COUNT      C,+2                GUARANTEE BAD COUNT IF TWAS TOO SMALL.
 0520              WD           OP COUNT      ONE           OP COUNT
 0521              NA, B25T31M  HEALTH        2 POLOP 17    C,+2
 0522              TS, BIT 33M  ONES          CUSS LIST +2  BAD POLE            CUSS MEANINGLESS ADDRESS FIELD.

 0524              NA, B25T31M  HEALTH        2 POLOP 27    TWO POLES
 0525              SM           CUSS LIST +21 BIT 17        CUSS LIST +21       CUSS UNPOLISH ADDRESS FIELD SYMBOL.
 0527   BAD POLE   SM           WORD          BIT 1         WORD                INDICATE BADNESS OF RIGHT OPERATOR.

# Page 372
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  13        PAGE 108

P0529   GENERAL PROCESSING OF RIGHT OPERATOR.

 0530   TWO POLES  SWS, B42T48M HEALTH        17            WORD                SET UP 7-BIT RIGHT OPERATOR.
 0532              TN           ADDRESS 1     2             SAV ADREF
 0533              TS           Z,SC,4        -             RITE NORM      C    RIGHT-NORMALIZE ADDRESS FIELD AND SKIP.
 0535              SM           WORD          TWO           WORD                APPLY INDEX BIT TO GENERAL OPERATOR.
 0537              SM           CUSS LIST +22 BIT 33        CUSS LIST +22       CUSS INDEXING OF MISCELLANEOUS OPERATOR.
 0539   B46T48     OCT          -7
 0540              SM           WORD          FOUR          WORD                APPLY INDEX BIT TO UNARY OPERATOR.
 0542              NA, CHAR8M   ADDRESS 2     ASTRISKS      C,+2                BRANCH IF OPERATOR 2 IS NOT INDEXED.
 0544   SEL STAR 2 SSL, THREEM  WORD          0             C,-5           C    BRANCH ON TYPE OF SECOND OPERATOR.
 0546              TN           SAV ADREF     2             ADDRESS 1           RESTORE ADDRESS FIELD FOR PRINTING.
 0548              WD, SPECMAGM OCT 77776     WORD          WORD                ADD ONE AND COMPLEMENT.
 0550              LA, SPECMAGM WORD          MIN 37777     POLE OFLO           BR IF BOTH OPS = 177 (VERY QUEER).

 0552              NA, CHAR1M   CARD +2       BIT 1         C,+2
 0553              HA           WORD          SPEC MAG      WORD                COMPLEMENT WORD IF "-" IN COL 17.

 0555              SS           ZERO          C1T4          LINE +6             CLEAR ADDRESS FIELD PRINT IMAGE.
 0557              SWS, CHAR8M  WORD          12            LINE +5             PRINT 1ST CHARACTER OF OPERATOR WORD.
 0559              SWS, ACO1    WORD          33,L          LINE +6
 0560              SWS, ACO2    WORD          30,L          LINE +6             PRINT REST OF LEFT OPERATOR.
 0562              LA           BIT 1         WORD          BAD POLE 2          BRANCH IF 2ND OPERATOR IS BAD.

 0564              SWS, ACO3    WORD          27,L          LINE +6
 0565              SWS, ACO4    WORD          24,L          LINE +6             PRINT REST OF OPERATOR WORD.
 0567              TS, CHAR1M   DEC 5 FLAG    WORD          BC CHECK            PLANT FLAG OF POLAND, JOIN MAIN PROC.

 0569   BAD POLE 2 TS, C3T4M    BLOTS         LINE +6       NAUGHTY             BLOT OUT RIGHT OPERATOR, JOIN MAIN PROC.

 0571   POLE OFLO  SM           CUSS LIST +21 BIT 33        CUSS LIST +21       CUSS OVERFLOW OF OPERATOR WORD.
 0573              TS           BIT 1         WORD          BAD BASIC           SET TO BLOT OUT WORD LIKE CONSTANT.

# Page 373
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  14        PAGE 109

P0575              SUBROUTINE IN PASS 2 FOR SACO TO SET IN PRINT THE LOCATION OF AN INSTRUCTION OR CONSTANT, WITH BANK
R0577   NUMBER IF ANY AND WITH A NOTATION FOR END OF BLOCK OR BANK IF REQUIRED.  BLOTS OUT LOCATION FIELD IF BAD LOC.



 0579   SACO PLEB  NA           LOCATION      ONES          C,+2           C    BRANCH IF THERES A VALID LOCATION.
 0581              SS           BLOTS         C1T4          LINE +5             BLOT OUT LOCATION FIELD AND EXIT.

 0583              TX           SACO MXR      -             Z,MXR          C
 0584              SS           ZERO          C1T4          LINE +5        C
 0585              TX           LOCATION      -             COMMON         C
 0586              TX           COMMON        -             COMMON +1      C
 0587              LA           COMMON        OCT 5777      END BANK Q     C    BRANCH IF LOCATION IS NOT IN A BANK.
 0589              TX           COMMA C8      -             LINE +4        C
 0590              SWS, ACO7    COMMON        4             LINE +4        C    SET BANK NUMBER IN PRINT.
 0592              SM           COMMON        OCT 6000      COMMON +1      C    PUT SUBADDRESS IN THE CLASS 6000 - 7777.

 0594   END BANK Q NA, B41T48M  COMMON +1     ONES          C,+2           C
 0596              TS, C1T4M    END BL MC     LINE +4       PRINT LOC      C    MARK LINE "EB" FOR END OF BLOCK OR BANK.

 0600              TX           L TYP TAB     -             Z,X6           C
 0601              LA, SPECMAGM COMMON        6,0           C,+2           C    BRANCH WHEN MEMORY TYPE CATEGORY FOUND.
 0603              TS           Z,X6,1        -             C,-1           C
 0604              NA, SPECMAGM COMMON        6,0           PRINT LOC      C    BRANCH IF NOT END OF MINOR BLOCK.
 0606              SWS, C1T4M   END BL MC     A,4,L         LINE +4        C    MARK LINE "MC" FOR MEMORY TYPE CHANGE.

 0608   PRINT LOC  SWS, ACO1    COMMON +1     33,L          LINE +5        C
 0609              SWS, ACO2    COMMON +1     30,L          LINE +5        C
 0610              SWS, ACO3    COMMON +1     27,L          LINE +5        C
 0611              SWS, ACO4    COMMON +1     24,L          LINE +5        C
 0612   RSTOR MXR  TX           GENL MXR      -             Z,MXR               SET UP LOCATION IN PRINT AND EXIT.

# Page 374
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  15        PAGE 110

P0614              SUBROUTINE IN PASS 2 FOR SACO TO SET UP A SINGLE-PRECISION CONSTANT IN WORD AND IN PRINT.  THIS
P0616   SUBROUTINE DOES NOT CARE WHETHER THE WORD IS SIGNED OR NOT, BUT DEMANDS THE OUTPUT OF DEC/OCT CONST IN NUMBER.

 0618   SACO 1P    NA           NUMBER        W BAD WORD    GOOD 1P        C    BRANCH IF WORD IS VALID.
 0620              SS           BLOTS         CHAR 8        LINE +5        C
 0621              SS           BLOTS         C1T4          LINE +6        C    BLOT OUT WORD IN PRINT.
 0623              TX           W BAD WORD    -             WORD                SEND ALONG BAD NEWS AND EXIT.

 0625   GOOD 1P    TX           SACO MXR      -             Z,MXR          C
 0626              EX           NUMBER        D2T12         WORD           C    ISOLATE MAGNITUDE.
 0628              LA           BIT 1         NUMBER        C,+2           C
 0629              HA           WORD          SPEC MAG      WORD           C    COMPLEMENT NEGATIVE WORD.

 0631   SC BIN ALF SS           ZERO          C1T4          LINE +6        C
 0632              SWS, CHAR8M  WORD          12            LINE +5        C
 0633              SWS, ACO1    WORD          33,L          LINE +6        C
 0634              SWS, ACO2    WORD          30,L          LINE +6        C
 0635              SWS, ACO3    WORD          27,L          LINE +6        C
 0636              SWS, ACO4    WORD          24,L          LINE +6        C    SET WORD IN PRINT.
 0638              TS, CHAR1M   DEC6 FLAG     WORD          RSTOR MXR      C    APPLY INTERNAL CONSTANT FLAG AND EXIT.



R0640              SUBROUTINE IN PASS 2 FOR SACO TO PROCESS A DOUBLE-PRECISION CONSTANT.  USING THE OUTPUT OF DEC
R0642   CONST OR OCT CONST, AND DISTINGUISHING BETWEEN THE SIGNED AND UNSIGNED POSSIBILITIES (FOR OCTAL CONSTANTS ONLY),
R0644   SETS UP THE HIGH-ORDER PART IN WORD AND THE LOW-ORDER PART IN 2ND HALF, SETS THE HIGH-ORDER PART IN PRINT, AND
R0646   SETS UP THE LOW-ORDER PART IN PRINTABLE FORM IN 2ND ALF AND 2ND ALF +1.

 0647   SACO 2P    NA           NUMBER        W BAD WORD    GOOD 2P        C    BRANCH IF CONSTANT IS VALID.
 0649              TN           BLOTS         2             2ND ALF        C    PREPARE BLOTS FOR LOW-ORDER PART.
 0652              TS           W BAD WORD    2ND HALF      SACO 1P +1     C    GO TO JOIN SINGLE-PRECISION SADNESS.

 0654   GOOD 2P    TX           SACO MXR      -             Z,MXR          C
 0655              NA           E NUMBER      ZERO          C,+3           C    BRANCH IF NUMBER IS SIGNED.
 0657              SWE, B34T48M NUMBER        15            WORD           C
 0658              TS           SPEC MAG      COMMON        C,+3           C    SET UP UNSIGNED CONSTANT.

 0660              SWE, B35T48M NUMBER        14            WORD           C
 0661              TX           MIN 37777     -             COMMON         C    SET UP SIGNED CONSTANT.

 0663              EX           NUMBER        COMMON        2ND HALF       C    ISOLATE LOW-ORDER PART.
 0665              LA           BIT 1         NUMBER        C,+3           C    BRANCH IF NO MINUS SIGN.
 0667              HA           WORD          SPEC MAG      WORD           C
 0668              HA           2ND HALF      SPEC MAG      2ND HALF       C    COMPLEMENT HALVES OF NEGATIVE CONSTANT.

 0670              SWE, CHAR8M  2ND HALF      12            2ND ALF        C
 0671              SWE, ACO1    2ND HALF      33,L          2ND ALF +1     C
 0672              SWE, ACO2    2ND HALF      30,L          2ND ALF +1     C
 0673              SWE, ACO3    2ND HALF      27,L          2ND ALF +1     C
 0674              SWE, ACO4    2ND HALF      24,L          2ND ALF +1     C    MAKE PRINTABLE VERSION OF LOW-ORDER PRT.
 0676              TS, CHAR 1M  DEC6 FLAG     2ND HALF      SC BIN ALF     C    GO TO JOIN SINGLE-PRECISION PROCEDURE.

# Page 375
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  16        PAGE 111

R0678              SUBROUTINE IN PASS 2 FOR SACO TO SET IN PRINT A RIGHT-HAND LOCATION FOR SUCH AS SETLOC.  PUTS IN
R0680   THE BANK INDICATOR, IF ANY.  BLOTS OUT AN INVALID LOCATION.

 0681   SACO PREL  NA           LOCATION      ONES          C,+2           C
 0682              SS           BLOTS         C3T6          LINE +6             BLOT OUT BAD LOCATION AND EXIT.

 0684              TX           SACO MXR      -             Z,MXR          C
 0685              SS           ZERO          C3T6          LINE +6        C
 0686              TX           LOCATION      -             COMMON         C    ISOLATE LOCATION VALUE.
 0688              LA           COMMON        OCT 5777      PRINT VAL      C    BRANCH IF ADDRESS IS NOT IN A BANK.
 0690              TX           COMMA C2      -             LINE +6        C
 0691              SWS, ACO1    COMMON        32,L          LINE +6        C    SET BANK NUMBER IN PRINT.
 0693              SM           COMMON        OCT 6000      COMMON         C    PUT SUBADDRESS IN THE RANGE 6000-7777.

 0695   PRINT VAL  SWS, ACO3    COMMON        21,L          LINE +6        C
 0696              SWS, ACO4    COMMON        18,L          LINE +6        C
 0697              SWS, ACO5    COMMON        15,L          LINE +6        C
 0698              SWS, ACO6    COMMON        12,L          LINE +6        C
 0699              TX           GENL MXR      -             Z,MXR               SET LOCATION IN PRINT AND EXIT.

# Page 376
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  17        PAGE 112

P0701              BANK 5 PORTION OF SACO PASS 2.  ENTER IN COSEQUENCE MODE WITH SACO MXR IN Z,MXR, ADDRESS CUSSALOG IN
R0703   AU2, AND ADDRESS CUSS LIST IN AU1. BANK INDICATOR 5 IS LEFT IN R5.  BANK 5 ALSO CONTAINS MASKS FOR SACO PASS 2.



 0705              SETLOC,3     0             B5

 0706   UNSCRAMB   SWE, B38T48M N,AU2         0             N,AU1          C    ZERO DEMAND BITS, MOVE SUBADDR OF CUSS3.
 0708              SWS, B34T37M N,AU2         25            N,AU1          C    MOVE POISON BIT AND LENGTH OF CUSS 3.
 0710              SWS, B22T32M N,AU2         4,L           N,AU1          C    MOVE SUBADDRESS OF CUSS 2.
 0712              SWS, B18T21M N,AU2         13            N,AU1          C    MOVE POISON BIT AND LENGTH OF CUSS 2.
 0714              SWS, B6T16M  N,AU2         8,L           N,AU1          C    MOVE SUBADDRESS OF CUSS 1.
 0716              SWS, B2T5M   N,AU2,1       1             N,AU1,1        C    MOVE POISON BIT AND LENGTH OF CUSS 1.
 0718              NA           N,AU2         SENTINEL      UNSCRAMB       C

 0719              TX           Z,AU2         -             Z,R5           S    SET BANK INDICATOR 5 IN R5, EXIT.

 0721   CUSSALOG   M,D,44E      CDNO CUSS     D ERR CUSS    ILOP CUSS
 0722              M,D,EDD      LEFL CUSS     CNFL CUSS     TYPL CUSS
 0723              M,D,DCD      BADL CUSS     IPOX CUSS     MGLA CUSS
 0724              M,D,CD4      UDEF CUSS     ASIZ CUSS     IRAD CUSS
 0725              M,D,DFE      LEFM CUSS     PRED CUSS     NFIT CUS1

 0726              M,D,EFF      NFIT CUS2     STYP CUS1     STYP CUS2
 0727              M,D,EEE      SCNF CUS1     SCNF CUS2     SOVS CUS1
 0728              M,D,EEE      SOVS CUS2     SMD CUS1      SMD CUS2
 0729              M,D,FFE      SME CUS1      SME CUS2      SMIT CUS1
 0730              M,D,EEE      SMIT CUS2     SNDE CUS1     ARBL CUSS

 0731              M,D,EGF      SIDL CUS1     SBDE CUS1     SMDE CUS1
 0732              M,D,C52      ADRE BANK     INAP CUSS     ADR CUSS
 0733              M,D,5D5      SBIX CUSS     TSFX CUSS     IDBC CUSS
 0734              M,D,5D5      MTD CUSS      RANG CUSS     FRAC CUSS
 0735              M,D,54E      MFD CUSS      LONB CUSS     UND1 CUSS

 0736              M,D,GEE      NDE1 CUSS     LNSY CUSS     SNDE CUS2
 0737              M,D,GEF      SBDE CUS2     SIDL CUS2     SMDE CUS2
 0738              M,D,FED      SSNP CUSS     BNLF CUSS     NSCH CUSS
 0739              M,D,CDF      BFUL CUSS     ILOC CUSS     TOLA CUSS
 0740              M,D,GFE      MEMT CUSS     NMC1 CUSS     CAFS CUSS

 0741              M,D,444      QC1 CUSS      QC17 CUSS     QC24 CUSS
 0742              M,D,4FD      IMAD CUSS     POLE CUSS     POVF CUSS
 0743              M,D,FEE      P1N CUSS      IPX1 CUSS     IPX2 CUSS
 0744              M,D,EDD      NMC2 CUSS     OPCW CUSS

 07441             RESERVE      6
 07447             M,D,D00      IXOP CUSS
 07448             M,D,D5E      SNNR CUSS     MCPS CUSS     CEHS CUSS

 0745   SENTINEL   DEC          BB00 FFFF

# Page 377
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  18        PAGE 113

P0746              CUSSES FOR SACO, SHOWN IN THE ORDER OF THEIR CALLS IN THE CUSS LIST.



 0748   CDNO CUSS  ALF,4        CARD NUMBER OUT OF SEQUENCE
 0749   D ERR CUSS ALF,4        NO "D" IN DECIMAL SUBFIELD
 0750   ILOP CUSS  ALF,5        ILLEGAL OR MIS-SPELLED OPERATION CODE

 0751   LEFL CUSS  ALF,5        IMPROPER LEFTOVER LOCATION FIELD FORMAT
 0752   CNFL CUSS  ALF,4        CONFLICT IN USE OF THIS LOCATION
 0753   TYPL CUSS  ALF,4        LOCATION IS IN WRONG MEMORY TYPE

 0754   BADL CUSS  ALF,4        OVERSIZE OR ILL-DEFINED LOCATION
 0755   IPIX CUSS  ALF,3        ILLEGAL POLISH INDEXING
 0756   MGLA CUSS  ALF,4        ADDRESS FIELD IS MEANINGLESS

 0757   UDEF CUSS  ALF,3        "        " IS UNDEFINED
 0758   ASIZ CUSS  ALF,4        RANGE ERROR IN VALUE OF ADDRESS
 0759   IRAD CUSS  ALF,4        IRREGULAR BUT ACCEPTABLE ADDRESS

# Page 378
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  19        PAGE 114

P0760   SACO CUSSES CONTINUED.

 0761   LEFM CUSS  ALF,4        LEFTOVER WON'T FIT IN MEMORY
 0762   PRED CUSS  ALF,5        ATTEMPT TO PREDEFINE LOCATION SYMBOL FAI
 0763              ALF          LED
 0764   NFIT CUS1  ALF,5        "        " WON'T FIT IN SYMBOL TABLE

 0765   NFIT CUS2  ALF,5        "        " WON'T FIT IN SYMBOL TABLE
 0766   STYP CUS1  ALF,5        "        " ASSOCIATED WITH WRONG MEMORY
 0767              ALF          TYPE
 0768   STYP CUS2  ALF,5        "        " ASSOCIATED WITH WRONG MEMORY
 0769              ALF          TYPE

 0770   SCNF CUS1  ALF,5        "        " ASSOCIATED WITH CONFLICT
 0771   SCNF CUS2  ALF,5        "        " ASSOCIATED WITH CONFLICT
 0772   SOVS CUS1  ALF,5        "        " GIVEN OVERSIZE DEFINITION

# Page 379
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  20        PAGE 115

P0773   SACO CUSSES CONTINUED.

 0774   SOVS CUS2  ALF,5        "        " GIVEN OVERSIZE DEFINITION
 0775   SMD CUS1   ALF,5        "        " GIVEN MULTIPLE DEFINITIONS
 0776   SMD CUS2   ALF,5        "        " GIVEN MULTIPLE DEFINITIONS

 0777   SME CUS1   ALF,5        "        " ASSOCIATED WITH MULTIPLE ERRO
 0778              ALF          RS
 0779   SME CUS2   ALF,5        "        " ASSOCIATED WITH MULTIPLE ERRO
 0780              ALF          RS
 0785   SMIT CUS1  ALF,5        "        " IS IN MISCELLANEOUS TROUBLE

 0782   SMIT CUS2  ALF,5        "        " IS IN MISCELLANEOUS TROUBLE
 0783   SNDE CUS1  ALF,5        "        " WAS NEARLY DEFINED BY EQUALS
 0784   ARBL CUSS  ALF,5        ADDRESS DEPENDS ON UNKNOWN LOCATION

# Page 380
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  21        PAGE 116

P0785   SACO CUSSES CONTINUED.

 0786   SIDL CUS1  ALF,5        "        " IS INDEFINABLY LEFTOVER
 0787   SBDE CUS1  ALF,5        "        " MULTIPLY DEFINED INCLUDING NE
 07871             ALF,2        ARLY BY EQUALS
 0788   SMDE CUS1  ALF,5        "        " MULTIPLY DEFINED INCLUDING BY
 07881             ALF           EQUALS

 0789   ADRE BANK  ALF,3        ADDRESS IS IN BANK 7
 0790   INAP CUSS  ALF,5        ADDRESS IS INAPPROPRIATE FOR OP CODE
 0791   ADR CUSS   ALF,2        ADDRESS

 0792   SBIX CUSS  ALF,5        THIS INSTRUCTION SHOULD BE INDEXED
 0793   TSFX CUSS  ALF,4        TS MAY NOT REFER TO FIXED MEMORY
 0794   IDBC CUSS  ALF,5        INEXACT DECIMAL-TO-BINARY CONVERSION

 0795   MTD CUSS   ALF,5        MORE THAN 10 DIGITS IN DECIMAL CONSTANT
 0796   RANG CUSS  ALF,4        RANGE ERROR IN CONSTANT FIELD

# Page 381
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  22        PAGE 117

P07961  SACO CUSSES CONTINUED.

 0797   FRAC CUSS  ALF,5        FRACTIONAL PART LOST BY TRUNCATION

 0799   MFD CUSS   ALF,5        MORE THAN 14 DIGITS IN OCTAL CONSTANT
 0800   LONB CUSS  ALF,4        LOCATION FIELD SHOULD BE BLANK
 0801   UND1 CUSS  ALF,5        "        " WAS UNDEFINED IN PASS 1

 0802   NDE1 CUSS  ALF,5        "        " WAS NEARLY DEFINED BY EQUALS
 0803              ALF,2        IN PASS 1
 0804   LNSY CUSS  ALF,5        LOCATION FIELD SHOULD BE SYMBOLIC
 0805   SNDE CUS2  ALF,5        "        " WAS NEARLY DEFINED BY EQUALS

 0806   SBDE CUS2  ALF,5        "        " MULTIPLY DEFINED INCLUDING NE
 08061             ALF,2        ARLY BY EQUALS
 0807   SIDL CUS2  ALF,5        "        " IS INDEFINABLY LEFTOVER

# Page 382
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  23        PAGE 118

P08071  SACO CUSSES CONTINUED.

 0808   SMDE CUS2  ALF,5        "        " MULTIPLY DEFINED INCLUDING BY
 0809              ALF           EQUALS

 0810   SSNP CUSS  ALF,5        "        " SHOULDN'T HAVE BEEN PREDEFINE
 0811              ALF          D
 0812   BNLF CUSS  ALF,5        NUMERIC LOCATION FIELD IS ILLEGAL HERE
 0813   NSCH CUSS  ALF,4        NO SUCH BANK IN THIS MACHINE

 0814   BFUL CUSS  ALF,3        THIS BANK IS FULL
 0815   ILOC CUSS  ALF,4        ILLEGAL LOCATION FIELD FORMAT
 0816   TOLA CUSS  ALF,5        CARD IGNORED BECAUSE IT'S TOO LATE IN TH
 0817              ALF          E DECK

 0818   MEMT CUSS  ALF,5        CARD IGNORED BECAUSE IT MAKES MEMORY TAB
 0819              ALF,2        LE TOO LONG
 0820   NMC1 CUSS  ALF,5        NO MATCH FOUND FOR CARD NUMBER OR ACCEPT
 0821              ALF          OR TEXT
 0822   CAFS CUSS  ALF,5        FIRST CARD NUMBER NOT LESS THAN SECOND

# Page 383
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  24        PAGE 119

P0823   SACO CUSSES CONTINUED.

 0824   QC1 CUSS   ALF,4        QUEER INFORMATION IN COLUMN 1
 0825   QC17 CUSS  ALF,4        QUEER INFORMATION IN COLUMN 17
 0826   QC24 CUSS  ALF,4        QUEER INFORMATION IN COLUMN 24

 0827   IMAD CUSS  ALF,4        BLANK ADDRESS FIELD EXPECTED
 0829   POLE CUSS  ALF,5        ADDRESS FIELD SHOULD CONTAIN A POLISH OP
 0830              ALF          ERATOR
 0831   POVF CUSS  ALF,4        OVERFLOW IN POLISH OPERATOR WORD

 0832   P1N CUSS   ALF,5        FIRST ADDRESS OF AN EQUATION MUST BE POS
 0833              ALF          ITIVE
 0834   IPX1 CUSS  ALF,5        FIRST POLISH OPERATOR ILLEGALLY INDEXED
 0835   IPX2 CUSS  ALF,5        SECOND POLISH OPERATOR ILLEGALLY INDEXED

 0836   NMC2 CUSS  ALF,5        NO MATCH FOUND FOR SECOND CARD NUMBER

# Page 384
#      @YUL SYSTEM ASSEMBLER SACO PASS 2                                         USER'S OWN PAGE NO.  25        PAGE 120

P0837   SACO CUSSES CONTINUED.

 0838   OPCW CUSS  ALF,4        LAST OPERATOR WORD COUNT WRONG
 0897   IXOP CUSS  ALF,4        ASTERISK ILLEGAL ON THIS OP CODE

 0900   SNNR CUSS  ALF,4        SUBROUTINE NAME NOT RECOGNIZED
 0901   MCPS CUSS  ALF,5        MULTIPLE CALLS IN ONE PROGRAM OR SUBRO
 0902   CEHS CUSS  ALF,5        CONFLICT WITH EARLIER HEAD SPECIFICATION
back to top