TITLE SYSJO TO REPLACE FORTRAN LIB ROUTINE SUBTTL PAUL ROBINSON, WESLEYAN UNIV, JULY 1980 COMMENT \ THIS ROUTINE WAS WRITTEN TO ACT IN THE PLACE OF THE FORTRAN LIBRARY ROUTINE SYSJO DESCRIBED IN THE PLOT DOCUMENTATION. THIS ROUTINE RETURNS AN ASCII PPN IN BRACKETS; REQUIRES A 3-WORD ARGUMENT. I.E. DIMENSION IJOB(3) CALL SYSJO (IJOB) THIS ROUTINE WORKS ON A DEC-SYSTEM 2060 RELEASE 4 MONITOR. \ SEARCH MONSYM A=1 ;A AND B ARE JSYS ARG ACS B=2 T1=11 ;TEMPS T2=12 CNT=13 ;COUNTER DEST=14 ;DEST AND SRC ARE COPIES OF BYTE POINTERS TO SUBROU. ARG SRC=15 ;AND AC2, RESPECTIVELY L=16 ;FORTRAN ARG BLOCK POINTER P=17 ;STACK POINTER ENTRY SYSJO SYSJO: MOVE DEST,[POINT 7,0] ;BUILD UP A BYTE POINTER HRRI DEST,@0(L) ;WITH EXACT ADR IN IT MOVE SRC,[POINT 3,B] ;GET POINTER TO AC2 MOVEI T1,@0(L) ;GET FORTRAN ARG ADR HRLI T1,-3 ;WANT 3 WORDS SETZM (T1) ;CLEARED AOBJN T1,.-1 GJINF ;GET DIR # IN AC2 (AMONG OTHER THINGS) MOVE A,B ;PUT IT INTO A FOR NEXT CALL STPPN ;TRANSLATE DIR # TO PPN (RETURNED IN B) MOVEI T2,"[" ;START WITH BRACKET IDPB T2,DEST ;PUT INTO STRING MOVEI CNT,6 ;WANT 6 DIGITS ILDB T1,SRC ;GET OCTAL DIGIT SOSE CNT ;COUNT IT, LOAD 6TH ANYWAY JUMPE T1,.-2 ;ELIMINATE LEADING ZEROS ASC: ADDI T1,"0" ;CONVERT NUM TO ASCII IDPB T1,DEST ;DUMP IT IN ILDB T1,SRC ;GET NEXT DIGIT SOJGE CNT,ASC ;UP TO 6 MOVEI T2,"," ;COMMA BETWEEN HALVES IDPB T2,DEST ;PUT IT IN SKIPA CNT,[XWD 6] ;RESET COUNT, DON'T MISS A DIGIT ILDB T1,SRC ;GET NEXT DIGIT SOSE CNT ;LOAD 6TH ANYWAY JUMPE T1,.-2 ;ELIMINATE LEADING ZEROS ASC2: ADDI T1,"0" ;ASCIIZE IDPB T1,DEST ;DUMP ILDB T1,SRC ;LOAD SOJGE CNT,ASC2 ;UP TO 6 MOVEI T2,"]" ;CLOSE BRACKET AT THE END IDPB T2,DEST POPJ P, ;ALL DONE END