From 1a03c1141bc01ff1ba29f1191d2b82cbecb72a5c Mon Sep 17 00:00:00 2001 From: Zachary Pedigo <41409007+Hexman768@users.noreply.github.com> Date: Thu, 7 Aug 2025 14:41:42 -0500 Subject: [PATCH] Proof Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc (pg: 0329-0349) (#941) --- .../PINBALL_GAME_BUTTONS_AND_LIGHTS.agc | 343 +++++++++--------- 1 file changed, 180 insertions(+), 163 deletions(-) diff --git a/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc b/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc index 96250b8..11136e8 100644 --- a/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc +++ b/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc @@ -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