Some of you replied with some compile errors when attempting to use my MPEX "wide" version of the LISTF,ACCESS source code. At first I thought it was a priviledge problem but now I'm thinking it is because some lines may have been truncated due either due to my cut and paste, or you may have been a victim of your own e-mail program's word wrap. Here goes again, at 72 columns or less, please check for truncated lines, or if you don't trust your e-mail client cut-and-paste, I've also added it as an attachment for upload. Hopefully this list won't remove it: VAR NUMOPENERS: SHORTINT; VAR OPENERPINS: ARRAY [1024] OF SHORTINT; VAR OPENERFNUMS: ARRAY [1024] OF SHORTINT; VAR I: INTEGER; VAR RFILEUSER: TFILEUSER; VAR ROPENFILE: TOPENFILE; VAR LOCKSTATE: INTEGER; VAR F: STRING[8]; VAR JOBTYPE: STRING[1]; VAR JOBNUM: INTEGER; VAR MAXOPENPIN: INTEGER; SUBROUTINE CLEARF; VAR FF: STRING[8]; BEGIN FF:=F; F:=''; SCOPY(FF) END; SUBROUTINE GETFMTACCESSMODE; RFILEUSER.FMTACCESSMODE; SUBROUTINE GETCURRENTRECORD; RFILEUSER.CURRENTRECORD(RFILE); SUBROUTINE GETFMTJOBNUM; BEGIN IF JOBNUM=0 THEN 7*' ' ELSE STRWRITE('#',JOBTYPE:1,JOBNUM:5:'LEFT') END; SUBROUTINE GETFMTLOGON; BEGIN TRY STRWRITE(VEJOBINFO(JOBTYPE,JOBNUM).FMTLOGON:'DOWNSHIFT') + (IF JOBTYPE='S' THEN ' (ldev '+VEJOBINFO(JOBTYPE,JOBNUM).LDEVIN+')' ELSE '') RECOVER SEG (STRWRITE('(original opener inaccesssible)')) END; SUBROUTINE DOLOADED; VAR WROTELOADED: BOOLEAN; VAR LOADINFO: TLOADINFO; BEGIN IFVERSION5 THEN IF LOADED THEN SEG (BEGIN WROTELOADED:=TRUE; LOADINFO.TYPE:=255; WHILE ISBOOLEAN (CALL LSTD'NEXT (@LOADINFO)) DO IF (LOADINFO.UFID)[0]=(ISDOUBLEPTR(UFID))[0] THEN IF LOADINFO.ISPROGRAM AND LOADINFO.PROGALLOCATED THEN WRITELN (CLEARF:10, IF LOADINFO.PROGAUTOALLOCATED THEN "AUTOALLOCATED" ELSE "ALLOCATED") ELSE IF LOADINFO.ISPROCESS THEN BEGIN JOBTYPE:=PINJOBTYPE(LOADINFO.PROCESSPIN); JOBNUM:=PINJOBNUMBER(LOADINFO.PROCESSPIN); WRITELN (CLEARF:10, "LOADED":10, GETFMTJOBNUM, LOADINFO.PROCESSPIN:4:'LEFT', IF JOBNUM=0 OR JOBTYPE='' THEN '' ELSE GETFMTLOGON); END ELSE IF LOADINFO.ISSL THEN WRITELN (CLEARF:10, "SL LOADED"); IF F<>'' THEN WRITELN (CLEARF:10, "LOADED":10,"SYSTEM"); END); END; MPEXHEADER1:="FILENAME ---TYPE--- JOBNUM PIN ---------PROGRAM----"+ "----- ACCESS RECORD -LOCK-"+ "----- SESSION NAME -----"; MPEXHEADER2:=""; MPEXHEADER3:=""; MAXOPENPIN:=1024; FOR RFILE IN MPEXFILESETGENERAL (1, TRUE) SELECT SEG (OPENED OR STORED OR RESTORED OR LOADED OR READING OR STORESTAT<>0) DO BEGIN F:=SCOPYFILE; IFVERSION5 THEN DOLOADED; IF RESTORED OR RESTORING THEN WRITELN (CLEARF:10, "BEING RESTORED") ELSE IF STORED OR STORING THEN WRITELN (CLEARF:10, "BEING STORED") ELSE IF CBU THEN WRITELN (CLEARF:10, "OPEN BY CONCURRENT-BACKUP"); NUMOPENERS:=0; IF OPENED THEN BEGIN IFVERSION5 THEN ROPENFILEREAD (RFILE, UFID, ROPENFILE); TRY CALL FOPENERS (@RFILE, (@RFILEUSER.GUFDPTR-@RFILEUSER)/2, CALLDPARM(0), CALLDPARM(0), @NUMOPENERS, @OPENERPINS, @OPENERFNUMS); RECOVER; IF NUMOPENERS=0 THEN SEG (WRITELN (CLEARF:10, "OPENED":10, "(accessor information unavailable)")); (* Kludge: Would be better as a FOR loop, but then WRITELNs within it wouldn't do the outer FOR loop's PAGEHEADs. Too bad. EV 92/12/26. *) I:=0; WHILE I<MIN(NUMOPENERS,MAXOPENPIN) DO BEGIN RFILEUSERREAD (OPENERPINS[I], OPENERFNUMS[I], RFILEUSER); IF OPENERPINS[I]=0 THEN SEG (WRITELN (CLEARF:10, "OPENED":10, "":7, "":4, "GLOBALLY":26, GETFMTACCESSMODE:8, GETCURRENTRECORD:6)) ELSE BEGIN IFVERSIONXL THEN LOCKSTATE:=-1 ELSE LOCKSTATE:=SIGNEXTEND (CALL RIN'PIN'STATUS (ROPENFILE.RIN, OPENERPINS[I])); JOBTYPE:=PINJOBTYPE(OPENERPINS[I]); JOBNUM:=PINJOBNUMBER(OPENERPINS[I]); WRITELN (CLEARF:10, "OPENED":10, GETFMTJOBNUM, OPENERPINS[I]:4:"LEFT", " ", PINPROGNAME(OPENERPINS[I]):26, GETFMTACCESSMODE:8, GETCURRENTRECORD:6, " ", IF LOCKSTATE=-1 THEN " " ELSE IF LOCKSTATE=0 THEN "LOCKER " ELSE STRWRITE ("WAIT:", LOCKSTATE), GETFMTLOGON); END; I:=I+1; END; END ELSE IF READING AND VALIDCOLDLOADID THEN WRITELN (CLEARF:10, "SYSTEM PROTECTED"); IF NUMOPENERS > MAXOPENPIN THEN SEG( WRITELN ( CLEARF:10, "(Output truncated: Can't recover more than ", MAXOPENPIN," accessors)")); END; Tracy M. Johnson TRW Automotive Electronics Sensors & Components