/23-BIT FLOATING PT INTERPRETER *FLPT-600 /FLOATING MULTIPLY-DOES 2 24X12 BIT MULTIPLIES FFMPY, 0 SNA /WHICH MODE OF CALL? TAD I FFMPY /CALLED BY USER-GET OPERAND ADDR. JMS I MDSETK /SET UP FOR MPY-OPX IN AC ON RETN. TAD ACX /DO EXPONENT ADDITION DCA ACX /STORE FINAL EXPONENT DCA DV24 /ZERO TEM STORAGE FOR MPY ROUTINE DCA AC2 TAD ACH /IS FAC=0? SNA CLA DCA ACX /YES-ZERO EXPONENT JMS MP24 /NO-MULTIPLY FAC BY LOW ORDER OPR. TAD OPH /NOW MULTIPLY FAC BY HI ORDER MULTIPLIER DCA OPL JMS MP24 TAD AC2 /STORE RESULT BACK IN FAC RTZRO, DCA ACLO /LOW ORDER TAD DV24 /HIGH ORDER DCA ACH TAD ACH /DO WE NEED TO NORMALIZE? RAL SMA CLA JMP SHLFT /YES-DO IT FAST MDONE, DCA AC1 /NO-ZERO OVERFLOW WD(DO I NEED THIS???) ISZ FFMPY /BUMP RETURN POINTER ISZ TM /SHOULD RESULT BE NEGATIVE? JMP I FFMPY /NOPE-RETN. JMS I FFNEGR /YES-NEGATE IT JMP I FFMPY /RETURN SHLFT, CMA /SUBTRACT 1 FROM EXP. TAD ACX DCA ACX JMS I AL1PTR /SHIFT FAC LEFT 1 BIT JMP MDONE+1 /DONE. AL1PTR, AL1 / /24 BIT BY 12 BIT MULTIPLY. MULTIPLIER IS IN OPL /MULTIPLICAND IS IN ACH AND ACLO /RESULT LEFT IN DV24,AC2, AND AC1 MP24, 0 TAD KKM12 /SET UP 12 BIT COUNTER DCA OPX TAD OPL /IS MULTIPLIER=0? SZA JMP MPLP1 /NO-GO ON DCA AC1 /YES-INSURE RESULT=0 JMP I MP24 /RETURN MPLP, TAD OPL /SHIFT A BIT OUT OF LOW ORDER MPLP1, RAR /OF MULTIPLIER AND INTO LINK DCA OPL SNL /WAS IT A 1? JMP MPLP2 /NO-0-JUST SHIFT PARTIAL PRODUCT CLL /YES-ADD MULTIPLICAND TO PARTIAL PRODUCT TAD AC2 TAD ACLO /LOW ORDER DCA AC2 RAL /PROPAGATE CARRY TAD ACH /HI ORDER MPLP2, TAD DV24 RAR /NOW SHIFT PARTIAL PROD. RIGHT 1 BIT DCA DV24 TAD AC2 RAR DCA AC2 RAR /1 BIT OF OVERFLOW TO AC1 DCA AC1 ISZ OPX /DONE ALL 12 MULTIPLIER BITS? JMP MPLP /NO-GO ON JMP I MP24 /YES-RETURN / /PART OF DIVIDE ROUTINE-FFDIV MUST BE AT LOC. 6722 MP12L, DCA OPL /STORE BACK MULTIPLIET TAD AC2 /GET PRODUCT SO FAR SNL /WAS MULTIPLIER BIT A 1? JMP .+3 /NO-JUST SHIFT THE PARTIAL PRODUCT CLL /YES-CLEAR LINK AND ADD MULTIPLICAND TAD ACLO /TO PARTIAL PRODUCT RAR /SHIFT PARTIAL PRODUCT-THIS IS HI ORDER DCA AC2 /RESULT-STORE BACK DVLP1, TAD OPL /SHIFT A BIT OUT OF MULTIPLIER RAR /AND A BIT OR RESLT. INTO IT (LO ORD. PROD.) ISZ FFMPY /DONE ALL BITS? JMP MP12L /NO-LOOP BACK CLL CMA IAC /YES-LOW ORDER PROD. OF QUOT. X OPL IN AC DCA ACLO /NEGATE AND STORE CML RAL /PROPAGATE CARRY JMP I FD1P /GO ON FD1P, FD1 /POINTER TO REST OF DIVIDE ROUTINE / /FLOATING DIVIDE ROUTINE /USES THE METHOD OF TRIAL DIVISION BY HI ORDER FFDIV, 0 /(USED AS A TEM. BY I/O ROUTINES) SNA /WHICH MODE OF CALL? TAD I FFDIV /CALLED BY USER-GET ARG. ADDR. JMS I MDSETK /GO SET UP FOR DIVIDE-OPX IN AC ON RETN. FFD1, CMA IAC /NEGATE EXP. OF OPERAND TAD ACX /ADD EXP OF FAC DCA ACX /STORE AS FINAL EXPONENT TAD OPH /NEGATE HI ORDER OP. FOR USE CLL CMA IAC /AS DIVISOR DCA OPH JMS DV24 /CALL DIV.--(ACH+ACLO)/OPH TAD ACLO /SAVE QUOT. FOR LATER DCA AC1 TAD KM13 /SET COUNTER FOR 12 BIT MULTIPLY DCA FFMPY /TO MULTIPLY QUOT. OF DIV. BY JMP DVLP1 /LOW ORDER OF OPERAND (OPL) / /END OF FLOATING DIVIDE-FUDGE SOME /STUFF THEN JUMP INTO MULTIPLY / FDDON, TAD FFDIV /STORE RETN. ADDR. IN MULT ROUTINE DCA FFMPY JMP MDONE /GO CLEAN UP / /DIVIDE ROUTINE--24 BITS IN ACH,ACLO ARE DIVIDED BY 12 BITS /IN OPH. OPH IS ASSUMEN NEGATIVE AND .GT. ACH IN ABSOLUTE VALUE /ELSE-DIVIDE OVERFLOW--WE RETURN NORMALLY WITH QUOTIENT /IN ACLO AND REM. IN ACH. (AC2=0 ON RETN.) / DV24, 0 TAD ACH /CHECK THAT DIVISOR IS .GT. DIVIDEND TAD OPH /DIVISOR IN OPH (NEGATIVE) SZL CLA /IS IT? JMP I DVOVR /NO-DIVIDE OVERFLOW TAD KM13 /YES-SET UP 12 BIT LOOP DCA AC2 JMP DV1 /GO BEGIN DIVIDE DV2, TAD ACH /CONTINUE SHIFT OF FAC LEFT RAL DCA ACH /RESTORE HI ORDER TAD ACH /NOW SUBTRACT DIVISOR FROM HI ORDER TAD OPH /DIVIDEND SZL /GOOD SUBTRACT? DCA ACH /YES-RESTORE HI DIVIDEND CLA /NO-DON'T RESTORE--OPH.GT.ACH DV1, TAD ACLO /SHIFT FAC LEFT 1 BIT-ALSO SHIFT RAL /1 BIT OF QUOT. INTO LOW ORD OF ACLO DCA ACLO ISZ AC2 /DONE 12 BITS OF QUOT? JMP DV2 /NO-GO ON JMP I DV24 /YES-RETN W/AC2=0 FFNEGR, FFNEG MDSETK, MDSET KKM12, -14 KM13, -15 DVOVR, FTRP2 *FLPT-400 / /FLOATING ADD / FFADD, 0 SNA /WHICH MODE FO CALL? TAD I FFADD /CALLED BY USER-GET ADDR. OF OPR. JMS I ARGETP /PICK UP OPERAND FAD1, JMS I CDFCRP /CHANGE TO FIELD OF PACKAGE TAD OPH /IS OPERAND = 0 SNA CLA JMP DONA /YES-DONE TAD ACH /NO-IS FAC=0? SNA CLA JMP DOADD /YES-DO ADD TAD ACX /NO-DO EXPONENT CALCULATION CLL CMA IAC TAD OPX SMA SZA /WHICH EXP. GREATER? JMP FACR /OPERANDS-SHIFT FAC CMA IAC /FAC'S-SHIFT OPERAND=DIFFRNCE+1 JMS OPSR JMS ACSR /SHIFT FAC ONE PLACE RIGHT DOADD, TAD OPX /SET EXPONENT OF RESULT DCA ACX JMS OADD /DO THE ADDITION JMS I FNORP /NORMALIZE RESULT DONA, ISZ FFADD /BUMP RETURN JMP I FFADD /RETURN FACR, JMS ACSR /SHIFT FAC = DIFF.+1 JMS OPSR /SHIFT OPR. 1 PLACE JMP DOADD /DO ADDITION / /OPERAND SHIFT RIGHT-ENTER WITH POSITIVE COUNT-1 /IN AC OPSR, 0 CMA /- (COUNT+1) TO SHIFT COUNTER DCA AC0 LOP2, TAD OPH /GET SIGN BIT RAL /TO LINK CLA TAD OPH /GET HI MANTISSA RAR /SHIFT IT RIGHT, PROPAGATING SIGN DCA OPH /STORE BACK TAD OPL RAR DCA OPL /STORE LO ORDER BACK RAR /SAVE 1 BIT OF OVERFLOW DCA AC2 /IN AC2 ISZ OPX /INCREMENT EXPONENT NOP2, NOP ISZ AC0 /DONE ALL SHIFTS? JMP LOP2 /NO-LOOP JMP I OPSR /YES-RETN. / /SHIFT FAC LEFT 1 BIT / AL1, 0 TAD AC1 /GET OVERFLOW BIT CLL RAL /SHIFT LEFT DCA AC1 /STORE BACK TAD ACLO /GET LOW ORDER MANTISSA RAL /SHIFT LEFT DCA ACLO /STORE BACK TAD ACH /GET HI ORDER RAL DCA ACH /STORE BACK JMP I AL1 /RETN. / /SHIFT FAC RIGHT-ENTER WITH COUNT-1 IN AC (POSITIVE) / ACSR, 0 CMA /AC CONTAINS COUNT-1 DCA AC0 /STORE COUNT LOP1, TAD ACH /GET SIGN BIT OF MANTISSA RAL /SET UP SIGN PROPAGATION CLA TAD ACH /GET HIGH ORDER MANTISSA RAR /SHIFT RIGHT`1, PROPAGATING SIGN DCA ACH /STORE BACK TAD ACLO /GET LOW ORDER RAR /SHIFT IT DCA ACLO /STORE BACK RAR DCA AC1 /SAVE 1 BIT OF OVERFLOW ISZ ACX /INCREMENT EXPONENT NOP1, NOP ISZ AC0 /DONE? JMP LOP1 /NO-LOOP JMP I ACSR /YES-RETN-AC=L=0 / /DIVIDE OVERFLOW-ZERO ACX,ACH,ACLO / DBAD, CLA CLL /NECESSARY SO WE DON'T GET OVRFLO AGAIN JMP I DBAD1P /GO ZERO ALL / /FLOATING SUBTRACT / FFSUB, 0 SNA /WHICH MODE OF CALL? TAD I FFSUB /CALLED BY USER-GET ADDR. OF OP JMS I ARGETP /PICK UO THE OP. JMS OPNEG /NEGATE OPERAND TAD FFSUB /JMP INTO FLTG. ADD SUB0, DCA FFADD /AFTER SETTING UP RETURN JMP FAD1 ARGETP, ARGET / /FLOATING HALT-DISPLAY FLOATING P.C. / FFHLT, JMS I CDFCRP /MUST BE DATA FIELD OF PACKAGE TAD I FPP /GET THE P.C. HLT CLA /CLR IT OUT JMP I FPNXT /DONE-GET NEXT INSTR. / /FLOATING NEGATE / FFNEG, 0 /(USED AS A TEM. BY OUTPUT ROUTINE) TAD ACLO /GET LOW ORDER FAC CLL CMA IAC /NEGATE IT DCA ACLO /STORE BACK CML RAL /ADJUST OVERFLOW BIT AND TAD ACH /PROPAGATE CARRY-GET HI ORD CLL CMA IAC /NEGATE IT DCA ACH /STORE BACK JMP I FFNEG / /NEGATE OPERAND / OPNEG, 0 TAD OPL /GET LOW ORDER CLL CMA IAC /NEGATE AND STORE BACK DCA OPL CML RAL /PROPAGATE CARRY TAD OPH /GET HI ORDER CLL CMA IAC /NEGATE AND STORE BACK DCA OPH JMP I OPNEG / /ADD OPERAND TO FAC / OADD, 0 CLL TAD AC2 /ADD OVERFLOW WORDS TAD AC1 DCA AC1 RAL /ROTATE CARRY TAD OPL /ADD LOW ORDER MANTISSAS TAD ACLO DCA ACLO RAL TAD OPH /ADD HI ORDER MANTISSAS TAD ACH DCA ACH JMP I OADD /RETN. DBAD1P, DBAD1 CDFCRP, CDFCUR FNORP, FFNOR *FLPT-200 / /ROUTINE TO CALL EXTENDED FUNCTIONS /THIS IS AN EXTENSION OF OP CODE 0 / FCALL, TAD OPH /FCALL-GET FUNCTION # (=ADDR SINCE TAD JMSI2 /PAGE ZERO)-MAKE A JMS THRU TABLE DCA DCOD1 /STORE IT JMS CDFCUR /D.F. MUST BE FIELD OF PACKAGE TAD I FPP /GET AND SAVE FLTG. P.C. DCA FT1 TAD I DFCDFP /GET AND SAVE FLTG. D.F. AND I.F. DCA FT2 TAD I FPNXT DCA FT3 DCOD1, 0 /CALL THE SUBROUTINE CLA JMS CDFCUR /CHANGE TO D.F. OF PACKAGE TAD FT3 /RESTORE FLTG. PC,IF,DF DCA I FPNXT TAD FT2 DCA I DFCDFP TAD FT1 FJUMP1, DCA I FPP JMP I FPNXT /GET NEXT INSTR. / /CONTINUATION OF NORMALIZE ROUTINE / FFNORR, DCA AC1 /DONE W/NORMALIZE-CLEAR AC1 JMP I FFNOR /RETURN AL1P, AL1 JMPIC, JMP I CDFCUR DFCDFP, DFCDF JMSI2, JMS I TABLE2-1 TABLE2, FFSQ /SQUARE=1 FROOT /SQUARE ROOT=2 FFSIN /SIN=3 FFCOS /COS=4 FFATN /ARCTANGENT=5 FFEXP /EXPONENTIAL=6 FFLOG /LOGARITHM=7 FFNEG /NEGATE=10 FFIN /INPUT=11 FFOUT /OUTPUT=12 FFIX /FIX=13 FFLOAT /FLOAT=14 DCOD1 /NOP=15 DCOD1 /NOP=16 DCOD1 /NOP=17 / /ARGUMENT PICK UP ROUTINE-ENTER WITH DATA FIELD SET TO EITHER /FLTG. DATA FIELD OR FLTG. INSTR. FIELD. /ADDRESS OF OPERAND IS IN THE AC ON ENTRY. /ON RETURN, THE`AC IS CLEAR / ARGET, 0 DCA AC2 /STORE ADDRESS OF OPERAND TAD I AC2 /PICK UP EXPONENT DCA OPX ISZ AC2 /MOVE POINTER TO HI MANTISSA WD TAD I AC2 /PICK IT UP DCA OPH /STORE ISZ AC2 /MOVE PTR. TO LO MANTISSA WD. TAD I AC2 /PICK IT UP DCA OPL /STORE IT JMP I ARGET /RETURN DVOP2P, DVOP2 / /ROUTINE TO NORMALIZE THE FAC / FFNOR, 0 TAD ACH /GET THE HI ORDER MANTISSA SNA /ZERO? TAD ACLO /YES-HOW ABOUT LOW? SNA TAD AC1 /LOW=0, IS OVRFLO BIT ON? SNA CLA JMP ZEXP /#=0-ZERO EXPONENT NORMLP, CLA CLL CML RTR /NOT 0-MAKE A 2000 IN AC TAD ACH /ADD HI ORDER MANTISSA SZA /HI ORDER = 6000 JMP .+3 /NO-CHECK LEFT MOST DIGIT TAD ACLO /YES-6000 OK IF LOW=0 SZA CLA SPA CLA /2,3,4,5,ARE LEGAL LEFT MOST DIGS. JMP FFNORR /FOR NORMALIZED #-(+2000=4,5,6,7) JMP FNLP /JUMP SO FFGET AND PUT ARE ORGED RIGHT / /FLOATING GET / FFGET, 0 SNA /WHICH MODE OF CALL TAD I FFGET /CALLED BY USER-GET ADDR. OF OP JMS ARGET /PICK UP OPERAND TAD OPX DCA ACX /LOAD THE OPERAND INTO FAC TAD OPL DCA ACLO TAD OPH DCA ACH ISZ FFGET JMP I FFGET /RETN. TO CALL +2 / /FLOATING PUT / FFPUT, 0 SNA /WHICH MODE OF CALL? TAD I FFPUT /CALLED BY USER-GET OPR. ADDR DCA FFGET /STORE IN A TEMP TAD ACX /GET FAC AND STORE IT DCA I FFGET /AT SPECIFIED ADDRESS ISZ FFGET TAD ACH DCA I FFGET ISZ FFGET TAD ACLO DCA I FFGET ISZ FFPUT /BUMP RETN. JMP I FFPUT /RETN. TO CALL+2 / /ROUTINE TO ADJUST QUOTINET OF FIRST DIVIDE (MAYBE) WHEN THE /REMAINDER OF THE FIRST`DIVIDE IS LESS THAN QUOT*OPL /USED BY FLTG. DIVIDE ROUTINE / DVOPS, CMA IAC /NEGATE AND STORE REVISED REMAINDER DCA ACH CLL TAD OPH TAD ACH /WATCH FOR OVERFLOW SNL JMP DVOP1 /OVERFLOW-DON'T ADJUST QUOT. OF 1ST DIV. DCA ACH /NO OVERFLOW-STORE NEW REM. CMA /SUBTRACT 1 FROM QUOT OF TAD AC1 /FIRST DIVIDE DCA AC1 DVOP1, CLA CLL TAD ACH /GET HI ORD OF REMAINDER JMP I DVOP2P /GO ON / /CHANGE TO DATA FIELD OF FLTG. PT. PKG. /AFTER FIRST TIME THRU, ROUTINE LOOKS LIKE / / CDFCUR, 0 / CDF N /N IS FLD OF PKG. / JMP I CDFCUR / (NEXT 8 LOCS. FREE FOR TEMPS) / CDFCUR, 0 CCUR1, RIF /READ INST. FIELD CCUR2, TAD TM /ADD A CDF 0 INST DCA CCUR1 /STORE IT, MODIFYING SUBR. TAD JMPIC /STORE A SUBR. RETN DCA CCUR2 /ALL DONE / /NECESSARY CONSTANTS / 7100 FT2, 7076 FT3, 7650 FT1, 2262 5357 FNLP, CLL CML CMA /-1 TAD ACX /SUBTR. 1 FROM EXPONENT DCA ACX JMS I AL1P /SHIFT FAC LEFT 1 JMP NORMLP /GO BACK AND SEE IF NORMALIZED ZEXP, DCA ACX JMP FFNORR / /BEGINNING OF INTERPRETER / *FLPT FPT, 0 L7600, 7600 /CLA RDF /READ DATA FIELD-THIS WILL BE TAD KCDF0 /INITIAL FLTG. DATA AND INSTR. FLD DCA FPNEXT /STORE CDF TO FLTG. INST. FLD FFSW0, TAD FFSB0 /INLINE IN INTERPRETER--SET FLOATING SWITCH DCA TSUB /TO 0 TAD FFDV0 DCA TDIV TAD FPNEXT SFDF, DCA DFCDF FPNEXT, 0 /BECOMES CDF TO FLTG. INST FLD. TAD I FPT /GET NEXT FLTG. PT. INSTR. DCA OPX /STORE IN A TEMPORARY TAD OPX /GET IT BACK AND PICK OFF AND K177 /THE ADDRESS DCA OPH /STORE THAT AWAY TAD OPX /PICK OFF THE PAGE BIT AND K200 /AND MAKE A 7600 IF CURRENT PAGE CMA IAC /OR 0 IF PAGE ZERO K200, AND FPT /THIS SETS UP HI ORDER 5 BITS OF ADDR. ISZ FPT /INCREMENT FLTG. P.C. TAD OPH /ADD IN LOW ORDER 7 BITS OF ADDR DCA OPH /THIS IS FINAL ADDR UNLESS INDIRECT. TAD OPX /NOW DECODE THE OP CODE CLL RTL RTL AND K7 /PICK OFF OP CODE BITS TAD JMSI /AND MAKE A JMS THRU TABLE DCA DCOD /STORE IT FOR LATET TAD OPH /GET ADDRESS INTO AC SNL /INDIRECT BIT IN LINK-IS IT ON? JMP DCOD /NO-CALL THE PROPER ROUTINE AND K7770 /YES-IS ADDR AN AUTO INDEX REG.? TAD K7770 SNA CLA TAD K3 /YES-ADD 3 TO XREG. BEFORE USING TAD I OPH /THE ADDR. DCA I OPH TAD I OPH /GET EFF. ADDR.INTO AC FOR CALL DFCDF, 0 /CHANGE TO FLTG. D.F.-INDIREDT ADDRESSING DCOD, 0 /CALL SUBRS. WITH ADDR IN AC-D.F.IS /SET TO FLTG. D.F. OR I.F.-RETN. IS /TO CALL+2 FNRM, JMS I FFNORP /NORMALIZE ROUTINE-CALL NORM SUBR. JMP FPNEXT /GO GET NEXT INSTR. / /TABLE FOR JUMPS / JMSI, JMS I TABLE TABLE, FFJMP /FLOATING JMP OP CODE 0 FFADD / " ADD " 1 TSUB, FFSUB / " SUBTRACT 2 TMPY, FFMPY / " MULTIPLY 3 TDIV, FFDIV / " DIVIDE 4 FFGET / " GET " 5 FFPUT / " PUT " 6 FFJMS / " JMS " 7 / /CONSTANTS AND POINTERS / K177, 177 FCALLP, FCALL KCDF0, CDF 0 K7770, 7770 FFNORP, FFNOR / /FLOATING JUMP-CHECK FOR FCALL OR FISZ / FFJMP, 0 SNA /IS IT FEXT? JMP EXIT /YES-LEAVE INTERPRETER DCA OPH /NO-STORE ADDR. TAD OPX /ARE INDIRECT AND PAGE BITS=0 AND L7600 /(WORKS SINCE OP`CODE=0) SZA CLA JMP FJUMP /NO-IT IS FJUMP-EFF. ADR. IN OPH TAD OPX /YES-ARE BITS 5-7=0? AND K160 /(ANY ON=FISZ) SNA CLA JMP I FCALLP /FLOATING CALL-DO IT FFISZ, ISZ I OPX /FISZ-ISZ THAT ADDR (DF=FLTG. IF) JMP FPNEXT /NO-SKIP-GO GET NEXT INST. FISZ1, ISZ FPT /SKIP-INCREMENT FLTG. P.C. JMP FPNEXT /GO ON K160, 160 / /FEXT-LEAVE INTERPRETER / EXIT, CLA CLL CML RTL /MAKE A CDF CIF TO FLTG. INST FLD. TAD FPNEXT DCA .+1 /STORE IT 0 JMP I FPT /GO BACK TO USER,AC=L=0 / /FLOATING JMS-IF BITS 3-11=0 = NORMALIZE FAC (FNOR) / " 3-4 =0 = DECODE FURTHER BY BITS 9-11 / " 9-11=0 = SKIP ON CONDITION OF FAC / " =1 = FCDF (BITS 6-8=NEW FLTG. D.F.) / " =2 = FSW0 / " =3 = FSW1 / " =4 = FHLT-DISPLAY FLTG. PC / " =5-7 NOP / FFJMS, 0 SNA /IS IT NORMALIZE? JMP FNRM /YEAH-DO IT DCA OPH /NO-STORE EFF ADDR. TAD OPX /GET THE INSTR. AND K600 /INDIRECT AND PAGE BITS=0? SNA CLA JMP I JSKPP /YES-GO DECODE FURTHER TAD FPNEXT /NO-ITS JMS-GET CDF TO FLTG. I.F. DCA .+1 /STORE IT IFCDF, 0 /EXECUTE IT TAD FPT /GET THE FLTG. P.C. DCA I OPH /STORE IT AT THE EFF.ADDR. TAD OPH /GET THE EFF. ADDR. DCA FPT /STORE IN`FLTG. PC. JMP FISZ1 /GO INCREMENT FLTG. PC JSKPP, JSKP FFDV0, FFDIV FFSB0, FFSUB K3, 3 K7, 7 K600, 600 / /FLOATING SKIP-ADD 600 TO THE INSTRUCTION TO MAKE IT /A SKIP WITH CLA--THE SKIP PRODUCED IS THE REVERSE OF /WHAT IS EXPECTED (SNA NOT SZA) TO FACILITATE THE /DECODING / FFSKP, TAD K600 /ADD 600 TO MAKE A SKP WITH CLA TAD OPX /ADD IN ORIG INSTR DCA .+2 TAD ACH /GET HI ORDER MANTISSA IN FAC FOR SENSING 0 /EXECUTE THE SKIP WE MADE ISZ FPT /NO SKIP=SKIP-BUMP FLTG.PC JMP FPNEXT /SKIP=NO SKIP-LEAVE PC ALONE-GO ON / /FLOATING JUMP-STORE EFF. ADDR IN FLTG.PC / FJUMP, TAD OPH /GET EFF ADDR OF JUMP DCA FPT /STORE IN FLTG. PC JMP FPNEXT /GO ON / /FCDF-BITS 6-8 ARE NEW FLTG. DATA FIELD / FFCDF, CLA CMA /SUBTRACT 1 FROM EFF. ADDR. TAD OPH /ADD IN FIELD BITS TAD KCDF0 /ADD IN CDF INSTR. JMP SFDF /GO SOTER CDF TO FLTG DF. *FPT+164 / /FSQUARE-SQUARE FAC-CALLS MULTIPLY TO MUL. FAC BY ITSELF / FFSQ, 0 JMS I TMPY /CALL MULTIPLY TO MULTIPLY ACX /FAC BY ITSELF JMP I FFSQ /DONE / /FLOATING TRAPS TO USER-INITIALLY SET TO NOPS / FTRP1, JMP I FTRAP1 /OVERFLOW FTRP2, JMP I FTRAP2 /DIV. ERR. FTRP3, JMP I FTRAP3 /ILL. FUNCT. ARG. FTRP4, JMP I FTRAP4 /UNDERFLOW FTRAP1, FTRPRT FTRAP2, DBAD FTRAP3, LTRPRT FTRAP4, DCOD1+1 $