diff --git a/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc b/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc index 11136e8..d4777aa 100644 --- a/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc +++ b/Comanche055/PINBALL_GAME_BUTTONS_AND_LIGHTS.agc @@ -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