Proof Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc (pg: 0329-0349) (#941)

This commit is contained in:
Zachary Pedigo 2025-08-07 14:41:42 -05:00 committed by GitHub
parent 492368c5be
commit 1a03c1141b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1075,67 +1075,67 @@ UPDATVB XCH Q
# Page 329
TS DSPCOUNT
CA VERBREG
UPDAT1 TC POSTJUMP # CAN'T USE SWCALL TO GO TC DSPDECVN, SINCE
UPDAT1 TC POSTJUMP # CANT USE SWCALL TO GO TC DSPDECVN.SINCE
CADR GOVNUPDT # UPDATVB CAN ITSELF BE CALLED BY SWCALL.
TC UPDATRET
GOALMCYC TC ALMCYCLE # NEEDED BECAUSE BANKJUMP CAN'T HANDLE F/F.
GOALMCYC TC ALMCYCLE # NEEDED BECAUSE BANKJUMP CANT HANDLE F/F.
GODSPALM TC POSTJUMP
CADR DSPALARM
# Page 330
# NOUN TABLES
#
# NOUN TABLES
# NOUN CODE L/40, NORMAL NOUN CASE. NOUN CODE G/E 40, MIXED NOUN CASE.
# FOR NORMAL CASE, NNADTAB CONTAINS ONE ECADR FOR EACH NOUN.
# +0 INDICATES NOUN NOT USED. - ENTRY INDICATES MACHINE CADR (E OR F) TO
# BE SPECIFIED. -1 INDICATES CHANNEL TO BE SPECIFIED. -0 INDICATES AUGMENT
# FOR NORMAL CASE, NNADTAB CONTAINS ONE ECADR FOR EACH NOUN.
# +0 INDICATES NOUN NOT USED. - ENTRY INDICATES MACHINE CADR(E OR F) TO
# BE SPECIFIED. -1 INDICATES CHANNEL TO BE SPECIFIED. -0 INDICATES AUGMENT
# OF LAST MACHINE CADR SUPPLIED.
#
# FOR MIXED CASE, NNADTAB CONTAINS ONE INDIRECT ADDRESS (IDADDREL) IN LOW
# FOR MIXED CASE, NNADTAB CONTAINS ONE INDIRECT ADDRESS(IDADDREL) IN LOW
# 10 BITS, AND THE COMPONENT CODE NUMBER IN THE HIGH 5 BITS.
#
# NNTYPTAB IS A PACKED TABLE OF THE FORM MMMMMNNNNNPPPPP.
#
# FOR THE NORMAL CASE, M'S ARE THE COMPONENT CODE NUMBER.
# N'S ARE THE SF ROUTINE CODE NUMBER.
# P'S ARE THE SF CONSTANT CODE NUMBER.
# FOR THE NORMAL CASE, M-S ARE THE COMPONENT CODE NUMBER.
# N-S ARE THE SF ROUTINE CODE NUMBER.
# P-S ARE THE SF CONSTANT CODE NUMBER.
#
# MIXED-CASE, M'S ARE THE SF CONSTANT3 CODE NUMBER 3 COMPONENT CASE
# N'S ARE THE SF CONSTANT2 CODE NUMBER
# P'S ARE THE SF CONSTANT1 CODE NUMBER
# N'S ARE THE SF CONSTANT2 CODE NUMBER 2 COMPONENT CASE
# P'S ARE THE SF CONSTANT1 CODE NUMBER
# P'S ARE THE SF CONSTANT1 CODE NUMBER 1 COMPONENT CASE
# MIXED-CASE,M-S ARE THE SF CONSTANT3 CODE NUMBER 3 COMPONENT CASE
# N-S ARE THE SF CONSTANT2 CODE NUMBER
# P-S ARE THE SF CONSTANT1 CODE NUMBER
# N-S ARE THE SF CONSTANT2 CODE NUMBER 2 COMPONENT CASE
# P-S ARE THE SF CONSTANT1 CODE NUMBER
# P-S ARE THE SF CONSTANT1 CODE NUMBER 1 COMPONENT CASE
#
# THERE IS ALSO AN INDIRECT ADDRESS TABLE (IDADDTAB) FOR MIXED CASE ONLY
# EACH ENTRY CONTAINS ONE ECADR. IDADDREL IS THE RELATIVE ADDRESS OF
# THERE IS ALSO AN INDIRECT ADDRESS TABLE(IDADDTAB) FOR MIXED CASE ONLY
# EACH ENTRY CONTAINS ONE ECADR. IDADDREL IS THE RELATIVE ADDRESS OF
# THE FIRST OF THESE ENTRIES.
#
# THERE IS ONE ENTRY IN THIS TABEL FOR EACH COMPONENT OF A MIXED NOUN
# THEY ARE LISTED IN ORDER OF ASCENDING K.
#
# THERE IS ALSO A SCALE FACTOR ROUTINE NUMBER TABLE (RUTMXTAB) FOR MIXED
# CASE ONLY. THERE IS ONE ENTRY PER MIXED NOUN. THE FORM IS,
# THERE IS ALSO A SCALE FACTOR ROUTINE NUMBER TABLE( RUTMXTAB ) FOR MIXED
# CASE ONLY. THERE IS ONE ENTRY PER MIXED NOUN. THE FORM IS,
# QQQQQRRRRRSSSSS
# Q-S ARE THE SF ROUTINE 3 CODE NUMBER 3 COMPONENT CASE
# R-S ARE THE SF ROUTINE 2 CODE NUMBER
# S-S ARE THE SF ROUTINE 1 CODE NUMBER
# R-S ARE THE SF ROUTINE 2 CODE NUMBER 2 COMPONENT CASE
# S-S ARE THE SF ROUTINE 1 CODE NUMBER
#
# QQQQQRRRRRSSSSS
#
# Q'S ARE THE SF ROUTINE 3 CODE NUMBER 3 COMPONENT CASE
# R'S ARE THE SF ROUTINE 2 CODE NUMBER
# S'S ARE THE SF ROUTINE 1 CODE NUMBER
# R'S ARE THE SF ROUTINE 2 CODE NUMBER 2 COMPONENT CASE
# S'S ARE THE SF ROUTINE 1 CODE NUMBER
#
# IN OCTAL DISPLAY AND LOAD (OCT OR DEC) VERBS, EXCLUDE USE OF VERBS WHOSE
# COMPONENT NUMBER IS GREATER THAN THE NUMBER OF COMPONENTS IN NOUN.
# (ALL MACHINE ADDRESS TO BE SPECIFIED NOUNS ARE 3 COMPONENT.)
#
#
# IN MULTI-COMPONENT LOAD VERBS, NO MIXING OF OCTAL AND DECIMAL DATA
# COMPONENT WORDS IS ALLOWED. ALARM IF VIOLATION.
#
# IN DECIMAL LOADS OF DATA, 5 NUMERICAL CHARACTERS MUST BE KEYED IN
# BEFORE EACH ENTER. IF NOT, ALARM.
# BEFORE EACH ENTER. IF NOT, ALARM.
# Page 331
# DISPLAY VERBS
@ -1166,9 +1166,9 @@ DSPC CS TWO
INDEX NOUNADD
CS 2
TC DSPCOM1
DSPCOM2 CS TWO # A B C AB ABC
AD VERBREG # -1 -0 +1 +2 +3 IN A
CCS A # +0 +0 +0 +1 +2 IN A AFTER CCS
DSPCOM2 CS TWO # A B C AB ABC
AD VERBREG # -1 -0 +1 +2 +3 IN A
CCS A # +0 +0 +0 +1 +2 IN A AFTER CCS
TC DSPCOM3
TC ENTEXIT
TC +1
@ -1182,48 +1182,48 @@ DSPCOM3 TS DISTEM # +0 +1 +2 INTO DISTEM
XCH DISTEM
TC DSPCOM2 +2
# COMPTEST ALARMS IF COMPONENT NUMBER OF VERB (LOAD OR OCT DISPLAY) IS
# COMPTEST ALARMS IF COMPONENT NUMBER OF VERB(LOAD OR OCT DISPLAY) IS
# GREATER THAN THE HIGHEST COMPONENT NUMBER OF NOUN.
COMPTEST TS SFTEMP1 # VERB COMP
COMPTEST TS SFTEMP1 # - VERB COMP
LXCH Q
COMPTST1 TC GETCOMP
TC LEFT5
MASK THREE # NOUN COMP
# Page 332
AD SFTEMP1 # NOUN COMP -- VERB COMP
AD SFTEMP1 # NOUN COMP - VERB COMP
CCS A
TC L # NOUN COMP G/ VERB COMP
TC CCSHOLE
TC GODSPALM # NOUN COMP L/ VERB COMP
NDCMPTST TC L # NOUN COMP = VERB COMP
# DCOMPTST ALARMS IF DECIMAL ONLY BIT (BIT4 OF COMP CODE NUMBER) = 1.
# IF NOT, IT PERFORMS REGULAR COMPTEST.
DCOMPTST TS SFTEMP1 # - VERB COMP
LXCH Q
TC DECTEST
TC COMPTST1
DECTEST EXTEND # ALARMS IF DEC ONLY BIT = 1 (BIT4 OF COMP
QXCH MPAC +2 # CODE NUMBER). RETURNS IF NOT.
QXCH MPAC +2 # CODE NUMBER). RETURNS IF NOT.
TC GETCOMP
MASK BIT14
CCS A
TC GODSPALM
TC MPAC +2
TC MPAC +2
DCTSTCYC LXCH Q # ALARMS AND RECYCLES IF DEC ONLY BIT = 1
TC GETCOMP # (BIT4 OF COMP CODE NUMBER). RETURNS
TC GETCOMP # ( BIT4 OF COMP CODE NUMBER). RETURNS
MASK BIT14 # IF NOT. USED BY LOAD VERBS.
CCS A
TC ALMCYCLE
TC L
# NOUNTEST ALARMS IF NO-LOAD BIT (BIT5 OF COMP CODE NUMBER) = 1.
# IF NOT, IT RETURNS.
NOUNTEST LXCH Q
TC GETCOMP
CCS A
@ -1231,7 +1231,7 @@ NOUNTEST LXCH Q
TC L
TC GODSPALM
TSTFORDP LXCH Q # TEST FOR DP. IF SO, GET MINOR PART ONLY.
TSTFORDP LXCH Q # TEST FOR DP. IF SO, GET MINOR PART ONLY.
CA NNADTEM
AD ONE # IF NNADTEM = -1, CHANNEL TO BE SPECIFIED
EXTEND
@ -1244,9 +1244,10 @@ TSTFORDP LXCH Q # TEST FOR DP. IF SO, GET MINOR PART ONLY.
TC SFRUTNOR
TC DPTEST
TC L # NO DP
INCR NOUNADD # DP E+1 INTO NOUNADD FOR MINOR PART.
INCR NOUNADD # DP E+1 INTO NOUNADD FOR MINOR PART.
TC L
CHANDSP CA NOUNCADR
MASK LOW9
EXTEND
@ -1255,26 +1256,28 @@ CHANDSP CA NOUNCADR
CS A
TCF DSPCOM1
COMPICK ADRES NNTYPTEM
ADRES NNADTEM
GETCOMP INDEX MIXBR # NORMAL MIXED
CAF COMPICK -1 # ADRES NNTYPTEM ADRES NNADTEM
GETCOMP INDEX MIXBR # NORMAL MIXED
CAF COMPICK -1 # ADRES NNTYPTEM ADRES NNADTEM
INDEX A
CA 0 # C(NNTYPTEM) C(NNADTEM)
MASK HI5 # GET HI5 OF NNTYPTAB (NORM) OF NNADTAB (MIX)
CA 0 # C(NNTYPTEM) C(NNADTEM)
MASK HI5 # GET HI5 OF NNTYPTAB(NORM)OF NNADTAB(MIX)
TC Q
DECDSP TC GETCOMP
TC LEFT5
MASK THREE
TS DECOUNT # COMP NUMBER INTO DECOUNT
DSPDCGET TS DECTEM # PICKS UP DATA
AD NOUNADD # DECTEM 1COMP +0, 2COMP +1, 3COMP +2
AD NOUNADD # DECTEM 1COMP +0, 2COMP +1, 3COMP +2
INDEX A
CS 0
INDEX DECTEM
XCH XREG # CAN'T USE BUF SINCE DMP USES IT.
XCH XREG # CANT USE BUF SINCE DMP USES IT.
CCS DECTEM
TC DSPDCGET # MORE TO GET
DSPDCPUT CAF ZERO # DISPLAYS DATA
@ -1286,11 +1289,11 @@ DSPDCPUT CAF ZERO # DISPLAYS DATA
INDEX DECOUNT
CS XREG
TS MPAC
TC SFCONUM # 2X (SF CON NUMB) IN A
TC SFCONUM # 2X( SF CON NUMB ) IN A
# Page 334
TS SFTEMP1
EXTEND # SWITCH BANKS TO SF CONSTANT TABLE
DCA GTSFOUTL # READING ROUTINE.
DCA GTSFOUTL # READING ROUTINE.
DXCH Z # LOADS SFTEMP1, SFTEMP2
INDEX MIXBR
TC +0
@ -1304,6 +1307,7 @@ DSPSFNOR TC SFRUTNOR
EBANK= DSPCOUNT
GTSFOUTL 2CADR GTSFOUT
DSPDCEND TC BANKCALL # ALL SFOUT ROUTINES END HERE
CADR DSPDECWD
CCS DECOUNT
@ -1312,6 +1316,7 @@ DSPDCEND TC BANKCALL # ALL SFOUT ROUTINES END HERE
TS DECOUNT
TC DSPDCPUT # MORE TO DISPLAY
DECDSP3 INDEX A
CAF SFOUTABR
TC BANKJUMP
@ -1332,19 +1337,19 @@ SFOUTABR CADR PREDSPAL # ALARM IF DEC DISP WITH OCTAL ONLY NOUN
CADR DPFRACOT
ENDRTOUT EQUALS
# THE FOLLOWING IS ATYPICAL SF ROUTINE. IT USES MPAC. LEAVES RESULTS
# IN MPAC, MPAC+1. ENDS WITH TC DSPDCEND
# THE FOLLOWING IS ATYPICAL SF ROUTINE . IT USES MPAC. LEAVES RESU
# LTS IN MPAC, MPAC+1. ENDS WITH TC DSPDCEND
# Page 335
SETLOC BLANKCON +1
COUNT 40/PIN
# DEGOUTSF SCALES BY .18 THE LOW 14 BITS OF ANGLE, ADDING .18 FOR
# DEGOUTSF SCALES BY .18 THE LOW 14 BITS OF ANGLE , ADDING .18 FOR
# NUMBERS IN THE NEGATIVE (AGC) RANGE.
DEGOUTSF CAF ZERO
TS MPAC +2 # SET INDEX FOR FULL SCALE.
TS MPAC +2 # SET INDEX FOR FULL SCALE
TC FIXRANGE
TC +2 # NO AUGMENT NEEDED (SFTEMP1 AND 2 ARE 0)
TC SETAUG # SET AUGMENTER ACCORDING TO C(MPAC +2)
@ -1391,7 +1396,7 @@ FIXRANGE CCS MPAC # IF MPAC IS + RETURN TO L+1
INDEX Q
TC 1
DEGCOM EXTEND # LOADS MULTIPLIER, DOES SHORTMP, AND
DEGCOM EXTEND # LOADS MULTIPLIER , DOES SHORTMP, AND
INDEX MPAC +2 # ADDS AUTMENTER.
DCA DEGTAB
DXCH MPAC # ADJUSTED ANGLE IN A
@ -1400,10 +1405,11 @@ DEGCOM EXTEND # LOADS MULTIPLIER, DOES SHORTMP, AND
DAS MPAC
TC SCOUTEND
DEGTAB OCT 05605 # HI PART OF .18
OCT 03656 # LOW PART OF .18
OCT 16314 # HI PART OF .45
OCT 31463 # LO PART OF .45
DEGTAB OCT 05605 # HI PART OF .18
OCT 03656 # LOW PART OF .18
OCT 16314 # HI PART OF .45
OCT 31463 # LO PART OF .45
20BIAS OCT 16040 # 20 DEG BIAS FOR OPTICS
@ -1414,21 +1420,24 @@ SCOUTEND TC POSTJUMP
CADR DSPDCEND
AROUT1SF DXCH SFTEMP1 # ASSUMES POINT BETWEEN HI AND LO PARTS OF
DXCH MPAC # DP SFCON. SHIFTS RESULTS LEFT 14, BY
DXCH MPAC # DP SFCON. SHIFTS RESULTS LEFT 14, BY
TC PRSHRTMP # TAKING RESULTS FROM MPAC+1, MPAC+2.
TC L14/OUT
DP1OUTSF TC DPOUT # SCALES MPAC, MPAC +1 BY DP SCALE FACTOR
L14/OUT XCH MPAC +2 # IN SFTEMP1, SFTEMP2. THEN SCALE RESULT
XCH MPAC +1 # BY B14
L14/OUT XCH MPAC +2 # IN SFTEMP1, SFTEMP2. THEN SCALE RESULT
XCH MPAC +1 # BY B14
TS MPAC
TC SCOUTEND
DP2OUTSF TC DPOUT # SCALES MPAC, MPAC +1 BY DP SCALE FACTOR
DP2OUTSF TC DPOUT # SCALES MPAC , MPAC +1 BY DP SCALE FACTOR
TC SCOUTEND
DP3OUTSF TC DPOUT # ASSUMES POINT BETWEEN BITS 7-8 OF HIGH
CAF SIX # LEFT BY 7, ROUNDS MPAC+2 INTO MPAC+1
CAF SIX # LEFT BY 7, ROUNDS MPAC+2 INTO MPAC+1.
TC TPLEFTN # SHIFT LEFT 7.
TC SCOUTEND
@ -1443,10 +1452,9 @@ DPOUT XCH Q
TC DMP
ADRES SFTEMP1
TC MPAC+6
# THE FOLLOWING ROUTINE DISPLAYS TWO CONTIGUOUS SP POSITIVE INTEGERS
# AS TWO POSITIVE DECIMAL INTEGERS IN RXD1-RXD2 AND RXD4-RXD5 (RXD3 IS
# BLANKED). THE INTEGER IN THE LOWER NUMBERED ADDRESS IS DISPLAYED IN
# BLANKED). THE INTEGER IN THE LOWER NUMBERED ADDRESS IS DISPLAYED IN
# RXD1-RXD2.
2INTOUT TC 5BLANK # TO BLANK RXD3
@ -1463,11 +1471,13 @@ DPOUT XCH Q
TC POSTJUMP
CADR DSPDCEND +2
DPFRACOT TC READLO # DP FRACTION TO MPAC,+1
TC SCOUTEND
# READLO PICKS UP FRESHDATA FOR BOTH HI AND LO AND LEAVES IT IN
# MPAC, MPAC+1. THIS IS NEEDED FOR TIME DISPLAY. IT ZEROES MPAC+2, BUT
# READLO PICKS UP FRESH DATA FOR BOTH HI AND LO AND LEAVES IT IN
# MPAC, MPAC+1. THIS IS NEEDED FOR TIME DISPLAY. IT ZEROES MPAC+2, BUT
# DOES NOT FORCE TPAGREE.
READLO XCH Q
@ -1478,10 +1488,10 @@ READLO XCH Q
INDEX DECOUNT
CA IDAD1TEM # GET IDADDTAB ENTRY FOR COMP K OF NOUN.
MASK LOW11 # E SUBK
TC SETEBANK # SET EB, LEAVE EADRES IN A
READLO1 EXTEND # MIXED NORMAL
INDEX A # C(ESUBK) C(E)
DCA 0 # C(E SUBK)+1) C(E+1)
TC SETEBANK # SET EB, LEAVE EADRES IN A.
READLO1 EXTEND # MIXED NORMAL
INDEX A # C(ESUBK) C(E)
DCA 0 # C((E SUBK)+1) C(E+1)
DXCH MPAC
# Page 338
CAF ZERO
@ -1491,16 +1501,17 @@ READLO1 EXTEND # MIXED NORMAL
RDLONOR CA NOUNADD # E
ENDRDLO TC READLO1
BANK 42
SETLOC PINBALL3
BANK
COUNT 42/PIN
HMSOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC.
HMSOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC,
CADR READLO # MPAC+1.
TC TPAGREE # MAKE DP DATA AGREE.
TC SEPSECNR # LEAVE FRACT SEC/60 IN MPAC, MPAC+1. LEAVE
TC TPAGREE # MAKE DP DATA AGREE
TC SEPSECNR # LEAVE FRACT SEC/60 IN MPAC, MPAC+1.LEAVE
# WHOLE MIN IN BIT13 OF LOTEMOUT AND ABOVE
TC DMP # USE ONLY FRACT SEC/60 MOD 60
ADRES SECON2 # MULT BY .06
@ -1509,14 +1520,14 @@ HMSOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC.
TC BANKCALL # DISPLAY SEC MOD 60
CADR DSPDECWD
TC SEPMIN # REMOVE REST OF SECONDS
CAF MINCON2 # LEAVE FRACT MIN/60 IN MPAC+1. LEAVE
CAF MINCON2 # LEAVE FRACT MIN/60 IN MPAC+1. LEAVE
XCH MPAC # WHOLE HOURS IN MPAC.
TS HITEMOUT # SAVE WHOLE HOURS.
CAF MINCON2 +1
XCH MPAC +1 # USE ONLY FRACT MIN/60 MOD 60
TC PRSHRTMP # IF C(A) = -0, SHORTMP FAILS TO GIVE -0.
# MULT BY .0006
CAF R2D1 # GIVE MIN/10EXP5 MOD 60
CAF R2D1 # GIVES MIN/10EXP5 MOD 60
TS DSPCOUNT
TC BANKCALL # DISPLAY MIN MOD 60
CADR DSPDECWD
@ -1528,54 +1539,56 @@ HMSOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC.
# MULT BY .16384
CAF R1D1 # GIVES HOURS/10EXP5
TS DSPCOUNT
TC BANKCALL # USE REGULAR DSPDECWD WITH ROUND OFF.
TC BANKCALL # USE REGULAR DSPDECWD, WITH ROUND OFF.
CADR DSPDECWD
TC ENTEXIT
SECON1 2DEC* 1.666666666 E-4 B12* # 2EXP12/6000
SECON1 2DEC* 1.666666666 E-4 B12* # 2EXP12/6000
# Page 339
SECON2 OCT 01727 # .06 FOR SECONDS DISPLAY
OCT 01217
MINCON2 OCT 00011 # .0006 FOR MINUTES DISPLAY
MINCON2 OCT 00011 # .0006 FOR MINUTES DISLPAY
OCT 32445
MINCON1 OCT 02104 # .06..66 UPPED BY 2EXP-2B
MINCON1 OCT 02104 # .066..66 UPPED BY 2EXP-28
OCT 10422
HRCON1 2DEC .16384
OCT 00000
RNDCON OCT 00062 # .5 SEC
M/SOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC.
CADR READLO # MPAC+1.
TC TPAGREE # MAKE DP DATA AGREE
CCS MPAC # IF MAG OF (MPAC, MPAC+1) G/ 59 M 59 S.
CCS MPAC # IF MAG OF (MPAC, MPAC+1) G/ 59 M 59 S,
TC +2 # DISPLAY 59B59, WITH PROPER SIGN.
TC M/SNORM # MPAC = +0. L/ 59M58.5S
AD M/SCON1 # - HI PART OF (59M58.5) +1 FOR CCS
TC M/SNORM # MPAC = +0. L/ 59M58.5S
AD M/SCON1 # - HI PART OF (59M58.5S) +1 FOR CCS
CCS A # MAG OF MPAC - HI PART OF (59M58.5S)
TC M/SLIMIT # G/ 59M58.5S
TC M/SNORM # ORIGINAL MPAC = -0. L/59M58.5S
TC M/SNORM # ORIGINAL MPAC = -0. L/ 59M58.5S
TC M/SNORM # L/ 59M58.5S
CCS MPAC +1 # MAG OF MPAC = HI PART OF 59M58.5S
CCS MPAC +1 # MAG OF MPAC = HI PART OF 59M58.5S
TC +2
TC M/SNORM # MPAC+1 = +0. L/ 59M58.5S
AD M/SCON2 # - LO PART OF (59M58.5S) +1 FOR CCS
TC M/SNORM # MPAC+1 = +0. L/ 59M58.5S
AD M/SCON2 # - LO PART OF (59M58.5S) +1 FOR CCS
CCS A # MAG OF MPAC+1 - LO PART OF (59M58.5S)
TC M/SLIMIT # G/ 59M58.5S
TC M/SNORM # ORIGINAL MPAC+1 = -0. L/ 49M58.5S
TC M/SNORM # ORIGINAL MPAC+1 = -0. L/ 59M58.5S
TC M/SNORM # L/ 59M58.5S
M/SLIMIT CCS MPAC # = 59M58.5S LIMIT
M/SLIMIT CCS MPAC # = 59M58.5S LIMIT
CAF M/SCON3 # MPAC CANNOT BE +/- 0 AT THIS POINT.
TC +LIMIT # FORCE MPAC, MPAC+1 TO +/- 59M58.5S
CS M/SCON3
TS MPAC # WILL DISPLAY 59M59S IN DSPDECNR
CS M/SCON3 +1
LIMITCOM TS MPAC +1
LIMITCOM TS MPAC +1
CAF NORMADR # SET RETURN TO M/SNORM+1.
TC SEPSECNR +1
+LIMIT TS MPAC
CAF M/SCON3 +1
TC LIMITCOM
M/SNORM TC SEPSEC # LEAVE FRACT SEC/60 IN MPAC,MPAC+1. LEAVE
M/SNORM TC SEPSEC # LEAVE FRACT SEC/60 IN MPAC,MPAC+1. LEAVE
# WHOLE MIN IN BIT13 OF LOTEMOUT AND ABOVE
CAF HISECON # USE ONLY FRACT SEC/60 MOD 60
TC SHORTMP # MULT BY .6 + 2EXP-14
@ -1593,7 +1606,7 @@ M/SNORM TC SEPSEC # LEAVE FRACT SEC/60 IN MPAC,MPAC+1. LEAVE
TC BANKCALL # BLANK MIDDLE CHAR
CADR DSPIN
TC SEPMIN # REMOVE REST OF SECONDS
XCH MPAC +1 # LEAVE FRACT MIN/60 IN MPAC+1
XCH MPAC +1 # LEAVE FRACT MIN/60 IN MPAC+1
EXTEND # USE ONLY FRACT MIN/60 MOD 60
MP HIMINCON # MULT BY .6 + 2EXP-7
DXCH MPAC # GIVES MIN/100 MOD 60
@ -1615,7 +1628,7 @@ M/SCON3 OCT 00025 # 59M 59.5S
OCT 37016
SEPSEC CCS MPAC +1 # IF +, ROUND BY ADDING .5 SEC
TCF POSEC # IF -, ROUND BY SUBTRACING .5 SEC
TCF POSEC # IF -, ROUND BY SUBTRACTING .5 SEC
TCF POSEC # FINDS TIME IN MPAC, MPAC+1
TCF +1 # ROUNDS OFF BY +/- .5 SEC
EXTEND # LEAVES WHOLE MIN IN BIT13 OF
@ -1623,7 +1636,7 @@ SEPSEC CCS MPAC +1 # IF +, ROUND BY ADDING .5 SEC
SEPSEC1 DAS MPAC # LEAVES FRACT SEC/60 IN MPAC, MPAC+1.
TCF SEPSECNR
POSEC EXTEND
DCA RNDCON -1
DCA RNDCON -1
TCF SEPSEC1
SEPSECNR XCH Q # THIS ENTRY AVOIDS ROUNDING BY .5 SEC
TS SEPSCRET
@ -1636,19 +1649,20 @@ SEPSECNR XCH Q # THIS ENTRY AVOIDS ROUNDING BY .5 SEC
TC TPSL1
TC TPSL1 # GIVES FRACT SEC/60 IN MPAC+1, MPAC+2.
CAF ZERO
XCH MPAC +2 # LEAVE FRACT SEC/60 IN MPAC, MPAC+1.
XCH MPAC +1
XCH MPAC +2 # LEAVE FRACT SEC/60 IN MPAC, MPAC+1.
XCH MPAC +1
XCH MPAC
TC SEPSCRET
SEPMIN XCH Q # FIND WHOLE MINUTES IN BIT13
SEPMIN XCH Q # FINDS WHOLE MINUTES IN BIT13
TS SEPMNRET # OF LOTEMOUT AND ABOVE.
CA LOTEMOUT # REMOVES REST OF SECONDS.
EXTEND # LEAVES FRACT MIN/60 IN MPAC+1.
MP BIT3 # LEAVES WHOLE HOURS IN MPAC.
EXTEND # SR 12, THROW AWAY LP.
MP BIT13 # SR 2, TAKE FROM LP. = SL 12.
LXCH MPAC +1 # THIS FORCES BITS 12-1 TO 0 IF +.
LXCH MPAC +1 # THIS FORCES BITS 12-1 TO 0 IF +.
# FORCES BITS 12-1 TO 1 IF -.
CA HITEMOUT
TS MPAC
@ -1656,13 +1670,15 @@ SEPMIN XCH Q # FIND WHOLE MINUTES IN BIT13
ADRES MINCON1 # GIVES FRACT MIN/60 IN MPAC+1.
ENDSPMIN TC SEPMNRET # GIVES WHOLE HOURS IN MPAC.
# THIS IS A SPECIAL PURPOSE VERB FOR DISPLAYING A DOUBLE PRECISION AGC
# WORD AS 10 DECIMAL DIGITS ON THE AGC DISPLAY PANEL. IT CAN BE USED WITH
# ANY NOUN, EXCEPT MIXED NOUNS. IT DISPLAYS THE CONTENTS
# OF THE REGISTER NOUNADD IS POINTING TO. IF USED WITH NOUNS WHICH ARE
# ANY NOUN, EXCEPT MIXED NOUNS. IT DISPLAYS THE CONTENTS
# OF THE REGISTER NOUNADD IS POINTING TO . IF USED WITH NOUNS WHICH ARE
# INHERENTLY NOT DP SUCH AS THE CDU COUNTERS THE DISPLAY WILL BE GARBAGE.
# DISPLAY IS IN R1 AND R2 ONLY WITH THE SIGN IN R1.
SETLOC ENDRDLO +1
COUNT 40/PIN
@ -1678,7 +1694,7 @@ DSPDPDEC INDEX MIXBR
CAF R1D1
TS DSPCOUNT
CAF ZERO
TS MPAC +2
TS MPAC +2
TC TPAGREE
# Page 342
TC DSP2DEC
@ -1686,16 +1702,17 @@ ENDDPDEC TC ENTEXIT
# Page 343
# LOAD VERBS IF ALARM CONDITION IS DETECTED DURING EXECUTE,
# CHECK FAIL LIGHT IS TURNED ON AND ENDOFJOB. IF ALARM CONDITION IS
# LOAD VERBS IF ALARM CONDITION IS DETECTED DURING EXECUTE,
# CHECK FAIL LIGHT IS TURNED ON AND ENDOFJOB. IF ALARM CONDITION IS
# DETECTED DURING ENTER OF DATA, CHECK FAIL IS TURNED ON AND IT RECYCLES
# TO EXECUTE OF ORIGINAL LOAD VERB. RECYCLE CAUSED BY 1) DECIMAL MACHINE
# CADR 2) MIXTURE OF OCTAL/DECIMAL DATA 3) OCTAL DATA INTO DECIMAL
# ONLY NOUN 4) DEC DATA INTO OCT ONLY NOUN 5) DATA TOO LARGE FOR SCALE
# 6) FEWER THAN 3 DATA WORDS LOADED FOR HRS, MIN, SEC NOUN.8 (2)-(6) ALARM
# AND RECYCLE OCCUR AT FINAL ENTER OF SET. (1) ALARM AND RECYCLE OCCUR AT
# TO EXECUTE OF ORIGINAL LOAD VERB. RECYCLE CAUSED BY 1) DECIMAL MACHINE
# CADR 2) MIXTURE OF OCTAL/DECIMAL DATA 3) OCTAL DATA INTO DECIMAL
# ONLY NOUN 4) DEC DATA INTO OCT ONLY NOUN 5) DATA TOO LARGE FOR SCALE
# 6) FEWER THAN 3 DATA WORDS LOADED FOR HRS, MIN, SEC NOUN.8(2)-(6) ALARM
# AND RECYCLE OCCUR AT FINAL ENTER OF SET. (1) ALARM AND RECYCLE OCCUR AT
# ENTER OF CADR.
SETLOC ENDRTOUT
COUNT 41/PIN
@ -1704,15 +1721,16 @@ ABCLOAD CS TWO
TC COMPTEST
TC NOUNTEST # TEST IF NOUN CAN BE LOADED.
CAF VBSP1LD
TC UPDATVB -1
TC UPDATVB -1
TC REQDATX
CAF VBSP2LD
TC UPDATVB -1
TC UPDATVB -1
TC REQDATY
CAF VBSP3LD
TC UPDATVB -1
TC REQDATZ
PUTXYZ CS SIX # TEST THAT THE 3 DATA WORDS LOADED ARE
TC ALLDC/OC # ALL DEC OR ALL OCT.
EXTEND
@ -1724,42 +1742,41 @@ PUTXYZ CS SIX # TEST THAT THE 3 DATA WORDS LOADED ARE
TS 0
CAF ONE # Y COMP
TC PUTCOM
INDEX NOUNADD
INDEX NOUNADD
TS 1
CAF TWO # Z COMP
TC PUTCOM
INDEX NOUNADD
TS 2
CS SEVEN # IF NOUN 7 HAS JUST BEEN LOADED, SET
AD NOUNREG # FLAG BITS AS SPECIFIED.
AD NOUNREG # FLAG BITS AS SPECIFIED.
EXTEND
BZF +2
# Page 344
TC LOADLV
CA XREG # ECADR OF ERASABLE CELL
TC SETNCADR +1 # SET EBANK, NOUNADD
CA XREG # ECADR OF FLAG WORD.
TC SETNCADR +1 # SET EBANK, NOUNADD.
CA ZREG # ZERO TO RESET BITS. NON-ZERO TO SET BITS
INHINT
EXTEND
BZF BITSOFF
INDEX NOUNADD
CS 0
MASK YREG # BITS TO BE PROCESSED
MASK YREG # BITS TO BE PROCESSED.
INDEX NOUNADD
ADS 0 # SET BITS.
TC BITSOFF1
BITSOFF CS YREG # BITS TO BE PROCESSED
BITSOFF CS YREG # BITS TO BE PROCESSED.
INDEX NOUNADD
MASK 0
INDEX NOUNADD
TS 0 # RESET BITS
TS 0 # RESET BITS.
BITSOFF1 RELINT
TC LOADLV
ABLOAD CS ONE
TC COMPTEST
TC NOUNTEST # TEST IF NOUN CAN BE LOADED
TC NOUNTEST # TEST IF NOUN CAN BE LOADED.
CAF VBSP1LD
TC UPDATVB -1
TC REQDATX
@ -1835,22 +1852,23 @@ VBSP2LD DEC 22 # VB22 = BLOAD
VBSP3LD DEC 23 # VB23 = CLOAD
ALLDC/OC TS DECOUNT # TESTS THAT DATA WORDS LOADED ARE EITHER
CS DECBRNCH # ALL DEC OR ALL OCT. ALARMS IF NOT.
CS DECBRNCH # ALL DEC OR ALL OCT. ALARMS IF NOT.
# Page 346
TS SR
CS SR
CS SR # SHIFTED RIGHT 2
CCS A # DEC COMP BITS IN LOW 3
TCF +2 # SOME ONES IN LOW 3
TC Q # ALL ZEROS. ALL OCTAL. OK
TC Q # ALL ZEROS. ALL OCTAL. OK
AD DECOUNT # DEC COMP = 7 FOR 3COMP, =6 FOR 2COMP
EXTEND # (BUT IT HAS BEEN DECREMENTED BY CCS)
BZF +2 # MUST MATCH 6 FOR 3COMP, 5 FOR 2COMP.
TC ALMCYCLE # ALARM AND RECYCLE.
GOQ TC Q # ALL REQUIRED ARE DEC. OK
GOQ TC Q # ALL REQUIRED ARE DEC. OK
SFRUTNOR XCH Q # GETS SF ROUTINE NUMBER FOR NORMAL CASE
TS EXITEM # CAN'T USE L FOR RETURN. TSTFORDP USES L.
TS EXITEM # CANT USE L FOR RETURN. TSTFORDP USES L.
CAF MID5
MASK NNTYPTEM
TC RIGHT5
@ -1866,12 +1884,10 @@ SFRUTMIX XCH Q # GETS SF ROUTINE NUMBER FOR MIXED CASE
MASK RUTMXTEM # GET HI5, MID5, OR LOW5 OF RUTMXTAB ENTRY
INDEX L
TC 0
# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1), DO TC LEFT5(DECOUNT=2).
# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1). DO TC LEFT5(DECOUNT=2).
SFRET1 TC EXITEM # SF ROUTINE NUMBER IN A
SFCONUM XCH Q # GETS 2X(SF CONSTANT NUMBER)
SFCONUM XCH Q # GETS 2X( SF CONSTANT NUMBER)
TS EXITEM
INDEX MIXBR
TC +0
@ -1884,9 +1900,7 @@ SFCONUM XCH Q # GETS 2X(SF CONSTANT NUMBER)
MASK NNTYPTEM
INDEX L
TC 0
# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1), DO TC LEFT5(DECOUNT=2).
SFRET DOUBLE # 2X(SF CONSTANT NUMBER) IN A
TC EXITEM
@ -1899,7 +1913,8 @@ DISPLACE TC GOQ
CONUMNOR CAF LOW5 # NORMAL NOUN ALWAYS GETS LOW 5 OF
MASK NNTYPTEM # NNTYPTAB FOR SF CONUM.
DOUBLE
TC EXITEM # 2X(SF CONSTANT NUMBER) IN A
TC EXITEM # 2X( SF CONSTANT NUMBER) IN A
PUTCOM TS DECOUNT
XCH Q
@ -1908,54 +1923,52 @@ PUTCOM TS DECOUNT
TS MPAC+6
INDEX DECOUNT
XCH XREGLP
TS MPAC +1
TS MPAC +1
INDEX DECOUNT
XCH XREG
TS MPAC
INDEX MIXBR
TC +0
TC PUTNORM # NORMAL NOUN
# IF MIXNOUN, PLACE ADDRESS FOR COMPONENT K INTO NOUNADD, SET EBANK BITS.
INDEX DECOUNT # GET IDADDTAB ENTRY FOR COMPONENT K
CA IDAD1TEM # OF NOUN.
CA IDAD1TEM # OF NOUN.
MASK LOW11 # (ECADR)SUBK FOR CURRENT COMP OF NOUN
TC SETNCADR # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
TC SETNCADR # ECADR INTO NOUNCADR. SETS EB. NOUNADD.
EXTEND # C(NOUNADD) IN A UPON RETURN
SU DECOUNT # PLACE (ESUBK)-K INTO NOUNADD
TS NOUNADD
CCS DECBRNCH
TC PUTDECSF # + DEC
TC PUTDECSF # + DEC
TC DCTSTCYC # +0 OCTAL
TC SFRUTMIX # TEST IF DEC ONLY BIT = 1. IF SO,
TC DPTEST # ALARM AND RECYCLE. IF NOT, CONTINUE.
TC SFRUTMIX # TEST IF DEC ONLY BIT = 1. IF SO,
TC DPTEST # ALARM AND RECYCLE. IF NOT, CONTINUE.
TC PUTCOM2 # NO DP
# TEST FOR DP SCALE FOR OCT LOAD. IF SO,
# +0 INTO MAJOR PART. SET NOUNADD FOR
# TEST FOR DP SCALE FOR OCT LOAD. IF SO,
# +0 INTO MAJOR PART. SET NOUNADD FOR
# LOADING OCTAL WORD INTO MINOR PART.
PUTDPCOM INCR NOUNADD # DP (ESUBK)-K+1 OR E+1
PUTDPCOM INCR NOUNADD # DP (ESUBK)-K+1 OR E+1
CA NOUNADD # NOUNADD NOW SET FOR MINOR PART
ADS DECOUNT # (ESUBK)+1 OR E+1 INTO DECOUNT
ADS DECOUNT # (ESUBK)+1 OR E+1 INTO DECOUNT
CAF ZERO # NOUNADD SET FOR MINOR PART
INDEX DECOUNT
TS 0 -1 # ZERO MAJOR PART(ESUBK OR E)
TC PUTCOM2
PUTNORM TC SETNADD # ECADR FROM NOUNCADR. SETS EB, NOUNADD.
PUTNORM TC SETNADD # ECADR FROM NOUNCADR. SETS EB, NOUNADD.
# Page 348
CCS DECBRNCH
TC PUTDECSF # + DEC
TC PUTDECSF # + DEC
TC DCTSTCYC # +0 OCTAL
TC SFRUTNOR # TEST IF DEC ONLY BIT (garbled). IF SO,
TC DPTEST # ALARM AND RECYCLE. IF NOT, CONTINUE.
TC SFRUTNOR # TEST IF DEC ONLY BIT = 1. IF SO,
TC DPTEST # ALARM AND RECYCLE. IF NOT, CONTINUE.
TC PUTCOM2 -4 # NO DP
CAF ZERO # DP
TS DECOUNT
TC PUTDPCOM
CA NNADTEM
AD ONE # IF NNADTEM = -1, CHANNEL TO BE SPECIFIED
AD ONE # IF NNADTEM = -1. CHANNEL TO BE SPECIFIED
EXTEND
BZF CHANLOAD
PUTCOM2 XCH MPAC
@ -1964,7 +1977,8 @@ PUTCOM2 XCH MPAC
EBANK= DSPCOUNT
GTSFINLC 2CADR GTSFIN
CHANLOAD CS SEVEN # DON'T LOAD CHAN 7. (IT'S SUPERBANK).
CHANLOAD CS SEVEN # DONT LOAD CHAN 7. (IT = SUPERBANK).
AD NOUNCADR
EXTEND
BZF LOADLV
@ -1976,13 +1990,14 @@ CHANLOAD CS SEVEN # DON'T LOAD CHAN 7. (IT'S SUPERBANK).
WRITE 0
TC LOADLV
# PUTDECSF FINDS MIXBR AND DECOUNT STILL SET FROM PUTCOM.
# PUTDECSF FINDS MIXBR AND DECOUNT STILL SET FROM PUTCOM
PUTDECSF TC SFCONUM # 2X(SF CON NUMB) IN A
TS SFTEMP1
EXTEND # SWITCH BANKS TO SF CONSTANT TABLE
DCA GTSFINLC # READING ROUTINE.
DXCH Z # LOADS SFTEMP1, SFTEMP2.
DXCH Z # LOADS SFTEMP1. SFTEMP2.
INDEX MIXBR
TC +0
TC PUTSFNOR
@ -1993,7 +2008,7 @@ PUTSFNOR TC SFRUTNOR
PUTDCSF2 INDEX A
# Page 349
CAF SFINTABR
TC BANKJUMP # SWITCH BANKS FOR EXPANSION ROOM
TC BANKJUMP # SWITCH BANKS FOR EXPANSHION ROOM
SFINTABR CADR GOALMCYC # ALARM AND RECYCLE IF DEC LOAD
# WITH OCTAL ONLY NOUN.
CADR BINROUND
@ -2004,15 +2019,17 @@ SFINTABR CADR GOALMCYC # ALARM AND RECYCLE IF DEC LOAD
CADR OPTDEGIN
CADR DPINSF # SAME AS ARITHDP1
CADR HMSIN
CADR DSPALARM # MIN/SEC CAN'T BE LOADED.
CADR DSPALARM # MIN/SEC CANT BE LOADED.
CADR DPINSF4
CADR ARTIN1SF
CADR DSPALARM # 2INTOUT CAN'T BE LOADED.
CADR DSPALARM # 2INTOUT CANT BE LOADED.
CADR DPFRACIN
ENDRUTIN EQUALS
# SCALE FACTORS FOR THOSE ROUTINES NEEDING THEM ARE AVAILABLE IN SFTEMP1.
# ALL SFIN ROUTINES USE MPAC MPAC+1. LEAVE RESULT IN A. END WITH TC DECRET.
# ALL SFIN ROUTINES USE MPAC MPAC+1. LEAVE RESULT IN A. END WITH TC DECRET.
SETLOC ENDDPDEC +1
@ -2021,21 +2038,21 @@ ENDRUTIN EQUALS
# DEGINSF APPLIES 1000/180 * 5.55555(10) = 5.43434(8)
DEGINSF TC DMP # SF ROUTINE FOR DEC DEGREES
ADRES DEGCON1 # MULT BY 5.5 5(10)X2EXP-3
CCS MPAC +1 # THIS ROUNDS OFF MPAC+1 BEFORE SHIFT
ADRES DEGCON1 # MULT BY 5.5 5(10)X2EXP-3
CCS MPAC +1 # THIS ROUNDS OFF MPAC+1 BEFORE SHIFT
CAF BIT11 # LEFT 3, AND CAUSES 360.00 TO OF/UF
TC +2 # WHEN SHIFTED LEFT AND ALARM.
CS BIT11
AD MPAC +1
TC 2ROUND +2
AD MPAC +1
TC 2ROUND +2
TC TPSL1 # LEFT 1
DEGINSF2 TC TPSL1 # LEFT 2
TC TESTOFUF
TC TPSL1 # RETURNS IF NO OF/UF (LEFT3)
CCS MPAC
TC SIGNFIX # IF +, GO TO SIGNFIX
TC SIGNFIX # IF+, GO TO SIGNFIX
TC SIGNFIX # IF +0, GO TO SIGNFIX
COM # IF -, USE -MAGNITUDE +1
COM # IF - , USE -MAGNITUDE +1
TS MPAC # IF -0, USE +0
SIGNFIX CCS MPAC+6
TC SGNTO1 # IF OVERFLOW