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,62 +1075,62 @@ 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 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
# +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
# 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
# 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
#
# 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.
#
@ -1182,25 +1182,24 @@ 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
@ -1214,16 +1213,17 @@ DECTEST EXTEND # ALARMS IF DEC ONLY BIT = 1 (BIT4 OF COMP
TC GODSPALM
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
@ -1247,6 +1247,7 @@ TSTFORDP LXCH Q # TEST FOR DP. IF SO, GET MINOR PART ONLY.
INCR NOUNADD # DP E+1 INTO NOUNADD FOR MINOR PART.
TC L
CHANDSP CA NOUNCADR
MASK LOW9
EXTEND
@ -1255,6 +1256,7 @@ CHANDSP CA NOUNCADR
CS A
TCF DSPCOM1
COMPICK ADRES NNTYPTEM
ADRES NNADTEM
@ -1262,9 +1264,10 @@ 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)
MASK HI5 # GET HI5 OF NNTYPTAB(NORM)OF NNADTAB(MIX)
TC Q
DECDSP TC GETCOMP
TC LEFT5
MASK THREE
@ -1274,7 +1277,7 @@ DSPDCGET TS DECTEM # PICKS UP DATA
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,7 +1289,7 @@ 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
@ -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,6 +1405,7 @@ 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
@ -1418,17 +1424,20 @@ AROUT1SF DXCH SFTEMP1 # ASSUMES POINT BETWEEN HI AND LO PARTS OF
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
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,7 +1452,6 @@ 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
@ -1463,10 +1471,12 @@ 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
# 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.
@ -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
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)
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
@ -1516,7 +1527,7 @@ HMSOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC.
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,7 +1539,7 @@ 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
@ -1536,24 +1547,26 @@ 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
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
TC +2
@ -1561,7 +1574,7 @@ M/SOUT TC BANKCALL # READ FRESH DATA FOR HI AND LO INTO MPAC.
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
CAF M/SCON3 # MPAC CANNOT BE +/- 0 AT THIS POINT.
@ -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
@ -1641,7 +1654,8 @@ SEPSECNR XCH Q # THIS ENTRY AVOIDS ROUNDING BY .5 SEC
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.
@ -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
# 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
@ -1692,10 +1708,11 @@ ENDDPDEC TC ENTEXIT
# 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
# 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
@ -1713,6 +1730,7 @@ ABCLOAD CS TWO
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
@ -1736,30 +1754,29 @@ PUTXYZ CS SIX # TEST THAT THE 3 DATA WORDS LOADED ARE
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
@ -1849,8 +1866,9 @@ ALLDC/OC TS DECOUNT # TESTS THAT DATA WORDS LOADED ARE EITHER
TC ALMCYCLE # ALARM AND RECYCLE.
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
@ -1915,13 +1930,11 @@ PUTCOM TS DECOUNT
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.
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
@ -1947,7 +1960,7 @@ PUTNORM TC SETNADD # ECADR FROM NOUNCADR. SETS EB, NOUNADD.
CCS DECBRNCH
TC PUTDECSF # + DEC
TC DCTSTCYC # +0 OCTAL
TC SFRUTNOR # TEST IF DEC ONLY BIT (garbled). IF SO,
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
@ -1955,7 +1968,7 @@ PUTNORM TC SETNADD # ECADR FROM NOUNCADR. SETS EB, NOUNADD.
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,16 +2019,18 @@ 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.
SETLOC ENDDPDEC +1
COUNT 40/PIN
@ -2033,9 +2050,9 @@ 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