      HED OUTPUT ROUTINES **                    *****  PRINT A NUMBER  *****                    *** *  ENTER WITH A FLOATING POINT NUMBER IN (A) AND (B).  PRINT THE*  NUMBER AND APPEND BLANKS TO REACH THE PRINT POSITION SPECIFIED *  BY -EOPF ON RETURN FROM NUMOT. * #ENOT CCE           ENABLE SIGN       JSB NUMOT     OUTPUT NUMBER       JMP *+3       LDA .+40B     OUTPUT      JSB OUTCR       A BLANK       LDB EOPF      FIELD       ADB CHRCT       SZB             FULL?       JMP *-5       NO      JMP ENOUT,I   YES **                     ** ***  OUTPUT A NUMBER  *** **                     ** * *  ENTER WITH A FLOATING POINT NUMBER IN (A) AND (B) AND (E) = 1*  IF A SIGN IS WANTED.  DETERMINE THE FORM OF THE NUMBER AND *  SET EOPF ACCORDINGLY.  NON-INTEGERS ARE ROUNDED AFTER CONVERSION *  TO DECIMAL.  TRAILING ZEROS ARE SUPPRESSED ON NUMBERS WITHOUT*  EXPONENTS (AND ON NUMBERS WITH EXPONENTS IF CALLED FROM 'LIST'). * #NMOT STA NUMBF     SAVE HIGH MANTISSA      SEZ,RSS       SIGN?       JMP NUMO1     NO      SSA,RSS       YES, NEGATIVE NUMBER?       JMP *+5       NO      JSB ARINV     YES, NEGATE NUMBER      STA NUMBF     SAVE HIGH MANTISSA      LDA .+55B     LOAD '-'      RSS       LDA .+40B     LOAD '+'      STA SIGN      SAVE SIGN       LDA NUMBF     RETRIEVE HIGH MANTISSANUMO1 STB NUMBF+1   SAVE LOW MANTISSA       JSB IFIX      INTEGER?      JMP NUMO2     NO      SOC           YES, 16-BIT INTEGER?      JMP NUMO2     NO*                       * **  OUTPUT AN INTEGER  ** *                       *       STB NUMBF     SAVE INTEGER      ADB M1000       LDA .+6       SSB,RSS       3 DIGIT INTEGER?      ADA .+3       NO      ADA CHRCT     COMPUTE END-OF-FIELD      CMA,INA       SAVE      STA EOPF        IT      ADA .74       ENOUGH      SSA             ROOM?       JSB OUTLN     NO      LDA SIGN      YES       SZA           SIGN?       JSB OUTCR     YES, OUTPUT IT      LDB NUMBF     NO      JSB OUTIN     OUTPUT THE INTEGER      JMP NUMOT,I *                                    ***  OUTPUT A FLOATING POINT NUMBER  ***                                    *NUMO2 LDA .-2       SET 'FIXED'       STA FFLAG       FLAG FALSE      DLD NUMBF     LOAD NUMBER       JSB .FAD      IS NUMBER       DEF MAXFX       LESS THAN       SSA,RSS           999999.5 ?      JMP NUMO3     NO      DLD NUMBF     YES, IS       JSB .FAD        NUMBER      DEF MINFX         LESS THAN       SSA,RSS             0.09999995 ?      ISZ FFLAG     NO, SET 'FIXED' FLAG TRUE NUMO3 DLD NUMBF     LOAD NUMBER       STA MANT1     UNPACK      JSB .FLUN       STB MANT2       NUMBER      STA EXP       CLA           INITIALIZE      STA EXPON       DECIMAL EXPONENT      CPA EXP       ZERO EXPONENT?      JMP NUMO5     YES NUMO0 JSB MBY10     NO      LDA EXP       MULTIPLY      CMA,SSA,INA,SZA   NUMBER BY 10      JMP *+3             UNTIL IT IS       ISZ EXPON             GREATER       JMP NUMO0               THAN 1      JSB DBY10     DIVIDE BY 10      LDA EXPON NUMO4 LDB EXP       DIVIDE      CMB,INB         NUMBER      SSB,RSS           BY 10       JMP NUMO5           UNTIL       STA EXPON             IT IS       JSB DBY10               LESS      CCA                       THAN      ADA EXPON                   1       JMP NUMO4 NUMO5 CMA           SET EXPONENT      STA EXPON       TO TRUE VALUE-1       LDB .-6       SET DIGIT       STB DIGCT       COUNTER       LDB NMBFA     SET BUFFER      STB NMPTR       POINTER       SKP *                               * **  CONVERT MANTISSA TO ASCII  ** *                               * NUMO6 JSB GETDG     STORE A       ADA .+60B       DECIMAL       STA NMPTR,I       DIGIT       ISZ NMPTR       ISZ DIGCT     SIXTH DIGIT?      JMP NUMO6     NO      JSB GETDG     YES,      ADA .-5         NEXT DIGIT      SSA               >= 5 ?      JMP NUMO9+1   NO*                          ***  ROUND ASCII MANTISSA  ***                          *      LDB NMPTR NUMO7 ADB .-1       LOAD LAST       LDA 1,I         DIGIT       INA           INCREMENT IT      CPA .58       WAS IT A 9?       RSS           YES       JMP NUMO9     NO      CPB NMBFA     LEADING DIGIT?      JMP NUMO8     YES       LDA .+60B     NO, OVERLAY       STA 1,I         A 0       JMP NUMO7 NUMO8 ISZ EXPON     BUMP DECIMAL      NOP             EXPONENT AND      LDA .+61B         OVERLAY A 1 NUMO9 STA 1,I       LDA EXPON     IS NUMBER       SSA,RSS         LESS THAN 1 ?       JMP NMO11     NO      STA NMTMP     YES       LDA .+60B       LDB NMPTR NMO10 ISZ NMTMP     COUNT ZEROS       NOP             PLUS 1      ADB .-1       LAST      CPA 1,I         DIGIT 0?      JMP NMO10     YES       LDA NMTMP     NO, ALL SIGNIFICANCE      SSA             IN SIX DIGITS?      JMP NMO11     NO      CCA           YES, SET      STA FFLAG       'FIXED' FLAG TRUE NMO11 LDB .+12      COMPUTE       ISZ FFLAG       FIELD       ADB .+3           WIDTH       ADB CHRCT     SAVE      CMB,INB         END-OF-FIELD      STB EOPF          MARKER      ADB .75       ENOUGH      SSB             ROOM?       JSB OUTLN     NO      LDA SIGN      YES       SZA           SIGN?       JSB OUTCR     YES, OUTPUT IT      LDB .-7       SET OUTPUT      STB DIGCT       DIGIT COUNTER       LDB NMPTR       CCA           FIXED       CPA FFLAG       FORMAT?       JMP *+5       NO      LDA EXPON     YES, SET      CMA             INDICATOR TO      STA NMTMP         DECIMAL POINT       JMP NMO16       STA NMTMP     SET INDICATOR FOR DECIMAL POINT       LDA LCALL     CALLED      CPA NUMOT       FROM 'LIST' ?       JMP NMO16     YES       JMP NMO14     NO*                           * **  DELETE TRAILING ZEROS  ** *                           * NMO12 LDA DIGCT     AT RIGHT OF       INA             DECIMAL       CPA NMTMP         POINT?      JMP *+6       NO      STA DIGCT     YES, DELETE ZERONMO16 ADB .-1       LAST      LDA 1,I         DIGIT       CPA .+60B         0?      JMP NMO12     YES       CCA           NO, FIXED       CPA FFLAG       FORMAT?       JMP NMO14     NO      LDA EXPON     YES, LEADING      SSA,RSS         DECIMAL POINT?      JMP NMO14     NO      STA NMTMP     YES, SET LEADING ZEROS COUNTER*                     * **  OUTPUT MANTISSA  ** *                     *       LDA .+56B     OUTPUT A      RSS             DECIMAL POINT NMO13 LDA .+60B     OUTPUT      JSB OUTCR       A ZERO      ISZ NMTMP     MORE LEADING ZEROS?       JMP NMO13     YES       ISZ DIGCT     NO, COUNT DECIMAL POINT NMO14 LDB NMBFA     SET       STB NMPTR       DIGIT POINTER       JMP *+5 NMO15 ISZ NMTMP     DECIMAL POINT NEXT?       JMP *+3       NO      LDA .+56B     YES, LOAD IT      JMP *+3       LDA NMPTR,I   LOAD NEXT       ISZ NMPTR       DIGIT       JSB OUTCR     OUTPUT CHARACTER      ISZ DIGCT     MORE DIGITS?      JMP NMO15     YES       ISZ FFLAG     NO, EXPONENT?       JMP NUMOT,I   NO*                         * **  OUTPUT THE EXPONENT  ** *                         *       LDA E       JSB OUTCR     OUTPUT AN 'E'       LDA .+55B     OUTPUT      LDB EXPON       SSB             AN      CMB,INB,RSS       LDA .+53B         EXPONENT      STB EXPON       JSB OUTCR           SIGN      LDA EXPON       CLB           COMPUTE       DIV .+10      ADA .+60B       EXPONENT'S      ADB .+60B       STB EXPON         10'S DIGIT      JSB OUTCR     OUTPUT IT       LDA EXPON     OUTPUT      JSB OUTCR       1'S DIGIT       JMP NUMOT,I * MINFX DEC -0.099999959MAXFX DEC -999999.5 **                         ** ***  GET DIGIT TO OUTPUT  *** **                         ** * *  COMPUTE NEXT DECIMAL DIGIT AND RETURN WITH IT IN (A).*  SUBTRACT IT OUT OF THE NUMBER. * #GTDG JSB MBY10     MULTIPLY BY 10      LDB EXP       GET EXPONENT IN (B)       CMB,INB         AS NEGATIVE       AND HMASK     RETAIN HIGH 5 BITS      RAL           NORMALIZE TO BIT 15       SSB,INB       ROTATE INTEGER      JMP *-2         INTO (A)      AND B377      EXTRACT       STA FD0         DIGIT       LDB EXP       ROTATE      CMB,INB       RAR             BACK      SSB,INB       JMP *-2       XOR MANT1     REMOVE      LDB MANT2       DIGIT       JSB NORML     NORMALIZE REMAINDER       LDA FD0       LOAD (A) WITH DIGIT       JMP GETDG,I       SKP *  TTY BUFFER USED TO GET ACROSS PAGE BOUNDARYBUF12 BSS BUFLN       SPC 2 **                       ** ***  OUTPUT AN INTEGER  *** **                       ** * *  ENTER WITH A POSITIVE INTEGER IN (B).  OUTPUT IT WITHOUT *  LEADING ZEROS. * #OTIN LDA .-4       SET DIGIT       STA DGCNT       COUNTER       LDA LDVSR     SET DIVISOR       STA OT1         ADDRESS       CLA           SUPPRESS      STA OT4         ZEROS OUTI1 LSR 16        DIVIDE INTEGER BY       DIV OT1,I       CURRENT DIVISOR       STB OT3       SAVE THE REMAINDER      CPA OT4       LEADING ZERO?       JMP OUTI2     YES       ADA .+60B     NO, TURN OFF      STA OT4         ZERO SUPPRESS       JSB OUTCR     OUTPUT DIGITOUTI2 LDB OT3       RETRIEVE REMAINDER      ISZ OT1       SET FOR NEXT DIVISOR      ISZ DGCNT     ALL DIVISORS USED?      JMP OUTI1     NO      LDA 1         YES       ADA .+60B     OUTPUT      JSB OUTCR       LAST DIGIT      JMP OUTIN,I **                       ** ***  SPACE FOR A COMMA  *** **                       ** * *  MOVE TO THE NEXT FIELD OF 15 ON THE PRINT LINE OR TO THE *  NEXT LINE IF THE CURRENT ONE IS EXHAUSTED. * #EDLM LDB CHRCT     LOAD CURRENT CHARACTER COUNT      SZB,RSS       ZERO?       JMP EDELM,I   YES, AT START OF ZONE       ADB .-15      NO, SUBTRACT ZONE WIDTH       SSB,RSS       NON-NEGATIVE RESULT?      JMP #EDLM+1   YES       STB EOL       NO, SAVE COUNT      LDA .+40B     OUTPUT      JSB OUTCR       A BLANK       ISZ EOL       ZONE FULL?      JMP *-3       NO      LDB CHRCT     YES,      ADB M74         PAST THE      SSB,RSS           END OF LINE?      JSB OUTLN     YES       JMP EDELM,I   NO      SKP **                           ** ***  OUTPUT AN END-OF-LINE  *** **                           ** #OTLN LDB EOPF      RESET       ADB CHRCT       END-OF-FIELD      STB EOPF          MARKER      LDA .+23B     OUTPUT      JSB OUTCR       AN X-OFF      LDA .+15B     OUTPUT A      JSB OUTCR       CARRIAGE RETURN       LDA .+12B         AND A       JSB OUTCR           LINE FEED       JMP OUTLN,I **                        *****  OUTPUT A CHARACTER  *****                        *** *  OUTPUT THE CHARACTER IN (A).  NON-PRINTING CHARACTERS DO NOT *  COUNT AGAINST THE 72 CHARACTERS PER LINE.  A CARRIAGE RETURN *  ('CONTROL O' IN A STRING OR AN END-OF-LINE, FOR EXAMPLE) *  RESETS THE PRINT POSITION TO 0.* #OTCR STA OCTMP     SAVE CHARACTER      AND .140      NON-      SZA             PRINTING      CPA .140          CHARACTER?      RSS           YES       ISZ CHRCT     NO, COUNT IT      CLB       LDA OCTMP     RETRIEVE CHARACTER      CPA .+15B     CARRIAGE RETURN?      STB CHRCT     YES, ZERO CHARACTER COUNT       LDB MAIN      LOAD TELETYPE ADDRESS       JSB OUTCH,I       JMP OUTCR,I **                         ** ***  BACKSPACE IN BUFFER  *** **                         ** * *  BACKSPACE OVER ONE CHARACTER IN THE INPUT RECORD.* #BKSP LDB BADDR     LOAD CHARACTER ADDRESS      CPB PRBFA,I   FIRST CHARACTER OF BUFFER?      LDB PRBFE,I   YES, UNWRAP       ADB .-1        NO, DECREMENT      STB BADDR       CHARACTER ADDRESS       JMP BCKSP,I       SKP **                                 ** ***  FETCH NEXT BUFFER CHARACTER  *** **                                 ** * *  NORMALLY RETURNS TO (P+2) WITH THE NEXT CHARACTER FROM THE *  INPUT BUFFER IN (A).  BLANKS ARE SKIPPED IF 'BLANK' = 40 OCTAL.*  A 'CARRIAGE RETURN' EXITS TO (P+1).* #GTCR LDB BADDR     INCREMENT       INB             CHARACTER ADDRESS       CPB PRBFE,I   OUT OF PHYSICAL BUFFER?       LDB PRBFA,I   YES, WRAP AROUND      STB BADDR     NO      CLE,ERB       LOAD CORRECT      LDA 1,I         BUFFER WORD       SEZ,RSS       EXTRACT       ALF,ALF         DESIRED       AND B377          CHARACTER       CPA BLANK     BLANK?      JMP #GTCR     YES,IGNORE IT       CPA .+15B     NO, CARRIAGE RETURN?      JMP GETCR,I   YES       ISZ GETCR     NO, EXIT      JMP GETCR,I     TO P+2      HED MATRIX EXECUTION* ***                         ****  EXECUTE <MAT STATEMENT>  ** ***                         *** EMAT  LDA TEMP1,I   FIRST       AND OPDMK       OPERAND       SZA               NULL?       JMP EMAT1     NO*                         * **  IDENTIFY MATRIX I/O  ** *                         *       ISZ TEMP1       LDA TEMP1,I   COMPUTE AND SAVE      RRR 9           I/O TYPE:       AND B77           INPUT = -2      ADA D65           READ  = -1      STA MT1           PRINT =  0      SSA,INA,SZA   SAVE FLAG       STA MT0         IF 'INPUT'      JSB VLFIL     PROCESS ANY       NOP             FILE REQUESTMIO1  LDA TEMP1,I   LOAD NEXT       AND OPDMK       IDENTIFIER      SZA,RSS       ZERO?       JMP XEC1A,I   YES *                              ***  PREPARE A MATRIX FOR I/O  ***                              *      ALS           LOAD      ADA SYMTB       BASE ADDRESS      ADA .-1           OF ARRAY      LDB 0,I       ADB .-2       SAVE POINTER TO       STB SBPTR       DYNAMIC DIMENSIONS      LDA TEMP1     LAST      INA             WORD OF       CPA PRGCT         STATEMENT?      CLA           YES       LDA 0,I       NO, LOAD (A) WITH       AND OPMSK       FOLLOWING OPERATOR      LDB MT1       MAT       SZB,RSS         PRINT?      JMP MIO2      YES       CPA LBOP      NO, '[' NEXT OPERATOR?      JSB REDIM     YES, REDIMENSION ARRAY      LDA SBPTR,I   SET POINTER       ISZ SBPTR       TO FIRST ELEMENT      MPY SBPTR,I       OF ARRAY      ISZ SBPTR           WHILE COMPUTING       CMA,INA               NUMBER OF       STA MCNT                ELEMENTS      CCA           MAT       CPA MT1         READ?       JMP MIO9      YES       SKP *                             * **  INPUT VALUES FOR MATRIX  ** *                             *       ISZ MT0       FIRST MATRIX TO BE INPUT?       RSS           NO      JMP MINP1,I   YES       ADA MT0       RETRIEVE      JMP MINP2,I     SAVED CHARACTER *                            ***  READ VALUES FOR MATRIX  ***                            *MIO9  CLB,INB       FETCH       JSB FDATA       CONSTANT      DST SBPTR,I   STORE       ISZ SBPTR       ISZ SBPTR       IT      ISZ MCNT      DONE?       JMP MIO9      NO      JMP MIO7      YES * MIO2  CPA B3000     ';' FOLLOWING ARRAY?      CCB           YES       STB MCNT      NO, TREAT AS COMMA      LDB SBPTR     VALIDATE      JSB VCHK        ARRAY ELEMENTS      LDA SBPTR,I   SAVE      ISZ SBPTR       COUNT       CMA,INA           OF      STA MT0             ROWS      LDA SBPTR,I       ISZ SBPTR       LDB FILE#     WRITE ON      SSB             A FILE?       JMP MIO3      NO*                          ***  WRITE MATRIX ON FILE  ***                          *      MPY MT0       SET       STA MCNT        ELEMENT COUNTER MIO4  LDB .-2       WRITE ELEMENT       JSB FILST       TO FILE       ISZ SBPTR     MOVE TO       ISZ SBPTR       NEXT ELEMENT      ISZ MCNT      MATRIX DONE?      JMP MIO4      NO      JMP MIO7      YES       SKP *                              ***  WRITE MATRIX ON TELETYPE  ***                              *MIO3  CMA,INA       SAVE      STA MT3         COLUMN COUNTMIO8  STA MT2       SET COLUMN COUNT      JMP MIO6MIO5  CLA       CPA MCNT      JSB EDELM MIO6  DLD SBPTR,I   PRINT       JSB ENOUT       ELEMENT       ISZ SBPTR     MOVE TO       ISZ SBPTR       NEXT ELEMENT      ISZ MT2       ROW DONE?       JMP MIO5      NO      JSB OUTLN     YES, DOUBLE       JSB OUTLN       SPACE       LDA MT3       ISZ MT0       MATRIX DONE?      JMP MIO8      NO*                             * **  CHECK FOR MORE MATRICES  ** *                             * MIO7  ISZ TEMP1       LDB TEMP1     STATEMENT       CPB PRGCT       FINISHED?       JMP *+3       YES       STA MT0       NO, SAVE (A)      JMP MIO1      LDB .-2       MATRIX      CPB MT1         INPUT?      JMP ENDIN,I   YES       JMP XEC1A,I   NO*                               * **  PREPARE MATRIX ASSIGNMENT  ** *                               * EMAT1 LDB XEC1A     SET MAIN LOOP TO      STB MEXIT       STATEMENT EXIT MODE       ALS       ADA SYMTB     COMPUTE       ADA .-1         POINTER       LDB 0,I           TO      ADB .-2             DESTINATION       STB BS1               MATRIX      ISZ TEMP1       LDA TEMP1,I   MATRIX      SSA             FUNCTION?       JMP EMAT6     YES       LDB MLP2A     NO, SET OPERATION EMAT2 STB MOP         JUMP TO 'REPLACE' MODE      ISZ TEMP1       AND OPDMK     SCALAR      SZA,RSS         MULTIPLICATION?       JMP EMAT5     YES       ALS          NO       ADA SYMTB     COMPUTE       ADA .-1         POINTER       LDB 0,I           TO FIRST      ADB .-2             SOURCE      STB BS2               MATRIX      JSB VCHK      VALIDATE ITS ELEMENTS       LDA TEMP1     END OF      CPA PRGCT       STATEMENT?      JMP EMAT3     YES       LDA TEMP1,I   NO      AND OPDMK     COMPUTE       ALS       ADA SYMTB       POINTER TO      ADA .-1       LDB 0,I           SECOND      ADB .-2       STB BS3             SOURCE MATRIX       JSB VCHK      VALIDATE ITS ELEMENTS       LDA TEMP1,I       AND OPMSK     MATRIX      CPA MULOP       MULTIPLICATION?       JMP EMAT4     YES       RRL 6         NO*                                             * **  SET UP MATRIX ADD, SUBTRACT, OR REPLACE  ** *                                             *       LDB MADDA     RECORD      SSA             'MATRIX ADD'      LDB MSUBA         OR 'MATRIX SUBTRACT'      STB MOP             OPERATION JUMP      LDB BS1       LDA 1,I       ROW       CPA BS3,I       COMPATIBILITY?      INB,RSS       YES       JSB RERRS+11,I  NO      ISZ BS3       LDB 1,I       COLUMN      CPB BS3,I       COMPATIBILITY?      RSS           YES       JSB RERRS+11,I  NO      ISZ BS3 EMAT3 LDA BS2,I     ROW       CPA BS1,I       COMPATIBILITY?      RSS           YES       JSB RERRS+11,I  NO      ISZ BS2       ISZ BS1       COMPUTE NUMBER      MPY BS2,I       OF MATRIX ELEMENTS      LDB BS2,I     COLUMN      CPB BS1,I       COMPATIBILITY?      CMA,INA,RSS   YES       JSB RERRS+11,I  NO      STA MCNT      SAVE 2'S COMPLEMENT OF SIZE       ISZ BS2       ISZ BS1       SKP *                         * **  ASSIGN MATRIX VALUE  ** *                         * * *  MOP HOLDS A POINTER TO CODE WHICH COMPUTES ONE ELEMENT OF THE*  DESTINATION MATRIX AND RETURNS IT IN (A) AND (B).  MEXIT *  HOLDS THE EXIT ADDRESS SET BY THE CALLER.* MLOOP DLD BS2,I     LOAD ELEMENT OF SOURCE MATRIX       JMP MOP,I     JUMP TO OPERATION MLOP1 ISZ BS3       MOVE TO NEXT ELEMENT      ISZ BS3         OF SECOND SOURCE MATRIX MLOP2 ISZ BS2       MOVE TO NEXT ELEMENT      ISZ BS2         OF FIRST SOURCE MATRIXMLOP3 DST BS1,I     RECORD ELEMENT      ISZ BS1         OF DESTINATION MATRIX       ISZ BS1           AND MOVE TO NEXT ELEMENT      ISZ MCNT      DONE?       JMP MLOOP     NO      JMP MEXIT,I   YES *                            ***  COMPUTE MATRIX PRODUCT  ***                            *EMAT4 LDA BS1,I     DESTINATION MATRIX      CPA BS2,I       ROW COMPATIBILITY?      CMA,INA,RSS   YES       JSB RERRS+11,I  NO      STA MMT0      SAVE ROW COUNTER      ISZ BS1       ISZ BS2       LDA BS2,I     INNER PRODUCT       CPA BS3,I       COMPATIBILITY?      CMA,INA,RSS   YES       JSB RERRS+11,I  NO      STA MMT1      SAVE INNER PRODUCT      STA MMT2        COUNTERS      ALS           SAVE ROW      STA MMT6        BACK UP AMOUNT      MPY BS1,I     SAVE COLUMN       ADA .+2         BACK UP       STA MMT7          AMOUNT      ISZ BS3       LDA BS1,I     DESTINATION MATRIX      CPA BS3,I       COLUMN COMPATIBILITY?       CMA,INA,RSS   YES       JSB RERRS+11,I  NO      STA MMT3      SAVE COLUMN       STA MMT4        COUNTERS      CMA,INA       SAVE COLUMN       ALS             ADVANCE       STA MMT5          AMOUNT      ISZ BS1       MOVE TO       ISZ BS2         FIRST ELEMENT       ISZ BS3           OF MATRICES       LDB BS3       SAVE FIRST-ELEMENT ADDRESS      STB MMT8       OF SECOND SOURCE MATRIXMPR1  DLD F0.0      INITIALIZE DESTINATION      DST BS1,I       ELEMENT TO ZERO MPR2  DLD BS2,I    COMPUTE      ISZ BS2         TERM      ISZ BS2           OF      JSB .FMP            INNER       DEF BS3,I             PRODUCT       JSB .FAD      ADD IN PREVIOUS       DEF BS1,I       RUNNING SUM       DST BS1,I     SAVE RUNNING SUM      LDB BS3       ADVANCE TO      ADB MMT5        NEXT ROW OF       STB BS3           SECOND SOURCE MATRIX      ISZ MMT2      INNER PRODUCT COMPLETE?       JMP MPR2      NO      ISZ BS1       YES, MOVE TO NEXT       ISZ BS1         DESTINATION ELEMENT       LDB MMT1      RESET INNER PRODUCT       STB MMT2        TERM COUNTER      ISZ MMT4      ROW COMPLETE?       JMP MPR3      NO      LDB MMT3      YES, RESET      STB MMT4        COLUMN COUNTER      ISZ MMT0     DONE?      JMP MPR4      NO      JMP XEC1A,I   YES MPR3  LDB BS2       BACK UP       ADB MMT6        TO BEGINNING OF ROW OF      STB BS2           FIRST SOURCE MATRIX       LDB BS3       BACK UP TO BEGINNING      ADB MMT7        OF NEXT COLUMN      RSS               OF SECOND SOURCE MATRIX MPR4  LDB MMT8      BACK UP TO FIRST ELEMENT      STB BS3       JMP MPR1*                                  ***  SET UP SCALAR MULTIPLICATION  ***                                  *EMAT5 JSB FETCH     COMPUTE AND       DST SCALR       SAVE SCALAR       ISZ TEMP1     LOAD OPERATION JUMP       ISZ TEMP1     PROCESS       LDA TEMP1,I     FOLLOWING       LDB SMULA         MATRIX      JMP EMAT2 * EMAT6 RRR 4         COMPUTE       AND .+37B       MATRIX      ADA .-27B         FUNCTION      STA ID0             TYPE      SSA,RSS       MATRIX INITIALIZATION?      JMP EMAT8     NO