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_AGC4_PASS_2.argus
# Copyright:    Public domain.
# Filename:     YUL_SYSTEM_ASSEMBLER_AGC4_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:        335-359
# Mod history:  2016-10-06 JL   Created.
#               2016-12-20 JL   Transcribed pages 335-341.
#               2016-12-21 JL   Transcribed pages 342-346.
#               2016-12-22 JL   Transcribed pages 347-359.

# 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 AGC4 PASS 2

# Page 335
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   1        PAGE  71

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

 0003              SETLOC,2     SIZ PASS 2    B1

 0004              MASKGRP,4    S,1           F,1

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

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

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

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

R0020              THE PROCESSING CODING IN THE BANK 1 PORTION OF AGC4 PASS 2 HAS THE FOLLOWING FUNCTIONS:

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

R0025           2) FOR INSTRUCTIONS, TO TRANSLATE THE ADDRESS FIELD AND REDUCE IT IF ITS VALUE IS IN ONE OF THE BANKS
R0027   03-34, NOTING BANK ERROR IF APPROPRIATE.  SUPPLY IMPLIED ADDRESS IF REQUIRED.  CUSS POLISH INDEXING IF IT IS
R0029   SPECIFIED.
R0030              FOR BASIC INSTRUCTIONS, CHECK THAT "CAF" AND "OVIND" REFER TO FIXED AND "CCS", "TS" TO 0-1777, UNLESS
R0032   PRECEDED BY "INDEX", CHECK THAT EXTRACODES ARE INDEXED, AND FLAG "ADRES", "CADR", "XCADR" CODES AND POLISH AND
R0034   STORE ADDRESSES AS CONSTANTS.  FLAG UNINDEXED BASIC INSTRUCTIONS.
R0035              FOR POLISH OPERATOR WORDS, TO TRANSLATE THE ADDRESS FIELD IF IT IS AN OPERATOR WORD COUNT, OR FORM A
R0037   WORD FROM THE TWO OPERATORS OTHERWISE, ADDING 1 AND COMPLEMENTING.  CUSS ALL ERRORS OF THE SECOND OPERATOR.

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

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

# Page 336
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   2        PAGE  72

P0042              QUANTITIES FILLED IN BY THE AGC4 PART OF PASS 2 FOR REFERENCE BY GENERAL PASS 2.



 0044   A4 PROC OP CAC          AGC4 INST     AGC4 1P       AGC4 PREL
 0045   A4 D1 PARS FLDEC        16383.0, 16384.0
 0046              FXBIN        -16383

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

 0050   A4 PROC 2P CAC          AGC4 2P       AGC4 PLEB
 0051   A4 K2 MAX  OCT          -77 7777 7777
 0052   A4 MAX LOC OCT          -71777

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

 0056   A4 CONS FL OCT          0000 0020
 0057   AGC4 MXR   MASKBASE     S,1           F,1
 00572  A4 MISC FL OCT          0000 0030

# Page 337
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   3        PAGE  73

P0058              FIELD AND SHIFT MASKS FOR AGC4 PART OF PASS 2.



 00582             SETLOC,4     768           B5

 0059   B,BIT1M    OCT          4
 0060   B,BIT7M    OCT          004
 0061   B,BIT17M   DEC          00008
 0062   B,BIT25M   OCT          -4000 0000

 0063   B,BIT28M   OCT          -400 0000
 0064   B,BIT31M   OCT          -40 0000
 0065   B,BIT32M   OCT          -20 0000
 0066   B,BIT33M   OCT          -10 0000

 0067   B,B25T29M  OCT          -7600 0000
 0068   B,B25T31M  OCT          -7740 0000
 0069   B,B34T36M  OCT          -7 0000
 0070   B,B34T48M  OCT          -77777

 0071   B,B39T48M  OCT          -1777
 0072   B,B42T48M  OCT          -177
 0073   B,CHAR1M   OCT          77
 0074   B,CHAR5M   OCT          -7700 0000

 0075   B,CHAR8M   OCT          -77
 0076   B,C1T4M    OCT          7777 7777
 0077   B,C3T4M    OCT          0000 7777
 0078   SPECMAG M  EQUALS       B34T48M
 0079   B,BANKMASK OCT          -76000

 00801  B,B35T48M  OCT          -37777

# Page 338
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   4        PAGE  74

P0081              FURTHER SHIFT MASKS FOR AGC4 PART OF PASS 2.

 00818  S,BIT2M    OCT          2
 0082   S,BIT38M   OCT          -2000
 00821  S,BIT39M   OCT          -1000
 00822  S,BIT40M   OCT          -400

 0083   S,B2T5M    OCT          36
 0084   S,B6T16M   OCT          0177 74
 0085   S,B18T21M  OCT          0000 017

 0086   S,B22T25M  OCT          0000 0007 4
 0087   S,B22T32M  OCT          -7 7760 0000
 0088   S,B28T30M  OCT          -700 0000
 0089   S,B34T37M  OCT          -7 4000

 0090   S,B35T41M  OCT          -37600
 0092   S,B38T48M  OCT          -3777
 0093   S,B40T42M  OCT          -700

 0094   S,ACO1     OCT          07
 0095   S,ACO2     OCT          0007
 0096   S,ACO3     OCT          0000 07
 0097   S,ACO4     OCT          0000 0007
 0098   ACO5       EQUALS       B28T30M
 0099   ACO6       EQUALS       B34T36M
 00992  ACO7       EQUALS       B40T42M

 0100   S,CHAR3M   OCT          0000 77
 0101   S,CHAR4M   OCT          0000 0077
 0102   S,CHAR7M   OCT          -7700
 0103   S,C3T6M    OCT          0000 7777 7777

 0104   S,ONESM    OCT          7777 7777  7777 7777
 01042  S,THREEM   OCT          -3

# Page 339
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   5        PAGE  75

P0105              CONSTANTS AND EQUIVALENCES FOR THE AGC4 PART OF PASS 2.



 01052             SETLOC,2

R0106   NUMERICAL CONSTANTS.

 0107   SPECOND 2  OCT          -0400 0000
 0108   SPECOND 3  OCT          -0600 0000
 0109   SPECOND 4  OCT          -1000 0000
 0110   SPECOND 5  OCT          -1200 0000

 0111   SPECOND 6  OCT          -1400 0000
 0112   SPECOND 7  OCT          -1600 0000
 0113   SPECON 11  OCT          -2200 0000
 0114   SPECON 12  OCT          -2400 0000

 0115   2 POLOP 7  OCT          -0340 0000
 0116   2 POLOP 17 OCT          -0740 0000
 0117   2 POLOP 27 OCT          -1340 0000
 0118   PL 77776   OCT          +77776

 0119   PL 72000   OCT          +72000
 0120   PL 71777   OCT          +71777
 0121   PL 57776   OCT          +57776
 0122   PLUS 1776  OCT          +1776

 0124   OCT 77776  OCT          -77776
 0125   MIN 37777  OCT          -37777
 0126   OCT 32000  OCT          -32000

 0127   OP CODE 4  EQUALS       BIT 34
 0129   OCT 6000   OCT          -6000
 0130   OCT 5777   OCT          -5777
 0132   DEC 48 FLG DEC          48

 0135   CHAR 2     OCT          0077
 0136   OP COUNT   OCT          -77777
 01361  C3T6       OCT          0000 7777 7777
 01362  OCT 17777  OCT          -17777

# Page 340
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   6        PAGE  76

P0137   ALPHABETIC CONSTANTS.

 0138   END BL MC  ALF            EB  MC
 0139   HI EQUALS  ALF          =00,0000
 0140   ALF 6000   EQUALS       SPECOND 3
 0141   COMMA C2   ALF          0,0000

 0142   COMMA C8   ALF               00,
 0143   MINUS C8   ALF                 -
 0144   BLOTS      EQUALS       BLOT WORD



R0145   ADDRESS CONSTANTS AND MISCELLANEOUS.



 0146   IMPAD BAS  SPEC                                     IMPLADS
 0148   IMPLADS    CAC          1                           0              -
 0149              CAC          14                          2              -
 0150              CAC          21                          15             -
 0151              CAC                                      3071           -

 0152   SAV ADREF  RESERVE      2
 0153   ADDITIVE   RESERVE      1
 0154   MAX ADRES  RESERVE      1
 0156   ADRE CUSS  ASSIGN       4,0

# Page 341
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   7        PAGE  77

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

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

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

 0177   IMPLAD     NA           ADDRESS 1     BLANKS        C,+3
 0178              NA           ADDRESS 2     BLANKS        C,+2
 0179              TS           IMPAD BAS     Z,X6          C,+2                PROCEED IF ADDRESS FIELD IS BLANK.
 0181              TS, BIT 1M   ONES          CUSS LIST +21 C,-1                OTHERWISE CUSS MILDLY AND PROCEED.
 0183              SWS, B22T25M HEALTH        5,L           C,+1
 0184              SWE, B34T48M 6,0           0             ADDRESS             SUPPLY IMPLIED ADDRESS.
 01852             BS           ZERO          ADDRESS       ADR WD
 0186              NA, BIT 25M  HEALTH        ONES          NOT SQUAR           BRANCH UNLESS OP CODE IS "SQUARE".

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

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

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

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

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

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

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

 0218   STORE AD   SWS, BIT38M  ADDITIVE      37            ADDITIVE
 0219              WA           ADDITIVE      OCT 32000     ADDITIVE            ADD 32000 (DIRECT) OR 34000 (INDEXED).
 0221              TS           PLUS 1776     MAX ADRES     OP CK STOR          SET MAX, CHECK OP WORD COUNT IF NEEDED.

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

# Page 342
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   8        PAGE  78

P0227   INACTIVE ADDRESS CHECK AND LIMIT SETUP FOR POLISH ADDRESSES.

 02272  POLISH AD  NA, CHAR1M   CARD +2       BIT 1         C,+3                BRANCH IF NO MINUS IN COL 17.
 02274             SWS, BIT 1M  SWITCH        16,L          CUSS LIST +22       CUSS MINUS IF FIRST ADDRESS OF EQUATION.
 022751            BS           ZERO          ONE           MIN ADRES           MINIMUM MAGNITUDE IS ONE IF MINUS.
 022754            NA, BIT17M   SWITCH        ONES          C,+4                BRANCH IF NOT FIRST ADDRESS OF EQUATION.
 022756            LA           OP COUNT      ZERO          C,+2                BRANCH IF LAST OPERATOR WORD COUNT OK.
 022758            SM           CUSS LIST +23 BIT 17        CUSS LIST +23       CUSS BAD OPERATOR WORD COUNT.
 02276             SS           ZERO          BIT 17        SWITCH              RESET PERMISSION BIT FOR MINUS POLADS.
 0228              LA           ADDITIVE      BIT 1         PO DIRECT           TEST FOR INACTIVE ADDRESS IF UNINDEXED.
 0230              TX           PL 57776      -             MAX ADRES           MAXIMUM AUGMENTER FOR POLISH INDEXED.

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

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

 0242   NON CONST  NA, B34T36M  WORD          OP CODE 4     C,+2                BRANCH TO PERMIT NEGATIVE ADDRESS.
 0244              TS           PL 71777      MAX ADRES     MAX AD SET          MAX FOR ALL CASES BUT POLISH AND STORE.
 0246              TS           OCT 7777      MIN ADRES     C,-1                ALLOW -7777 TO 71777 EXCEPT ON CS, MP.
 0248   MAX AD SET TX           GENL MXR      -             Z,MXR
 0249              TS           Z,SC          Z,X6          PROC ADR            TRANSLATE ADDRESS FIELD.
 0251              TN           SAV ADREF     2             ADDRESS 1           RESTORE ORIGINAL ADDRESS FIELD FOR PRNT.
 0253              TS           ZERO          MIN ADRES     AGC4 INST      C    RESTORE MIN ADR VALUE AND MXR.
 0255              SWS, BIT 17M HEALTH        8             CUSS LIST           CUSS LACK OF "D" IN DECIMAL SUBFIELD.
 0257              LA           ONES          ADDRESS       BAD BASIC           MEANINGLESS OR ATROCIOUS ADDRESS.
 0259              LN           ADR WD        MAX ADRES     CONST Q             BRANCH IF NO RANGE ERROR.
 0261              LN           PL 72000      ADR WD        C,+2
 0262   RNG ERROR  TS, BIT33M   ONES          CUSS LIST +11 PRB ADRES      C    PRINT BAD-SIZE ADDRESS IF POSSIBLE.
 0264              TS, BIT17M   ONES          CUSS LIST +3  BAD BASIC           CUSS RANGE ERROR IN ADDRESS VALUE.

 0266   CONST Q    LA           WORD          BIT 17        INSTROP             BRANCH IF NO CONSTANT FLAG.
 0268              LA, B25T29M  HEALTH        SPECOND 6     BASIC SBA           BRANCH IF CODE IS "ADRES".
 0271              LA, B25T29M  HEALTH        SPECOND 7     CADR
 02712             LA, B25T29M  SPECON 12     HEALTH        BASIC ADR           BRANCH IF CODE IS XCADR.

 02714  PO STOR AD LA           ADDRESS       OCT 1777      C,+4                INTERPRETIVE MAY ADDRESS ERASABLE ....
 027152            LA           ADDITIVE      BIT 1         C,+2
 027154            LA           ADDRESS       OCT 17777     C,+2                ...WITH SOME LATITUDE IF INDEXED...
 02716             LA           ADDRESS       MIN 37777     RNG ERROR           .... OR UPPER HALF OF SWITCHED BANKS.
 0272              WA, B35T48M  ADDRESS       ADDITIVE      WORD                USE ADDITIVE ON POLISH OR STORE ADDRESS.
 0274              LA           ADDITIVE      BIT 1         C,+2
 0275              WA, B35T48M  WORD          ADDRESS       WORD                USE 2 X ADDRESS IF INDEXED.
 02762             NA, CHAR1M   CARD +2       BIT 1         GUD BASIC           BRANCH IF NO MINUS SIGN IN COLUMN 17.
 02764             WD           WORD          TWO           WORD                SINCE INTERPRETER DOES NOT CCS THESE.
 0277              TS, C1T4M    ZERO          LINE +6       GUD BASIC +1        CLEAR ADDRESS IMAGE AND GO TO PRINT.
 0279   CADR       TS, SPECMAGM ADDRESS       WORD          GUD BASIC           USE ADDRESS AS IS FOR CADR.

# Page 343
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.   9        PAGE  79

P0293   SPECIFIC PROCESSING FOR BASIC INSTRUCTIONS.

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

 0299              LA, B25T29M  HEALTH        ZERO          BASIC ADR           BRANCH IF THERE ARE NO SPECIAL CONDS.
 0301              LA, B25T29M  HEALTH        SPECOND 2     CAF OVIND
 0302              LA, B25T29M  HEALTH        SPECOND 3     CCS
 0303              LA, B25T29M  HEALTH        SPECOND 4     INDEX
 03032             LA, B25T29M  HEALTH        SPECOND 5     TS

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

 03062  TS         NA, BIT7M    SWITCH        ZERO          BASIC ADR           BYPASS CHECK IF INSTRUCTION IS INDEXED.
 03064             LA           ADDRESS       OCT 1777      BASIC ADR
 03066             TS, BIT17M   ONES          CUSS LIST +11 BASIC ADR           FIXED MEM ADRES INAPPROPRIATE FOR TS.

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

 0309   CCS        NA, BIT 7M   SWITCH        ZERO          BASIC ADR           NO CHECK ON INDEXED CCS.
 0311              LA           ADDRESS       OCT 1777      BASIC ADR           BRANCH IF VALUE CORRECT FOR CCS.
 0313              TS, BIT 33M  ONES          CUSS LIST +11 PRB ADRES      C
 0314              TS, BIT17M   ONES          CUSS LIST +12 BASIC ADR           CUSS CCS REFERENCE TO FIXED.

 03152  CAF OVIND  SWS, BIT 33M HEALTH        5             CUSS LIST +23       WARN OF OVIND'S COMING OBSOLESCENCE.
 0316              NA, BIT 7M   SWITCH        ZERO          BASIC ADR           NO CHECK ON INDEXED CAF OR OVIND.
 0318              LA           OCT 2000      ADDRESS       BASIC ADR           BRANCH IF VALUE CORRECT FOR CAF, OVIND.
 0320              SM           CUSS LIST +11 BIT 17        CUSS LIST +11       CUSS INAPPROPRIATE ADDRESS.

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

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

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

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

 0343              TX           Z,R5          -             Z,X6                PUT BANK INDICATOR 5 IN X6.
 03442             SWS, BIT2 M  SWITCH        5,L           CUSS LIST +11       SET POISON BIT OF BANK CUSS = -INDEXED.
 03444             HA           CUSS LIST +11 B1B2          CUSS LIST +11       CALL FOR BANK ERROR CUSS.
 0345              SWS, B38T48M CUSS LIST +11 32            Z,X6
 0346              SWS, ACO4    ADDRESS       11,L          6,2
 0347   CUSS BANK  SWS, ACO5    ADDRESS       8,L           6,2                 INSERT BANK NUMBER IN BANK CUSS.

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

# Page 344
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  10        PAGE  80

P0351   PRINTING PROCEDURES FOR BASIC INSTRUCTIONS AND ADDRESS CONSTANTS.

 0352   GUD BASIC  SS           ZERO          C1T4          LINE +6             CLEAR ADDRESS FIELD OF PRINT IMAGE.
 0354              NA, CHAR1M   CARD +2       BIT 1         C,+2                BRANCH IF NO MINUS SIGN IN COLUMN 17.
 0356              HA           WORD          SPEC MAG      WORD                COMPLEMENT NEGATIVE INSTRUCTION.
 0358              SWS, ACO1    WORD          33,L          LINE +6
 0359              SWS, ACO2    WORD          30,L          LINE +6
 0360              SWS, ACO3    WORD          27,L          LINE +6
 0361              SWS, ACO4    WORD          24,L          LINE +6             PUT BASIC CODE ADDRESS INTO PRINT IMAGE.
 0363              LA           DEC 6 FLAG    WORD          ACON PRNT           BRANCH IF WORD IS AN ADDRESS CONSTANT.

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

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

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

 0387   NAUGHTY    TS           W BAD WORD    WORD          BC CHECK

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

 0390   BC CHECK   NA, CHAR1M   CARD +2       BIT 1         C,+2
 0391              TS, BIT 1M   ZERO          CUSS LIST +12 C,+2                CLEAR "SHOULD-BE-INDEXED" CUSS IF MINUS.
 0393              NA, CHAR1M   CARD +2       BLANKS        QUEER C17           CUSS IF NEITHER BLANK OR MINUS IN CC 17.
 0395              NA, CHAR1M   CARD          J COLUMN 1    C,+2
 0396              TS, BIT 1M   ZERO          CUSS LIST +12 C,+2                CLEAR "SHOULD-BE-INDEXED" CUSS IF LFTVR.
 0398              NA, CHAR1M   CARD          BLANKS        QUEER C1            CUSS IF NEITHER BLANK NOR J IN COLUMN 1.
 0400              NA, CHAR8M   CARD +2       BLANKS        QUEER C24           CUSS IF COLUMN 24 NON-BLANK.
 0402   INSTR XIT  TS           MOD RETRN     Z,SC          RSTOR MXR      C    RETURN TO GENERAL PROCEDURE.

# Page 345
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  11        PAGE  81

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

 0405   PRB ADRES  TX           Z,R5          -             Z,X4           C    BANK INDICATOR 5 TO X4.
 0407              SS           CUSS LIST +11 B38T48        Z,X4           C    SET UP ADDRESS OF ADR CUSS.
 0409              TX           HI EQUALS     -             ADRECUSS +1    C    INITIALIZE TO ALF =00,0000.
 0411              SS           ADDRESS       B46T48        ADRECUSS +1    C
 0412              SWS, B40T42M ADDRESS       3,L           ADRECUSS +1    C
 0413              SWS, B34T36M ADDRESS       6,L           ADRECUSS +1    C
 0414              SWS, B28T30M ADDRESS       9,L           ADRECUSS +1    C    PUT ADDRESS OR SUBADDRESS INTO CUSS.
 0416              LA           OCT 6000      ADDRESS       ACUSS BNK      C    BRANCH IF ADDRESS IS IN A BANK.

 0418              SWS, C3T6M   ADRECUSS +1   A,2,L         ADRECUSS +1    C    MOVE UP NON-BANK ADDRESS.
 04191             SS           BLANKS        CHAR 2        ADRECUSS +1    C
 0420              SS           BLANKS        C7T8          ADRECUSS +1

 0421   ACUSS BNK  SM           ADRECUSS +1   ALF 6000      ADRECUSS +1    C    PUT SUBADDRESS IN THE RANGE 6000-7777.
 0423              SWS, ACO2    ADDRESS       23,L          ADRECUSS +1    C    PUT BANK NUMBER INTO CUSS.
 0425              SWS, ACO3    ADDRESS       20,L          ADRECUSS +1



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

 0429   RITE NORM  NA, CHAR8M   ADDRESS 2     BLANKS        END RNORM      C    BRANCH IF FINISHED.
 0431              SWS, ONESM   ADDRESS 1     A,1           ADDRESS 1      C
 0432              SWS, ONESM   ADDRESS 2     A,1           ADDRESS 2      C
 0433              SS           ADDRESS 1     CHAR1         ADDRESS 2      C
 0434              SS           BLANKS        CHAR1         ADDRESS 1      C    SHIFT RIGHT ONE CHARACTER.
 0436              NA           ADDRESS 1     BLANKS        RITE NORM      C
 0437              NA           ADDRESS 2     BLANKS        RITE NORM      C    REPEAT UNLESS ALL BLANK.
 0439   END RNORM  TX           -             -             -



R04392  OPERATOR WORD COUNT CHECKING FOR STORE ADDRESSES.

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

# Page 346
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  12        PAGE  82

P0440   AGC4 PASS 2 PROCESSING FOR POLISH OPERATOR WORDS.

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

 0445              TX           GENL MXR      -             Z,MXR
 0446              TS           Z,SC          Z,X6          PROC ADR            TRANSLATE ADDRESS FIELD.
 0448              TS           ADDRESS       OP COUNT      AGC4 INST      C    SET OP COUNT (PERHAPS TO ONES).
 0449              SWS, BIT 17M HEALTH        8             CUSS LIST           MAYBE CUSS "D" ERROR.
 0451              LA           ONES          ADDRESS       BAD POLE            BRANCH IF MEANINGLESS OR ATROCIOUS ADR.

 0453              LA           ADDRESS       OCT 177       OK COUNT            BRANCH IF COUNT IS 127 OR LESS.
 0455              LN           PL 72000      ADR WD        C,+2                BRANCH IF ADDRESS IS UNPRINTABLE.
 0457              TS, BIT 33M  ONES          CUSS LIST +11 PRB ADRES      C    PRINT OVERSIZE ADDRESS.
 04582             TX           ONES          -             OP COUNT            GUARANTEE OP COUNT CUSS.
 0459              TS, BIT 17M  ONES          CUSS LIST +3  BAD POLE            CUSS RANGE ERROR IN ADDRESS VALUE.

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

 04624  NOT COUNT  NA           OP COUNT      ZERO          C,+2                BRANCH IF OP COUNT MIGHT STILL MAKE IT.
 04626             TS           ONES          OP COUNT      C,+2                GUARANTEE BAD COUNT IF TWAS TOO SMALL.
 04628             WD           OP COUNT      ONE           OP COUNT
 0463              NA, B25T31M  HEALTH        2 POLOP 17    C,+2
 0464              TS, BIT 33M  ONES          CUSS LIST +2  BAD POLE            CUSS MEANINGLESS ADDRESS FIELD.

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

# Page 347
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  13        PAGE  83

P04702  GENERAL PROCESSING OF RIGHT OPERATOR.

 0471   TWO POLES  SWS, B42T48M HEALTH        17            WORD                SET UP 7-BIT RIGHT OPERATOR.
 04721             TN           ADDRESS 1     2             SAV ADREF
 04722             TS           Z,SC,4        -             RITE NORM      C    RIGHT-NORMALIZE ADDRESS FIELD AND SKIP.
 04723             SM           WORD          TWO           WORD                APPLY INDEX BIT TO GENERAL OPERATOR.
 04724             SM           CUSS LIST +22 BIT 33        CUSS LIST +22       CUSS INDEXING OF MISCELLANEOUS OPERATOR.
 04725  B46T48     OCT          -7
 04726             SM           WORD          FOUR          WORD                APPLY INDEX BIT TO UNARY OPERATOR.
 04727             NA, CHAR8M   ADDRESS 2     ASTRISKS      C,+2                BRANCH IF OPERATOR 2 IS NOT INDEXED.
 04728  SEL STAR 2 SSL, THREEM  WORD          0             C,-5           C    BRANCH ON TYPE OF SECOND OPERATOR.
 04729             TN           SAV ADREF     2             ADDRESS 1           RESTORE ADDRESS FIELD FOR PRINTING.
 0473              WD, SPECMAGM OCT 77776     WORD          WORD                ADD ONE AND COMPLEMENT.
 0475              LA, SPECMAGM WORD          MIN 37777     POLE OFLO           BR IF BOTH OPS = 177 (VERY QUEER).

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

 0480              SS           ZERO          C1T4          LINE +6             CLEAR ADDRESS FIELD PRINT IMAGE.
 0482              SWS, CHAR8M  WORD          12            LINE +5             PRINT 1ST CHARACTER OF OPERATOR WORD.
 0484              SWS, ACO1    WORD          33,L          LINE +6
 0485              SWS, ACO2    WORD          30,L          LINE +6             PRINT REST OF LEFT OPERATOR.
 0487              LA           BIT 1         WORD          BAD POLE 2          BRANCH IF 2ND OPERATOR IS BAD.

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

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

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

# Page 348
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  14        PAGE  84

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



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

 0508              TX           AGC4 MXR      -             Z,MXR          C
 0509              SS           ZERO          C1T4          LINE +5        C
 0510              TX           LOCATION      -             COMMON         C
 0511              TX           COMMON        -             COMMON +1      C
 0512              LA           COMMON        OCT 5777      END BANK Q     C    BRANCH IF LOCATION IS NOT IN A BANK.
 0514              TX           COMMA C8      -             LINE +4        C
 0515              SWS, ACO6    COMMON        1             LINE +4        C
 0516              SWS, ACO7    COMMON        4             LINE +4        C    SET BANK NUMBER IN PRINT.
 0518              SM           COMMON        OCT 6000      COMMON +1      C    PUT SUBADDRESS IN THE CLASS 6000 - 7777.

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

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

 0534   PRINT LOC  SWS, ACO1    COMMON +1     33,L          LINE +5        C
 0535              SWS, ACO2    COMMON +1     30,L          LINE +5        C
 0536              SWS, ACO3    COMMON +1     27,L          LINE +5        C
 0537              SWS, ACO4    COMMON +1     24,L          LINE +5        C
 0538   RSTOR MXR  TX           GENL MXR      -             Z,MXR               SET UP LOCATION IN PRINT AND EXIT.

# Page 349
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  15        PAGE  85

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

 0544   AGC4 1P    NA           NUMBER        W BAD WORD    GOOD 1P        C    BRANCH IF WORD IS VALID.
 0546              SS           BLOTS         CHAR 8        LINE +5        C
 0547              SS           BLOTS         C1T4          LINE +6        C    BLOT OUT WORD IN PRINT.
 0549              TX           W BAD WORD    -             WORD                SEND ALONG BAD NEWS AND EXIT.

 0551   GOOD 1P    TX           AGC4 MXR      -             Z,MXR          C
 0552              EX           NUMBER        D2T12         WORD           C    ISOLATE MAGNITUDE.
 0554              LA           BIT 1         NUMBER        C,+2           C
 0555              HA           WORD          SPEC MAG      WORD           C    COMPLEMENT NEGATIVE WORD.

 0557   A4 BIN ALF SS           ZERO          C1T4          LINE +6        C
 0558              SWS, CHAR8M  WORD          12            LINE +5        C
 0559              SWS, ACO1    WORD          33,L          LINE +6        C
 0560              SWS, ACO2    WORD          30,L          LINE +6        C
 0561              SWS, ACO3    WORD          27,L          LINE +6        C
 0562              SWS, ACO4    WORD          24,L          LINE +6        C    SET WORD IN PRINT.
 0564              TS, CHAR1M   DEC6 FLAG     WORD          RSTOR MXR      C    APPLY INTERNAL CONSTANT FLAG AND EXIT.



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

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

 0580   GOOD 2P    TX           AGC4 MXR      -             Z,MXR          C
 0581              NA           E NUMBER      ZERO          C,+3           C    BRANCH IF NUMBER IS SIGNED.
 0583              SWE, B34T48M NUMBER        15            WORD           C
 0584              TS           SPEC MAG      COMMON        C,+3           C    SET UP UNSIGNED CONSTANT.

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

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

 0596              SWE, CHAR8M  2ND HALF      12            2ND ALF        C
 0597              SWE, ACO1    2ND HALF      33,L          2ND ALF +1     C
 0598              SWE, ACO2    2ND HALF      30,L          2ND ALF +1     C
 0599              SWE, ACO3    2ND HALF      27,L          2ND ALF +1     C
 0600              SWE, ACO4    2ND HALF      24,L          2ND ALF +1     C    MAKE PRINTABLE VERSION OF LOW-ORDER PRT.
 0602              TS, CHAR 1M  DEC6 FLAG     2ND HALF      A4 BIN ALF     C    GO TO JOIN SINGLE-PRECISION PROCEDURE.

# Page 350
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  16        PAGE  86

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

 0607   AGC4 PREL  NA           LOCATION      ONES          C,+2           C
 0608              SS           BLOTS         C3T6          LINE +6             BLOT OUT BAD LOCATION AND EXIT.

 0610              TX           AGC4 MXR      -             Z,MXR          C
 0611              SS           ZERO          C3T6          LINE +6        C
 0612              TX           LOCATION      -             COMMON         C    ISOLATE LOCATION VALUE.
 0614              LA           COMMON        OCT 5777      PRINT VAL      C    BRANCH IF ADDRESS IS NOT IN A BANK.
 0616              TX           COMMA C2      -             LINE +6        C
 0617              SWS, CHAR8M  COMMON        13            LINE +5        C
 0618              SWS, ACO1    COMMON        32,L          LINE +6        C    SET BANK NUMBER IN PRINT.
 0620              SM           COMMON        OCT 6000      COMMON         C    PUT SUBADDRESS IN THE RANGE 6000-7777.

 0622   PRINT VAL  SWS, ACO3    COMMON        21,L          LINE +6        C
 0623              SWS, ACO4    COMMON        18,L          LINE +6        C
 0624              SWS, ACO5    COMMON        15,L          LINE +6        C
 0625              SWS, ACO6    COMMON        12,L          LINE +6        C
 0626              TX           GENL MXR      -             Z,MXR               SET LOCATION IN PRINT AND EXIT.

# Page 351
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  17        PAGE  87

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



 0631              SETLOC,3     0             B5

 0632   UNSCRAMB   SWE, B38T48M N,AU2         0             N,AU1          C    ZERO DEMAND BITS, MOVE SUBADDR OF CUSS3.
 0634              SWS, B34T37M N,AU2         25            N,AU1          C    MOVE POISON BIT AND LENGTH OF CUSS 3.
 0636              SWS, B22T32M N,AU2         4,L           N,AU1          C    MOVE SUBADDRESS OF CUSS 2.
 0638              SWS, B18T21M N,AU2         13            N,AU1          C    MOVE POISON BIT AND LENGTH OF CUSS 2.
 0640              SWS, B6T16M  N,AU2         8,L           N,AU1          C    MOVE SUBADDRESS OF CUSS 1.
 0642              SWS, B2T5M   N,AU2,1       1             N,AU1,1        C    MOVE POISON BIT AND LENGTH OF CUSS 1.
 0644              NA           N,AU2         SENTINEL      UNSCRAMB       C

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

 0647   CUSSALOG   M,D,44E      CDNO CUSS     D ERR CUSS    ILOP CUSS
 0648              M,D,EDD      LEFL CUSS     CNFL CUSS     TYPL CUSS
 0649              M,D,DCD      BADL CUSS     IPOX CUSS     MGLA CUSS
 0650              M,D,CD4      UDEF CUSS     ASIZ CUSS     IRAD CUSS
 0651              M,D,DFE      LEFM CUSS     PRED CUSS     NFIT CUS1

 0652              M,D,EFF      NFIT CUS2     STYP CUS1     STYP CUS2
 0653              M,D,EEE      SCNF CUS1     SCNF CUS2     SOVS CUS1
 0654              M,D,EEE      SOVS CUS2     SMD CUS1      SMD CUS2
 0655              M,D,FFE      SME CUS1      SME CUS2      SMIT CUS1
 0656              M,D,EEE      SMIT CUS2     SNDE CUS1     ARBL CUSS

 0657              M,D,EGF      SIDL CUS1     SBDE CUS1     SMDE CUS1
 0658              M,D,C52      ADRE BANK     INAP CUSS     ADR CUSS
 0659              M,D,545      SBIX CUSS     CCSF CUSS     IDBC CUSS
 0660              M,D,5D5      MTD CUSS      RANG CUSS     FRAC CUSS
 0661              M,D,54E      MFD CUSS      LONB CUSS     UND1 CUSS

 0662              M,D,GEE      NDE1 CUSS     LNSY CUSS     SNDE CUS2
 0663              M,D,GEF      SBDE CUS2     SIDL CUS2     SMDE CUS2
 0664              M,D,FED      SSNP CUSS     BNLF CUSS     NSCH CUSS
 0665              M,D,CDF      BFUL CUSS     ILOC CUSS     TOLA CUSS
 0666              M,D,GFE      MEMT CUSS     NMC1 CUSS     CAFS CUSS

 0667              M,D,444      QC1 CUSS      QC17 CUSS     QC24 CUSS
 0668              M,D,4FD      IMAD CUSS     POLE CUSS     POVF CUSS
 06681             M,D,FEE      P1N CUSS      IPX1 CUSS     IPX2 CUSS
 06682             M,D,ED4      NMC2 CUSS     OPCW CUSS     OVND CUSS

 06683             RESERVE      6
 06687             M,D,D00      IXOP CUSS
 06688             M,D,D5E      SNNR CUSS     MCPS CUSS     CEHS CUSS

 0669   SENTINEL   DEC          BB00 FFFF

# Page 352
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  18        PAGE  88

P0670              CUSSES FOR AGC4, SHOWN IN THE ORDER OF THEIR CALLS IN THE CUSS LIST.



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

 0675   LEFL CUSS  ALF,5        IMPROPER LEFTOVER LOCATION FIELD FORMAT
 0676   CNFL CUSS  ALF,4        CONFLICT IN USE OF THIS LOCATION
 0677   TYPL CUSS  ALF,4        LOCATION IS IN WRONG MEMORY TYPE

 0678   BADL CUSS  ALF,4        OVERSIZE OR ILL-DEFINED LOCATION
 0679   IPIX CUSS  ALF,3        ILLEGAL POLISH INDEXING
 0680   MGLA CUSS  ALF,4        ADDRESS FIELD IS MEANINGLESS

 0681   UDEF CUSS  ALF,3        "        " IS UNDEFINED
 0682   ASIZ CUSS  ALF,4        RANGE ERROR IN VALUE OF ADDRESS
 0683   IRAD CUSS  ALF,4        IRREGULAR BUT ACCEPTABLE ADDRESS

# Page 353
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  19        PAGE  89

P0684   AGC4 CUSSES CONTINUED.

 0685   LEFM CUSS  ALF,4        LEFTOVER WON'T FIT IN MEMORY
 0686   PRED CUSS  ALF,5        ATTEMPT TO PREDEFINE LOCATION SYMBOL FAI
 0687              ALF          LED
 0688   NFIT CUS1  ALF,5        "        " WON'T FIT IN SYMBOL TABLE

 0689   NFIT CUS2  ALF,5        "        " WON'T FIT IN SYMBOL TABLE
 0690   STYP CUS1  ALF,5        "        " ASSOCIATED WITH WRONG MEMORY
 0691              ALF          TYPE
 0692   STYP CUS2  ALF,5        "        " ASSOCIATED WITH WRONG MEMORY
 0693              ALF          TYPE

 0694   SCNF CUS1  ALF,5        "        " ASSOCIATED WITH CONFLICT
 0695   SCNF CUS2  ALF,5        "        " ASSOCIATED WITH CONFLICT
 0696   SOVS CUS1  ALF,5        "        " GIVEN OVERSIZE DEFINITION

# Page 354
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  20        PAGE  90

P0697   AGC4 CUSSES CONTINUED.

 0698   SOVS CUS2  ALF,5        "        " GIVEN OVERSIZE DEFINITION
 0699   SMD CUS1   ALF,5        "        " GIVEN MULTIPLE DEFINITIONS
 0700   SMD CUS2   ALF,5        "        " GIVEN MULTIPLE DEFINITIONS

 0701   SME CUS1   ALF,5        "        " ASSOCIATED WITH MULTIPLE ERRO
 0702              ALF          RS
 0703   SME CUS2   ALF,5        "        " ASSOCIATED WITH MULTIPLE ERRO
 0704              ALF          RS
 0705   SMIT CUS1  ALF,5        "        " IS IN MISCELLANEOUS TROUBLE

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

# Page 355
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  21        PAGE  91

P0709   AGC4 CUSSES CONTINUED.

 0710   SIDL CUS1  ALF,5        "        " IS INDEFINABLY LEFTOVER
 0711   SBDE CUS1  ALF,5        "        " MULTIPLY DEFINED INCLUDING NE
 07111             ALF,2        ARLY BY EQUALS
 0712   SMDE CUS1  ALF,5        "        " MULTIPLY DEFINED INCLUDING BY
 07121             ALF           EQUALS

 0713   ADRE BANK  ALF,3        ADDRESS IS IN BANK 00
 0714   INAP CUSS  ALF,5        ADDRESS IS INAPPROPRIATE FOR OP CODE
 0715   ADR CUSS   ALF,2        ADDRESS

 0716   SBIX CUSS  ALF,5        THIS INSTRUCTION SHOULD BE INDEXED
 0717   CCSF CUSS  ALF,4        CCS CANNOT REFER TO FIXED MEMORY
 0718   IDBC CUSS  ALF,5        INEXACT DECIMAL-TO-BINARY CONVERSION

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

# Page 356
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  22        PAGE  92

P07201  AGC4 CUSSES CONTINUED.

 0721   FRAC CUSS  ALF,5        FRACTIONAL PART LOST BY TRUNCATION

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

 0726   NDE1 CUSS  ALF,5        "        " WAS NEARLY DEFINED BY EQUALS
 0727              ALF,2        IN PASS 1
 0728   LNSY CUSS  ALF,5        LOCATION FIELD SHOULD BE SYMBOLIC
 0729   SNDE CUS2  ALF,5        "        " WAS NEARLY DEFINED BY EQUALS

 0730   SBDE CUS2  ALF,5        "        " MULTIPLY DEFINED INCLUDING NE
 07301             ALF,2        ARLY BY EQUALS
 0731   SIDL CUS2  ALF,5        "        " IS INDEFINABLY LEFTOVER

# Page 357
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  23        PAGE  93

P07311  AGC4 CUSSES CONTINUED.

 0732   SMDE CUS2  ALF,5        "        " MULTIPLY DEFINED INCLUDING BY
 0733              ALF           EQUALS

 0734   SSNP CUSS  ALF,5        "        " SHOULDN'T HAVE BEEN PREDEFINE
 0735              ALF          D
 0736   BNLF CUSS  ALF,5        NUMERIC LOCATION FIELD IS ILLEGAL HERE
 0737   NSCH CUSS  ALF,4        NO SUCH BANK IN THIS MACHINE

 0738   BFUL CUSS  ALF,3        THIS BANK IS FULL
 0739   ILOC CUSS  ALF,4        ILLEGAL LOCATION FIELD FORMAT
 0740   TOLA CUSS  ALF,5        CARD IGNORED BECAUSE IT'S TOO LATE IN TH
 0741              ALF          E DECK

 0742   MEMT CUSS  ALF,5        CARD IGNORED BECAUSE IT MAKES MEMORY TAB
 0743              ALF,2        LE TOO LONG
 0744   NMC1 CUSS  ALF,5        NO MATCH FOUND FOR CARD NUMBER OR ACCEPT
 07441             ALF          OR TEXT
 0746   CAFS CUSS  ALF,5        FIRST CARD NUMBER NOT LESS THAN SECOND

# Page 358
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  24        PAGE  94

P0747   AGC4 CUSSES CONTINUED.

 0748   QC1 CUSS   ALF,4        QUEER INFORMATION IN COLUMN 1
 0749   QC17 CUSS  ALF,4        QUEER INFORMATION IN COLUMN 17
 0750   QC24 CUSS  ALF,4        QUEER INFORMATION IN COLUMN 24

 0751   IMAD CUSS  ALF,4        BLANK ADDRESS FIELD EXPECTED
 0753   POLE CUSS  ALF,5        ADDRESS FIELD SHOULD CONTAIN A POLISH OP
 0754              ALF          ERATOR
 0755   POVF CUSS  ALF,4        OVERFLOW IN POLISH OPERATOR WORD

 0756   P1N CUSS   ALF,5        FIRST ADDRESS OF AN EQUATION MUST BE POS
 0757              ALF          ITIVE
 0758   IPX1 CUSS  ALF,5        FIRST POLISH OPERATOR ILLEGALLY INDEXED
 0759   IPX2 CUSS  ALF,5        SECOND POLISH OPERATOR ILLEGALLY INDEXED

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

# Page 359
#      @YUL SYSTEM ASSEMBLER AGC4 PASS 2                                         USER'S OWN PAGE NO.  25        PAGE  95

P0761   AGC4 CUSSES CONTINUED.

 0762   OPCW CUSS  ALF,4        LAST OPERATOR WORD COUNT WRONG
 0763   OVND CUSS  ALF,4        THIS CODE MAY BECOME OBSOLETE
 0797   IXOP CUSS  ALF,4        ASTERISK ILLEGAL ON THIS OP CODE

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