C C B L D I N S C C BUILD MACHINE INSTRUCTION C C THIS ROUTINE BUILDS THE HEX REPRESENTATION FOR AN INSTRUCTION. FROM C 1 TO 6 DATA BYTES WILL BE GENERATED AND PLACED IN ABSCOD WHEN THE C ROUTINE IS CALLED.THE CALLING SEQUENCE IS: C C CALL BLDINS ( IFLAG ) C C WHERE C IFLAG- AN INTEGER VARIABLE WHICH RETURNS A FLAG FLAG AS FOLLOWS C 0 NO ERRORS DETECTED C 1 AN ERROR WAS DETECTED C SUBROUTINE BLDINS ( IFLAG ) INCLUDE 'BSUCOM.CMN' INCLUDE 'PRMSYM.CMN' INCLUDE 'OUTLIN.CMN' INTEGER*4 IVAL D WRITE (4,1) OPVALU(OPINDX),OPFLAG(OPINDX),OPCSIZ(OPINDX) D 1 FORMAT (' BLDINS START, OPVALU, FLAG, SIZE = ',3I6) C C BLANK FILL ABSCOD C CALL TRIVIA ( 5 , IFLAG ) C C GET BASE VALUE OF INSTR. C ABSCOD(1) = OPVALU(OPINDX) IFLAG = 0 IF ( OPFLAG(OPINDX) .EQ. 0 ) RETURN IF ( OPCSIZ(OPINDX) .GE. 2 .OR. * OPFLAG(OPINDX).GT. 7 ) CALL XPRSIN ( IFLAG , IVAL ) 100 CONTINUE IF ( OPFLAG(OPINDX) .EQ. 23 .OR. * OPFLAG(OPINDX) .EQ. 25 ) GO TO 200 IF ( OPCSIZ(OPINDX) .EQ. 2 .AND. * OPFLAG(OPINDX) .EQ. 2 ) GO TO 300 IF ( OPCSIZ(OPINDX) .EQ. 3 .AND. * OPFLAG(OPINDX) .EQ. 1 ) GO TO 400 IF ( OPCSIZ(OPINDX) .EQ. 2 .AND. * OPFLAG(OPINDX) .EQ. 1 ) GO TO 500 D WRITE(4,199)OPINDX , OPCSIZ(OPINDX) , OPFLAG(OPINDX) D 199 FORMAT (' BLDINS MID, ',2HI= ,I4,3X,2HS= ,I2,3X,2HF= ,I3 ) RETURN C 200 CONTINUE IF (IFLAG.LE.0) GO TO 250 IF ( OPFLAG(OPINDX) .EQ. 25 .AND. * ( IVAL .LT. 1 .OR. IVAL .GT. 7 ) ) GO TO 250 IF ( IVAL .LT. 0 .OR. IVAL .GT. 15 ) GO TO 250 ABSCOD(1) = ABSCOD(1) + ( IVAL * 256 ) IF ( (ABSCOD(1)/256) .GT. 57 ) ABSCOD(1) = ABSCOD(1) + 1792 GO TO 1200 250 CONTINUE C C R-ERROR, BAD REG. OR UNIT NO. C CALL FLGERR ( 18 ) GO TO 1100 300 CONTINUE CALL BINHEX (IVAL , ABSCOD(2) , 2 ) IF ( IFLAG ) 1100 , 1100 , 1200 400 CONTINUE CALL BINHEX ( IVAL , ABSCOD(2) , 4 ) GO TO 1200 500 CONTINUE IF (IFLAG.LE.0) GO TO 550 IF ( (IVAL/256) .NE. ( PCNTR/256 ) ) GO TO 550 CALL BINHEX ( IVAL , ABSCOD(2) , 2 ) GO TO 1200 550 CONTINUE CALL BINHEX ( PCNTR , ABSCOD(2) , 2 ) C C A-ERROR, BAD ADDRESS C CALL FLGERR ( 1 ) 1100 CONTINUE IFLAG = -1 1200 CONTINUE D WRITE (4,2) IFLAG,ABSCOD D 2 FORMAT (' BLDINS END, FLAG = ',I2,' HEX = ',6A2) RETURN END