swh:1:snp:92f3f585b9ae79620ad8c41a332d6329b31fd381
Raw File
Tip revision: 078c79d8734a9ed2860303a7c1662004284fe853 authored by Ron Burkey on 07 August 2022, 15:04:04 UTC
Fixed a potential string-overflow bug in yaASM. Removed timestamps from
Tip revision: 078c79d
AGC_BLOCK_TWO_SELF-CHECK.agc
### FILE="Main.annotation"
## Copyright:	Public domain.
## Filename:	AGC_BLOCK_TWO_SELF_CHECK.agc
## Purpose:	A module for revision 0 of BURST120 (Sunburst). It 
##		is part of the source code for the Lunar Module's
##		(LM) Apollo Guidance Computer (AGC) for Apollo 5.
## Assembler:	yaYUL
## Contact:	Ron Burkey <info@sandroid.org>.
## Website:	www.ibiblio.org/apollo/index.html
## Mod history:	2016-09-30 RSB	Created draft version.
##		2016-10-19 RSB	Transcribed.  This largely involved selecting 
##				various bits and pieces from the Aurora 12 and
##				Luminary 99 versions of this file, and then 
##				merging them together, with corrections.  In 
##				retrospect, I'd say this file is mostly taken
##				from Aurora 12, but there is a significant
##				mass of comments at the beginning of the file,
##				as well as code for dealing with superbanks,
##				which instead come from Luminary 99.
##		2016-10-31 RSB	Typos.
##		2016-12-06 RSB	Comments proofed using octopus/ProoferComments,
##				changes made.
##		2017-01-28 RSB	WTIH -> WITH.
##		2021-05-30 ABS	Removed SIDLOOP symbol not present in scans.

## Page 1075
# PROGRAM DESCRIPTION                                                         DATE  14 FEBRUARY 1967
# PROGRAM NAME - SELF-CHECK                                                   LOG SECTION AGC BLOCK TWO SELF-CHECK
# MOD NO - 0                                                                  ASSEMBLY SUNBURST REV 107
# MOD BY - GAUNTT


# FUNCTIONAL DESCRIPTION

#      PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
# PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
# STARTING VERB.
#      THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
#      THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
#      A THIRD SECTION, DSKYCHK, LIGHTS UP ALL THE DSKY ELECTROLUMINESCENT ELEMENTS.
#      IN ALL THERE ARE 15 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
# FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966.
#      THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
# A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
# OCTAL, TO LOAD INTO SMODE.
# +-1  ALL PULSES POSSIBLE BY INTERNAL CONTROL OF THE COMPUTER.
# +-2  ALL THE IN-OUT INSTRUCTION PULSES.
# +-3  SPECIAL AND CENTRAL REGISTERS, ALL BIT COMBINATIONS.
# +-4  ERASABLE MEMORY
# +-5  FIXED MEMORY
# +-6,7,10  EVERYTHING IN THE PREVIOUS 5 OPTIONS.
# +-11  TURNS ON THE ELECTROLUMINESCENT DISPLAY IN THE DSKY.
# -0   SAME AS +-10 UNTIL AN ERROR IS DETECTED.
# +0   NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.


# WARNINGS

#      SMODE LOADED WITH GREATER THAN OCTAL 11 PUTS COMPUTER INTO THE BACKUP IDLE LOOP.



# CALLING SEQUENCE

#      TO CALL SELF-CHECK KEY IN
#           V 21 N 27 E OPTION NUMBER E
#      TO CALL DSKYCHK KEY IN
#           V 21 N 27 E +-11 E
#      TO CALL SHOW-BANKSUM KEY IN
#           V 56 E         DISPLAYS FIRST BANK
#           V 33 E         PROCEED, DISPLAYS NEXT BANK
## Page 1076

# EXIT MODES, NORMAL AND ALARM

#      SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
# COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
#      THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
#      COMPLETION OF DSKYCHK PUTS THE COMPUTER INTO THE BACKUP IDLE LOOP.
#      SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP


# OUTPUT

#      SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
# TRIGGERS THE ALARM. THE ALARM ROUTINE DISPLAYS THE THREE FAILREGS. IF OPERATOR DESIRES FURTHER INFORMATION HE
# MAY KEY IN   V 05 N 31 E    DSKY DISPLAY IN R1 WILL BE ADDRESS +1 OF WHERE THE ERROR WAS DETECTED, IN R2 THE
# BANK NUMBER OF SELF-CHECK (37 OCTAL), AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST
# FRESH START
#      DSKYCHK LIGHTS UP THE DSKY DISPLAY ELEMENTS STARTING WITH THE DIGIT9 IN ALL POSITIONS. EACH DISPLAY LASTS
# 5 SECONDS
#      SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 +- THE BANK SUM (SHOULD EQUAL THE BANK NUMBER), IN R2 THE
# BANK NUMBER, AND IN R3 THE BUGGER WORD.


# ERASABLE INITIALIZATION REQUIRED

#      ACCOMPLISHED BY FRESH START
#           SMODE & ERESTORE SET TO +0


# DEBRIS

#      ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
# EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK DOES A FRESH START.



                BANK            37                              
SBIT1           EQUALS          BIT1                            
SBIT2           EQUALS          BIT2                            
SBIT3           EQUALS          BIT3                            
SBIT4           EQUALS          BIT4                            
SBIT5           EQUALS          BIT5                            
SBIT6           EQUALS          BIT6                            
SBIT7           EQUALS          BIT7                            
## Page 1077
SBIT8           EQUALS          BIT8                            
SBIT9           EQUALS          BIT9                            
SBIT10          EQUALS          BIT10                           
SBIT11          EQUALS          BIT11                           
SBIT12          EQUALS          BIT12                           
SBIT13          EQUALS          BIT13                           
SBIT14          EQUALS          BIT14                           
SBIT15          EQUALS          BIT15                           

S+ZERO          EQUALS          ZERO                            
S+1             EQUALS          BIT1                            
S+2             EQUALS          BIT2                            
S+3             EQUALS          THREE                           
S+4             EQUALS          FOUR                            
S+5             EQUALS          FIVE                            
S+6             EQUALS          SIX                             
S+7             EQUALS          SEVEN                           
S8BITS          EQUALS          LOW8                            # 00377
CNTRCON         OCTAL           00050                           # USED IN CNTRCHK
ERASCON1        OCTAL           00061                           # USED IN ERASCHK
ERASCON2        OCTAL           01374                           # USED IN ERASCHK
ERASCON6        OCTAL           01400                           # USED IN ERASCHK
ERASCON3        OCTAL           01461                           # USED IN ERASCHK
ERASCON4        OCTAL           01774                           # USED IN ERASCHK
S10BITS         EQUALS          LOW10                           # 01777, USED IN ERASCHK
SBNK03          EQUALS          PRIO6                           # 06000, USED IN ROPECHK
SIXTY           OCTAL           00060                           
SUPRCON         OCTAL           60017                           # USED IN ROPECHK
S13BITS         OCTAL           17777                           
CONC+S1         OCTAL           25252                           # USED IN CYCLSHFT
OVCON           OCTAL           37737                           # USED IN RUPTCHK
DVCON           OCTAL           37776                           
CONC+S2         OCTAL           52400                           # USED IN CYCLSHFT
ERASCON5        OCTAL           76777                           
S-7             OCTAL           77770                           
S-4             EQUALS          NEG4                            
S-3             EQUALS          NEG3                            
S-2             EQUALS          NEG2                            
S-1             EQUALS          NEGONE                          
S-ZERO          EQUALS          NEG0                            

                EBANK=          LST1                            
ADRS1           ADRES           SKEEP1                          
SRADRS          ADRES           SR                              
SELFADRS        ADRES           SELFCHK                         # SELFCHK RETURN ADDRESS.  SHOULD BE PUT
                                                                # IN SELFRET WHEN GOING FROM SELFCHK TO
                                                                # SHOWSUM AND PUT IN SKEEP1 WHEN GOING
                                                                # FROM SHOWSUM TO SELF-CHECK.

PRERRORS        CA              ERESTORE                        # IS IT NECESSARY TO RESTORE ERASABLE
## Page 1078
                EXTEND                                          
                BZF             ERRORS                          # NO
                EXTEND                                          
                DCA             SKEEP5                          
                INDEX           SKEEP7                          
                DXCH            0000                            # RESTORE THE TWO ERASABLE REGISTERS
                CA              S+ZERO                          
                TS              ERESTORE                        
ERRORS          INHINT                                          
                CA              Q                               
                TS              SFAIL                           # SAVE Q FOR FAILURE LOCATION
                TS              ALMCADR                         # FOR DISPLAY WITH BBANK AND ERCOUNT
                INCR            ERCOUNT                         # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
TCALARM2        TC              ALARM2                          
                OCT             01102                           # SELF-CHECK MALFUNCTION INDICATOR
                CCS             SMODE                           
                CA              S+ZERO                          
                TS              SMODE                           
                TC              SELFCHK                         # GO TO IDLE LOOP
                TC              SFAIL                           # CONTINUE WITH SELF-CHECK

+0CHK           CS              A                               
-0CHK           CCS             A                               
                TCF             ERRORS                          
                TCF             ERRORS                          
                TCF             ERRORS                          
                TC              Q                               

+1CHK           CS              A                               
-1CHK           CCS             A                               
                TCF             PRERRORS                        
                TCF             PRERRORS                        
                CCS             A                               
                TCF             PRERRORS                        
                TC              Q                               

SMODECHK        EXTEND                                          
                QXCH            SKEEP1                          
                TC              CHECKNJ                         # CHECK FOR NEW JOB
                CCS             SMODE                           
                TC              SOPTIONS                        
                TC              SMODECHK        +2              # TO BACKUP IDLE LOOP
                TC              SOPTIONS                        
                INCR            SCOUNT                          
                TC              SKEEP1                          # CONTINUE WITH SELF-CHECK

SOPTIONS        AD              S-7                             
                EXTEND                                          
                BZMF            +2                              # FOR OPTIONS BELOW NINE.
BNKOPTN         TC              SBNKOPTN                        # FOR OPTIONS ABOVE EIGHT
## Page 1079
                INCR            SCOUNT                          # FOR OPTIONS BELOW NINE.
                AD              S+7                             

                INDEX           A                               
                TC              SOPTION1                        
SOPTION1        TC              TC+TCF                          
SOPTION2        TC              IN-OUT1                         
SOPTION3        TC              COUNTCHK                        
SOPTION4        TC              ERASCHK                         
SOPTION5        TC              ROPECHK                         
SOPTION6        TC              SKEEP1                          
SOPTION7        TC              SKEEP1                          
SOPTON10        TC              SKEEP1                          # CONTINUE WITH SELF-CHECK

SELFCHK         TC              SMODECHK                        # ** CHARLEY, COME IN HERE

# TC+TCF CHECKS ALL OF THE PULSES OF TCF AND ALL OF THE PULSES OF TC
# EXCEPT ABILITY TO TC TO ERASABLE.
# ALSO FIRST TIME CS FIXED MEMORY IS USED
TC+TCF          TC              +2                              
                TC              CCSCHK                          
                TCF             +2                              # $ TCF FIXED MEMORY
                TC              ERRORS                          
                CS              S+3                             # $ CS FIXED MEMORY
                TC              Q                               # $
                TC              ERRORS                          

# CCSCHK CHECKS ALL OF CCS EXCEPT RB WG.
# ALSO CHECKS TS ERASABLE, CS SC, AND CS ERASABLE MEMORY.
CCSCHK          CCS             A                               # $ CCS SC, C(A) = -3
                TC              ERRORS                          
                TC              ERRORS                          
                TC              +2                              
                TC              ERRORS                          
                CCS             A                               # $ C(A) = +2, RESULT OF CCS -NUMBER
                TC              +4                              
                TC              ERRORS                          
                TC              ERRORS                          
                TC              ERRORS                          
                TS              SKEEP1                          # $ TS ERASABLE
                CCS             SKEEP1                          # $ CCS ERASABLE, C(A) = +1, RESULT OF
                TC              +4                              # CCS +NUMBER
                TC              ERRORS                          
                TC              ERRORS                          
                TC              ERRORS                          
                CCS             A                               # $ C(A) = +0, RESULT OF CCS +1, CHECKS CI
                TC              ERRORS                          
                TC              +3                              
                TC              ERRORS                          
                TC              ERRORS                          
## Page 1080
                CS              A                               # $ CS SC
                CCS             A                               # $ C(A) = -0, RESULT OF CCS +0
                TC              ERRORS                          
                TC              ERRORS                          
                TC              ERRORS                          
                CCS             A                               # $ RESULT OF CCS -0
                TC              ERRORS                          
                TC              +3                              
                TC              ERRORS                          
                TC              ERRORS                          
                CS              SKEEP1                          # $ CS ERASABLE. ALSO CHECKS BACK INTO
                TC              -1CHK                           # ERASABLE SEQUENCE.

# BZMFCHK CHECKS ALL PULSES OF BZMF.
# ALSO CHECKS CA FIXED MEMORY.
BZMFCHK         CAF             SBIT9                           # $ CA FIXED MEMORY
                EXTEND                                          
                BZMF            ERRBZMF                         
                CS              A                               
                EXTEND                                          
                BZMF            +2                              # $
                TC              ERRORS                          
                CA              S+MAX                           
                AD              S+1                             
                EXTEND                                          
                BZMF            ERRBZMF2                        # $ + OVERFLOW, CHECK 01-0000
                CA              S+ZERO                          
                EXTEND                                          
                BZMF            +2                              # $
                TC              ERRORS                          
                CS              A                               
                EXTEND                                          
                BZMF            +4                              # $
                TC              ERRORS                          
ERRBZMF         TC              ERRORS                          # FROM BZMF WITH +NON-ZERO
ERRBZMF2        TC              ERRORS                          # OVERFLOW WITH +0

# RESTORE1 AND 2 CHECKS INSTRUCTIONS (WITH STAR) ABILITY TO READ BACK INTO
# ERASABLE MEMORY. NOT NORMALLY INTERESTED IN CONTENTS OF A REGISTER.
# FIRST TIME MANY INSTRUCTIONS ARE USED.
# RESTORE1 ALSO CHECKS INDEX (WITHOUT EXTRACODE) ERASABLE, CA ERASABLE,
# AND MASK ERASABLE.
RESTORE1        CAF             SRADRS                          # ADDRESS OF SR
                TS              SKEEP7                          
                CA              S8BITS                          # 00377
                NDX             SKEEP7                          # $ INDEX ERASABLE                       *
                TS              0000                            # TS SR, C(SR) = 00177
                CCS             SR                              # C(SR) = 00077                          *
                NDX             SKEEP7                          # CHECKS C(SKEEP7) CORRECT
                CS              0000                            # C(SR) = 00037
## Page 1081
                AD              SR                              # C(SR) = 00017                          *
                EXTEND                                          
                MSU             SR                              # C(SR) = 00007                          *
                EXTEND                                          
                SU              SR                              # C(SR) = 00003                          *
                CA              SR                              # $ C(SR) = +1, C(A) = +3, CA ERASABLE   *
                MASK            SR                              # $ B(SR) = C(SR) = +1, MASK ERASABLE    *
                TC              +1CHK                           
                EXTEND                                          
                MP              SR                              
                EXTEND                                          
                DV              SR                              
                CA              SR                              # $ CA ERASABLE
                TC              +1CHK                           # MAKES SURE MASK, MP, AND DV DO NOT EDIT.

# RESTORE2 ALSO CHECKS XCH ERASABLE,INDEX (WITH EXTRACODE) ERASABLE AND
# FIXED MEMORY, DCS ERASABLE, CA SC, AND DCA ERASABLE.
RESTORE2        CAF             ADRS1                           # ADDRESS OF SKEEP1
                TS              SKEEP6                          
                CA              S-1                             
                TS              SKEEP1                          # -1
                CS              A                               
                XCH             SKEEP1                          # $ XCH ERASABLE, C(SKEEP1) = +1
                XCH             SKEEP2                          # $ XCH ERASABLE, C(SKEEP2) = -1
                EXTEND                                          
                NDX             SKEEP6                          # $ NDX ERASABLE                         *
                DCA             0000                            # DCA ERASABLE                           *
                EXTEND                                          
                NDX             ADRS1                           # $ NDX FIXED MEMORY                     *
                DCS             0000                            # $ DCS ERASABLE MEMORY                  *
                TC              -1CHK                           # MAKES SURE DCS ERASABLE OK
                CA              L                               # $ CA SC
                TC              +1CHK                           
                EXTEND                                          
                NDX             SKEEP6                          # MAKE SURE C(SKEEP6) IS STILL CORRECT
                DCA             0000                            # $ DCA ERASABLE
                TC              +1CHK                           
                CA              L                               
                TC              -1CHK                           

# RESTORE3 CHECKS ABILITY TO RESTORE INSTRUCTIONS BACK INTO ERASABLE
# MEMORY. IT IS ONLY NECESSARY TO RESTORE ONE INSTRUCTION BECAUSE THE
# G REGISTER DOES NOT CHANGE.
# ALSO CHECKS TC TO ERASABLE MEMORY.
RESTORE3        CA              SBIT15                          # CS
                TS              SKEEP1                          # 40000
                CA              S+2                             # TC Q
                TS              SKEEP2                          
                CA              S+1                             # +1
                TC              SKEEP1                          # $ TC ERASABLE
## Page 1082
                TC              -1CHK                           # FIRST TIME BACK FROM ERASABLE.
                TC              SKEEP1                          
                TC              -0CHK                           # SECOND TIME BACK FROM ERASABLE.

# BZFCHK CHECKS ALL PULSES OF BZF.
BZFCHK          CAF             S+5                             
                EXTEND                                          
                BZF             ERRBZF1                         # $
                CS              A                               
                EXTEND                                          
                BZF             ERRBZF2                         # $
                CA              S+MAX                           
                AD              S+1                             # 01-00000
                EXTEND                                          
                BZF             ERRBZF3                         # $
                CS              A                               
                EXTEND                                          
                BZF             ERRBZF4                         # $
                CAF             S+ZERO                          
                EXTEND                                          
                BZF             +2                              # $
                TC              ERRORS                          
                CS              A                               
                EXTEND                                          
                BZF             +6                              # $
                TC              ERRORS                          
ERRBZF1         TC              ERRORS                          # +NON-ZERO
ERRBZF2         TC              ERRORS                          # -NON-ZERO
ERRBZF3         TC              ERRORS                          # 01-00000
ERRBZF4         TC              ERRORS                          # 10-37777

# DXCH+DIM CHECKS ALL PULSES OF DXCH AND DIM.
# ALSO CHECKS TS WITH OVERFLOW, TS SC, CA SC, AND AD ERASABLE.
DXCH+DIM        CA              S+MAX                           
                AD              S+2                             # OVERFLOW WITH +1
                TS              SKEEP1                          # $ TS WITH OVERFLOW, +1
                TC              ERRORS                          
                CS              A                               
                TS              SKEEP2                          
                CS              S+MAX                           
                TS              L                               # $ TS SC, 40000
                CS              A                               # 37777
                DXCH            SKEEP1                          # $ DXCH ERASABLE
                TC              +1CHK                           
                CA              L                               # $ CA SC
                TC              -1CHK                           
                EXTEND                                          
                DIM             SKEEP1                          # $ DIM ERASABLE, DIM + NUMBER, 37776
                EXTEND                                          
                DIM             SKEEP2                          # $ DIM - NUMBER, 40001
## Page 1083
                CA              S+MAX                           # 37777
                AD              SKEEP2                          # $ AD ERASABLE, +1
                TC              +1CHK                           
                CS              S+MAX                           # 40000
                AD              SKEEP1                          # -1
                TC              -1CHK                           
                CA              S+1                             # +1
                EXTEND                                          
                DIM             A                               # $ DIM SC, DIM +1
                EXTEND                                          
                DIM             A                               # $ DIM -0
                TC              -0CHK                           
                EXTEND                                          
                DIM             A                               # $ DIM +0
                TC              +0CHK                           

# DAS+INCR CHECKS ALL PULSES OF DAS AND INCR.
# ALSO CHECKS DCA FIXED, LXCH SC, DCA ERASABLE, AD ERASABLE, DCS FIXED,
# DCS ERASABLE, AND XCH SC.
DAS+INCR        CA              S-1                             
DAS++           TS              L                               # -1
                CA              S+2                             # +2
                DAS             A                               # $ DAS SC, C(A) = +4 AND C(L) = -2
                AD              S-3                             # $ AD FIXED MEMORY
                TC              +1CHK                           
                CA              S+1                             
                AD              L                               # $ AD SC, -1
                TC              -1CHK                           
# DAS WITH INTERFLOW IN LOW ORDER AND NET OVERFLOW
DAS+-           EXTEND                                          
                DCA             S+MAX                           # $DCA FIXED MEMORY
                DXCH            SKEEP3                          # 37777, 40000
                CA              S-2                             
                TS              L                               
                CA              S+3                             # C(A) = +3, C(L) = -2
                DAS             SKEEP3                          # $ DAS ERASABLE
                LXCH            A                               # $ LXCH SC
                TC              +0CHK                           
                CA              L                               
                TC              +1CHK                           
                EXTEND                                          
                DCA             SKEEP3                          # $ DCA ERASABLE
                LXCH            A                               # C(A) = -1, C(L) = +1
                TC              -1CHK                           
                CA              L                               
                TC              +1CHK                           
# INCRCHK CHECKS ALL INCR PULSES EXCEPT WOVR.
INCRCHK         INCR            SKEEP4                          # $ INCR ERASABLE, -0
                AD              SKEEP4                          # $ AD ERASABLE
                TC              -0CHK                           
## Page 1084
                INCR            A                               # $ INCR SC, +1
                TC              +1CHK                           
# DAS WITH OVERFLOW IN LOW ORDER AND NET UNDERFLOW
DAS-+           EXTEND                                          
                DCS             S+MAX                           # $ DCS FIXED MEMORY
                DXCH            SKEEP1                          # 40000, 37777
                CA              S+3                             # +3
                TS              L                               
                CS              A                               # -3
                DAS             SKEEP1                          # $
                TC              -1CHK                           
                EXTEND                                          
                DCS             SKEEP1                          # $ DCS ERASABLE (+1, -2)
                XCH             L                               # $ XCH SC (-2, +1)
                AD              S+1                             
                TC              -1CHK                           
                CA              L                               
                TC              +1CHK                           

# MPCHK CHECKS ALL PULSES OF MP, AUG, AND ADS.
MPCHK           CA              S+1                             
                EXTEND                                          
                AUG             A                               # $ AUG SC, +2
                TS              SKEEP5                          # +2
                CS              A                               
                TS              Q                               # -2
                CS              A                               
MP++            EXTEND                                          
                MP              S+MAX                           # $ MP FIXED MEMORY, +1, 37776
                AD              L                               # 37777
MP+-            EXTEND                                          
                MP              Q                               # $ MP SC, -1, 40001
                ADS             L                               # $ ADS SC, 40000
                AD              DVCON                           
                TC              -1CHK                           
                CA              L                               
MP-+            EXTEND                                          
                MP              SKEEP5                          # $ MP ERASABLE, -1, 40001
                TS              SKEEP6                          
                EXTEND                                          
                AUG             SKEEP6                          # $ AUG ERASABLE, -2
                AD              L                               # 40000
MP--            EXTEND                                          
                MP              SKEEP6                          # $ +1, 37776
                TC              +1CHK                           
                CS              L                               # 40001
                AD              DVCON                           
                TC              -0CHK                           
                CA              S+1                             
                ADS             SKEEP6                          # $ ADS ERASABLE, +1
## Page 1085            
                TC              -1CHK                           
                CA              SKEEP6                          
                TC              -1CHK                           

# DVCH AND DVQXCHK CHECK ALL OF PULSES OF DV AND QXCH.
# ALSO CHECKS TS WITH UNDERFLOW
DVCHK           CA              SBIT14                          # 20000
                TS              SKEEP1                          
                AD              A                               # OVERFLOW
                AD              S+1                             
                TS              L                               # $ TS SC WITH OVERFLOW, +1
                TC              ERRORS                          
                CS              A                               
                TS              SKEEP2                          # -1
                CA              S-ZERO                          # -0
                LXCH            SKEEP1                          # $ LXCH ERASABLE
DV++            EXTEND                                          
                DV              SKEEP1                          # $ DV ERASABLE, C(A) = 20000, C(L) = +0
                CS              A                               
                LXCH            A                               
                TC              +0CHK                           
DV--            EXTEND                                          
                DV              SKEEP2                          # $ 20000, +0
                TS              SKEEP4                          # 20000
                CS              A                               
                TS              SKEEP3                          # -(20000)
                AD              SBIT14                          
                TC              -0CHK                           
                CA              L                               
                TC              -0CHK                           
DV+-            CA              S+MAX                           
                TS              L                               
                CA              S13BITS                         
                EXTEND                                          
                DV              SKEEP3                          # $ -(37777), +(17777)
                XCH             L                               
                CS              A                               
DV-+            EXTEND                                          
                DV              SKEEP4                          # $ -(37777), -(17777)
                AD              DVCON                           
                TC              -1CHK                           
                CA              S+MAX                           
                XCH             L                               # ALSO PUTS 37777 IN L FOR DV-+,-
                AD              SBIT14                          
                TC              +1CHK                           
DV-+,+          CS              S13BITS                         # -(17777)
                EXTEND                                          
                DV              SKEEP4                          
                AD              L                               # -(37775)
                AD              DVCON                           
## Page 1086
                TC              +1CHK                           
                XCH             L                               
                TC              -1CHK                           # ALSO PUTS +0 IN L FOR DVQXCH
DVQXCHK         CS              DVCON                           
                TS              Q                               # 40001
                CS              A                               
                EXTEND                                          
                DV              Q                               # $ DV SC, -(37777), +(37776)
                EXTEND                                          
                QXCH            L                               # $ QXCH SC, C(L) = 40001, C(Q) = 37776
                AD              Q                               
                TC              -1CHK                           
                CA              L                               
                AD              S+MAX                           
                TC              +1CHK                           
                EXTEND                                          
                QXCH            SKEEP1                          # $ QXCH ERAS., C(Q) = +1, C(SKEEP1) = +3
                CA              Q                               
                TC              +1CHK                           
                CS              SKEEP1                          # -3
                AD              S+2                             
                TC              -1CHK                           

# MSUCHK CHECKS ALL PULSES OF MSU EXCEPT RB WG.
MSUCHK          CA              S+ZERO                          
                TS              SKEEP1                          # +0
                CS              A                               
                TS              SKEEP2                          # -0
                EXTEND                                          
                MSU             A                               # $ MSU SC, +0
                TC              +0CHK                           
                EXTEND                                          
                MSU             SKEEP2                          # $ MSU ERASABLE, +1
                TC              +1CHK                           
                EXTEND                                          
                DCA             S+MAX                           
                EXTEND                                          
                MSU             L                               # $ CHECKS RUS WA, ALSO -1 FROM NEG. NO.
                TS              A                               
                TC              +2                              
                TC              ERRORS                          
                TC              -1CHK                           

# MASKCHK FINISHES CHECKING MASK INSTRUCTION.
MASKCHK         CA              S+7                             
                TS              L                               
                MASK            S-7                             # $ MASK FIXED MEMORY
                TC              +0CHK                           
                CA              S+1                             
                MASK            L                               # $ MASK SC
## Page 1087
                TC              +1CHK                           

# NDX+SU FINISHES CHECKING BOTH INDEX INSTRUCTIONS. ALSO CHECKS ALL OF SU
# EXCEPT RB WG.
NDX+SU          CA              S+1                             
                TS              L                               
                TS              SKEEP1                          
                NDX             A                               # $ NDX SC
                AD              0000                            # AD L, +2
                EXTEND                                          
                SU              SKEEP1                          # $ SU ERASABLE
                TC              +1CHK                           
                EXTEND                                          
                NDX             L                               # $ NDX SC
                SU              0000                            # $ SU SC, SU L
                TC              -1CHK                           

# D--SC CHECKS DCS SC, DXCH SC, AND DCA SC.
D--SC           CA              S+2                             
                TS              L                               # +2
                CA              S+1                             
                EXTEND                                          
                DCS             A                               # $ DCS SC, C(L) = -2
                TC              -1CHK                           
# AFTER DXCH C(A) = B(Q) = +3, C(L) = B(A) = +0, C(Q) = B(L) = -1.
                DXCH            L                               # $ DXCH SC
                TS              SKEEP3                          
                AD              Q                               
                TC              +1CHK                           
                CA              L                               
                TC              +0CHK                           
                CA              S-1                             
                TS              Q                               
                CS              A                               
                EXTEND                                          
# AFTER DCA C(A) = C(L) = C(Q) = B(Q) = -1.
                DCA             L                               # $ DCA SC
                AD              Q                               
                AD              SKEEP3                          
                TC              +1CHK                           
                CA              L                               
                TC              -1CHK                           

# D--LCHK CHECKS THAT OVERFLOW IS LOST IN PROCESS OF GOING THROUGH L REG.
# ALSO CHECKS THAT Q WILL HOLD 16 BITS
D--LCHK         CA              S-2                             
                TS              Q                               
                CA              S-MAX                           
                ADS             Q                               
                CS              Q                               
## Page 1088                               
                TS              A                               
                TC              ERRORS                          
                EXTEND                                          
                DCA             L                               
                TS              A                               
                TC              +2                              
                TC              ERRORS                          
                TC              -1CHK                           

# CHECKS OVERFLOW, UNDERFLOW,END-AROUND-CARRY, AND SIGN CHANGE OF ADDER.
# ALSO CHECKS ADS SC WITH OVERFLOW AND TS A WITH UNDERFLOW
ADDRCHK         CA              SBIT14                          # 20000
                TS              Q                               
                ADS             Q                               # $ ADS SC, OVERFLOW
                ADS             Q                               # UNDERFLOW
                TS              A                               # $ TS SC WITH UNDERFLOW
                TC              ERRORS                          
                ADS             Q                               
                TC              +1CHK                           

# RUPTCHK CHECKS THAT INTERRUPT DOES NOT OCCUR WHILE OVERFLOW OR UNDERFLOW
# IS IN THE A REGISTER. ALSO CHECKS THAT INHINT RELINT WORK PROPERLY.
RUPTCHK         INHINT                                          
                CA              S+ZERO                          
                TS              ZRUPT                           
                RELINT                                          
                AD              TIME4                           
                TS              SKEEP1                          
TENMS           CS              SKEEP1                          
                AD              TIME4                           # WAIT FOR NEXT TIME4 INCREMENT
                EXTEND                                          
                BZF             TENMS                           
                INHINT                                          
                CA              ZRUPT                           
                EXTEND                                          
                BZF             +2                              # NO INTERRUPT.
                TC              RUPTCHK                         # THERE WAS AN INTERRUPT. START AGAIN.
                CAF             S+1                             # 2 1/2 MS UNTILE NEXT T3 INTERRUPT.
                TC              WAITLIST                        
                EBANK=          LST1                            
                2CADR           TSKADRS                         

                CA              S+MAX                           
                AD              OVCON                           # CONTROLS TIME SPENT IN OF-UF LOOP
                RELINT                                          
WAIT            CS              A                               
                CCS             A                               
                TC              INHNTCHK                        
RUPTCON         ADRES           C(BRUPT)                        
                AD              S+2                             
## Page 1089
                TC              WAIT                            
INHNTCHK        INHINT                                          # T3 RUPT SHOULD BE WAITING
                TS              SKEEP5                          
                TC              ERRORS                          
                RELINT                                          
C(BRUPT)        CS              ZRUPT                           # INTERRUPT SHOULD HAPPEN HERE
                EXTEND                                          
                BZF             +6                              # MAKES SURE AN INTERRUPT DID OCCUR
                TC              IN-OUT1                         # AN INTERRUPT. END OF RUPTCHK
TSKADRS         CS              ZRUPT                           
                AD              RUPTCON                         
                TC              -1CHK                           
                TC              TASKOVER                        
                TC              ERRORS                          # NO INTERRUPT                        

# IN-OUT1 CHECKS ALL PULSES OF WRITE AND READ
IN-OUT1         CA              S-1                             
WRITECHK        EXTEND                                          
                WRITE           Q                               
                LXCH            Q                               # PUT C(Q) IN L
                TC              -1CHK                           
READCHK         EXTEND                                          # C(L) = 77776
                READ            L                               
                TC              -1CHK                           
                CA              L                               
                TC              -1CHK                           

# IN-OUT2 CHECKS ALL PULSES OF ROR AND WOR
IN-OUT2         CS              S+3                             
RORCHK          TS              L                               # 77774
                CA              DVCON                           # 37776
                EXTEND                                          
                ROR             L                               # $ ROR, -1
                TC              -1CHK                           
WORCHK          CA              DVCON                           # C(L) STILL 77774
                EXTEND                                          
                WOR             L                               # $ WOR, -1
                TC              -1CHK                           
                CA              L                               
                TC              -1CHK                           

# IN-OUT3 CHECKS ALL PULSES OF RAND, WAND, AND RXOR
IN-OUT3         CS              DVCON                           
RANDCHK         TS              L                               # 40001
                CA              S13BITS                         # 17777
                EXTEND                                          
                RAND            L                               # $ RAND, +1
                TC              +1CHK                           
WANDCHK         CA              S13BITS                         # C(L) STILL 40001
                EXTEND                                          
## Page 1090                
                WAND            L                               # $ WAND, +1
                TC              +1CHK                           
                CS              S+5                             
                XCH             L                               # ALSO PUT -5 IN L FOR RXORCHK
                TC              +1CHK                           
RXORCHK         CA              S+6                             
                EXTEND                                          
                RXOR            L                               # $ RXOR, -3
                AD              S+2                             
                TC              -1CHK                           
                CA              L                               
                AD              S+4                             
                TC              -1CHK                           

                TC              SMODECHK                        

# COUNTCHK COUNTS UP 14 BIT NUMBER WITH SIGN.
# TAKES APPROXIMATELY 8.7 SECONDS.
# ** PUT IN CCS NEWJOB FOR ROPE.
COUNTCHK        EXTEND                                          
                DCA             S+MAX                           
                DXCH            SKEEP6                          # PUT 37777 IN SKEEP6 AND 40000 IN SKEEP7
+LOOP           CA              SKEEP6                          
                XCH             Q                               
                EXTEND                                          
                DCS             L                               
                CCS             A                               
                TC              -NMBR                           
                TC              ENDCOUNT                        
                TS              SKEEP6                          
                AD              SKEEP7                          
                TC              -1CHK                           
                INCR            SKEEP7                          
                TC              +LOOP                           
-NMBR           AD              L                               
                TC              -1CHK                           
                TC              CHECKNJ                         # CHECK FOR NEW JOB
                CS              SKEEP6                          
                TC              +LOOP           +1              
ENDCOUNT        CA              SKEEP7                          # -0
                AD              SKEEP6                          # SKEEP6 SHOULD BE +0
                TC              -0CHK                           

# O-UFLOW COUNTS DOWN OVERFLOW AND UNDERFLOW NUMBERS.
# TAKES APPROXIMATELY 10.8 SECONDS
O-UFLOW         CA              S-MAX                           
                TS              SKEEP5                          # 40000
                CS              A                               
OFLOOP          INHINT                                          
                AD              S+MAX                           
## Page 1091                
                AD              S+1                             
                XCH             Q                               
                CCS             Q                               
                TC              -NMBRS                          
                TC              ERRORS                          # CAN PUT IN CONSTANT
                TS              SKEEP3                          
                TC              ERRORS                          
                CA              SKEEP3                          
                AD              SKEEP5                          
                TC              -1CHK                           
                RELINT                                          
                TC              CHECKNJ                         # CHECK FOR NEW JOB
                CA              SKEEP4                          
                EXTEND                                          
                DIM             SKEEP5                          
                TC              OFLOOP                          
-NMBRS          TS              SKEEP4                          
                TC              ENDOFUF                         
                CA              SKEEP4                          
                AD              SKEEP5                          
                TC              -1CHK                           
                CA              SKEEP5                          
                AD              S-MAX                           
                AD              S-1                             
                TC              OFLOOP          +3              
ENDOFUF         CA              SKEEP5                          
                TC              -0CHK                           
                CS              SKEEP4                          
                AD              DVCON                           
                TC              -1CHK                           
                RELINT                                          

                TC              SMODECHK                        

# SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
# SKEEP6 HOLDS B(X+1).
# SKEEP5 HOLDS B(X).
# SKEEP4 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH
# BANK NUMBERS IN EB.
# SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
# SKEEP2 HOLDS C(EBANK) DURING CHECKNJ
# ERASCHK TAKES APPROXMATELY 7 SECONDS
ERASCHK         CA              S+1                             
                TS              SKEEP4                          
0EBANK          CA              S+ZERO                          
                TS              EBANK                           
                CA              ERASCON3                        # 01461
                TS              SKEEP7                          # STARTING ADDRESS
                CA              S10BITS                         # 01777
                TS              SKEEP3                          # LAST ADDRESS CHECKED
## Page 1092                
                TC              ERASLOOP                        

E134567B        CA              ERASCON6                        # 01400
                TS              SKEEP7                          # STARTING ADDRESS
                CA              S10BITS                         # 01777
                TS              SKEEP3                          # LAST ADDRESS CHECKED
                TC              ERASLOOP                        

2EBANK          CA              ERASCON6                        # 01400
                TS              SKEEP7                          # STARTING ADDRESS
                CA              ERASCON4                        # 01774
                TS              SKEEP3                          # LAST ADDRESS CHECKED
                TC              ERASLOOP                        

NOEBANK         TS              SKEEP4                          # +0
                CA              ERASCON1                        # 00061
                TS              SKEEP7                          # STARTING ADDRESS
                CA              ERASCON2                        # 01374
                TS              SKEEP3                          # LAST ADDRESS CHECKED

ERASLOOP        INHINT                                          
                EXTEND                                          
                INDEX           SKEEP7                          
                DCA             0000                            
                DXCH            SKEEP5                          # STORES C(X) AND C(X-1) IN SKEEP6 AND 5.
                CA              SKEEP7                          
                TS              ERESTORE                        # IF RESTART, RESTORE C(X) AND C(X+1)
                TS              L                               
                INCR            L                               
                NDX             A                               
                DXCH            0000                            # PUTS OWN ADDRESS IN X AND X +1
                NDX             SKEEP7                          
                CS              0001                            # CS  X+1
                NDX             SKEEP7                          
                AD              0000                            # AD X
                TC              -1CHK                           
                CA              ERESTORE                        # HAS ERASABLE BEEN RESTORED
                EXTEND                                          
                BZF             ELOOPFIN                        # YES, EXIT ERASLOOP.
                EXTEND                                          
                NDX             SKEEP7                          
                DCS             0000                            # COMPLEMENT OF ADDRESS OF X AND X+1
                NDX             SKEEP7                          
                DXCH            0000                            # PUT COMPLEMENT OF ADDRESS OF X AND X+1
                NDX             SKEEP7                          
                CS              0000                            # CS X
                NDX             SKEEP7                          
                AD              0001                            # AD X+1
                TC              -1CHK                           
                CA              ERESTORE                        # HAS ERASABLE BEEN RESTORED
## Page 1093                
                EXTEND                                          
                BZF             ELOOPFIN                        # YES, EXIT ERASLOOP.
                EXTEND                                          
                DCA             SKEEP5                          
                NDX             SKEEP7                          
                DXCH            0000                            # PUT B(X) AND B(X+1) BACK INTO X AND X+1
                CA              S+ZERO                          
                TS              ERESTORE                        # IF RESTART, DO NOT RESTORE C(X), C(X+1)
ELOOPFIN        RELINT                                          
                CA              EBANK                           # STORES C(EBANK)
                TS              SKEEP2                          
                TC              CHECKNJ                         # CHECK FOR NEW JOB
                CA              SKEEP2                          # REPLACES B(EBANK)
                TS              EBANK                           
                INCR            SKEEP7                          
                CS              SKEEP7                          
                AD              SKEEP3                          
                EXTEND                                          
                BZF             +2                              
                TC              ERASLOOP                        # GO TO NEXT ADDRESS IN SAME BANK
                CCS             SKEEP4                          
                TC              NOEBANK                         
                INCR            SKEEP4                          # PUT +1 IN SKEEP4
                CA              EBANK                           
                AD              SBIT9                           
                TS              EBANK                           
                AD              ERASCON5                        # 76777, CHECK FOR BANK E3
                EXTEND                                          
                BZF             2EBANK                          
                CCS             EBANK                           
                TC              E134567B                        # GO TO EBANKS 1,3,4,5,6, AND 7
                CA              ERASCON6                        # END OF ERASCHK
                TS              EBANK                           
# CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
# INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
CNTRCHK         CAF             CNTRCON                         # 00050
CNTRLOOP        TS              SKEEP2                          
                AD              SBIT4                           # +10 OCTAL
                INDEX           A                               
                CS              0000                            
                CCS             SKEEP2                          
                TC              CNTRLOOP                        

# CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
CYCLSHFT        CA              CONC+S1                         # 25252
                TS              CYR                             # C(CYR) = 12525
                TS              CYL                             # C(CYL) = 52524
                TS              SR                              # C(SR) = 12525
                TS              EDOP                            # C(EDOP) = 00125
                AD              CYR                             # 37777         C(CYR) = 45252
## Page 1094
                AD              CYL                             # 00-12524      C(CYL) = 25251
                AD              SR                              # 00-25251      C(SR) = 05252
                AD              EDOP                            # 00-25376      C(EDOP) = +0
                AD              CONC+S2                         # C(CONC+S2) = 52400
                TC              -1CHK                           
                AD              CYR                             # 45252
                AD              CYL                             # 72523
                AD              SR                              # 77775
                AD              EDOP                            # 77775
                AD              S+1                             # 77776
                TC              -1CHK                           

                INCR            SCOUNT          +1              
                TC              SMODECHK                        
                TC              ROPECHK                         

# SKEEP1 HOLDS SUM
# SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
# SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
# SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
#                              (04000 TO 07777 IN FXFX BANKS)
# SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
# SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
# SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
# SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
# SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS

STSHOSUM        TC              GRABDSP                         
                TC              PREGBSY                         
                TC              +3                              
ROPECHK         CA              S-ZERO                          
                TS              SKEEP6                          # ROPECHK OPTION
                CA              S+ZERO                          
                TS              SKEEP4                          # BANK NUMBER
                CA              S+1                             
COMMFX          TS              SKEEP7                          
                CA              S+ZERO                          
                TS              SKEEP1                          
                TS              SKEEP3                          
                CA              S+1                             
                TS              SKEEP5                          # COUNTS DOWN 2 TC SELF WORDS
COMADRS         CA              SKEEP4                          
                TS              L                               # TO SET SUPER BANK
                MASK            HI5                             
                AD              SKEEP3                          
                TC              SUPDACAL                        # SUPER DATA CALL
                TC              ADSUM                           
                AD              SBIT11                          # 02000
                TC              ADRSCHK                         
## Page 1095
FXFX            CS              A                               
                TS              SKEEP7                          
                EXTEND                                          
                BZF             +3                              
                CA              SBIT12                          # 04000, STARTING ADDRESS OF BANK 02
                TC              +2                              
                CA              SBNK03                          # 06000, STARTING ADDRESS OF BANK 03
                TS              SKEEP3                          
                CA              S+ZERO                          
                TS              SKEEP1                          
                CA              S+1                             
                TS              SKEEP5                          # COUNTS DOWN 2 TC SELF WORDS
FXADRS          INDEX           SKEEP3                          
                CA              0000                            
                TC              ADSUM                           
                TC              ADRSCHK                         

ADSUM           TS              SKEEP2                          
                AD              SKEEP1                          
                TS              SKEEP1                          
                CAF             S+ZERO                          
                AD              SKEEP1                          
                TS              SKEEP1                          
                CS              SKEEP2                          
                AD              SKEEP3                          
                TC              Q                               

ADRSCHK         LXCH            A                               
                CCS             SKEEP5                          # IS CHECKSUM FINISHED
                TC              +3                              # NO
                TC              +2                              # NO
                TC              SOPTION                         # GO TO ROPECHK SHOWSUM OPTION
                CCS             L                               # -0 MEANS A TC SELF WORD.
                TC              CONTINU                         
                TC              CONTINU                         
                TC              CONTINU                         
                CCS             SKEEP5                          
                TC              CONTINU         +1              
                CA              S-1                             
                TC              CONTINU         +1              # AD IN THE BUGGER WORD
CONTINU         CA              S+1                             # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
                TS              SKEEP5                          
                CCS             SKEEP6                          # +1 IN SKEEP6, SHOWSUM VIA EXECUTIVE
                CCS             NEWJOB                          
                TC              CHANG1                          
                TC              +2                              
                TC              CHECKNJ                         # -0 IN SKEEP6 FOR ROPECHK

ADRS+1          INCR            SKEEP3                          
                CCS             SKEEP7                          
## Page 1096
                TC              COMADRS                         
                TC              COMADRS                         
                TC              FXADRS                          
                TC              FXADRS                          

NXTBNK          CS              SKEEP4                          
                AD              LSTBNKCH                        # LAST BANK TO BE CHECKED
                EXTEND                                          
                BZF             ENDSUMS                         # END OF SUMMING OF BANKS.
                CA              SKEEP4                          
                AD              SBIT11                          
                TS              SKEEP4                          # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
                TC              CHKSUPR                         
17TO20          CA              SBIT15                          
                ADS             SKEEP4                          # SET FOR BANK 20
                TC              GONXTBNK                        
CHKSUPR         MASK            HI5                             
                EXTEND                                          
                BZF             NXTSUPR                         # INCREMENT SUPER BANK
27TO30          AD              S13BITS                         
                EXTEND                                          
                BZF             +2                              # BANK SET FOR 30
                TC              GONXTBNK                        
                CA              SIXTY                           # FIRST SUPER BANK
                ADS             SKEEP4                          
                TC              GONXTBNK                        
NXTSUPR         AD              SUPRCON                         # SET BNK 30 + INCR SUPR BNK AND CANCEL
                ADS             SKEEP4                          # ERC BIT OF THE 37 TO 40 ADVANCE.
GONXTBNK        CCS             SKEEP7                          
                TC              COMMFX                          
                CA              S+1                             
                TC              FXFX                            
                CA              SBIT7                           # HAS TO BE LARGER THAN NO OF FXSW BANKS.
                TC              COMMFX                          

ENDSUMS         CCS             SKEEP6                          
                TC              ROPECHK         +2              # START SHOWSUM AGAIN
S+MAX           OCTAL           37777                           # ** S+MAX AND S-MAX MUST BE TOGETHER
S-MAX           OCTAL           40000                           # FOR DOUBLE PRECISION CHECKING.
                TC              RPCHKFIN                        # ROPECHK IS COMPLETE

SOPTION         CA              SKEEP4                          
                MASK            HI5                             # = BANK BITS
                TC              LEFT5                           
                TS              L                               # BANK NUMBER BEFORE SUPER BANK
                CA              SKEEP4                          
                MASK            S8BITS                          # = SUPER BANK BITS
                EXTEND                                          
                BZF             SOPT                            # BEFORE SUPER BANK
                TS              SR                              # SUPER BANK NECESSARY
## Page 1097
                CA              L                               
                MASK            SEVEN                           
                AD              SR                              
                TS              L                               # BANK NUMBER WITH SUPER BANK
SOPT            CCS             SKEEP6                          
                TC              SDISPLAY                        
VNCON           OCTAL           00501                           # USED IN SHOWSUM. DISPLAY 3 REGISTERS.
                EBANK=          NEWJOB                          
LSTBNKCH        BBCON*                                          # * CONSTANT, LAST BANK.                

BNKCHK          CCS             SKEEP1                          # WHEN C(SKEEP6) = -0
                TC              +4                              
SCADR           FCADR           NOKILL                          # * CONSTANT, USED IN SHOWSUM ONLY
                TC              +2                              
                CA              S-1                             # FOR BANK 00
                TS              SKEEP1                          
                CS              L                               # = - BANK NUMBER
                AD              SKEEP1                          
                TC              -1CHK                           
                TC              NXTBNK                          

# INITIALIZE SKEEP6 TO +1 TO PERFORM SHOWSUM
# START OF ROUTINE THAT DISPLAYS SUM OF EACH BANK
SHOWSUM         CAF             S+1                             
                TS              SKEEP6                          # SHOWSUM OPTION
                CAF             S+ZERO                          
                TS              SMODE                           # PUT SELF-CHECK TO SLEEP
                CA              SELFADRS                        # INITIALIZE SELFRET TO GO TO SELFCHK.
                TS              SELFRET                         
                INHINT                                          
                CAF             PRIO2                           
                TC              NOVAC                           
                EBANK=          SELFRET                         
                2CADR           STSHOSUM                        

                RELINT                                          
                TC              ENDOFJOB                        

SDISPLAY        CA              L                               # = BANK NUMBER
                XCH             SKEEP2                          # SKEEP2 HOLDS BANK NUMBER DURING DISPLAY
                TS              SKEEP3                          # SKEEP3 HOLDS BUGGER WORD DURING DISPLAY
NOKILL          CAF             ADRS1                           # ADDRESS OF SKEEP1
                TS              MPAC            +2              
                CAF             VNCON                           # DISPLAY 3 REGISTERS
                TC              NVSUB                           
                TC              SBUSY                           
                TC              FLASHON                         
                TC              ENDIDLE                         
                TC              +3                              # FINISHED WITH SHOWSUM
                TC              NXTBNK                          
## Page 1098
                TC              NOKILL                          # SO CAN LOAD WITHOUT KILLING SHOWSUM
                TC              FREEDSP                         
                CA              SELFADRS                        # INITIALIZE SKEEP1 TO GO TO SELFCHK.
                TS              SKEEP1                          
                TC              ENDOFJOB                        

SBUSY           CAF             SCADR                           
                TC              NVSUBUSY                        

RPCHKFIN        TC              SELFCHK                         # START SELF-CHECK AGAIN.

SBNKOPTN        CS              A                               # GO TO BACKUP IDLE LOOP IF C(SMODE) IS
                AD              TWO                             # GREATER THAN OCTAL 11
                EXTEND                                          
                BZMF            TOSMODE         -2              
                CA              S+ZERO                          # ZERO SMODE FOR OPTIONS ABOVE 8.
                TS              SMODE                           
SOPTON11        TC              DSKYCHK                         

                CA              S+ZERO                          
                TS              SMODE                           
TOSMODE         TC              SELFCHK                         

# THE FOLLOWING CONSTANTS ARE USED BY DSKYCHK.
DSKYCODE        OCTAL           05265                           # 00
                OCTAL           04143                           # 11
                OCTAL           05471                           # 22
                OCTAL           05573                           # 33
                OCTAL           04757                           # 44
                OCTAL           05736                           # 55
                OCTAL           05634                           # 66
                OCTAL           05163                           # 77
                OCTAL           05675                           # 88
                OCTAL           05777                           # 99
+-ZERO          OCTAL           07265                           
11DEC.          OCTAL           00013                           

# BITS 2 AND 6 TURN ON THE COMPUTER ACTIVITY AND VERB-NOUN FLASH.
S11CHAN         OCTAL           00042                           

DSKYCHK         CAF             TEN                             
                TS              SKEEP3                          
                INHINT                                          
                CAF             S+1                             # SET UP TEN MS INTERRUPT
                TC              WAITLIST                        
                EBANK=          LST1                            
                2CADR           NXTNMBR                         

                RELINT                                          
                TC              TOSMODE                         # GO TO IDLE LOOP
## Page 1099

SDSPTAB         TS              SKEEP3                          
                INHINT                                          
                NDX             SKEEP3                          
                CS              DSKYCODE                        
SBLANKS         TS              DSPTAB                          
                TS              DSPTAB          +1              
                TS              DSPTAB          +2              
                TS              DSPTAB          +3              
                TS              DSPTAB          +4              
                TS              DSPTAB          +5              
                TS              DSPTAB          +6              
                TS              DSPTAB          +7              
                TS              DSPTAB          +8D             
                TS              DSPTAB          +9D             
                TS              DSPTAB          +10D            
                CA              11DEC.                          
                TS              NOUT                            

DSKYWAIT        INHINT                                          
                CAF             BIT10                           # 5.12 SECOND WAIT
                TC              WAITLIST                        
                EBANK=          LST1                            
                2CADR           NXTNMBR                         

                RELINT                                          
                TC              TASKOVER                        

NXTNMBR         CCS             SKEEP3                          
                TC              SDSPTAB                         # 9 THROUGH 0
                TC              -SIGN                           # -ZEROS
                TC              +SIGN                           # +ZEROS
                CCS             SKEEP2                          
                TC              NODSPLAY                        # PUTS BLANKS IN DSKY DISPLAY
                TC              LITESOUT                        # TURN OFF LIGHTS

-SIGN           CS              S+1                             
                TS              SKEEP3                          
                CA              S11CHAN                         # TURN ON VERB-NOUN FLASH
                EXTEND                                          # AND COMPUTER ACTIVITY LIGHTS.
                WOR             DSALMOUT                        
                CS              +-ZERO                          
                INHINT                                          
                TS              DSPTAB                          
                TS              DSPTAB          +3              
                TS              DSPTAB          +5              
                CAF             THREE                           
                TS              NOUT                            
                TC              DSKYWAIT                        

+SIGN           CS              ZERO                            
## Page 1100                   
                TS              SKEEP3                          
                CA              S+1                             
                TS              SKEEP2                          
                INHINT                                          
                CS              +-ZERO                          
                TS              DSPTAB          +1              
                TS              DSPTAB          +4              
                TS              DSPTAB          +6              
                CAF             THREE                           
                TS              NOUT                            
                TC              DSKYWAIT                        

NODSPLAY        TS              SKEEP2                          # +0
                CS              BIT12                           # BLANKS
                INHINT                                          
                TC              SBLANKS                         # PUTS BLANKS IN ALL DISPLAYS

LITESOUT        CS              S11CHAN                         
                EXTEND                                          
                WAND            DSALMOUT                        # TURN OFF COMPUTER ACTIVITY LIGHT.
                TC              TASKOVER                        # END OF DSKYCHK

back to top