*DECK ADJADDR                                                            ADJADDR
          PROC  ADJADDR((OPC),(NOPS));
  
 # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
 #                                                                     #
 #   ADJADDR - DETERMINES WHETHER NEXT INSTRUCTION SHOULD BEGIN A NEW  #
 #             MACHINE WORD                                            #
 #                                                                     #
 #   GIVEN - OPCODE OF NEXT INSTRUCTION                                #
 #                                                                     #
 #   DOES - ALLOCATES NEXT INSTRUCTION TO NEW WORD IF INSUFFICIENT     #
 #          SPACE OR IF INDICATED BY OPCODE OR PLUS OPERATOR,          #
 #          FILLING OUT WORD WITH NO"S OR VFD"S AS NECESSARY           #
 #                                                                     #
 # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * #
          XREF  PROC  INSTOUT;
          ITEM  NOPS  B;                                                 ADJADDR
*CALL ASMCOMM                                                            ADJADDR
*CALL ASMINST                                                            ADJADDR
*CALL INSTDEFS                                                           ADJADDR
          ARRAY  NOINS[0:5];
              ITEM                                                       ADJADDR
                  COUNT  DCOUNT,                                         ADJADDR
                  OP  DOC = [OPNAMES"NO$",OPNAMES"SBBPK",0,              ADJADDR
                             OPNAMES"VFD$",0,0],
                  SY  DSY = [6(0)]; 
          ITEM  OPC  S:OPNAMES;                                          ADJADDR
          BEGIN                                                          ADJADDR
          IF  OPC EQ S"PLUS" THEN  NEXTUP = S"UPYES";                    ADJADDR
          IF OPC EQ S"MINUS"                                             ADJADDR
          THEN                                                           ADJADDR
              BEGIN                                                      ADJADDR
              NEXTUP = S"UPNO";                                          ADJADDR
              RETURN;                                                    ADJADDR
              END                                                        ADJADDR
          IF  (POS - INSTSIZ[OPC] LS 0 OR NEXTUP EQ S"UPYES"             ADJADDR
              OR  UP[OPC] AND NEXTUP NQ S"UPNO") AND POS NQ WORDSIZE     ADJADDR
          THEN                                                           ADJADDR
              BEGIN                                                      ADJADDR
              IF  NOPS                                                   ADJADDR
              THEN                                                       ADJADDR
                  BEGIN                                                  ADJADDR
                  IF  POS  EQ 45                                         ADJADDR
                  THEN                                                   ADJADDR
                      BEGIN                                              ADJADDR
                      INSTOUT(LOC(NOINS[0]),1); 
                      INSTOUT(LOC(NOINS[1]),2); 
                      END                                                ADJADDR
                  IF  POS EQ 30 THEN  INSTOUT(LOC(NOINS[1]),2); 
                  IF  POS EQ 15 THEN  INSTOUT(LOC(NOINS[0]),1); 
                  END                                                    ADJADDR
              ELSE                                                       ADJADDR
                  BEGIN                                                  ADJADDR
                  COUNT[3] = 2; 
                  OP[4] = POS;                                           ADJADDR
                  INSTOUT(LOC(NOINS[3]),3); 
                  END                                                    ADJADDR
              POS = WORDSIZE;                                            ADJADDR
              ORG = ORG + 1;                                             ADJADDR
              END                                                        ADJADDR
          NEXTUP = S"UPOK";                                              ADJADDR
          POS = POS - INSTSIZ[OPC]; 
          RETURN;                                                        ADJADDR
          END                                                            ADJADDR
          TERM                                                           ADJADDR
