diff --git a/Comanche055/INTERPRETER.agc b/Comanche055/INTERPRETER.agc index 050ff51..8603a68 100644 --- a/Comanche055/INTERPRETER.agc +++ b/Comanche055/INTERPRETER.agc @@ -42,10 +42,12 @@ BLOCK 03 - COUNT* $$/INTER + COUNT 03/INTER + INTPRET RELINT EXTEND # SET LOC TO THE WORD FOLLOWING THE TC. QXCH LOC + +2 CA BBANK # INTERPRETIVE BRANCHES FINISH HERE. TS BANKSET MASK BIT15 # GET 15TH BIT FOR INDEXABLE ADDRESSES. @@ -55,14 +57,14 @@ INTPRET RELINT TCF NEWOPS # PICK UP OP CODE PAIR AND BEGIN. + INTRSM LXCH BBANK # RESUME SUSPENDED INTERPRETIVE JOB TCF INTPRET +3 - # DLOAD LOADS MPAC, MPAC +1, LEAVING ZERO IN MPAC +2. DLOAD EXTEND INDEX ADDRWD - DCA 0 # LOAD DP C(C(ADDRWD)) INT MPAC,MPAC +1 + DCA 0 # LOAD DP C(C(ADDRWD)) INTO MPAC,MPAX +1 SLOAD2 DXCH MPAC CAF ZERO # ZERO MPAC +2 @@ -85,7 +87,7 @@ NOIBNKSW CCS EDOP # SEE IF AN ORDER CODE IS LEFT OVER FROM INCR LOC # ADVANCE THE LOCATION COUNTER. -# ITRACE (1) REFERS TO "NEWOPS" +# ITRACE (1) REFERS TO "NEWOPS". NEWOPS INDEX LOC # ENTRY TO BEGIN BY PICKING OP CODE PAIR. CA 0 # MAY BE AN OPCODE PAIR OR A STORE CODE. CCS A # TEST SIGN AND GET DABS(A). @@ -120,7 +122,7 @@ NEG4 DEC -4 TS ADDRWD # Page 1110 -# FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE. IN EACH CASE, THE +# FINAL DIGESTION OF DIRECT ADDRESSES OF OP CODES WITH 01 PREFIX IS DONE HERE. IN EACH CASE, THE # REQUIRED 12-BIT SUB-ADDRESS IS LEFT IN ADDRWD, WITH ANY REQUIRED E OR F BANK SWITCHING DONE. ADDRESSES LESS # THAN 45D ARE TAKEN TO BE RELATIVE TO THE WORK AREA. THE OP CODE IS NOW IN BITS 1-5 OF CYR WITH BIT 14 = 1. @@ -202,7 +204,7 @@ INDERASE CA OCT1400 XCH ADDRWD TS EBANK MASK LOW8 - -1 ADS ADDRWD +-1 ADS ADDRWD # Page 1112 ITR13 INDEX CYR 3 INDJUMP -1 @@ -238,7 +240,7 @@ PUSHUP CAF OCT23 # IF THE LOW 5 BITS OF CYR ARE LESS THAN INDEX MODE # FOR VXSC AND V/SC WE WANT THE REQUIRED CS REVCNT # PUSHLOC DECREMENT WITHOUT CHANGING THE - TCF REGUP +2 # MODE AT THE IS TIME. + TCF REGUP +2 # MODE AT THIS TIME. REGUP INDEX MODE # MOST ALL OP CODES PUSHUP HERE. CS NO.WDS @@ -258,7 +260,7 @@ OCTAL3 OCT 3 # 2 IN DP, AND 3 IN TP. # TEST THE SECOND PREFIX BIT TO SEE IF THIS IS A MISCELLANEOUS OR A UNARY/SHORT SHIFT OPERATION. OPJUMP2 CCS CYR # TEST SECOND PREFIX BIT. - TCF OPJUMP3 # TEST THIRD BIT TO SEE IF UNARY OR SHIFT + TCF OPJUMP3 # TEST THIRD BIT TO SEE IF UNARY OR SHIFT. -ENDVAC DEC -45 @@ -280,8 +282,8 @@ ITR7 INDEX A # Page 1115 # COMPLETE THE DISPATCHING OF UNARY AND SHORT SHIFT OPERATIONS. -OPJUMP3 TS FBANK # CALL IN BANK 0 (BIT5S 11-15 OF A ARE 0.) - +OPJUMP3 TS FBANK # CALL IN BANK 0 (BITS 11-15 OF A ARE 0.) +# ITRACE (6) REFERS TO "OPJUMP3". CCS CYR # TEST THIRD PREFIX BIT. INDEX A # THE DECREMENTED UNARY CODE IS IN BITS TCF UNAJUMP # 1-4 OF A (ZERO, EXIT, HAS BEEN DETECTED) @@ -304,7 +306,7 @@ INDJUMP TCF VLOAD # 00 -- LOAD MPAC WITH A VECTOR. TCF CGOTO # 04 -- COMPUTED GO TO. TCF TLOAD # 05 -- LOAD MPAC WITH TRIPLE PRECISION. TCF DLOAD # 06 -- LOAD MPAC WITH A DP SCALAR. - TCF V/SC # 07 -- VECTOR DIVIDED BY A SCALAR. + TCF V/SC # 07 -- VECTOR DIVIDED BY SCALAR. TCF SLOAD # 10 -- LOAD MPAC IN SINGLE PRECISION. TCF SSP # 11 -- SET SINGLE PRECISION INTO X. @@ -329,11 +331,11 @@ INDJUMP TCF VLOAD # 00 -- LOAD MPAC WITH A VECTOR. TCF DSU # 32 -- DP SUBTRACT. TCF BDSU # 33 -- DP SUBTRACT FROM. TCF DAD # 34 -- DP ADD. - TCF +0 # 35 -- AVAILABLE + TCF # 35 -- AVAILABLE TCF DMP1 # 36 -- DP MULTIPLY. TCF SETPD # 37 -- SET PUSH DOWN POINTER (DIRECT ONLY) -# CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED. +# CODES 10 AND 14 MUST NOT PUSH UP. CODE 04 MAY BE USED FOR VECTOR DECLARE BEFORE PUSHUP IF DESIRED. # Page 1117 # THE FOLLOWING JUMP TABLE APPLIES TO INDEX, BRANCH, AND MISCELLANEOUS INSTRUCTIONS. @@ -349,7 +351,7 @@ MISCJUMP TCF AXT # 00 -- ADDRESS TO INDEX TRUE. TCF XAD # 10 -- INDEX REGISTER ADD FROM ERASABLE. TCF XSU # 11 -- INDEX SUBTRACT FROM ERASABLE. - TCF BZE/GOTO # 12 -- BRANCH ZERO AND GOTO + TCF BZE/GOTO # 12 -- BRANCH ZERO AND GOTO. TCF BPL/BMN # 13 -- BRANCH PLUS AND BRANCH MINUS. TCF RTB/BHIZ # 14 -- RETURN TO BASIC AND BRANCH HI ZERO. TCF CALL/ITA # 15 -- CALL AND STORE QPRET. @@ -358,7 +360,9 @@ MISCJUMP TCF AXT # 00 -- ADDRESS TO INDEX TRUE. # Page 1118 # THE FOLLOWING JUMP TABLE APPLIES TO UNARY INSTRUCTIONS - COUNT* $$/INTER + + COUNT 00/INTER + BANK 0 # 00 -- EXIT -- DETECTED EARLIER. UNAJUMP TCF SQRT # 01 -- SQUARE ROOT. TCF SINE # 02 -- SIN.