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