Raw File
YUL_SYSTEM_SIMULATORS_--_SACO.argus
# Copyright:    Public domain.
# Filename:     YUL_SYSTEM_SIMULATORS_--_SACO.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:        701-733
# Mod history:  2016-10-06 JL   Created.
#               2017-02-06 JL   Transcribed pages 701-724.
#               2017-02-07 JL   Transcribed pages 725-733.

# 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 SIMULATORS -- SACO

# Page 701
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   1        PAGE  30

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



 0004              SETLOC,1     0             B4



 0005              MASKGRP,1    S,1           F,1



R0006              THIS PROGRAM IS LOADED BY YUL PASS 0 IN RESPONSE TO A YUL DIRECTOR CARD CORRECTLY SPECIFYING A SIMU-
R0008   LATION RUN FOR SACO.  WHEN MISCGA SIMULATION IS DESIRED, THE VERB ON THE DIRECTOR CARD IS "ETALIMUS".  MISCGA 1
R0010   AND MISCGA 2 ARE THE CREATIONS OF CHARLES "MADMAN" MUNTZ, WHO DERIVED THE NAME BY SPELLING "AGCSIM" BACKWARDS.
R0012   AT PRESENT, THIS PROGRAM RESPONDS ONLY TO THE VERB "ETALIMUS", AND INCORPORATES MISCGA 2.  A PROGRAM DEFINED FOR
R0014   LOCATIONS 0000-7777 (FIRST SWITCHABLE BANK ONLY) CAN BE SIMULATED, PROVIDED THAT NO USE OF INPUT-OUTPUT OR OF
R0016   PROGRAM INTERRUPT IS REQUIRED.  ALSO, CERTAIN CASES OF ADDRESSING CENTRAL REGISTERS MAY NOT WORK.  EVERY INSTRU-
R0018   CTION SIMULATED IS TRACED IN PRINT, EXCEPT AS MODIFIED BY TRACE ON/OFF SUBDIRECTORS (SEE BELOW).  THE RUN IS
R0020   TERMINATED BY ANY OF THE FOLLOWING OCCURRENCES:

R0021   EXECUTION OF AN ILLEGAL OPERATION CODE,
R0023   DIVIDE OVERFLOW,
R0024   DETECTION OF AN INFINITE LOOP (UP TO ABOUT 300 INSTRUCTIONS IN LENGTH),
R0025   EXCEEDING THE PRESET PRINT LIMIT,
R0026   OVERFLOW OUT OF THE TIME3 REGISTER, OR
R0027   ABORT BY THE OPERATOR, USING FB9 (B = FIRST SIDE-GROUP).

R0028              THE SUBDIRECTORS USED WITH MISCGA 2 ARE:

R0029   S       START AT NNNN                 (NNNN OCTAL, 1 TO 4 DIGITS).  THIS CARD IS REQUIRED, AND MUST BE FIRST.
R0031   S       PRINT LIMIT = DDDDD           (DDDDD DECIMAL, 1 TO 5 DIGITS. "=" OPTIONAL).  THIS CARD IS OPTIONAL.  IF
R0033                                         IT IS LACKING OR INVALID, THE PRINT LIMIT IS 5000 LINES.
R0035   S       TRACE ON NNNN                 TURN ON TRACE JUST BEFORE C(NNNN) IS EXECUTED.
R0037   S       TRACE OFF NNNN                TURN OFF TRACE JUST AFTER C(NNNN) IS EXECUTED.
R0039   S       TRACE ON R:NNNN               TURN TRACE ON JUST BEFORE NNNN IS REFERRED TO.
R0041   S       TRACE OFF R:NNNN              TURN TRACE OFF JUST AFTER NNNN IS REFERRED TO.
R0043                                         ANY NUMBER OF TRACE ON/OFF SUBDIRECTORS MAY BE SUBMITTED, PROVIDED THAT
R0045                                         THEY SPECIFY UNIQUE OCTAL ADDRESSES NNNN.

 0047   SACO  SIMU TS           BANK 1        Z,X0          WHAT SUBD           THIS INSTRUCTION IS AT BASE ADDRESS.

R0049   MAIN BODY OF PROGRAM FOLLOWS CONSTANTS, ETC.

# Page 702
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   2        PAGE  31

P0050   FIELD AND SHIFT MASKS.



 0051   B,B3TB12   OCT          -7774
 0052   B,CHAR1    OCT          77
 0053   B,CHAR6    OCT          -77 0000
 0054   B,CHAR7    OCT          -7700
 0055   B,CHAR8    OCT          -77

 0056   B,EFLAG    OCT          00001
 0057   B,EDITFLG  OCT          00002
 0058   B,LPFLAG   OCT          00004
 0059   B,FLAGS    OCT          00007

 0060   B,C7T8     OCT          -7777
 0061   B,CAC3     DEC          -GGGG
 0062   B,SIGN     OCT          -100000
 0063   B,CHANGMSK OCT          3

 0064   B,DCHECK   OCT          6060 6060 6060 6060



P0065   FURTHER SHIFT MASKS.

 0066   S,D12      DEC          -G
 0067   S,C1T3     OCT          777777
 00672  S, ACO6    OCT          -70000
 0068   S,ACO8     OCT          -7
 0069   S,ACH7     OCT          -1700

 0070   S,MSK5     OCT          -700000000
 0071   S,MSK4     OCT          -7000000
 0072   S,MSK3     OCT          -70000
 0073   S,MSK2     OCT          -700

 0074   S,ONE      OCT          -1
 0075   S,THREE    OCT          -3
 0076   S,LOW14    OCT          -37777
 0077   S,LOW15    OCT          -77777

 0078   S,CAC1     DEC          GGGG
 0079   S,CAC2     DEC          0000 GGGG
 0080   S,ONES     DEC          GGGG GGGG GGGG

 0081   S,US       OCT          -40000
 0082   S,DVMSK    OCT          037777

# Page 703
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   3        PAGE  32

P0083   RESERVATIONS.



 0084   T1         RESERVE      1
 0085   T2         RESERVE      1
 0086   T3         RESERVE      1
 0087   T4         RESERVE      1

 0088   INSTR      RESERVE      1
 0089   INSTR2     RESERVE      1
 0090   DBEF       RESERVE      1
 0091   DATA       RESERVE      1

 0092   LOCATION   RESERVE      1
 0093   ZDECR      RESERVE      1
 0094   NEW Z      RESERVE      1
 0095   EDIT WD    RESERVE      1

 0096   PAT PTR    RESERVE      1



R0097   ADDRESS CONSTANTS.

 0098   BANK 1     SPEC,B1                                  DAMN ZERO
 0099   BANK 2     SPEC,B2                                  DAMN ZERO
 0100   BANK 8     SPEC,B8                                  DAMN ZERO
 0101   BANK 5     SPEC,B5                                  DAMN ZERO

 0102   BANK8 M3   SPEC,B7                                  2045
 0103   SPEC 1777  SPEC,B2                                  1023
 0104   L SIXES    SPEC                                     SIXES
 0105   OP ALF     SPEC                                     OP ALF T

 0106   PRIN SPEX  SPEC                                     LINE +3
 0107              SPEC                                     NEXT LINE +3
 0108              SPEC                                     NEXT LINE +9
 0109              SPEC                                     LINE +9

 0110   IN PTR     SPEC                                     MASK LOC +64
 0111   OUT PTR    SPEC                                     MASK LOC +64
 0112   LAST PTR   SPEC                                     MASK LOC +64
 0113   L STD PLIM SPEC                                     UNRC SUBD +1

 0114   L GOGO P1  SPEC                                     CONTINUE +1
 0115   L RECYCLE  SPEC                                     RECYCLE
 0116   L TRON OFF SPEC                                     TR ON OFF
 0117   DEC 853    SPEC,B0                                  853

 01178  PHI WAA    SPEC,B7                                  600
 0118   SACO MSKS  MASKBASE     S,1           F,1

# Page 704
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   4        PAGE  33

P0119   ALPHABETIC CONSTANTS -- FIRST OF FOUR PAGES.



 0120   W SUBDIRC  ALF,2        SUBDIRECTOR:
 0121   W START    ALF          START
 0122   W AT       ALF          AT
 0123   START MSG  ALF,2        START AT

 0124   W PRINT    ALF          PRINT
 0125   W LIMIT    ALF          LIMIT
 0126   ALF 5000   ALF          5000
 0127   PLIM MSG   ALF,3        PRINT LIMIT =

 0128   2 LONS MSG ALF,3        START ADDRESS TOO LONG
 0129   UNOCS MSG  ALF,3        START ADDRESS NOT OCTAL
 0130   2 LONP MSG ALF,3        PRINT LIMIT TOO LONG
 0131   UNDPL MSG  ALF,3        PRINT LIMIT NOT DECIMAL

 0132   NO PAL MSG ALF,3        NO PARAGRAPHS LOADED
 0133   EMRGY MSG  ALF,4        IN EMERGENCY, ABORT TASK BY F79
 0134   PAGE 1     ALF          PAGE   1

 0135   SIMU HEAD  OCT          0024
 0136              ALF,5                YUL SYSTEM (MISCGA 2) FOR SACO:
 0137              ALF,5
 0138              ALF,5

# Page 705
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   5        PAGE  34

P0139   ALPHABETIC CONSTANTS -- SECOND OF FOUR PAGES.



 0140   SUBHEAD    OCT          0002
 0141              ALF,5            LOC     OP      ADDR     A      B(X)
 0142              ALF,5           A(X)     LP      Q       OVCTR    T3
 0143              ALF,5

 0144              OCT          4
 0145   LINE       ALF,5
 0146              ALF,5
 0147              ALF,5

 0148   OP ALF 1   ALF,4              TC     CCS   INDEX      XCH
 0149              ALF,4
 0150              ALF,4                      MP      DV       SU
 0151              ALF,4              CS      TS      AD     MASK

# Page 706
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   6        PAGE  35

P0152   ALPHABETIC CONSTANTS -- THIRD OF FOUR PAGES.



 0153   SP1        OCT          0001
 0154   NEXT LINE  ALF,5
 0155              ALF,5
 0156              ALF,5

 0157              RESERVE      7                                               USED IN DITTO PROCEDURE.

 0159   W TRACE    ALF          TRACE
 0160   W ON       ALF          ON
 0161   W OFF      ALF          OFF
 0162   W R        ALF          R

 0163   BLANK 1T3  ALF             00000
 0164   BLANK 1T4  ALF              0000
 0165   OVF BLOT   ALF            ▪00000
 0166   ZERO C6    ALF               0
 0167   DITTO      ALF               "

 0168              DEC          -5000
 0169   PRINT LIM  DEC          -5000
 0170   SKIP       OCT          4
 0171   BLANKS     ALF

 01722  W CUT OFF  ALF          CUT OFF
 0173   W ILLEGOP  ALF          ILLEGOP
 0174   W LOOPING  ALF          LOOPING
 0175   W PRNT MAX ALF          PRINTMAX

 0176   W INF LOOP ALF,2           INFINITE LOOP
 0177   CAUSE      ALF,2        00000000
 0178   T DUMP MSG ALF,5        TERMINAL DUMP OF ERASABLE MEMORY FOLLOWS
 0179   END SI MSG ALF,2        END SIMULATION

# Page 707
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   7        PAGE  36

P0180   ALPHABETIC CONSTANTS -- FOURTH OF FOUR PAGES.



 0181   2 LONT MSG ALF,4        TRACE ON/OFF ADDRESS TOO LONG
 0182   UNOTR MSG  ALF,4        TRACE ON/OFF ADDRESS NOT OCTAL
 0183   DUPTR MSG  ALF,4        TRACE ON/OFF ADDRESS DUPLICATED
 0184   OMIT MSG   ALF,5          TRACE OFF FOR          INSTRUCTIONS

 0185   W CORONER  ALF,2        CORONER'S REPORT

# Page 708
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   8        PAGE  37

P0186   NUMERIC CONSTANTS.



 0187   ZERO       OCT          0
 0188   TWO        OCT          -2
 0189   FOUR       OCT          -4
 0190   EIGHT      DEC          -8

 0191   TWEVLE     FXBIN        -12
 0192   FIFTY      FXBIN        -50
 0193   C65        FXBIN        -65
 0194   DEC 852    FXBIN        -852

 0195   2K         OCT          -2000
 0196   5 C6       OCT          -5 0000
 0197   6 C6       OCT          -6 0000

 0199   SIXES      OCT          06, 06, 0606, 060606, 0606 0606
 0200              OCT          0606 0606 06
 0201   SP3        OCT          0003
 0202   NEG ONE    OCT          -177776
 0203   BIT 14     OCT          -20000

 0204   SIGN CLIP  DEC          0GGG GGGG
 0205   BANK MASK  OCT          -36000
 0206   EDIT PREF  OCT          -20
 0207   GENERASE   OCT          -25

 0208   L BANK REG OCT          -15
 0209   START ADR  OCT          0
 0210   HOLD LINE  DEC          GGGG GGGG GGGG,-1, 0

 0211   LINE CNT   FXBIN        -51
 0212   TASK LINS  DEC          0
 0213   PAGE NO    DEC          -1
 0214   TRACE OFF  DEC          0

 0215   LOC FLAG   OCT          2
 0216   ON         OCT          3
 0217   OFF        OCT          5
 0218   B1B2       OCT          6

# Page 709
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.   9        PAGE  38

P0219   ASSIGNMENTS.



 0220   PAGE HEAD  ASSIGN       0,20

 0221   YUL TYPER  ASSIGN       0,63
 0222   RD SBDIRC  ASSIGN       0,65
 0223   HOWZAT     ASSIGN       0,66
 0224   IGN SUBDR  ASSIGN       0,68

 0225   UNRC SBDR  ASSIGN       0,69
 0226   E SYLT OK  ASSIGN       0,70
 0227   FETCH SS   ASSIGN       0,71
 0228   MANUF RTN  ASSIGN       0,76

 0229   YUL MASKS  ASSIGN       0,77
 0230   OCTAL 20   ASSIGN       0,78
 0231   WHODUNIT   ASSIGN       0,80
 0233   TYP ABORT  ASSIGN       0,89

 0234   L OBJC MSG ASSIGN       0,90
 0235   RJEC SUBD  ASSIGN       0,91
 02351  DEPAGIN8   ASSIGN       0,101
 02352  YUL D2A ZS ASSIGN       0,119

 0236   A          ASSIGN       4,0
 0237   Q          ASSIGN       4,1
 0238   Z          ASSIGN       4,2
 0239   LP         ASSIGN       4,3

 0240   BANKREG    ASSIGN       4,13
 0241   CYR        ASSIGN       4,16
 0242   SR         ASSIGN       4,17
 0243   CYL        ASSIGN       4,18

 0244   SL         ASSIGN       4,19
 0245   OVCTR      ASSIGN       4,28
 0246   TIME1      ASSIGN       4,29
 0247   TIME2      ASSIGN       4,30

 0248   TIME3      ASSIGN       4,31

 0249   MON TAPE   ASSIGN       7,1
 0250   EOR        ASSIGN       7,4
 0251   MON PRINT  ASSIGN       7,23
 0252   MON A2D    ASSIGN       7,41

 0253   MON WAKE   ASSIGN       7,99
 0254   MON SLEEP  ASSIGN       7,166

# Page 710
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  10        PAGE  39

P0257   EQUIVALENCES.



 0258   DAMN ZERO  EQUALS       0
 0259   AA         EQUALS       128
 0260   AMTF       EQUALS       384
 0261   SPRA       EQUALS       128
 0262   SP2        EQUALS       SUBHEAD

 0263   OCT 7      EQUALS       ACO8
 0264   LOW2       EQUALS       THREE
 0265   LOW4       EQUALS       D12
 0266   LOW12      EQUALS       C7T8

# (jl) Note: The following two cards seem to specify the same equivalence. Does the assembler ignore
# multiple identical equivalences?
 0267   16 ONES    EQUALS       CAC3
 0268   16 ONES    EQUALS       CAC3
 0269   E BIT      EQUALS       E FLAG
 0270   LP BIT     EQUALS       LP FLAG

 0271   LOW 16     EQUALS       CAC3
 0272   SPEC ZERO  EQUALS       SIGN
 0273   POINTERS   EQUALS       IN PTR

# Page 711
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  11        PAGE  40

P0274              TWO PRIMARY SUBDIRECTORS ARE RECOGNIZED FOR USE WITH MISCGA.  THE FIRST, WHICH IS REQUIRED, SPECIFIES
R0276   THE STARTING ADDRESS BY "START AT NNNN", WHERE NNNN IS FROM 1 TO 4 OCTAL DIGITS.  THE SECOND IS OPTIONAL AND
R0278   SPECIFIES A PRINT LINE LIMIT BY "PRINT LIMIT = DDDDD" (THE "=" IS OPTIONAL, AND "DDDDD" IS FROM 1 TO 5 DECIMAL
R0280   DIGITS).  IF THE PRINT LIMIT SUBDIRECTOR IS MISSING OR INVALID, THE PRINT LIMIT IS 5000 LINES.

 0282   WHAT SUBD  TX           YUL MASKS     -             Z,MXR
 0283              S,YUL TYPER  W SUBDIRC     AA+2          C,+1                TYPE "SUBDIRECTOR:".
 0285              WA           Z,X6          OCTAL 20      Z,X5
 0286   SUSPECT    TX           Z,X5          -             WHODUNIT
 0287              NA           N,X5,3        W START       HOWZAT              "START" IS REQUIRED.
 0289              TS           SACO MSKS     Z,MXR         C,-2           C
 0290              NA           N,X5,3        W AT          HOWZIS              "AT" IS REQUIRED.
 0292              LA, CHAR6    5 C6          5,2           ILL START           BRANCH IF START ADR MORE THAN 4 DIGITS.
 0294              LA, CHAR6    5,2           ZERO          UNO START           BRANCH IF START ADDRESS IS BLANK.
 0296              LA, CHAR8    EIGHT         5,2           UNO START           BRANCH IF START ADDRESS NOT OCTAL.
 0298              WA           Z,X5          THREE         WHODUNIT
 0299              NA           5,3           ONES          HOWZIS              SUPERFLUOUS WORDS ARE FORBIDDEN.

 0301              SWS, ONES    N,X5          A,1           START MSG +1
 0302              TS           YUL MASKS     Z,MXR         E SYLT OK           MAKE GRP B SEEK DESIRED PROGRAM.
 0304              S, YUL TYPER START MSG     AA+2          C,+1                TYPE START ADDRESS.
 0306              TS           SACO MSKS     Z,MXR         C,+3

 0307              SWS, ONES    START ADR     3,L           START ADR           SHIFT UP DIGITS THUS FAR.
 0309              SWS, ACO8    START MSG +1  A,7           START ADR           CONVERT ALPHA START ADR TO OCTAL.
 0311              SWS, ONES    START MSG +1  A,1,L         START MSG +1        POSITION NEXT ALPHA OCTAL DIGIT.
 0313              NA, CHAR1    START MSG +1  BLANKS        C,-3                BRANCH IF MORE START ADR DIGITS.

 0315              WA           Z,X6          OCTAL 20      Z,X5
 0316              TS           Z,X5          WHODUNIT      RD SBDIRC           READ 2ND SUBDIRECTOR IF ANY.

 0318   STD PLIM   TS           ALF 5000      ALF PLIM      PROC PLIM           WHEN 2ND SUBDIRECTOR LACKING OR BAD.

 0320              TX           WHODUNIT      -             Z,X5
 0321              TX           TWO           -             HOLD LINE +1        SHOW THAT A SUBDIRECTOR WAS READ.
 0323              NA           N,X5,3        W PRINT       STD PLIM            IF NOT "PRINT", MAYBE "TRACE".
 0325              TS           ZERO          HOLD LINE +1  SUSPECT        C    SHOW THAT PRINT LIMIT CARD WAS READ.
 0327              NA           N,X5,3        W LIMIT       UNRC SUBD           "LIMIT" IS REQUIRED.
 0329              LA, CHAR6    6 C6          5,2           ILL PLIM            BRANCH IF PRINT LIMIT OVER 5 DIGITS.
 0331              SWE, CHAR8   5,2           A,2           Z,AU1
 0332              WA           Z,AU1         L SIXES       Z,AU1
 0333              WA           N,AU1         N,X5          PRINT LIM
 0334              NA, DCHECK   PRINT LIM     ZERO          UNDC PLIM           BRANCH IF PRINT LIMIT NOT DECIMAL.
 0336              TS           N,X5,3        ALF PLIM      SUSPECT        C
 0337              NA           N,X5          ONES          UNRC SUBD           SUPERFLUOUS WORDS ARE FORBIDDEN.

 0339   PROC PLIM  SWS, C7T8    ALF PLIM      A,2,L         PLIM MSG +1         USE CORRECTLY SPECIFIED PRINT LIMIT OR
 0341              SWS, C1T3    ALF PLIM      A,2,L         PLIM MSG +2         USE 5000 LINES OTHERWISE.
 0343              TS           Z,SC,1        Z,X4          MON A2D             COMVERT ALPHA TO DECIMAL.
 0345   ALF PLIM   RESERVE      2
 0346              TS           ALF PLIM +1   PRINT LIM     WHAT SUBD      C    STORE LIMIT, RECOVER BK 1 MASKS.
 0348              S, YUL TYPER PLIM MSG      AA+3          C,+1                TYPE PRINT LIMIT.

# Page 712
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  12        PAGE  41

P0350   INITIALIZE PAGE HEAD, SACO MEMORY, PRINT BUFFER FLAG TABLE.  READ TRACE ON/OFF SUBDIRECTOR CARDS, PLANT FLAGS.

 0352   SC MASKER  TX           SACO MSKS     -             Z,MXR
 0353              TX           PAGE HEAD +1  -             SIMU HEAD +1        PUT LOG NUMBER INTO PAGE HEADING.
 0355              TX           L OBJC MSG    -             Z,AU1
 0356              TN           N,AU1         7             SIMU HEAD +6        PUT OBJECT MESSAGE INTO PAGE HEADING.
 0358              TN           PAGE HEAD +12 2             N,AU2               ALSO FANCY DATE.
 0360              S, MON PRINT SIMU HEAD                                       PRINT PARTIAL PAGE HEAD. SP20.

 0362              TX           PAGE 1        -             SIMU HEAD +15
 0363              TN           BANK 2        2             Z,X4                BANK2 TO X4, BANK 8 TO X5.
 0365              TX           C65           -             Z,AU1
 0366              MT           E BIT         63            N,X4,1              CLEAR SACO MEMORY.
 0368              MT           ZERO          63            N,X5,1              CLEAR PRINT BUFFER FLAG TABLE.
 0370              NA           Z,AU1,1       ONE           C,-2
 0371              TX           E BIT         -             N,X4
 0372              TX           ZERO          -             N,X5
 0373              SSL, THREE   HOLD LINE +1  0             TR ON OFF           CHOICE IS 0, 1, OR 2.

 0375   UNREC SBD  TS           YUL MASKS     Z,MXR         UNRC SBDR           UNRECOGNIZED WD IN TRACE ON/OFF SUBDIR.

 0377   TR ON OFF  TS           SACO MSKS     Z,MXR         RD SBDIRC           GET TRACE ON/OFF SUBDIRECTOR IF ANY.
 0379              TS           IN PTR        Z,AU1         INIT BUFF           EXIT WHEN SUBDIRECTORS RUN OUT.
 0381              WA           Z,X6          OCTAL 20      Z,X5
 0382              TX           Z,X5          -             WHODUNIT
 0383              NA           N,X5,3        W TRACE       UNREC SBD           "TRACE" IS REQUIRED.
 0385              TX           Z,X5          -             WHODUNIT
 0386              NA           N.X5          W ON          C,+3
 0387              TX           OFF           -             EDIT WD
 0388              TS           Z,X5,3        -             C,+3
 0389              NA           N,X5,3        W OFF         UNREC SBD           EITHER "ON" OR "OFF" IS REQUIRED.
 0391              TX           ON            -             EDIT WD
 0392              NA           N,X5          W R           C,+2                "R:" FOR REFERENCE IS OPTIONAL.
 0394              TS           Z,X5,3        -             C,+2
 0395              EX           EDIT WD       B1B2          EDIT WD             CLEAR REEFERENCE BIT IF NO "R:".
 0397              LA, CHAR6    5 C6          5,2           ILL TRONF           BRANCH IF ADDRESS MORE THAN 4 DIGITS.
 0399              LA, CHAR6    5,2           ZERO          UNO TRONF           BRANCH IF ADDRESS IS BLANK.
 0401              LA, CHAR8    EIGHT         5,2           UNO TRONF           BRANCH IF ADDRESS IS NOT OCTAL.
 0403              WA           Z,X5          THREE         WHODUNIT
 0404              NA           5,3           ONES          UNREC SBD           SUPERFLUOUS WORDS ARE FORBIDDEN.

 0406              TX           N,X5          -             LOCATION
 0407              TS           ZERO          Z,X5          C,+2
 0408              SWS, ONES    Z,X5          3,L           Z,X5                SHIFT UP DIGITS THUS FAR.
 0410              SWS, ACO8    LOCATION      A,7           Z,X5                CONVERT ALPHA ADDRESS TO OCTAL.
 0412              SWS, ONES    LOCATION      A,1,L         LOCATION            POSITION NEXT ALPHA OCTAL DIGIT.
 0414              NA, CHAR1    LOCATION      BLANKS        C,-3                BRANCH IF MORE ADDRESS DIGITS.
 0416              WA           Z,X5          BANK 8        Z,X5                FIND PLACE IN TABLE IN BANKS 8 AND 9.
 0418              NA           N,X5          ZERO          DUP TRONF           BRANCH IF ADDRESS IS A DUPLICATE.
 0420              TS           EDIT WD       N,X5          TR ON OFF           PLANT TRACE ON/OFF FLAG, GET NEXT SUBDR.

# Page 713
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  13        PAGE  42

P0422   INITIALIZE PRINT BUFFER AND LOAD PROGRAM INTO BANKS 2 AND 3.

 0423   INIT BUFF  MT           ZERO          3             N,AU1,1
 0424              TX           Z,AU1,1       -             Z,AU2
 0425              SWE, CAC2    Z,AU1         16,L          N,AU2               INITIALIZE TRACE LINE (PRINT) BUFFER.
 0427              NA           Z,AU1         BANK 5        C,-3
 0428              TS           IN PTR        Z,AU1         C,-2           C

 0429   READ LOOP  TS           BANK 2        Z,X5          FETCH SS            FETCH A PARAGRAPH IF ANY LEFT.
 0431              TS           START ADR     5,2           END LOAD            NO MORE, INITIALIZE Z REGISTER AND BGIN.
 0433              LA           OCTAL 20      1,2           C,-1                CUT OFF LOADING AFTER BANK 3.
 0435              TX           Z,X5          -             Z,R3
 0436              WA           Z,X1          THREE         Z,X5                1800 ADDRESS OF 1ST WD IN PARAGRAPH.
 0438              SWS, LOW12   1,2           8,L           Z,R3                DITTO IN SACO MEMORY.

 0440   LOAD LOOP  EX           N,X5,1        16 ONES       INSTR
 0441              SWS, LOW15   INSTR         1             INSTR               CROP PARITY AND DUPLICATE SIGN.
 0443              TS           SP3           SIMU HEAD     FLAGSET        C    APPLY FLAGS TO WORD.
 0445              TX           INSTR         -             N,R3,1              LOAD WORD INTO SACO MEMORY.
 0447              NA           5,2           EOR           LOAD LOOP           BRANCH IF MORE WORDS IN PARAGRAPH.
 0449              TS           -             -             READ LOOP           GO TO GET NEXT PARAGRAPH.

 0451   END LOAD   TS           YUL MASKS     Z,MXR         MON TAPE
 0452              RW,1         -             -             -                   REWIND YULPROGS.
 0454              LA           SIMU HEAD     SP3           OK LOAD             BRANCH IF ANY PARAGRAPHS LOADED.

 0456              TN           NOPAL MSG     3             LINE +7
 0457              S, MON PRINT LINE -1                                         PRINT "NO PARAGRAPHS LOADED".
 0459              S, YUL TYPER NOPAL MSG     AMTF +3       TYP ABORT           TYPE "NO PARAGRAPHS LOADED", ABORT.

 0461   OK LOAD    TX           PHI WAA       -             Z,X4
 0462              TS           Z,SC,6        4,107         MON WAKE       C

 0463              TS           Z,SC          Z,R0          OK LOAD        C    SET UP SPECIAL FIXED START FOR ABORTING.
 0464   GRP B PCR  SPCR                                     N,R0,3
 0465              TS           ZERO          GB SWITCH     MON SLEEP      C    GO TO SLEEP AND AWAIT FIXED START.
 0466              LA           CAUSE         ZERO          C,-1                BEWARE OF ACCIDENTAL WAKING.

 0467              TS           C,+1          RECYCLE2 +2   4,106               SET TRIPWIRE FOR MAIN GROUP.
 0468              S, MON TYPER W CUT OFF     SPRA +8       TERM DUMP           GROUP A TYPES "CUT OFF ", ABORTS.

 0469              TS           ZERO          LOCATION      SC MASKER      C
 0470   GB SWITCH  WD           Z,SC          ONE           Z,SC
 0471              SWS, ACO6    GRP B PCR     16            EMRGY MSG +3
 0472              S, YUL TYPER EMRGY MSG     AA +4         C,+1                TYPE "IN EMERGENCY, ABORT TASK BY FB9 ".
 0473              TX           BANK 2        -             Z,R1
 0474              TX           BANK 2        -             Z,R3
 0475              TX           BANK 2        -             Z,X4
 0476              TS           SPEC ZERO     Z,R7          RECYCLE             INITIALIZE SPECIAL REGISTERS, BEGIN.

# Page 714
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  14        PAGE  43

P0478   SUBROUTINE TO APPLY FLAGS DURING LOADING, INDEXING, AND TC TO A.

 0479   FLAGSET    LA,LOW12     2K            INSTR         ZEROFLG        C
 0480              LA,LOW12     GENERASE      INSTR         EFLAG2         C
 0481              NA,B3TB12    INSTR         EDITPREF      C,+2           C
 0482              SS           EDITFLG       FLAGS         INSTR
 0483              NA,LOW12     LOW2          INSTR         C,+2           C

 0484              SS           LPFLAG        FLAGS         INSTR
 0485   EFLAG2     SS           EFLAG         FLAGS         INSTR
 0486   ZEROFLG    SS           ZERO          FLAGS         INSTR



R0487   UNRECOGNIZED WORD IN "START AT" SUBDIRECTOR CARD.

 0488   HOWZIS     TS           YUL MASKS     Z,MXR         HOWZAT              UNRECOGNIZED-WORD ABORT.

R0490   START ADDRESS ILLEGAL.

 0491   ILL START  TX           YUL MASKS     -             Z,MXR
 0492              S, YUL TYPER 2 LONS MSG    AMTF +3       RJEC SUBD           START ADDRESS TOO LONG.
 0494   UNO START  TX           YUL MASKS     -             Z,MXR
 0495              S, YUL TYPER UNOCS MSG     AMTF +3       RJEC SUBD           START ADDRESS NOT OCTAL.

R0497   UNRECOGNIZED WORD IN "PRINT LIMIT" SUBDIRECTOR CARD.

 0498   UNRC SUBD  TS           YUL MASKS     Z,MXR         UNRC SBDR           UNRECOGNIZED WORD IN PRINT LIMIT SUBDIR.
 0500              TS           SACO MSKS     Z,MXR         STD PLIM            SET PRINT LIMIT = 5000 IN THIS CASE.

R0502   ILLEGAL PRINT LIMIT.  USE 5000.

 0503   ILL PLIM   TX           YUL MASKS     -             Z,MXR
 0504              S, YUL TYPER 2 LONP MSG    AMTF +3       C,+3                PRINT LIMIT TOO LARGE.
 0506   UNDC PLIM  TX           YUL MASKS     -             Z,MXR
 0507              S, YUL TYPER UNDPL MSG     AMTF +3       C,+1                PRINT LIMIT NOT DECIMAL.
 0509              TS           L STD PLIM    Z,SC          IGN SUBDR           USE PRINT LIMIT = 5000 IN THESE CASES.

R0511   ILLEGAL OR DUPLICATED TRACE ON/OFF ADDRESS.

 0512   ILL TRONF  TX           YUL MASKS     -             Z,MXR
 0513              S, YUL TYPER 2 LONT MSG    AMTF +4       C,+5
 0514   UNO TRONF  TX           YUL MASKS     -             Z,MXR
 0515              S, YUL TYPER UNOTR MSG     AMTF +4       C,+3
 0516   DUP TRONF  TX           YUL MASKS     -             Z,MXR
 0517              S, YUL TYPER DUPTR MSG     AMTF +4       C,+1
 0518              TS           L TRON OFF    Z,SC          IGN SUBDR

# Page 715
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  15        PAGE  44

P0519   MAIN SIMULATOR LOOP.

 0520   RECYCLE    SS           Z             LOW12         Z,R1
 0521              WA           Z             ONE           Z
 0522              TX           N,R1          -             INSTR

 0523   RECYCLE2   SS           INSTR         LOW12         Z,R1
 0524              EX           N,R1          LOW 16        DBEF
 0525              LA, LOW12    Z             2K            EXERASE             BRANCH IF ABOUT TO EXECUTE FROM E MEMRY.
 0527              SSL,LOW4     INSTR         12            C,+1

 0528              TS           Z,R7,1        -             TC                  0000
 0530              TS           Z,R7,2        -             CCS                 0001
 0532              TS           Z,R7,2        -             INDEX               0010
 0534              TS           Z,R7,2        -             XCH                 0011

 0536              S, MON TYPER W ILLEGOP     SPRA +8       TERMDUMP            0100
 0538              S, MON TYPER W ILLEGOP     SPRA +8       TERMDUMP            0101
 0540              S, MON TYPER W ILLEGOP     SPRA +8       TERMDUMP            0110
 0542              S, MON TYPER W ILLEGOP     SPRA +8       TERMDUMP            0111

 0544              S, MON TYPER W ILLEGOP     SPRA +8       TERMDUMP            1000
 0546              TS           Z,R7,8        -             MP                  1001
 0548              TS           Z,R7,16       -             DV                  1010
 0550              TS           Z,R7,2        -             SU                  1011

 0552              TS           Z,R7,2        -             CS                  1100
 0554              TS           Z,R7,2        -             TS                  1101
 0556              TS           Z,R7,2        -             AD                  1110
 0558              TS           Z,R7,2        -             MASK                1111

 0560   EXERASE    TS           Z,SH          Z,SC          FLAG SET       C    SET FLAGS BEFORE EXECUTING FROM E MEMRY.

R0562   RETURN HERE AFTER EACH INSTRUCTION.

 0563   REEDCHK    TS           -             -             EDITCHK        C
 0564              TX           LRECYCLE                    T4

 0565   TIMES      LA           Z,R7          DEC853        EDITOR

 0566              WA           TIME1         ONE           TIME1
 0567              SWE,ONE      TIME1         14            T1
 0568              EX           TIME1         LOW14         TIME1
 0569              WA           T1            TIME2         TIME2
 0570              WA           TIME3         ONE           TIME3
 0571              WD           Z,R7          DEC852        Z,R7
 0572              NA,SIGN      TIME3         SIGN          EDITOR

 0573              TX           ZERO          -             TIME3
 0574              S, MON TYPER C,+1          SPRA +8       TERMDUMP
 0575              ALF          T3RUPT

# Page 716
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  16        PAGE  45

P0576   PROCEDURE FOR TC (TRANSFER CONTROL).

 0577   TC         TX           N,R1          -             INSTR2
 0578              TX           Z             -             Q
 0579              EX           Z,R1          LOW12         NEWZ
 0580   TC1        TX           ONE           -             ZDECR
 0581              TS           ZERO          T4            TIMES



R0582   PROCEDURE FOR CCS (COUNT COMPARE AND SKIP).

 0583   CCS        EX           N,R1          16ONES        A
 0584              TX           ONE           -             ZDECR
 0585              NA,SIGN      A             ZERO          NEGCCS

 0586              NA           A             ZERO          C,+4

 0587   ZEROBR     WA           Z             ONE           Z
 0588              WA           ZDECR         ONE           ZDECR
 0589              TS           -             -             REEDCHK

 0590   DECBR      WD           A             ONE           A
 0591              TS           -             -             REEDCHK

 0592   NEGCCS     WA           Z             TWO           Z
 0593              TX           THREE         -             ZDECR
 0594              NA           A             16ONES        C,+2

 0595              TS           ZERO          A             ZEROBR

 0596              HA           A             16ONES        A
 0597              TS           -             -             DECBR

# Page 717
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  17        PAGE  46

P0598   PROCEDURE FOR INDEX (INDEX NEXT INSTRUCTION).

 0599   INDEX      EX           N,R1          16ONES        T1
 0690              SS           Z             LOW12         Z,R3
 0601              TX           Z             -             NEWZ
 0602              WA           N,R3          T1            DATA
 0603              SWE,ONE      DATA          16            T1
 0604              WA           T1            DATA          DATA
 0605              TS           ONE           ZDECR         EDITCHK        C
 0606              TX           INSTR         -             T2
 0607              EX           DATA          16ONES        INSTR
 0608              TS           -             -             FLAGSET        C
 0609              TX           INSTR         -             INSTR2
 0610              TX           T2            -             INSTR
 0611              TS           ZERO          T4            TIMES



R0612   PROCEDURE FOR XCH (EXCHANGE).

 0613   XCH        NA,FLAGS     INSTR         ZERO          XCH1

 0614              EX           N,R1          16ONES        A
 0615              TS           ONE           ZDECR         REEDCHK+1

 0616   XCH1       TX           N,R1          -             DATA
 0617              LA,LOW12     INSTR         TWO           C,+2

 0618              SWS,US       A             1             A

 06182             NA,LOW12     INSTR         TWO           C,+3
 06184             TX           A             -             NEWZ
 06186             TS           DATA          A             TC1

 0619              TX           A             -             N,R1
 0620              NA,LOW12     INSTR         LBANKREG      C,+2

 0621              EX           N,R1          BANKMASK      N,R1

 0622              TX           ONE           -             ZDECR
 0623              TS           DATA          A             REEDCHK

# Page 718
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  18        PAGE  47

P0624   PROCEDURE FOR CS (CLEAR AND SUBTRACT).

 0625   CS         HA           N,R1          16ONES        DATA
 0626              TX           ONE           -             ZDECR
 0627              TS,16ONES    DATA          A             REEDCHK



R0628   PROCEDURE FOR TS (TRANSFER TO STORAGE).

 0629   TS         TX           ONE           -             ZDECR
 0639              TX           A             -             NEWZ
 0640              LA,LOW12     INSTR         TWO           C,+4

 0641              SWS,US       NEWZ          1             NEWZ
 0642              NA,LOW12     INSTR         LBANKREG      C,+2

 0643              EX           NEWZ          BANKMASK      NEWZ

 0644   OVIND      SSL,LOW2     A             14            C,+1
 0645              TS           -             -             TSZ CHK
 0646              TS           ONE           A             TS SKIP
 0647              TS           NEGONE        A             TS SKIP
 0648   TSZ CHK    NA, LOW12    INSTR         TWO           C,+2
 06482             TS           ZERO          T4            TIMES
 06484             TS           NEWZ          N,R1          REEDCHK

 0649   TS SKIP    WA           Z             ONE           Z
 0650              TS           TWO           ZDECR         TSZ CHK

# Page 719
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  19        PAGE  48

P0653   PROCEDURE FOR AD (ADD).

 0654   AD         WA           N,R1          A             DATA
 0655              SWE,ONE      DATA          16            A
 0656              WA           DATA          A             DATA
 0657              EX           DATA          16ONES        A
 0658              TX           ONE           -             ZDECR
 0659              SSL,LOW2     A             14            C,+1

 0660              TS           -             -             REEDCHK
 0661              TS           ONE           T1            OVCTRINC
 0662              TS           NEGONE        T1            OVCTRINC
 0663              TS           -             -             REEDCHK

 0664   OVCTRINC   WA           T1            OVCTR         OVCTR
 0665              SWE,ONE      OVCTR         16            T1
 0666              WA           T1            OVCTR         OVCTR
 0667              EX           OVCTR         16ONES        OVCTR
 0668              TS           Z,R7,1        -             REEDCHK



R0669   PROCEDURE FOR MASK (BOOLEAN AND).

 0670   MASK       EX           N,R1          16ONES        DATA
 0671              EX           DATA          A             A
 0672              TS           ONE           ZDECR         REEDCHK+1



R0673   INTRODUCTION TO PROCEDURE FOR SU (SUBTRACT).  JOINS PROCEDURE FOR AD.

 0674   SU         HA           N,R1          16ONES        DATA
 0675              WA           DATA          A             DATA
 0676              TS           -             -             AD+1



R0677   PROCEDURE FOR MP (MULTIPLY).

 0678   MP         TS           ONE           ZDECR         SGNABS         C
 0679              BM           A             DATA          T2
 0680              TS           -             T2            -
 0681              EX           T2            LOW14         LP
 0682              SWE,LOW14    T2            14            A
 0683              NA,SIGN      T1            SIGN          REEDCHK +1

 0684              HA           A             16ONES        A
 0685              HA           LP            16ONES        LP
 0686              TS           -             -             REEDCHK +1

# Page 720
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  20        PAGE  49

P0687   PROCEDURE FOR DV (DIVIDE).

 0688   DV         TX           N,R1          -             DATA
 0689              TX           ZERO          -             T4
 0690              HA,SIGN      DATA          A             T4
 0691              SWS,US       T4            1             T4
 0692              SM           ONE           T4            T4
 0693              NA,SIGN      DATA          SIGN          C,+3

 0694              NA,SIGN      A             ZERO          C,+2

 0695              SS           ZERO          ONE           T4

 0696              TS           ONE           ZDECR         SGNABS         C
 0697              LA,LOW16     DATA          A             DVOVF

 0698              SWE,DVMSK    DATA          30,L          DATA
 0699              SWE,DVMSK    A             30,L          A
 0700              BD           DATA          A             T3
 0701              EX           T3            DVMSK         T3
 0702              BM           T3            DATA          T2
 0703              EX           T2            SIGNCLIP      T2
 0704              WD           A             T2            T2
 0705              SWE,LOW14    T2            16            Q
 0706              HA           Q             16ONES        Q
 0707              SWE,LOW14    T3            30            A
 0708              TX           T4            -             LP
 0709              NA,SIGN      T1            SIGN          REEDCHK +1

 0710              HA           A             16ONES        A
 0711              TS           -             -             REEDCHK +1

 0712   DV OVF     S, MON TYPER C,+1          SPRA +8       TERMDUMP
 0713              ALF          DIV OVF



R0714   SUBROUTINE TO GENERATE SIGN AND ABSOLUTE VALUE OF AN OPERAND.  USED BY MULTIPLY AND DIVIDE.

 0716   SGNABS     EX           N,R1          16ONES        DATA           C
 0717              SWS,US       DATA          1             DATA           C
 0718              SWS,US       A             1             A              C
 0719              HA           A             DATA          T1             C
 0720              NA,SIGN      DATA          SIGN          C,+2           C

 0721              HA           DATA          16ONES        DATA           C

 0722              NA,SIGN      A             SIGN          C,+2           C

 0723              HA           A             16ONES        A

 0724              TX           -             -             -

# Page 721
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  21        PAGE  50

P0725   PROCEDURE TO SIMULATE THE ACTION OF EDITING REGISTERS.

 0726   EDITCHK    NA,FLAGS     INSTR         ZERO          C,+2           C
 0727              TX           -                           -                   FAST EXIT WHEN NO EDITING REGS INVOLVED.

 0729              NA,EBIT      INSTR         ZERO          C,-1           C

 0730              NA,LPBIT     INSTR         ZERO          LPCYCLE        C    BRANCH WHEN OPERAND IS LP.

 0732              SSL,LOW4     INSTR         2,L           C,+1           C



R0733   PROCEDURE TO SIMULATE CYR (CYCLE RIGHT).

 0734   CYRCYCLE   SWS,SIGN     CYR           15,L          CYR            C
 0735              SWS,LOW15    CYR           1             CYR
 0736              PR
 0737              PR



R0738   PROCEDURE TO SIMULATE SR (SHIFT RIGHT).

 0739   SRCYCLE    SWS,LOW14    SR            1             SR



R0740   PROCEDURE TO SIMULATE LP (LOW-ORDER PRODUCT REGISTER).

 0741   LPCYCLE    SWS,SIGN     LP            15,L          LP             C
 0742              SWS,LOW15    LP            1             LP             C
 0743              SS           ZERO          BIT14         LP



R0744   PROCEDURE TO SIMULATE CYL (CYCLE LEFT).

 0745   CYLCYCLE   SWS,LOW15    CYL           1,L           CYL            C
 0746              SWS,ONE      CYL           15            CYL            C
 0747              SWS,SIGN     CYL           1,L           CYL
 0748              PR



R0749   PROCEDURE TO SIMULATE SL (SHIFT LEFT).

 0750   SLCYCLE    SWS,LOW14    SL            1,L           SL             C
 0751              SWS,ONE      SL            14            SL

# Page 722
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  22        PAGE  51

P0752              EDITOR ROUTINE TO PREPARE PRINTED OUTPUT.  THIS PART DETECTS THE OCCURRENCE OF INFINITE LOOPS.  THE
R0754   BINARY OUTPUT OF A TRACED INSTRUCTION, NINE SACO WORDS, IS CONDENSED INTO THREE CAC-WORDS.  A BUFFER OF FOUR-
R0756   WORD ITEMS IS MAINTAINED, WHERE THE FIRST THREE WORDS ARE A TRIPLE OF CAC-WORDS FOR A LINE, AND THE FOURTH IS
R0758   A CAC-WORD CONTAINING A THREAD TO THE NEXT ITEM (IN ORDER OF PRINTING) IN CAC2, AND A THREAD TO THE NEXT ITEM
R0760   WITH THE SAME VALUE OF Z IN CAC3 (OR ZERO IF NONE).  BANKS 8 AND 9 CONTAIN SPECS, EACH POINTING TO THE EARLIEST
R0762   ITEM IN THE BUFFER WITH THE CORRESPONDING VALUE OF Z.  BY "VALUE OF Z" HERE IS MEANT B(Z), I.E. THE LOCATION.
R0764   AN INDICATOR IS KEPT IN START ADR SHOWING WHETHER A LOOP PATTERN IS IN A STATE OF PARTIAL COMPLETION.  UP TO
R0766   FOUR POINTERS ARE KEPT (POINTERS ARE SPECS POINTING TO ITEMS IN THE BUFFER).  THE TWO THAT ARE ALWAYS KEPT ARE
R0768   "IN PTR", POINTING TO THE NEXT ITEM-SLOT TO BE FILLED AND "OUT PTR" POINTING TO THE NEXT ITEM TO BE PRINTED.
R0770   WHEN A LOOP PATTERN IS IN PROCESS, "PAT PTR" POINTS TO THE FIRST ITEM IN THE PATTERN, AND X3, THE COMPARISON
R0772   POINTER, POINTS TO THE ITEM WITH WHICH THE NEXT INCOMING LINE IS TO BE COMPARED.  THE STRATEGY, WITH AND WITHOUT
R0774   A PATTERN IN PROCESS, IS AS FOLLOWS:

R0775   CASE 1: NO PATTERN (C(START ADR) NOT ALL ONES)

R0776              IF THREAD IN BKS 8-9 IS VOID, THREAD IT TO A NEW ITEM FORMED FROM THIS LINE.
R0778              IF NON-VOID, THREAD THROUGH ITEMS WITH SAME B(Z) AS THIS LINE, LOOKING FOR A 3-WORD MATCH.
R0780                           IF NONE, THREAD LAST ITEM EXAMINED TO A NEW ITEM FORMED FROM THIS LINE.
R0782                           IF FOUND, SET PAT PTR AND X3, DISCARD THIS LINE, AND SET START ADR TO ALL ONES.
R0784                                         IF MATCH WAS WITH PRECEDING LINE, INDICATE TCA TRAP AND ABORT.

R0786   CASE 2: PATTERN IN PROCESS (C(START ADR) IS ALL ONES)

R0787              COMPARE THIS LINE WITH EXISTING ITEM ACCORDING TO X3 (THE COMPARISON POINTER).
R0789              IF IT MATCHES, SEE IF MATCH WAS WITH THE LAST NON-REPEATING LINE.
R0791                           IF SO, THE SIMULATED PROGRAM IS IN AN INFINITE LOOP, AND THE RUN IS ABORTED.
R0793                           IF NOT, INDEX THE COMPARISON POINTER AND DISCARD THE CURRENT LINE.
R0795              IF NO MATCH, THE PATTERN IS BROKEN.  USING PAT PTR AND X3, FEED ALL REPEATED LINES INTO THE BUFFER,
R0797              THREADING ACCORDING TO LOCATION BUT NOT CHECKING FOR DUPLICATES.  RESET START ADR TO ZERO AND
R0799              RESUBMIT THIS LINE.

# Page 723
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  23        PAGE  52

P07991  ENTER HERE AFTER EACH INSTRUCTION.

 0800   EDITOR     TX           IN PTR        -             Z,X1                AN ITEM-SLOT IS ALWAYS AVAILABLE HERE.
 0802              WD, LOW12    Z             ZDECR         LOCATION
 0803              TX           A             -             N,X1
 0804              SWS, CAC2    INSTR         16,L          N,X1
 0805              SWS, CAC1    LOCATION      32,L          N,X1,1              FORM FIRST CAC-WORD.

 0807              TX           LP            -             N,X1
 0808              SWS, CAC2    N,R1          16,L          N,X1                (D AFTER).
 0810              SWS, CAC1    D BEF         32,L          N,X1,1              FORM SECOND CAC-WORD.

 0812              TX           TIME3         -             N,X1
 0813              SWS, CAC2    OVCTR         16,L          N,X1
 0814              SWS, CAC1    Q             32,L          N,X1                FORM THIRD CAC-WORD.

 0816              TN           POINTERS      2             Z,X1                IN PTR TO X1, OUT PTR TO X2.
 0818              LA           ONES          START ADR     PATTERN             BRANCH IF THERE'S A PATTERN IN PROCESS.

R0820   PROCEDURE TO LOOK FOR A MATCH WHEN NO PATTERN IS IN PROCESS.

 0821   NO PATERN  WA           BANK8 M3      LOCATION      Z,X3                LET 3,3 = INITIAL THREAD FOR THIS B(Z).

 0823   NOT MATCH  LA, CAC3     3,3           ZERO          NO MATCH            BRANCH IF NO MATCH IN WHOLE BUFFER.
 0825              TX           3,3           -             Z,X3                THREAD TO ITEM WITH THIS B(Z).
 0827              NA           N,X1          N,X3          NOT MATCH
 0828              NA           1,1           3,1           NOT MATCH
 0829              NA           1,2           3,2           NOT MATCH           BRANCH IF NO MATCH ON THIS ITEM.

 0831              TX           Z,X3          -             PAT PTR             PATTERN BEGINS NOW.  SET PAT PTR.
 0833              TS           ONES          START ADR     LOOP CHEK           SET PATTERN SIGNAL, CHECK ONE-ORDER LUP.

 0835   NO MATCH   SS           Z,X1          CAC3          3,3                 STORE LOCATION THREAD TO THIS ITEM.
 0837              TS           L GOGO P1     Z,S3          ADV IN PTR +1       ADVANCE INPUT POINTER, MAYBE PRINTING.

# Page 724
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  24        PAGE  53

P0839   PROCEDURE WHEN A PATTERN IS IN A STATE OF PARTIAL COMPLETION.

 0840   PATTERN    NA           N,X1          N,X3          BREAK PAT
 0841              NA           1,1           3,1           BREAK PAT
 0842              NA           1,2           3,2           BREAK PAT           BRANCH IF PATTERN IS NOW BROKEN.

 0844   LOOP CHEK  NA           Z,X3          LAST PTR      CONTINUE            BRANCH IF LOOP NOT CLOSED YET.
 0846              TX           ZERO          -             START ADR           CLEAR PATTERN-IN-PROCESS INDICATOR.
 0848              TX           PAT PTR       -             Z,X3
 0849              SM           3,3           CAC1          3,3                 FLAG BEGINNING OF INFINITE LOOP.
 0851              S, MON TYPER W LOOPING     SPRA +8       TERMDUMP

 0852   CONTINUE   SWE, CAC3    3,3           16            Z,X3                INDEX COMPARISON POINTER TO NEXT ITEM.
 0854              NA           T4            ZERO          RECYCLE
 0855              WA           NEWZ          ONE           Z
 0856              TS           INSTR2        INSTR         RECYCLE2

 0857   BREAK PAT  TN           N,X1          3             HOLD LINE           SAVE THIS LINE WHILE BREAKING UP PATERN.
 0859              TN           PRINT LIM     2             PRINT LIM -1        SAVE AND DISABLE PRINT LIMIT.
 0861              TX           PAT PTR       -             Z,S0                POINT TO BEGINNING OF PATTERN.

 0863   RPT LINES  TN           N,S0          3             N,X1                RE-FEED REPEATED LINE.
 0865              TS           Z,S0,3        Z,X5          C,+2
 0866              TX           5,3           -             Z,X5
 0867              NA, CAC3     5,3           ZERO          C,-1
 0868              SS           Z,X1          CAC3          5,3                 STORE LOCATION THREAD TO RE-FED LINE.
 0870              TS           ZERO          START ADR     ADV IN PTR          RESET PATTERN SIGNAL, ADVANCE IN PTR.
 0872              SWE, CAC3    N,S0          16            Z,S0                ADVANCE RE-FEEDING POINTER.
 0874              NA           Z,S0          Z,X3          RPT LINES           BRANCH IF MORE ITEMS TO REPEAT.

 0876              LA           ONES          HOLD LINE     END PRINT           BR IF CALLED BY TERMDUMP, NOT PAT BREAK.

 0878              TN           HOL LINE      3             N,X1                RESTORE THIS LINE.
 0880              TS           PRINT LIM -1  PRINT LIM     NO PATERN           RE-SUBMIT THIS LINE FOR MATCHING.

# Page 725
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  25        PAGE  54

P0882              EDITOR CONTINUED.  THIS PART IS A SUBROUTINE TO ADVANCE IN PTR.  IF THE RESULTING VALUE EQUALS THAT
R0884   OF OUT PTR, THE BUFFER IS FULL (THIS IS THE NORMAL CASE AFTER THE FIRST 300 LINES OR THEREABOUTS).  A LINE IS
R0886   PUSHED OUT OF THE BUFFER ACCORDING TO OUT PTR, AND OUT PTR IS ADVANCED.  THE LOCATION THREAD FOR THE LINE IS
R0888   SEWN UP AROUND IT.  IF THE TRACE IS ON, THE FOLLOWING QUANTITIES ARE PRINTED:

R0890   LOCATION  ALPHA-OP-CODE  ADDRESS  A  B(X)  A(X)  LP  Q  OVCTR  T3, AND (IF APPROPRIATE) "INFINITE LOOP".

R0892   FOR EACH QUANTITY EXCEPT "INFINITE LOOP", DITTO MARKS ARE PRINTED IF APPROPRIATE, EXCEPT AT THE TOP OF A PAGE.
R0894   FOR ANY FLIP-FLOP REGISTER CONTAINING OVERFLOW, THE OVERFLOW-CORRECTED CONTENTS ARE SHOWN, PRECEDED BY A BLOT.

 0896   ADV IN PTR TX           Z,SH          -             Z,S3
 0897              TX           Z,X1          -             LAST PTR            POINT TO LAST NEW LINE ACCEPTED.
 0899              SWE, CAC3    1,3           16            IN PTR              ADVANCE IN PTR.
 0901              TX           IN PTR        -             Z,X1                KEEP IN PTR IN X1 ALSO.
 0903              NA           Z,X1          OUT PTR       N,S3                FAST EXIT UNTIL BUFFER FILLS UP.

 0905              LA           2,3           CAC1          C,+2
 0906              TN           W INF LOOP    2             NEXT LINE +10       DO THIS WHERE LOOP BEGINS.
 0908              SWE, CAC3    N,X2          32            EDIT WD             RECOVER LOCATION.
 0910              WA           BANK8 M3      EDIT WD       Z,X5                LET 5,3 = INITIAL LOCATION THREAD.
 0912              NA, CAC3     5,3           OUT PTR       C,+2
 0913              TS, CAC3     2,3           5,3           C,+2                DELETE THIS LINE FROM LOCATION THREAD.
 0915              TS           5,3           Z,X5          C,-2
 0916              SS           ZERO          CAC3          2,3                 CLEAR LOCATION THREAD IN ITEM.

 0918   CHANGE Q   WA           BANK 8        EDIT WD       Z,X5
 0919              NA, CHANGMSK 5,0           LOC FLAG      C,+4                BRANCH IF NO TRACE CHANGE ON LOCATION.
 0921              HA           LOC FLAG      B1B2          LOC FLAG            CHANGE CRITERION FOR CHANGE ON LOCATION.
 0923              NA           CHANG MSK     ON            N OMITTED           BRANCH IF CHANGING OFF TO ON.
 0925              TS           OFF           CHANG MSK     SET UP LIN          CHANGE ON TO OFF BUT PRINT THIS INSTR.
 0927              SWS, LOW 12  N,X2          16            Z,X5
 0928              LA, CHANGMSK ONES          5,0           C,-4                BRANCH IF TRACE CHANGE ON ADDRESS.

 0930   OFF TEST   NA           CHANG MSK     OFF           SET UP LIN          BRANCH IF TRACE IS ON.
 0932              DA           TRACE OFF     ONE           TRACE OFF           STEP COUNT OF UNTRACED INSTRUCTIONS.
 0934              SWE, CAC3    2,3           16            OUT PTR             ADVANCE OUT PTR AND SAME IN X2.
 0936              TS           OUT PTR       Z,X2          N,S3                QUICK EXIT WHEN TRACE IS OFF.

 0938   N OMITTED  LA           TRACE OFF     ZERO          SET UP LIN          WHEN IT REALLY WASN'T OFF AT ALL.
 0940              SWE, ONES    TRACE OFF     D,4,L         MON ARG
 0941              TS           Z,SC          Z,AU1         YUL D2A ZS          EDIT TRACE-OFF COUNT FOR PRINTING.
 0943   MON ARG    RESERVE      1
 0944              MT           N,SH,2        2             OMIT MSG +2         
 0949              TS           BLANKS        LINE          END PAGE +1    C    GENERATE BLANK LINE.
 0951              TS           Z,S3          CHANG MSK     END PRINT +2   C    SAVE RETURN, SET SP1.
 0953              TN           OMIT MSG      5             LINE +10
 0954              TS           Z,SC          Z,S3          PRINT LIN           PRINT NO. OF UNTRACED INSTRUCTIONS.
 0956              TX           CHANG MSK     -             Z,S3                RECOVER RETURN ADDRESS.
 0958              TX           ON            -             CHANG MSK           TURN ON THE TRACE.
 0960              TX           ZERO          -             TRACE OFF

# Page 726
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  26        PAGE  55

P0961   PROCEDURE TO SET UP A TRACE LINE IN PRINT.



 0962   SET UP LIN S, OCT2ALF4  EDIT WD                     NEXT LINE           EDIT LOCATION.
 0964              SWE, LOW4    N,X2          28            T1
 0965              WA           T1            OP ALF        Z,AU1
 0966              TX           N,AU1         -             NEXT LINE +1        SUPPLY ALPHABETIC OP CODE.
 0968              SWE, CAC3    N,X2          16            EDIT WD
 0969              S, OCT2ALF4  EDIT WD                     NEXT LINE +2        EDIT ADDRESS PART OF INSTRUCTION.
 0971              S, OCT2ALF5  2,0                         NEXT LINE +3        EDIT C(A).

 0973              SWE, CAC3    2,1           32            EDIT WD
 0974              S, OCT2ALF5  EDIT WD                     NEXT LINE +4        EDIT B(X).
 0976              SWE, CAC3    2,1           16            EDIT WD
 0977              S, OCT2ALF5  EDIT WD                     NEXT LINE +5        EDIT A(X).
 0979              S, OCT2ALF5  2,1                         NEXT LINE +6        EDIT C(LP).

 0981              SWE, CAC3    2,2           32            EDIT WD
 0982              S, OCT2ALF5  EDIT WD                     NEXT LINE +7        EDIT C(Q).
 0984              SWE, CAC3    2,2           16            EDIT WD
 0985              S, OCT2ALF5  EDIT WD                     NEXT LINE +8        EDIT C(OVCTR).
 0987              S, OCT2ALF5  2,2                         NEXT LINE +9        EDIT C(T3).

 0989              SWE, CAC3    2,3           16            OUT PTR             ADVANCE OUT PTR.
 0991              TX           OUT PTR       -             Z,X2                ALSO KEEP IT IN X2.
 0993              LA           LINE CNT      FIFTY         PRINT               BRANCH IF NOT END OF PAGE.

# Page 727
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  27        PAGE  56

P0995   AT END OF PAGE, PRINT A BLANK LINE AND SKIP.  THEN PRINT PAGE HEAD AND SUBHEAD.

 0997   END PAGE   TN           SKIP          2             LINE -1             SKIP-CODE AND BLANK WORD.
 0999              TN           LINE          14            LINE +1             GENERATE BLANK LINE.
 10002             S, MON PRINT DEPAGIN8
 1001              S, MON PRINT LINE -1                                         SKIP TO HEAD OF FORM.
 1003              S, MON PRINT SIMU HEAD                                       PRINT PAGE HEAD.
 1005              DA           PAGE NO       ONE           PAGE NO
 1006              SS           PAGE NO       D12           SIMU HEAD +15       STORE INCREASED PAGE NUMBER.
 1008              NA, CHAR8    SIMU HEAD +15 ZERO          C,+4                BRANCH IF NO CHANGE IN TENS DIGIT.

 1010              SWS, ACH7    PAGE NO       2,L           SIMU HEAD +15       SET UP CHANGED TENS DIGIT.
 1012              NA, CHAR7    SIMU HEAD +15 ZERO          C,+2                BRANCH IF NO CHANGE IN HUNDREDS DIGIT.

 1014              SWS, CHAR6   PAGE NO       4,L           SIMU HEAD +15       SET UP CHANGED HUNDREDS DIGIT.

 1016   RESET LC   TX           ONE           -             LINE CNT
 1017              S, MON PRINT SUB HEAD                                        PRINT COLUMN HEADINGS.

 1019   PRINT      TN           PRIN SPEX     2             Z,S1                SPECS FOR LINE +3 AND NEXT LINE +3.
 1021   DITO LOOP  NA           N,S2          N,S1          NOT SAME            BR IF THIS WD NO MATCH SAME IN LAST LIN.
 1023              WA           Z,S2          TWELVE        Z,AU1               HERE THIS WD IN LAST LINE NOT A DITTO.
 1025              TS           N,S1,1        N,AU1         PUT DITTO           SAVE REPEATED WORD FOR LATER COMPARISON.

 1027   NOT SAME   NA           N,S1,1        DITTO         PUT DITTO +1        BRANCH UNLESS NO-MATCH CAUSED BY DITTO.
 1029              WA           Z,S2          TWELVE        Z,AU1
 1030              NA           N,S2          N,AU1         PUT DITTO +1        BRANCH IF DITTO PATTERN BREAKS NOW.

 1032   PUT DITTO  TX           DITTO         -             N,S2                SUPPLY INIITAL OR CONTINUED DITTO.
 1034              NA           Z,S2,1        PRIN SPEX +2  DITO LOOP           DO THIS FOR RIGHT-HAND SEVEN FIELDS.

 1036              TN           NEXT LINE -1  16            LINE -1
 1037   PRINT LIN  S, MON PRINT LINE -1
 1038              WA           LINE CNT      ONE           LINE CNT
 1039              DA           TASK LINS     ONE           TASK LINS           COUNT PRINT LINES IN TASK.
 1041              LA           TASK LINS     PRINT LIM     N,S3                RETURN IF NOT TOO MANY.
 1043              LA           CHANG MSK     CAC 3         N,S3                RETURN IF LINE IS "TRACE OFF" TYPE.
 1045              S, MON TYPER W PRNT MAX    SPRA +8       TERMDUMP

# Page 728
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  28        PAGE  57

P1046              SUBROUTINE TO CONVERT LOW-ORDER BITS TO 5 ALPHA-OCTALS (CHECKING FOR OVERFLOW).  16 LOW-ORDER BITS AT
R1048   A ARE MADE INTO A RIGHT-JUSTIFIED ALPHA WORD AT C.

 1049   OCT2ALF5   SIMULATE
 1050              SSL, LOW2    N,AU1         14            BLOT CHEK      C    TEST FOR OVERFLOW IN OPERAND.

 1052   OV CORECT  SWS, US      N,AU1         1             N,AU1          C    CORRECT IT IF REQUIRED.

 1054              SWS, MSK5    N,AU1         12,L          N,AU2          C    SET UP HIGH-ORDER DIGIT.

 1056   4 DIGITS   SWS, MSK4    N,AU1         9,L           N,AU2          C
 1057              SWS, MSK3    N,AU1         6,L           N,AU2          C
 1058              SWS, MSK2    N,AU1         3,L           N,AU2          C
 1059              SS           N,AU1         OCT7          N,AU2               SET UP LOW-ORDER DIGITS, RETURN.



R1061   SIMILAR SUBROUTINE FOR 12 LOW-ORDER DIGITS INTO 4 ALPHA-OCTALS.

 1062   OCT2ALF4   SIMULATE
 1063              TS           BLANK 1T4     N,AU2         4 DIGITS       C



R1064   FOUR ANSWERS TO OVERFLOW CHECK IN OCT2ALF5.

 1065   BLOT CHEK  TS           BLANK 1T3     N,AU2         OV CORECT +1   C
 1066              TS           OVF BLOT      N,AU2         OV CORECT      C
 1067              TS           OVF BLOT      N,AU2         OV CORECT      C
 1068              TS           BLANK 1T3     N,AU2         OV CORECT +1   C

# Page 729
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  29        PAGE  58

P1069              TERMINAL DUMP PROCEDURE, USED WHEN A PROPERLY STARTED RUN ENDS FOR ANY REASON.  GIVES THE CAUSE OF
R1071   TERMINATION AND DUMPS LOCATIONS 0000-1777 ON FOUR PAGES.

 1072   MON TYPER  SIMULATE
 1073              TS           N,AU1         CAUSE         C,+1                SUPPLY CAUSE FOR PRINTING.
 10742  TERMDUMP   S, YUL TYPER CAUSE         AA +1         C,+1
 1075              TS           OFF TEST      CHANGE Q +1   MON WAKE       C    LOCK TRACE ON.
 1077              TN           W CORONER     2             NEXT LINE +13       LABEL CORONER'S REPORT AS SUCH.
 1079              TS           ONES          HOLD LINE     BREAK PAT +1   C    DISABLE LOCAL PRINT LIMIT.
 1081              LA           ONES          START ADR     BREAK PAT +2        BREAK PARTIAL PATTERN IF ANY.

 1083   END PRINT  NA           OUT PTR       IN PTR        ADV IN PTR
 1084              NA           OUT PTR       LAST PTR      ADV IN PTR +2       EMPTY OUT TRACE LINE BUFFER.

 1086              TX           SP1           -             LINE -1
 1087              TS           BLANKS        LINE          END PAGE +1    C
 1088              S, MON PRINT LINE -1                                         LEAVE A BLANK LINE.
 1090              TX           SKIP          -             LINE -1
 1091              TN           CAUSE         7             LINE +2             STATE CAUSE AND ANNOUNCE DUMP.
 1093              TX           BANK 2        -             Z,X3                H800 ADDRESS OF SACO ADDRESS 0000.
 1095              TS           C,+1          RESET LC      END PAGE +2         CHANGE RETURN FROM PAGE HEAD PRINT.
 1097              TS           EIGHT         Z,S1          C,+1                SET NUMBER OF 4-LINE GROUPS PER PAGE.

 1099              TS           SP1           LINE -1       END PAGE +1    C

 1100   4 LINES    TS           FOUR          Z,S2          C,+2                SET NUMBER OF LINES PER BUNCH.

 1102   1 LINE     S, MON PRINT LINE -1
 1103              WD           PRIN SPEX     ONE           Z,X5                FORM SPEC   LINE +2.
 1105              TX           Z,X3          -             EDIT WD
 1106              S, OCT2ALF4  EDIT WD                     LINE                EDIT ADDRESS OF 1ST WORD OF 8 ON A LINE.

 1108   1 WORD     S, OCT2ALF5  3,0                         5,0                 EDIT A WORD OF ERASABLE MEMORY.
 1110              NA           N,X5          BLANK 1T3     C,+2
 1111              TX           ZERO C6       -             N,X5                REPLACE ZERO WORD WITH A LONE ZERO.
 1113              LA           SPEC 1777     Z,X3,1        LAST LINE           BRANCH IF LAST WORD EDITED.
 1115              NA           Z,X5,1        PRIN SPEX +3  1 WORD

 1116              NA           Z,S2,1        ONE           1 LINE              BRANCH IF NOT LAST LINE OF BUNCH OF 4.

 1118              TX           SP2           -             LINE -1
 1119              S, MON PRINT LINE -1
 1120              LA           Z,S1,1        ONE           END PAGE

 1121              TS           SP1           LINE -1       4 LINES             GO TO PRINT NEXT FOUR LINES, SAME PAGE.

 1123   LAST LINE  TX           SKIP          -             LINE -1
 11231             S, MON PRINT DEPAGIN8
 1124              S, MON PRINT LINE -1
 1125              TX           YUL MASKS     -             Z,MXR
 1126              S, YUL TYPER END SI MSG    AMTF +2       MANUF RTN           TYPE "END SIMULATION", EXIT.
 1128   MASK LOC   MODLOC       64

# END OF REVISION 1 OF PROGRAM YULSIMUL BY HB-S

# Page 730
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  30        PAGE  59

# No source code on this page.

# Page 731
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  31        PAGE  60

# No source code on this page.

# Page 732
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  32        PAGE  61

# No source code on this page.

# Page 733
#      @YUL SYSTEM SIMULATORS -- SACO                                            USER'S OWN PAGE NO.  33        PAGE  62

# No source code on this page.
back to top