Proof Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc (pg: 0318-0328) (#939)

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

View File

@ -511,12 +511,12 @@ DECTOBIN INDEX INREL
XCH VERBREG
TS MPAC # SUM X 2EXP-14 IN MPAC
CAF ZERO
TS MPAC +1
TS MPAC +1
CAF TEN # 10 X 2EXP-14
TC SHORTMP # 10SUM X 2EXP-28 IN MPAC, MPAC+1
XCH MPAC +1
XCH MPAC +1
AD CHAR
TS MPAC +1
TS MPAC +1
TC ENDNMTST # NO OF
ADS MPAC # OF MUST BE 5TH CHAR
TC DECEND
@ -533,7 +533,7 @@ ENDNUM CAF THREE
CCS A
TC DECEND
ENDALL CS DSPCOUNT # BLOCK NUMIN BY PLACING DSPCOUNT
TC MORNUM +1 # NEGATIVELY
TC MORNUM +1 # NEGATIVELY
DECEND CS ONE
AD INREL
EXTEND
@ -548,12 +548,12 @@ DECEND CS ONE
# Page 318
TC +DECSGN
EXTEND # - CASE
DCS MPAC +1
DXCH MPAC +1
+DECSGN XCH MPAC +2
DCS MPAC +1
DXCH MPAC +1
+DECSGN XCH MPAC +2
INDEX INREL
TS XREGLP -2
XCH MPAC +1
XCH MPAC +1
INDEX INREL
TS VERBREG
TC ENDALL
@ -567,14 +567,15 @@ CRITCON OCT 22 # (DEC 18)
OCT 5
OCT 0
DECON 2DEC 1 E-5 B14 # 2EXP14/10EXP5 = .16384 DEC
DECON 2DEC E-5 B14 # 2EXP14/10EXP5 = .16384 DEC
# GETINREL GETS PROPER DATA REG REL ADDRESS FOR CURRENT C(DSPCOUNT) AND
# PUTS IN INTO INREL. +0 VERBREG, 1 NOUNREG, 2 XREG, 3 YREG, 4 ZREG.
# PUTS IN INTO INREL. +0 VERBREG, 1 NOUNREG, 2 XREG, 3 YREG, 4 ZREG.
GETINREL INDEX DSPCOUNT
CAF INRELTAB
TS INREL # (A TEMP. REG)
TS INREL # (A TEMP, REG)
TC Q
INRELTAB OCT 4 # R3D5 (DSPCOUNT = 0)
@ -617,13 +618,14 @@ NOUN CAF ZERO
CAF ND1 # ND1, OCT 21 (DEC 17)
TC NVCOM
NEGSGN TC SIGNTEST
TC -ON
CAF TWO
BOTHSGN INDEX INREL # SET DEC COMP BIT TO 1 (IN DECBRNCH)
AD BIT7 # BIT 5 FOR R1. BIT 4 FOR R2.
ADS DECBRNCH # BIT 3 FOR R3.
FIXCLPAS CCS CLPASS # IF CLPASS IS + OR +0. MAKE IT +0.
FIXCLPAS CCS CLPASS # IF CLPASS IS + OR +0, MAKE IT +0.
CAF ZERO
TS CLPASS
TC +1
@ -637,7 +639,7 @@ POSGN TC SIGNTEST
+ON LXCH Q
TC GETINREL
INDEX INREL
CAF SGNTAB -2
CAF SGNTAB -2
TS SGNOFF
AD ONE
TS SGNON
@ -654,7 +656,7 @@ SGNCOM CAF ZERO
-ON LXCH Q
TC GETINREL
INDEX INREL
CAF SGNTAB -2
CAF SGNTAB -2
TS SGNON
AD ONE
TS SGNOFF
@ -664,34 +666,36 @@ SGNTAB OCT 5 # -R1
OCT 3 # -R2
OCT 0 # -R3
SIGNTEST LXCH Q # ALLOWS +,- ONLY WHEN DSPCOUNT=R1D1,
CAF THREE # R2D1, OR R3D1. ALLOWS ONLY FIRST OF
CAF THREE # R2D1, OR R3D1. ALLOWS ONLY FIRST OF
MASK DECBRNCH # CONSECUTIVE +/- CHARACTERS.
CCS A # IF LOW2 BITS OF DECBRNCH NOT 0. SIGN
TC ENDOFJOB # FOR THIS WORD ALREADY IN. REJECT.
CCS A # IF LOW2 BITS OF DECBRNCH NOT 0, SIGN
TC ENDOFJOB # FOR THIS WORD ALREADY IN. REJECT.
CS R1D1
TC SGNTST1
CS R2D1
TC SGNTST1
CS R3D1
TC SGNTST1
TC ENDOFJOB # NO MATCH FOUND. SIGN ILLEGAL
TC ENDOFJOB # NO MATCH FOUND. SIGN ILLEGAL
SGNTST1 AD DSPCOUNT
EXTEND
BZF +2 # MATCH FOUND
TC Q
TC L # SIGN LEGAL
# CLEAR BLANKS WHICH R1, R2, R3 IS CURRENT OR LAST TO BE DISPLAYED (PERTINENT
# XREG, YREG, ZREG IS CLEARED). SUCCESSIVE CLEARS TAKE CARE OF EACH RX
# L/ RC UNTIL R1 IS DONE. THEN NO FURTHER ACTION.
# CLEAR BLANKS WHICH R1, R2, R3 IS CURRENT OR LAST TO BE DISPLAYED(PERTINE
# NT XREG,YREG,ZREG IS CLEARED). SUCCESSIVE CLEARS TAKE CARE OF EACH RX
# L/ RC UNTIL R1 IS DONE. THEN NO FURTHER ACTION
#
# THE SINGLE COMPONENT LOAD VERBS ALLOW ONLY THE SINGLE RC THAT IS
# APPROPRIATE TO BE CLEARED.
#
# CLPASS +0 PASS0, CAN BE BACKED UP
# +NZ HIPASS, CAN BE BACKED UP
# -NZ PASS0, CANNOT BE BACKED UP
# CLPASS +0 PASS0, CAN BE BACKED UP
# +NZ HIPASS, CAN BE BACKED UP
# -NZ PASS0, CANNOT BE BACKED UP
# Page 321
CLEAR CCS DSPCOUNT
AD ONE
@ -702,7 +706,7 @@ CLEAR CCS DSPCOUNT
TS INREL # MUST SET INREL, EVEN FOR HIPASS.
CCS CLPASS
TC CLPASHI # +
TC +2 # +0 IF CLPASS IS +0 OR -, IT IS PASS0
TC +2 # +0 IF CLPASS IS +0 OR -, IT IS PASS0
TC +1 # -
CA INREL
TC LEGALTST
@ -710,7 +714,7 @@ CLEAR CCS DSPCOUNT
CLPASHI CCS INREL
TS INREL
TC LEGALTST
CAF DOUBLK +2 # +3 TO - NUMBER, BACKS DATA REQUESTS.
CAF DOUBLK +2 # +3 TO - NUMBER. BACKS DATA REQUESTS.
ADS REQRET
CA INREL
TS MIXTEMP # TEMP STORAGE FOR INREL
@ -727,13 +731,14 @@ CLR5 LXCH Q # USED 5BLANK BUT AVOIDS ITS TC GETINREL
TC 5BLANK +2
LEGALTST AD NEG2
CCS A
TC Q # LEGAL INREL G/2
TC Q # LEGAL INREL G/ 2
TC CCSHOLE
TC ENDOFJOB # ILLEGAL INREL=0,1
TC Q # LEGAL INREL=2
TC ENDOFJOB # ILLEGAL INREL= 0,1
TC Q # LEGAL INREL = 2
# 5BLANK BLANKS 5 CHAR DISPLAY WORD IN R1, R2, OR R3. IT ALSO ZEROES XREG,
# YREG, OR ZREG. PLACE ANY + DSPCOUNT NUMBER FOR PERTINENT RC INTO DSPCOUNT.
# 5BLANK BLANKS 5 CHAR DISPLAY WORD IN R1, R2, OR R3. IT ALSO ZEROES XREG,
# YREG, OR ZREG.PLACE ANY + DSPCOUNT NUMBER FOR PERTINENT RC INTO DSPCOUNT
# DSPCOUNT IS LEFT SET TO LEFT MOST DSP NUMB FOR RC JUST BLANKED.
TS DSPCOUNT # NEEDED FOR BLANKSUB
@ -744,7 +749,7 @@ LEGALTST AD NEG2
TS VERBREG # ZERO X, Y, Z, REG.
# Page 322
INDEX INREL
TS XREGLP -2
TS XREGLP -2
TS CODE
INDEX INREL # ZERO PERTINENT DEC COMP BIT.
CS BIT7 # PROTECT OTHERS
@ -763,7 +768,7 @@ LEGALTST AD NEG2
ADS DSPCOUNT
TC 2BLANK
INDEX INREL
CAF R1D1 -2
CAF R1D1 -2
TS DSPCOUNT # SET DSPCOUNT TO LEFT MOST DSP NUMBER
TC L # OF REG. JUST BLANKED
@ -776,8 +781,8 @@ DOUBLK OCT 15 # DEC 13
BRNCHCON OCT 77774
# 2BLANK BLANKS TWO CHAR. PLACE DSP NUMBER OF LEFT CHAR OF THE PAIR INTO
# DSPCOUNT. THIS NUMBER IS LEFT IN DSPCOUNT
# 2BLANK BLANKS TWO CHAR. PLACE DSP NUMBER OF LEFT CHAR OF THE PAIR INTO
# DSPCOUNT. THIS NUMBER IS LEFT IN DSPCOUNT
2BLANK CA DSPCOUNT
TS SR
@ -788,30 +793,33 @@ BRNCHCON OCT 77774
EXTEND
BZMF +2 # IF OLD CONTENTS -, NOUT OK
INCR NOUT # IF OLD CONTENTS +, +1 TO NOUT
RELINT # IF -, NOUT OK
RELINT # IF -,NOUT OK
TC Q
BLANKCON OCT 4000
# Page 323
# ENTER PASS 0 IS THE EXECUTE FUNCTION. HIGHER ORDER ENTERS ARE TO LOAD
# DATA. THE SIGN OF REQRET DETERMINES THE PASS, + FOR PASS 0, - FOR HIGHER
# PASSES
# ENTER PASS 0 IS THE EXECUTE FUNCTION. HIGHER ORDER ENTERS ARE TO LOAD
# DATA. THE SIGN OF REQRET DETERMINES THE PASS, + FOR PASS 0,- FOR HIGHER
# PASSES.
#
#
# MACHINE CADR TO BE SPECIFIED (MCTBS) NOUNS DESIRE AN ECADR TO BE LOADED
# WHEN USED WITH LOAD VERBS, MONITOR VERBS, OR DISPLAY VERBS (EXCEPT
# VERB = FIXED MEMORY DISPLAY, WHICH REQUIRES AN FCADR).
BANK 41
SETLOC PINBALL2
BANK
COUNT 41/PIN
NVSUBB TC NVSUB1 # STANDARD LEAD INS. DON'T MOVE.
NVSUBB TC NVSUB1 # STANDARD LEAD INS. DONT MOVE.
LOADLV1 TC LOADLV
# END OF STANDARD LEAD INS.
ENTER CAF ZERO
TS CLPASS
CAF ENDINST
@ -822,13 +830,13 @@ ENTER CAF ZERO
TC +1 # IF -, NOT PASS 0
ENTPASHI CAF MMADREF
AD REQRET # IF L/ 2 CHAR IN FOR MM CODE, ALARM
EXTEND # AND RECYCLE (DECIDE AT MCHANG+1).
EXTEND # AND RECYCLE(DECIDE AT MMCHANG+1).
BZF ACCEPTWD
CAF THREE # IF DEC, ALARM IF L/ 5 CHAR IN FOR DATA,
MASK DECBRNCH # BUT LEAVE REQRET - AND FLASH ON, SO
CCS A # OPERATOR CAN SUPPLY MISSING NUMERICAL
TC +2 # CHARACTERS AND CONTINUE.
TC ACCEPTWD # OCTAL. ANY NUMBER OF CHAR OK.
TC ACCEPTWD # OCTAL. ANY NUMBER OF CHAR OK.
CCS DSPCOUNT
TC GODSPALM # LESS THAN 5 CHAR DEC(DSPCOUNT IS +)
TC GODSPALM # LESS THAN 5 CHAR DEC(DSPCOUNT IS +)
@ -845,7 +853,7 @@ MMADREF ADRES MMCHANG +1 # ASSUMES TC REQMM AT MMCHANG.
# Page 324
LOWVERB DEC 28 # LOWER VERB THAT AVOIDS NOUN TEST.
ENTPAS0 CAF ZERO # NOUN VERB SUB ENTERS HERE
ENTPAS0 CAF ZERO # NOUN VERB SUB ENTERS HERE
TS DECBRNCH
CS VD1 # BLOCK FURTHER NUM CHAR, SO THAT STRAY
TS DSPCOUNT # CHAR DO NOT GET INTO VERB OR NOUN LTS.
@ -853,7 +861,7 @@ TESTVB CS VERBREG # IF VERB IS G/E LOWVB, SKIP NOUN TEST.
TS VERBSAVE # SAVE VERB FOR POSSIBLE RECYCLE.
AD LOWVERB # LOWVERB - VB
EXTEND
BZMF VERBFAN # VERB G/ E LOWVERB
BZMF VERBFAN # VERB G/E LOWVERB
TESTNN EXTEND # VERB L/ LOWVERB
DCA LODNNLOC # SWITCH BANKS TO NOUN TABLE READING
DXCH Z # ROUTINE.
@ -862,23 +870,23 @@ TESTNN EXTEND # VERB L/ LOWVERB
TC +2 # NORMAL
TC MIXNOUN # MIXED
CCS NNADTEM # NORMAL
TC VERBFAN -2 # NORMAL IF +
TC GODSPALM # NOT IN USE IF +0
TC VERBFAN -2 # NORMAL IF +
TC GODSPALM # NOT IN USE IF +0
TC REQADD # SPECIFY MACHINE CADR IF -
INCR NOUNCADR # AUGMENT MACHINE CADR IF -0
TC SETNADD # ECADR FROM NOUNCADR, SETS ED, NOUNADD.
TC SETNADD # ECADR FROM NOUNCADR. SETS EB, NOUNADD.
TC INTMCTBS +2
REQADD CAF BIT15 # SET CLPASS FOR PASS 0 ONLY
REQADD CAF BIT15 # SET CLPASS FOR PASS0 ONLY
TS CLPASS
CS ENDINST # TEST IF REACHED HERE FROM INTERNAL OR
AD ENTEXIT # FROM EXTERNAL
AD ENTEXIT # FROM EXTERNAL
EXTEND
BZF +2 # EXTERNAL MACH CADR TO BE SPECIFIED
TC INTMCTBS
TC REQDATZ # EXTERNAL MACH CADR TO BE SPECIFIED
CCS DECBRNCH # ALARM AND RECYCLE IF DECIMAL USED
TC ALMCYCLE # FOR MCTBS.
CS VD1 # OCTAL USED OK
CS VD1 # OCTAL USED OK
TS DSPCOUNT # BLOCK NUM CHAR IN
CCS CADRSTOR
TC +3 # EXTERNAL MCTBS DISPLAY WILL LEAVE FLASH
@ -886,7 +894,7 @@ REQADD CAF BIT15 # SET CLPASS FOR PASS 0 ONLY
TC +1
TC FLASHON
USEADD XCH ZREG
TC SETNCADR # ECADR INTO NOUNCADR. SET EB, NOUNADD.
TC SETNCADR # ECADR INTO NOUNCADR. SET EB, NOUNADD.
EXTEND
DCA LODNNLOC # SWITCH BANKS TO NOUN TAB E READING
DXCH Z # ROUTINE.
@ -899,28 +907,28 @@ LODNNLOC 2CADR LODNNTAB
NEG5 OCT 77772
INTMCTBS CA MPAC +2 # INTERNAL MACH CADR TO BE SPECIFIED.
TC SETNCADR # ECADR INTO NOUNCADR. SET EB, NOUNADD.
TC SETNCADR # ECADR INTO NOUNCADR. SET EB, NOUNADD.
CS FIVE # NVSUB CALL LEFT CADR IN MPAC+2 FOR MACH
AD VERBREG # CADR TO BE SPECIFIED.
EXTEND
BZF VERBFAN # DON'T DISPLAY CADR IF VB = 05.
CAF R3D1 # VB NOT = 05. DISPLAY CADR.
BZF VERBFAN # DONT DISPLAY CADR IF VB = 05.
CAF R3D1 # VB NOT = 05. DISPLAY CADR.
TS DSPCOUNT
CA NOUNCADR
TC DSPOCTWO
TC VERBFAN
AD ONE
TC SETNCADR # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
TC SETNCADR # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
VERBFAN CS LST2CON
AD VERBREG # VERB -- LST2CON
AD VERBREG # VERB-LST2CON
CCS A
AD ONE # VERB G/ LST2CON
TC +2
TC VBFANDIR # VERB L/ LST2CON
TS MPAC
TC RELDSP # RELEASE DISPLAY SYST
TC POSTJUMP # GO TO GOEXTVB WITH VB=40 IN MPAC.
TC POSTJUMP # GO TO GOEXTVB WITH VB-40 IN MPAC.
CADR GOEXTVB
LST2CON DEC 40 # FIRST LIST2 VERB (EXTENDED VERB)
@ -971,18 +979,19 @@ REQEXLQC CADR VBRQEXEC # VB30 REQUEST EXECUTIVE
CADR GODSPALM # VB38 SPARE
CADR GODSPALM # VB39 SPARE
# THE LIST2 VERBFAN IS LOCATED IN THE EXTENDED VERB BANK.
# Page 327
# NNADTAB CONTAINS A RELATIVE ADDRESS, IDADDREL (IN LOW 10 BITS), REFERRING
# NNADTAB CONTAINS A RELATIVE ADDRESS, IDADDREL(IN LOW 10 BITS), REFERRING
# TO WHERE 3 CONSECUTIVE ADDRESSES ARE STORED (IN IDADDTAB).
# MIXNOUN GETS DATA AND STORES IN MIXTEMP,+1,+2. IT SETS NOUNADD FOR
# MIXTEMP.
# MIXNOUN GETS DATA AND STORES IN MIXTEMP,+1,+2. IT SETS NOUNADD FOR
# MIXTEMP.
MIXNOUN CCS NNADTEM
TC +4 # + IN USE
TC GODSPALM # +0 NOT IN USE
TC +2 # - IN USE
TC +1 # -0 IN USE
TC +4 # + IN USE
TC GODSPALM # +0 NOT IN USE
TC +2 # - IN USE
TC +1 # -0 IN USE
CS SIX
AD VERBREG
EXTEND
@ -991,21 +1000,21 @@ MIXNOUN CCS NNADTEM
CAF TWO
MIXNN1 TS DECOUNT
AD MIXAD
TS NOUNADD # SET NOUNADD TO MIXTEMP +K
TS NOUNADD # SET NOUNADD TO MIXTEMP + K
INDEX DECOUNT # GET IDADDTAB ENTRY FOR COMPONENT K
CA IDAD1TEM # OF NOUN.
TS NOUNTEM
# TEST FOR DP (FOR OCT DISPLAY). IF SO, GET
# MINOR PART ONLY.
# TEST FOR DP(FOR OCT DISPLAY). IF SO, GET
# MINOR PART ONLY.
TC SFRUTMIX # GET SF ROUT NUMBER IN A
TC DPTEST
TC MIXNN2 # NO DP
INCR NOUNTEM # DP GET MINOR PART
INCR NOUNTEM # DP GET MINOR PART
MIXNN2 CA NOUNTEM
MASK LOW11 # ESUBK (NO DP) OR (ESUBK)+1 FOR DP.
MASK LOW11 # ESUBK (NO DP) OR (ESUBK)+1 FOR DP
TC SETEBANK # SET EBANK, LEAVE EADRES IN A.
INDEX A # PICK UP C(ESUBK) NOT DP.
CA 0 # OR C((ESUBK)+1) FOR DP MINOR PART
INDEX A # PICK UP C(ESUBK) NOT DP
CA 0 # OR C((ESUBK)+1) FOR DP MINOR PART
INDEX NOUNADD
XCH 0 # STORE IN MIXTEM + K
CCS DECOUNT
@ -1014,30 +1023,32 @@ MIXNN2 CA NOUNTEM
MIXAD TC MIXTEMP
# DPTEST ENTER WITH SF ROUT NUMBER IN A.
# RETURNS TO L+1 IF NO DP.
# RETURNS TO L+2 IF DP.
# DPTEST ENTER WITH SF ROUT NUMBER IN A.
# RETURNS TO L+1 IF NO DP.
# RETURNS TO L+2 IF DP.
DPTEST INDEX A
TCF +1
TC Q # OCTAL ONLY NO DP
TC Q # OCTAL ONLY NO DP
TC Q # FRACT NO DP
# Page 328
TC Q # DEG NO DP
TC Q # ARITH NO DP
TC Q # DEG NO DP
TC Q # ARITH NO DP
TCF DPTEST1 # DP1OUT
TCF DPTEST1 # DP2OUT
TC Q # OPDEG NO DP
TC Q # OPDEG NO DP
TCF DPTEST1 # DP3OUT
TC Q # HMS NO DP
TC Q # M/S NO DP
TC Q # HMS NO DP
TC Q # M/S NO DP
TCF DPTEST1 # DP4OUT
TC Q # ARITH1 NO DP
TC Q # 2INTOUT NO DP TO GET HI PART IN MPAC
TC Q # ARITH1 NO DP
TC Q # 2INTOUT NO DP TO GET HI PART IN MPAC
TCF DPTEST1 # DPFRACOT
DPTEST1 INDEX Q
TC 1 # RETURN TO L+2
REQDATX CAF R1D1
TCF REQCOM
REQDATY CAF R2D1
@ -1060,9 +1071,9 @@ UPDATNN XCH Q
CCS NNADTEM
AD ONE # NORMAL
TCF PUTADD
TCF PUTADD +1 # MCTBS DON'T CHANGE NOUNADD
TCF PUTADD +1 # MCTBI DON'T CHANGE NOUNADD
PUTADD TC SETNCADR # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
TCF PUTADD +1 # MCTBS DONT CHANGE NOUNADD
TCF PUTADD +1 # MCTBI DONT CHANGE NOUNADD
PUTADD TC SETNCADR # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
CAF ND1
TS DSPCOUNT
CA NOUNREG