the Greenberg family ([log in to unmask]) wrote: : What I find very curious is that (as you'll see in the enclosed : example) many of the routines begin with statements that have a : subscript I, yet it's not initialized and not mentioned in the common : block or in an equivalence. Questions interspersed with code: <snip> : INTEGER MOVEAS Maybe this is a type definition for a function that is more fully defined later in the compile (or a separate compile) : IFSD(I)=I-100*INT(I/100.) : ITFD(I)=I/100-(I/10000)*100 : ITD(I)=I/100-(I/1000)*10 : IFD(I)=I/1000-(I/10000)*10 : RN(R)=R*7.7-INT(R*7.7) : 1. Note the lines above - no reference to R or I previously These are "statement function statements" i.e. one-line user function definitions; I is the parameter to the function. : 2. Are IFSD ITFD ITD IFD and RN fortran functions? Is RN the same : as the Basic RANDOMIZE to seed a random number generator? No, these are user defined funtions. : LU=IPR(1) : NAME(2)=MOVEAS("SD") : 3. Does this automatically do: = asc("S")*256+32+asc("D") and : cram the two characters into an integer? : R=RND : 4. I assume this is a random number : Nothing exciting now until... : CALL REIO(MSGR,72) : IF(MSGR(1).EQ.MOVEAS("**"))GOTO 5 : DO 30 J=1,71,2 : MSG(J)=(MSGR((J+1)/2)/256)*256+32 : MSG(J+1)=(MSGR((J+1)/2)-MSG(J)+32)*256+32 : IF(MSG(J).EQ.32)MSG(J)=8224 : IF(MSG(J+1).EQ.32)MSG(J+1)=8224 : I assume this is where the user's command line is entered, and : that although it is entered into an integer array, the array only : has one character per subscript and that he wants two per integer? : Nothing now until ... : CALL EXEC(8,NAME,LU,150,0) These are probably HP 1000 RTE EXECutive calls. The program is most likely HP1000 FORTRAN. 60 CONTINUE : CALL EXEC(8,NAME,LU,170,0) If asked, I'll deny ever having touched an HP 2100 (1000) [ unless you have a LOT of money...] -- James Overman HP Support Technology Lab Roseville, CA