+TITLE. FATMEN 1.92/02 970107 09:30 CERN PROGRAM LIBRARY FATMEN=Q123 +PATCH,REQUIRES,T=DATA,IF=$DOC. +DECK,BLANKDEK. The FATMEN package requires the following other packages to run: - ZEBRA, KUIP, CSPACK (from CERN Program Library PACKLIB) - KERNLIB - FPACK (if the flag FPACK is +USEd) In addition, the following system specific software is required: VM/CMS systems -------------- HEPVM software (EXECs, tape handling software, Tape Management System IF=TMS) (An interface to VMTAPE and VMBATCH is also provided) VAX/VMS systems --------------- - VAXTAP (CERN Program Library) for tape handling N.B. for server mode staging, a logical name STAGE_QUEUE must be defined in the system table. This directory must be world writable. The current recommended practice is: a) Define STAGE_QUEUE to point to the same directory on all nodes b) Use batch mode staging on all nodes. Batch mode staging is used by default if a batch queue STAGE_xxxxS exists, e.g. STAGE_8200S Unix systems ------------ SHIFT/CORE software for tape handling, IF=SHIFT L3 Apollo tape staging, IF=APOLLO and the file l3stage is found in the current path. System dependant information -=-=-=-=-=-=-=-=-=-=-=-=-=-= RS6000: To compile the CDF file, use the following options on the XLF command: -q ST_SIZE=5000 -q TKQ_SIZE=20000 -q charlen=32000 -q extname +PATCH,HISTORY. +DECK,BLANKDEK. Version 1.92=Make help for MODIFY command correspond to code (-K) For import into CVS. Version 1.91=FMCLOS: add extra debug FMLOOP, FMBACK: correct save statement FMKADT, FMADDT: safer handling of VID prefixes FATCDES: add definitions for DAT120, NTP FMOPEN/FMTAPE: IOPTI - disable -G in calls to SHIFT s/w Z=FATGET: ISFGET FMTAPE: only specify -U for shift stagein if DDNAME looks like a Fortran unit FATLOG: log files (FATLOG.yymmdd) now written to fatlogs subdir FATSEND: only wait if no files were transferred FAINQR,FMVERI,FMURL: fix check on URL FMTAPE: impose MAXSTG only on IBM (mainframe) systems FATUTIL: save DIRNAM variable (problems diagnosed by Olof Barring) Version 1.90=FATSEND: tidy printout, improve time stamping of log messages FMRZIN: print IQUEST(1) in case of RZIN errors FMRSTG: tidy retry handling FAERAS, FAINQR: initialise LCHNFS FMCLOS: fix bug in stageclr FMINIT, FMTAPE: call sfget only if in current path New versions of FATCHK and FMMEDT from FNAL - FATCHK increase width in the FORMAT statement - FMMEDT move zeroing of NFMTYP and NUMMTP after check that FATMEN.MEDTYPES exists; FATSEND: skip remote nodes if protocol is afs FMFZO: save FILEN. FATSRV: skip kumac files FMSSND, FATSEND: increase nodenames and queues to 80 characters FMMEDT: mods from D0 - set also NFMTYP, permit also negative media types. (This results in a medium of type iabs(itype) being defined but not selected). FMMEDT: set media types (definitions of characteristics AND selection vector) using fatmen.medtypes file. FMPKTM: year 99 was not allowed! FMDISK/FMTAPE: print warning message concerning conflicting logical names on multiple lines (D0) FMFIXF: strip trailing / from pathname (if any) FMCLOS: update MSRDFA/MERDFA from FZINO FMCLASS: define LDEF, FMURL: add Z=FATPARA. FMSREQ: improve handling of bad sysreq.conf config file FMSHO2: large directories - use I6 for ksn Start support for mss commands (e.g. Lachman interface) Files stored in Lachman have a URL like: osm://[server-node:][/store-name][/storage-group]/bitfileID fatmen.storage-classes: path storage-class [store-name] [storage-server] DELPHI DELPHI-conservator@domain osm://delphi-conservator@cern.ch/delphi/rawdata/bfid storage-classes should be experiment independent (e.g. rawdata) store-names are experiment specific (e.g. L3DSTS, ALEPHRAW) mods to: FATCDES,FMDISK,FAINQR,FMVERI,FADARE,FMRZIN mssget mssinq ?? new routines: FMURL, FMCLASS, FMMSS, FMRSLV Version 1.89=FMUTIL: add FMETOA/FMATOE (from RB's RZHto/frA) for ebcdic/ascii conversion FMFIXF: handle multiple .. in path name correctly FMATCH: handle *pattern correctly FMKMOD: zero NMATCH before FMSELK Add DLT definitions (as from TMS), include in CERN selection Add RWN/CWN as allowable file formats Add fatzero script to check for zero length files in /todo Add fatdf script to check /fatmen not too full FMSREQ: retry on all errors (after existing error handling) FMPSTG: split FATOPTS into FATOPT0/1 FMPSTG: bug fix for VMS, fix typos FMEDIA: debug printout added. FMPSTG: new routine to prestage files (from suggestion by Guenter Duckeck/OPAL) FATCDES: new media type definitions for DESY FATSEND: include CZDUMM for VMS FMQTMS: protect against invalid media type (-TMS option) FMINIT: sleep and retry if catalogue not found FMOPEN: option Q for disk files - just return (rather than ignore) Version 1.88=FATSRV: protect against input files with no updates! FMSTGQ: protect against tape not staged on VM (answer not stacked). FMRZIN: correct bug in call to FMSTGC FMRZIN: accept tape file if already staged (VMS) TMS VOLINFO tag: use SYSTEM tag IF=IN2P3 FMHOST: declare FMHSTC as integer FMCLOS: format error FMGET(module): change to FMGET GENAM [KSN] [CHOPT] [FILE] FMINIT: define 2 DATs for call to FMSETM FMCLOS: Return IRC to user in case of problems with STAGE PUT. 25/05/94 Version 1.87=FMCLOS: support options C (clear), D (remove links) and P (stageput) for new SHIFT stager FMINIT: initialise also DAT tapes (2 varieties) FATSCAN2: remove existing log file FATCAT: correct bug in handling of # RDR files FMTAPE: add NOWAIT option for SHIFT FMTAPE: don't call FMFGET(sfget) for new SHIFT stager FMFGET: print command if idebfa>=1 FAFILE: open NEW files CARRIAGECONTROL='LIST' on VMS Add FMRKEY: replace existing key vector. Used from FMFZI to update existing object in place with new loc.code etc. FATBACK: create link to latest good backup file Drop bank at end of FMTOUC SEARCH/SCAN commands: fix bug for date/time ranges when only pathname specified. FMTAPE: put filename at end of call to stagein script SCRIPT: add fatchk to look for servers that are stopped Post 94A Version 1.86=Mods from Torbjorn Moa FMLCOP: fix bug - eliminate call to FMGTLG before FMXDSK FMRZIN: try DECnet access in case of $env/filename syntax and file not found. Protection in FMFZCP against FZOUT/FZRUN problems. Add P=FATLOOP - example 'fast' listing program CONVEX flag (FMOPEN) FMOPEN:fix bug introduced by C I/O support on Unix w/o SHIFT FMKUIP: add dummies to avoid linking FATMEN module with SHIFT VIDQQ identification FMPUTC: correct check on JL/JR Add FMGETA: get first entry matching specific generic name FMSTGP: treat group PUBXX like DELPHI (VXCERN reconfig) FMDISK, FMTAPE: delete conflicting logical names from LNM$PROCESS FATMDI: use RZCDIR rather than FACDIR FMDISK: fix faulty call to FMXDSK, set lognam in JOB table (D0) FMRSTG, FMRQUI: bug fixes from D0. mod fmrqui and fmrstg to avoid waiting for a job to complete when the file is already staged and to avoid running out of 'lun's (By Steve Glenn) Unix systems: exchange mode catalogues only supported FMSHOW: show also VOLINFO tag if IOPTQ P=FMUTIL,D=FMLTON,FMNTOL, correct filename New CMZ file - previous version archived in ADSM Version 1.85=Correct IRC in P=FATCAT after rename of remote file Reorder statements in FATLIB to satisfy FLOPPY check 39 FMOPEN: CFOPEN also for non-SHIFT Unix machines FMQTMS/FMQVOL: add (GENERIC SHIFT) IF=CERN,IF=SHIFT FMVERS: add IF=CERN Add P=FMUTIL,D=FMLTON,D=FMNTOL to process locations code file Extra protection in FATCAT against network problems Print user words also in decimal (FMSHOW) V93D 20/10/94 16:20 Fix backslash problem for QMALPH. Version 1.84=TMS return codes: 312-315 all mean roughly the same 312 - volume not mountable on system issuing QVOL command 313 - if an unknown generic system name is given as a QVOL option 314 - if an unknown specific system name is given as a QVOL option 315 - if the volume is unmountable on ANY defined operating systems FATMEN: reduce PAWC to 1M words FMLD: more logical handling of NLEVEL and -R FMOPEN: bug fix in options for XYOPEN (Alfonso Lopez) FATSEND: protect against NFOUND>MAXFIL Check status of LIB$GET_LUNs Add STATUS on OPEN in FAFNDF Print IOSTAT in FMRZIN if open of TPSERV.CONF file fails Rework lib$find_file logic in fatsrv for vms systems Add P=FATLOG to process *FATLOG* lines in FATSERV log Add P=FATSREQ, to issue SYSREQ command with retry Z=FATSYS: add IFMODX to flag exchange mode catalogue (mods to FAOPEN, FARINI, FATSRV). Add FATBACK to convert RZ file to FZ file. ADD FMFIND to issue FIND in one-line. Add FATBACK script Add program FATCHK to read all entries from catalogue FMFZI: return GENEN correctly also for LOG records GENEN is e.g. //CERN/DELPHI/FATLOG (to work with existing names files) V93C 08/06/93 12:40 Version 1.83=FMXDSK: perform various checks on each element of search list as recommended by Keith Chadwick, FNAL Add FMLCOD to load location code definitions from user file ADD/DISK|TAPE: support user words CLIO support: look for 'vmstage' in current path (still needs mods to FMTAPE/FMCLOS) FATSRV: add FATLOG to write logging records to FZFILE,IF=FATLOG FMFZO: lower FZLOGL for journal file FMALLO: use ICDECI to interpret density field FMPEEK: add option D to drop bank after unpacking Add FMPLOG to print log records FMFZI: chvsn & chvid = char*8 FMCOPY: add DSN to STAGE CHANGE command. STAGE CHANGE uses dsn STAGEOUT if the input file was staged without specifying the dsn. Add FMDDIR: delete directories even with entries FMCLOS: Correct handling of IOPTP in case of LBANK=0 Add Z=FAUST for user statistics FMTAPE: treat RECFM=U like RECFM=F for Shift Version 1.82=FATKEOPS: use XZMV to rename request file FMKMOD: comment field was never updated. FMTMS: bug fixes from Steve O'Neale (FMGVID,FMGETP,FMSREQ) FATSRV: names file is in DEFAULT(1:LDEF) Protection in FMRQUI against network write errors. Display error code in FASTGQ in case of unexpected errors. Skip active files in FATSEND TMS library SMCF_1 changed to 3495_2 Modify FATSEND to handle multiple groups; add protection against errors. Mods to FMLOOK, FMCSTG and FMRSTG from D0 (Krzysztof Genser) Protection in FMTAPE against unexpected replies from STAGE Q Add NeXT flag in FFATMEN and FMHSTC 25/02/93 10:20 Version 1.81=FAFNDF: get short/long wait intervals and retry count from logical names (FATMEN_SNETWT etc.) Call FAFNDF from FMQSTG. FMTAPE: use FAFNDF to look for existing STAGE Q file FATSERV.EXEC: exit 99 if timer expires and we are FMFATCAT FMSELK, FMRZIN: protect against wild-cards in generic name FAFNDF(VAX). Add longwait interval. Add FMWTO FMRACK: protect against network problems. FMTAPE, FMRZIN: correct problems reported by DESY. FMTAPE: write temp file (IOPTY) in /tmp/.fmstage, sys$login:, MAXDSK FMSEND: change mv to /bin/mv for Aegis users. FMLN: warning message if entry for target already exists FMINIT: set media type search order to 1,6,2,3,4,5 IF=CERN FATCDES: add definitions for 3490s (media type 6). FASEAC: FMISET is an integer function FMFILL: blank fields prior to filling also for option O FMTAPE: correct call to FMBQUE. FATNEW: clear FATNOD FMALLO: retry only if there are more tapes in the current library. FMFZO: correct CHFNFA handling in journal file header Fix warnings from Ruby compilation Verify CDF options against code Correct handling of status code in FMSEND (VAX) Bug fixes to FMVINF (TMS VOLINFO tag manipulation) wHole input staging on VM/CMS - take size from VOLINFO tag or media capacity. Bug fixes in FASEAR/FASEAC: check if any user word selection has been made Save current directory correctly in LD(FMLD) Version 1.80=FX=FFX in FMOPEN (removed in 1.73 for some unknown reason) Add +SELF,IF=CSPACK to FMSEND to avoid pulling in TCP/IP code unless CSPACK is selected. V93A 15/01/93 13:30 Version 1.78=More mods to CDF for new KUIP (options etc.) Add call to INITC in FATMEN Modify CDF for use with new KUIP. KUIP style -U no longer needed with latest KUIP Add KSN parameter to LS command 14/12/92 13:20 Version 1.77=FMFZO, FMSEND, FMUPDT: handle remote updates via CSPACK. Program lifetime: modules over 1 year old will print warning Add ABEND routine to FATSRV. ABEND prints server statistics and then executes fatabend script/command file/exec Counters in FATSRV. Try to clear out RDR in FATCAT - don't look on remote system if there are more than 10 pending files Handle remote catalogues correctly on VMS systems Bug fix to FATSRV for zz files on Unix Correct call to FAOPEN in FARINI Bug fix in FMSREQ for return buffer length handling Call lib$find_file_end before waiting in FATSRV. Option N in rm command. Don't turn on I automatically for option A. Reset reply buffer upon retry in FMSREQ. Add STRING parameter to SCAN command - options for RM Copy NAMEFD to FMNAMF for CSPACK access to remote files Wait option in FMSMCF for FMCOPY. Do not add entry to catalogue if FMCLOS fails. Remote catalogue access via CSPACK - FMLOCC, FMNICK, FMACCT, FMACL (use XZOPEN, XZGETL) - FMINIT (not yet for VM) , FAOPEN, FARINI 01/12/92 12:00 Version 1.76=Use of VOLINFO TMS tag field for multi-file handling (routines FMGVOL, FMGVID and FMVINF) Bug fix in FMTOVM for new journal file names FMFZI: in case of warning from RZDELK, rebuild bit map Speed up FMSELK by only comparing required fields and only converting matching keys. (FNAME is converted to Z format) Remote access to catalogue via CSPACK, e.g. for group L3: FML3=/fatmen/fml3 = local/nfs access FML3=fatcat:/fatmen/fml3 = CSPACK access .netrc file should contain machine fatcat login fml3 password xxxxxx Update files are written locally and then transferred with XZPUTA. Configuration files (FATMEN.NAMES, .ACCOUNTS, .ACL and .UPDATES) read using XZGETL. ==> Needs CSPACK 1.28/02 921124 10:30 Performance improvements in FASEAC, FALS (from FASEAR) Bug fix in FMFZO for VM - only open LUFZFA if not already open. Add command SCAN. Bug fix in FMRM (FMACNT never called). Change FMACL to support ACL files (option A) and UPDATE files (option U). Allows FMOPEN style updates to be controlled at the path/user/node level without recompiling/linking Don't check RC from FMLOCC in FMINIT Interface to DESY MVS staging system (input only) Version 1.75=Bug fix in FASEAC/FMFILS for re-entry with non-zero context pointer. Better protection against errors in FATCAT. Bug fix to FMSHOW. Print status in FMSEAR. Bug fixes to FMKADD (KUGETS rather than KUGETC), FMRAND and FMFGET (length for character strings) for DESY Process each update directory in turn on fatcat FATCAT: drop /* from XZLS call (avoid problem with globbing) Define MINBLK in FATSRV - minimum number of blocks left before cleanup is triggered (VMS) Correct FAFNDF handling on Unix systems Revise update handling in FATSRV for VMS systems - RMS$_FNF = wait - RMS$_NMF = reset context pointer and loop - ZZ*.* = loop Exploit new RZOUT option 'R' in FATSRV - use in case bank & keys match and entry already exists - if bank matches but not keys, use old method !!! N.B. this requires RZ version 2.00/05 or higher !!! RZEBRA 2.00/05 921104 17:30 THE ZEBRA RZ PACKAGE 28/10/92 10:00 <<<<<< Install new RZ with this version >>>>>> Bug fixes for IBMMVS (FMRZIN,FMCOPQ,FADARE,FMNICK,FMFPAK,FMOPEN). FMUSER for non-HEPVM, non-VMBATCH sites (just use IDENTIFY) Use RZVERI (FATSRV) to rebuild bit map of used records from the file itself if required Version 1.74=Blank search strings in FMSEAR before UHTOC calls. Fix error return in FMOPEN after reworking of monitoring info. Call stageput only for tape datasets Prepend CHEOPS error messages with CHEOPS error: Save and reset CD in TOUCH. Restore CD also in mv if rm failed. APOF77 flag: double \ in FMCD, QX_SC selection CHEOPSIF: call XYOPEN/CLOS only for disk files. Send fatal messages from PROGRAM FATCAT to FATONE 14/10/92 16:00 Version 1.73=Remove treatment of FX like FFX in FMOPEN FMOPEN/FMCLOS etc. for links. New routine FMGETL. Extra monitoring information - IHOWFA, ITIMFA & CHFNFA Support CSPACK access to FX and FFX files, IF=CSPACK. Remote files may reside on VMS or Unix systems (VM not currently supported) Move FMRCOP from FMKUIP to FMINT. +USE,CSPACK to get functional version. Protect against SS$_UNREACHABLE in LIB$FIND_FILE calls Escape characters in 'ls': % for nicknames, $ for environment variables Server mode VMS staging - see P=REQUIRES Use parameters in unpacking MFQNFA Nickname processing via the shell Add FMRMLN/'rmln' command to remove/find dangling links Add routine FMLN and 'ln' command. Add routine FMNICK a la DELPHI Add routine FMRANK to rank CHFILES by VID & FSEQ Use CFIO (via CHANNEL mode) on VAX/VMS systems for FZ files Alpha port, bugs in FMCOPC Version 1.72=Require at least 2 update tokens left for mv, FMMV Support FATMEN.LOCCODES file for location code definitions Add SHOW/LOCCODES command FMCDF: add R='x,y,z' for all cases of CHOPT for new KUIP FMRZIN: check modification date and time of directory on entry and exit. If directory has been modified, sleep and retry. Add example program using FMPOKE (for SMC) FMTAPE: do not issue FMFGET(sfget) in case of IOPTU Support for /afs files in FMRZIN Ensure LUFZFA is set before calling FMUPDT. Bug fix in FMSTGI/O Return stageout return code in FMCLOS chopt=P Support UPDATE/FMUPDT on non-VM systems !!! N.B. the server must be at level V1.65 or higher !!! Extra debug in FMRZIN - print out RZ info for object retrieved FMDD2L: handle character lun, e.g. '12' Fix bugs in FMCLOS, FMSTGO for CHEOPSIF 11/09/92 16:00 Version 1.71=FMPUTC: blank padding from LEN(STRIM) up to field width Option C in TOUCH: clear comment field Set LFMODE in FMSTGO before call to FMCLOS Add option A in TOUCH: set account field FMVERI: check also MHSNFA for disk files FMRZIN, FMDISK, FAINQR: DECnet access FMTAPE: permit staging of files > max. media capacity STAGE PUT support for Shift & VMS (local only) in FMCLOS Extra debug in FATCAT Use new journal file names in FMTOVM Check stage group in FMSTGC only on first entry Time FMOPEN/FMDISK/FMTAPE if IDEBFA>=1 Add user exit FMUVER to FMVERI. FMTAPE: check if batch queue STAGE_xxxxS exists - if so, perform stage request in batch. Add routine FMBQUE. Version 1.70=Improve diagnostics in FMVERI for blanks/unseen characters in generic name. Bug fix in FMRMDR in call to FMVERI. Bug fix in FMSTGI/O - ensure IRC always returned NOWAIT option in FMOPEN - return after call to FMTAPE Fix for Cray compiler in FMOPEN (LCHF = 1) FMMVC - perform DEL then PUT Bug fix in FMOPEN - FX treated as FFX (as in old FMOPEN) V92B 20/07/92 10:30 Version 1.69=Last minute fixes for V92B: move maximum recl and blksize to Z=FATFORM. Version 1.68=Fix bug in FMTOUC. Use option U in FACDIR call in FMSELK. 15/07/92 13:30 pre-release of V92B(?) Version 1.67=Fix bug in FATARE for VAX/VMS systems or -TMS Rename *CHEOPS -> *CHEOPS2F etc. Support tag :queue in FATSEND - queue directory on remote node for current server. If not defined, use subdirectory todo. Check that RECFM is entirely alphabetic Bug fix in FMCOPY - reset IRC after FMCOMP MODIFY command : check that media type does not change New Shift Disk Pool Manager (DPM) - do not provide shift user or pool name. Old behaviour IF=OLDDPM. Protection in FMTAPE against STAGE_RC undefined or in invalid format. Add LOCCOD to ADD/DISK, ADD/TAPE Bug fix in FMRSTG (check on whether file was already staged) Check DCB information for output staging (VM) Missing FATBUG in FMFGET, IMODE in FMDISK Better processing of >MAXFIL files in FALS. Fix bugs in HP/UX version 03/07/92 08:45 Version 1.66=Add location code, media type and copy level to COPY command Call FMVERI in FMSTGI/O. Write extra information in FMCOPQ. Put density on stage command IF=SHIFT,IF=-TMS Add protections in FMCOPY, FMTAPE for CHEOPS Add program FATLOOP2 in P=EXAMPLE to FMGETK every entry in the catalogue: ZFATAL = problems. Permit useful options on shell FIND command. Add program FATHEAD to print headers of journal file on unit 1, or the file name passed on the command line. Add option Y in FMOPEN: write stage command to file on LUN but do not execute. Increase size of PAWC in FM shell. No check on Zebra e-o-r in VM servers Preliminary interface to TAPESYS (UVVM) Version 1.65=Modify FATSEND & FATSRV/FMSEND to use new naming convention Ditto for program FATCAT Increase size of Zebra store in FATSRV Protection in directory scan routines against RZPAFF problems (!!! mods to RZPAFF - ZEBRA/RZ must be reinstalled !!!) Mods to FMFIXF to handle directory names beginning / Call FMVERI in case of directory add/remove operations Add CHEOPSIF patch. Routines to stage in or out. Bank information is passed as arguments to the routines to simplify C/Fortran interface Use command file SETUP_EXE:STAGE to submit stage command in FMTAPE. #bytes read (COPY_FILE only) returned in logical names STAGE_filename. (Not yet used) Change naming convention for journal files: zz92061118040500000499024164.user_node Renamed to aa... when update complete APOLLO: use WHICHF to determine if 'l3stage' exists in current path. If so, activate l3stage specific code (was IF=APOL3) (!!! requires WHICHF KERNLIB (kernbit) routine !!!) 19/06/92 09:30 Version 1.64=Mods from KLG for FMRSTG, FMCSTG, STGSERV. Bug fix in FATSEND for ICONT/=0 Modify STGSERV to send jobname ('LOOK') Incorporate mods from D0. to FMRSTG, FMCSTG etc. FMRSTG/FMCSTG. check before each job inquiry whether file is already on disk (and of the correct size - to be done) FMCSTG: wait if tape is already in use Job inquiry by FMLOOK (from Krzysztof Genser/D0) Support usernames up to 12 characters. Look for signal.stop files in FATSEND. Add option J to FMSHOW. Just the files that are accessible. Add MODIFY command Extend CP and MV commands to allow keys, fileid, host, vsn, vid and fseq to be changed for output file. XVID syntax supported Change copy level to data representation. Add new parameter offsets. Permit comments in acl/accounts files Add option R to LS : show where the data Reside. (need STAGE Q for Shift/Cray) For disk files: accessible: Y/N method: Y/N For tape files: active library: Y/N device: e.g. local staged: Y/N Add option E to RM to erase disk file. !! to be tested on SHIFT !! Change MV and CP commands to accept input key Support search lists in FMRZIN for DFS devices 11/05/92 13:00 Version 1.63=Fix bug in FALS - don't print blank line in case of option V/W and no files found in CWD. Don't drop disk of server if mode A. (VM) Search list handling in FMLCOP. FALS: protection for no files found. Bug fixes from D0. Correct calls to VAX RTL routines (irc/istat handling). Bug fix in FMPEEK for 'A', 'N' options. Modify FMSHOW to accept LBANK=-1 (use LADDBK, e.g. from novice i/f). Protection in FMFZI - require ZEBRA end of run record in input file. Fix bug in FMTAPE - FSEQ missing from LABELDEF. Add program CHEOPS - read .rqid and .rep files generated by CHEOPS server and update FATMEN catalogue(s) accordingly Version 1.62=Retry 5 times in FMRZIN if keys vector has been given but entry not found. (concurrent update problem). Add routine FMACCT to check for account aliases. Warning messages if SYSREQ is incorrectly installed. Use SHIFT RFIO also for tape files (use sfget after stage request). Save pathname across FMLDIR calls. Add program FATKEOPS, to send updates from VM to cheops directory on fatcat. CHEOPS interface - routine FMBTOA to write bank in ascii format, write update to /fatmen/fmcheops or as variable FMCHEOPS. On VM, use gateway machine FMCHEOPS. Fix bug in FMCOPC - set media type in keys vector Add patch FATRZCHK to protect against corrupt RZ files. Add routine FMACL to provide protection on FATMEN paths Correct calls to FMCLOS from FMCOPY. Version 1.61=Use exchange mode and C I/O on DECS, if the RZ file is kept in a directory starting /fatmen (e.g. on fatcat) Support search lists in FMSTGP. Rewrite FMCFGL using CIGET routines (for character data) Print host type and OS for disk files in FMSHOW Add support for Physical copy in FMCOPY. This is the default. (Use cp/COPY/VMIO to perform the copy) Split FMOPEN into separate routines: FMDISK/FMTAPE/FMFOPN FPACK files are handled in FMFPAK. Version 1.60=v92a March 1992 Fix bug in FMSELM when CHOPT=' ' Bug fix in FMOPEN - save IQUEST(10) & (11) over call to FMGET Version 1.59=Bug fix in FMSTGP. Network retries in FMRSTG. Check that SETUP_EXE:TPSERV.CONF exists in FMOPEN, FMRZIN. More bug fixes in remote staging. Massaging in VAX Stage handling. Add NRFMFA Add Motif version, restructuring of CDF file, SHOW/CATALOGUES command. Version 1.58=Print stage log in FMCSTG, FMRSTG. Correct tag definitions for FATMEN directories. (loc.code and med.type were swapped). Default catalogue name is DESY,IF=DESY, FNAL,IF=FNAL in FATMEN shell only. Fix bug in FATSRV, FMOPEN for VMS. Move FAFNDF,IF=APOLLO to patch UNREF. Bug fixes in remote VAX staging. Deassign channel in FMQUOT. Use FORTRAN I/O when reading SETUP_EXE:TPSERV.CONF Add debug printout for remote staging. Version 1.57=Print dsn, host or vsn,vid,fseq if logl>=1 in FMFZI Print user & host of originator of update in FMFZI. Protect FMQUOT against disks with quotas disabled. Bug fix in FMLDIR for [] support. Add routines FMRSTG, FMCSTG, FASTGS, FASTGQ for remote VAX staging. (Across or within clusters) Bug fix in FMLFIL. Add support for remote tapes in VMS: tpserv device-group host1 [host2] Add support for RMS files (RECFM RMS, /RMS on STAGE command, use COPY to copy data) Permit creation for exchange mode files, via FATMODE in FATNEW (setenv FATMODE X or XC) Version 1.56=Debug printout in FACOPY. Open journal files as recordtype=stream_lf if writing over NFS from VMS->Unix. Fix bug in FMGLUN. Print date and time before going to sleep Fix warnings from VSFORT 2.5 compiler (unreachable code in routines FMCOPC and FMRZIN. See warnings in these routines) Fix bug in FMTAGS (undefined variable) Friday, 13th December Fix bugs in FMSEND Version 1.55=mods to FAINQR and FMRZIN for FPACK files If host is not local, then search in .netrc file for nodename IBMMVS: userid.PER.NETRC VAXVMS: netrc.; VM/CMS: DOT NETRC A0 Unix : $HOME/.netrc Update FATNEW for MVS. Resync copy level with FPACK FPACK interface: in case of FPACK files, routine FPARM is called in FMOPEN & FMCLOS. FPARM handles file open and starts server etc as necessary. OPEN: CALL FPARM('OPEN logical-name UNIT=lun FILE="fn"' CLOSE: CALL FPARM('CLOSE logical-name') Version 1.54=Support NFS mounted files (FMRZIN, FAINQR) VAX/VMS, Unix Use sequence QFTITLCH to get pam title rather than QFTITLE Fix bug in FATSRV for check on /done directory (Unix systems) Handle .. characters in FMPAFF and FMFIXF Fast match in FALS, FMLOOP (file='*') Add ACTION=read/readwrite on OPENs. Modify FMHOST for CMS 7. Fix bug in CP command - cwd was not correctly restored. Add FATOUCH example program, to touch files or directories. Fast count in FMFC, if filename=*. (Uses 1/3 of CP time) Changes in FMOPEN for shift - call CFOPEN for full shift file name, not fort.n Use C I/O and exchange mode for RZ file if STREAM_LF (VAX) or in /fatmen (CERN Cray) Call FMVERI from FMRM, FMRMC Use configuration files to determine device access. VAX/VMS,IF=VAXTAP: logical names SETUP_modelS IBMVM, IF=HEPVM : nodename RESOURCE P SHIFT : /etc/shift.conf, /etc/TPCONFIG CRAY : /etc/shift.conf Version 1.53=Add routine FMQUOT to P=FMVAX - get current disk quota information (from SPACE by JJB). Perform cleanup in FATSRV Perform automatic cleanup in FATSERV EXEC Update return codes in FMATCH. Return location of mismatches in IQUEST. Modify FMSCAN to treat wild-carded and non-wild-carded pathnames alike. Add routine FMHUNT - hunt for (wild-carded) generic name Set IQUEST(10) to number of levels in initial path in FMLOOP Common version for CERNVM, CERNVMB & LEPICS Version 1.52=Access to SMCF now based on sequence FASMCF. Access enabled, however, for SHIFT, CSF, VXCERN, APOL3 Fixes for CERNVMB More examples in P=EXAMPLE. Extra protection in VAX, Unix versions if FM symbols not defined. Rewrite FMLDIR using FMSCAN Add support for [] wild-cards. Given the following subdirectories: Y91V02 Y91V03 Y91V04 Y90V06 Y91V05 ld y(90:91)v> will follow Y90V06, but ld y[90:91]v> will follow both Y90V06 and Y91V05. Call FMACNT on each entry to FMRMC, in case user has reset acct Fix bug in FMPOOL when TO specified User meeting of 16/10/91 (ship command not yet implemented) Version 1.51=Add routine FMSETK - set keys matrix for d/s selection Add commands SET/SHOW userwords. Add routine FAINQR - inquire with GIME/sfget/env. variable expansion. Add FMSELM routine - select by keys matrix. Add ZOOM command to zoom down directory tree to first directory with no subdirectories & at least one file FMSCAN now descends specified number of levels below wild-carded pathname, and not below path up to last wild-card Add option V in FMOPEN - as S but even if file size is ^0 Fix bugs in FMMANY, FASELP for <> matching. Fix bugs in FAT2VM.COM, FMTOVM to not send files back to origin Add FACDIR interface routine - reset top directory if naming directory is not TOPDIR Fix bug in FAEXTR Fix bug in FMALLO - use separate buffer for QUERY CONTENTS Modify FMLD to use FALD - remove limitations on numbers of directories that can be displayed. Version 1.50=CNL 204 - 12/09/91 09:00 Add FMLOOP. As for FMSCAN but for file names Add FMMODU - modify user fields Use FMSCAN from FC, LS commands and routines Add routine FMSCAN & FASELP. FMSCAN provides FMLDIR like functionality but avoids the use of local arrays by calling user exit. <> are also supported. Option Q in FMSHOW also shows TMS tags Extra protections in FMINIT Add options Q, S, T (A) in CD to list RZ quota, statistics, dates & times etc. Add command DIR to issue RZLDIR. Add option Y in FMLSC - verify bank contents Permit reinit if user typed a bad FM group Add utility routine FAEXST Add command ALLOCATE to add tape file with volume allocated from named pool in specified library. Add TREE command to print directory tree Use FMOPTC rather than UOPTC - checks on CHOPT case insensitive Treat <> like * in FMATCH (with warning if LOGL>=3) Change flags for routine names (Lowercase, Underscore etc.) Fix bug in FATMDI introduced by move to FATLIB. Purge CON files in FATSERV on VM Fix bugs in FMXDSK. Add warning in FMOPEN if size > MAXSTG Add command MEDIA to set/show media attributes Command files for VAX servers - scripts for FATCAT Add patch FATSEND to send FATMEN updates to remote servers, according to NAMES file. Current version is for Unix and VMS systems only. Version 1.49=Interface to VMTAPE (FMOPEN/FMFIND/FMMAKE) & FMALLO Interface to VMBATCH (for FMUSER, FMACNT, FMJOB) Add routine FMEDIA to set default media attributes. Call FMUTMS (user exit) from FMQTMS IF=-TMS to allow user to override these values for individual volumes. Add option G to RM command, to change protection group on a volume. Defaults to *None. Add routine FMPROT. Add command RMTREE, to delete a complete directory tree. Modify FMATCH & FMMANY. Pointer now reset after a * by looking for a substring, rather than single character Only check TMS information in FMVERI if Q option present. Add routine FMTAGS, to get, set or delete TMS tags. Change default shift staging pool from PUBLIC to shift1 Add program FAT2SQL - convert entire RZ file to SQL Add routine FMVMIO - user hook routine for FZ D/A for binary exchange format files on IBMVM. Protect against error opening input file in FMFZI Option D in SEARCH (FMSHOW really): write KUMAC file to remove matching entries Use FORTRAN I/O by default for FX, FXN files. This is default for Zebra 3.67 and above, unless Y specified on FZFILE. Fix bugs in FMOPEN for SHIFT. N.B. must use -lsun for XY routines. To get debug from XY routines: setenv RFIO_TRACE 3 Version 1.48=Issue QUERY LIBRARY in FMQTMS IF=QVID to determine if library is active or not. Libraries beginning with a '*' are apparently inactive by definition. Issue option X on FZENDx in FMCLOS if C I/O selected in FMOPEN Return true RC from SYSREQ in IQUEST(1) (FMQMED) 312 = volume unavailable only fatal in FMRZIN when key not specified. Allow staging disks upto 210 MB IF=CERNVM. Default to sequential access for FZ files on disk. Support date & time ranges in SEARCH Mods for DESY. Version 1.47=Add FATPURGE.COM to delete old files in [.DONE] Add FATRL.COM - modified RDRLIST.COM to copy files send to VAX via SENDFILE to [.TODO] directory Add FAT2VAX exec to send updates via Interlink Support MVS in FATSRV. Add FMUSER for MVS systems (adapted from KPREFI) Add /*DECK, $!DECK lines to REXX/DCL patches Version 1.46=Fix PREFIX support in FMOPEN, FMFIND, FMMAKE Support range of Copy Levels, Media types in FMRZIN, FMLS(C) Version 1.45=Fix bug in FATCAT - reset IC after call to XZLS Fix bug in RM command for freeing volumes Permit use of FMGETV/C/I, FMPUTV/C/I from novice interface (LBANK=-1) Add example pgm using novice interface in patch EXAMPLE. Add example installation procedures Perform checks on input parameters in FMINIT, FMSTRT Set location code to the value given by a call to FMSETL (or set/loc) in FMKADD, FMKADT, FMADDD, FMADDT Version 1.44=Add commands SET/COPYLEVEL, MEDIATYPE and SHOW commands FZFILE options: T only if read directly from tape. Add command SET/LOC Check that location code of each candidate is found in location code vector specified by user (FMRZIN) Modify for use with ORACLE on FATCAT(IBMRT). Oracle RTL compiled without -qextname Requires trailing _ on ORACLE interface routines, Common/FOFILE/ and CLTOU. Version 1.43=Check status from stage -o in FMCLOS (APOL3) VID prefix support for all calls to FMQTMS. Change key allocation in FMALLK: now use maxkey+1 Change FMACNT to check env variable FMACNT FMQTMS, FMGTMS: iquest(1) = -1 if -TMS Add routine FMQMED to return media type and mount flag Add options AFIU to FMRMC (All,Free,Interactive and Unlock) Support search options as for FMSEAR. Use C I/O for Zebra FZ if IQUEST(10) = 1 Look at environmental variable FMHOST (Unix, VAXVMS) Use this as nodename, if set. Version 1.42=Bug fix in FMNODE for VAXclusters Fix bugs in FMTMS patch for SYSREQ retry Revert to CART for APOL3 - old stage still on LEPICS Fix bugs in FMCOPC, FMRCOP. Fix bug in FMFZI - return code from VMCMS undefined. Add example EXEC/COM/SCRIPT for running pgm FATNEW. Fix INQUIRE bug in FMKUIP routines for VM. Fix typo in FMOPEN. Add -h in fmld, fmseac, fmlsc, fmfc. Support options -V,-W in FMLD IBMMVS version. Current implementation assumes that all files are catalogued. Version 1.41=Add stage -o for APOL3 in FMCLOS. Reinstall and test on Apollo Support non-CERN catalogues: variable FATSYS (server, pgms), INIT //fatsys/group (KUIP) Modify FC command to support CHOPT: count #file/dir, #subdirs/dir. Use FMLFIL in FMLSC, FMSEAC Fix bugs in FMLDIR. Restore code for NLEVEL in FMTREE, support in LD command. Fix bug in SEARCH for NMATCH=n. Change CART to CT1 in FMMAKE (this is now returned by the TMS for manual 3480s) Retry in FMALLO if first tape from Q CONTENTS has been allocated away from under us... Add protection in FMOTOZ for bad ORACLE information. Fix bugs in FMATCH, FMOTOZ, FMLD. Version 1.40=CNL201 Version 1.39=Fix bugs in FMLDIR. Add FMLFIL, FMFILS. Add return codes for SYSREQ(TCP) Use FMSREQ to perform call to sysreq with retry Add calls to L3 stage script in FMOPEN, FMFIND, FMMAKE Add FMFILC - like FC in FM shell. New calling sequences for GETENVF, SLEEPF. Fix bugs in SHIFT version Add IBM MACROS (needed for MVS version) to FATCDES. Add program FATCAT to send updates to FATCAT upon arrival in RDR and poll for new updates at wakeup interval. Version 1.38=SHIFT code for sfget (DSN is [pool.user]/unix-dsn) Add MVS routines from DESY Split FMOPEN, FMFIND, FMMAKE Add routine FMFNME to generate extended unique file name - not suitable for VM systems. Version 1.37=Add Patch FATULOK. Example program to unlock FATMEN RZ file. Current version will unlock 'CERN.FATRZ' in current directory Put large arrays in FMALLK, FMLIST, FMLDIR into commons. Add options K (keep) and P (autoput) to FMOPEN Modify FMQTMS so that the correct media type (taken from bank) is returned if volume unknown or TMS option not installed. Media type is passed to FMQTMS via IQUEST(11). Version 1.36=Add patches DCL, SCRIPT to contain sample command files/ scripts to start FATMEN server. Add variable FMWAKEUP (FATMEN$WAKEUP on VAX) to define FATSRV wakeup interval Fix all warnings reported by Apollo compiler. Return in FMOPEN for Unix systems without tape support (currently only Cray, Shift) Extra protection in FMINIT if logical name/env. variable pointing to FATMEN catalogue is not defined. Fix bug in FMLD for bad pathnames Version 1.35=Fix bug in FMRM if non-existant key is specified Use XYOPN in FMOPEN for SHIFT disk files Add WRTAPE support in FMCOPY for VAX Add option MEDIA in ADD/TAPE and FMADDT. (For NA44) Version 1.34=Fix bug in FMALLK, extra debug in FMFZI. Use stagewrt in FMCOPY for Cray Add SHIFT support: use stagein/stageout scripts in FMOPEN. All SHIFT files are assumed to be accessed via RFAS routines. Current support only for FZ binary files... Add routines FMULOK, FMPOOL to unlock (enable write) and transfer a tape from one pool to another. Modify FMSHOW to display the host on which a disk file resides, rather than that from which it was catalogued. Add DCB/Generic device support in VAX version Move 'fix' for check on robot/manual to FMQTMS Add extra print out in FMFZI. Fix bug in FMQTMS introduced by VID prefix support. Add command SEARCH to allow searches on DSN, HOST, VID and USER. Output is piped to FMSHOW. Add option Z in FMCOPY - use STAGE OUT for output file Add routine FMGBYK (get by key-serial-number). Modify FMLS to support options I (sort in Increasing order) and 1 (display only one entry per generic name). Option W in FMLS - multi-column output Modify FMSHOW to call FMSHO2 in case of options B (brief=80 cols.) or E (extended=132 cols.) listing. Modify FMOPEN to take file size for STAGE request from IQUEST(11) if option O(verride) is specified. Fix bug in FMLD for output redirection. Version 1.33=Add routines FMSETL, M, C, U to set the list of (<100) location codes, media types, copy levels and logical units for use in FATMEN selection and for use by FMCOPY etc. Add routine FMPUSE to print usage information. Add routine FMUNIQ to return a unique list of file names in specified directory. Selection may be made under normal keys mask, as for FMSELK. Add routines FMJULI/FMDATE/FMDAYS to provide conversion to and from julian date and delta time. New entry point FMDCB - provide DCB or take from 'model DCB' Add routine FMFZCP to copy an FZ file from LUNI to LUNO. Called by FMCOPY. Logical units required by FMCOPY may be set in IQUEST(11-12). Change size of RZ file to 65000 records (new protection in RZ) Fix bug in FMKEYS/FMSELK. Close and reopen RZ file in FATSRV on return from FMFZI. This ensures that updates are seen by clients. Version 1.32=FMPEEK/FMPOKE routines - return information from FATMEN bank in vector/ copy vector to FATMEN bank with optional catalogue update. Rename FMADDT/FMADDD to FMKADT, FMKADD. Add routines FMADDT, FMADDD in patch FATUOUS. Add routine FMSTRT - "Novice" initialisation routine which also initialises Zebra Suppress call to RZDELK in FMFZI for MOD operations Add option L in FMOPEN - override Label information with DCB from catalogue or user-supplied bank Add routine FMLDIR - provide <> wild-card support plus context pointer. Support wild-cards in any location in LD command. Add routine FMCOPC - command line copy routine. Permit copy to named VID, tape allocated from pool, remote copy (via CSPACK) or copy according to two existing catalogue entries. Add entry point FMGTMS to obtain FATMEN oriented details from TMS Change calling sequence of FATUOUS interface to match CERNLIB standard. Fix bug in FMLD for -R option, VID-prefix handling in FMADDT. Version 1.31=Add 2MB to file size on VMSTAGE request, if < 200 MB Modify FMPUTC/FMGETC to support VID prefix field VMSTAK now also for HPO. Use KERNLIB version of GETENV Add ZABEND routine for FATMEN shell - avoid ZPOSTM Support VMIO in FMOPEN for DDNAMEs like VM%%F%%% Update mode corresponds to FMOPEN option X Add pilot patches for CERNVM, LEPICS and FRCPN11 (ugh) Add routine FMMANY - match many files, selecting according to < or >. Add routine FMCHOP - check options against allowed values Output to search list on VAX: use disk with most space Add routine FMKEYS. As RZKEYS, but with IFIRST,ILAST to avoid the use of large arrays. Use QUERY VID instead of QVOL (IN2P3 only, temporary!) Return immediately after STAGE command in FMOPEN if NOWAIT Support output redirection in LS, LD Add patch FATUOUS - novice interface Add routine FMFILE - as FMOPEN but no LBANK Add routine FMPREF to convert VID prefices to/from CHARACTER/INTEGER Support STRONG TYPING IF=TYPE in PATCHY sequences Add call to FMUPRT in FMSHOW, FMUSEL in FMRZIN Add PATCH FMTMS for TMS interface routines (FMALLO, FMQTMS and FMLOCK) Add entry point FMSCAN - FMLIST + FMSORT + FMGET Add DA as valid file format: open ACCESS='DIRECT' in FMOPEN for format DA or it option X is given. Support full wild carding of generic name in FMLS Support RZOPEN in FMOPEN, RZEND in FMCLOS Provide interface to DUMPTAPE (IBM, Cray) Extend FATOPTS to numeric options Version 1.30=CNL 200 Version 1.25=Fix bug in FMCOPY - close both input & output files if an error occurs opening the output file Fix bug in tape allocation in FMOPEN Free tape unit correctly in FMCLOS for output volumes Lift bank in FMADDD/T only on first entry. Add FFX as valid file format. Use FMBOOK in FMSMCF - save address in link area FORTRAN version of FAFNDF based on SZLS from CSPACK. Use RZOPEN from FAOPEN Extend IFLAG in FOPUT: add only if not already present Version 1.24=Move FMALLK to patch FATSRV. Fix bug in FMCOPY when called from FMSMCF (infinite loop) Treat characters following a blank in DSN as a comment. Correct FMQTMS, FMALLO for VAX. Print DSN stacked in FMOPEN if LOGL >= 0 Version 1.23=Extra protection in FMFZI for file deletion. Fix bug in FMCOPY for VBS files. Remove unecessary protection in FMSMCF for unknown VIDs. Add TESTFAT KUMAC - example test macro in PATCH FATTEST Version 1.22=Try to reduce size of program. Limit number of directories that can be displayed in FMLD to 10000, number of copies of a file to 1000 (parameter MAXCOP). Version 1.21=Ensure that VMOPEN error codes are passed back to user Force updating of KEYS vectors from BANKS in FMCOPY Option C in FMCOPY - use STAGE CHANGE, option S, using STAGE for input file (C implies STAGE for input and output) No FORTRAN open in FMOPEN if using IOPACK. Add sequence FATPARA in FMEXST. Add flag NOSMCF for LEPICS - no TMS or robot access Fix bug in FMLIST for call to FMFNMS (no wild cards) Increase FORMAT statement for key serial number and loc.code Set MAXKEY to 10000. Always put DCB on Cray STAGE Use -S sbin option on Cray Version 1.20=CNL 199 Version 1.18=For input tapes, must use 'EXEC STAGE CLEAR' in FMCLOS CTRANS, CSQMCH now in KERNFOR. Add parameter lengths of character fields Fix conversion of LUN to DDNAME in FMOPEN for IOFILEnn Attempt reconnect to ORACLE if IRC=3114 or 6065 Erase FATMEN RDRFILE after successful processing. Fast exit in FATSERV EXEC in case unprocessed file exists Increase working space to 200K words in FATSRV. Save current directory in FMLS for restore at end Add routine VMSTAK. Print shortest/longest record in FMCOPY Version 1.17=Fix bug in FMSMCF for check on robot/manual. Convert TMS density to SETUP/STAGE format Version 1.16=Check bank address in FMVERI using MZCHLS Add routines FMGETV, FMPUTV, FMGETC and FMPUTC to get and put information to/from FATMEN bank. Add FATSTACK exec for LABELDEF FID ? in FMOPEN. Add routine FMFILL to fill FATMEN bank with default values according to CHOPT. Old FMFILL renamed to FAFILL. Set MNTTYP to 'R' if TMS unavailable and vid = Innnnn Add routine FMEXST to check if entry already exists. Ensure that Media type is set (keys and bank) in FMFILL, FMALLO, FMCOPY. Call EXEC FATSTACK to stack FID for FMOPEN option T Fix bug in FMFZI for call to FMCOMP, default density in FMQTMS=38K (not 38000). Use VMCLOS in FMCLOS for DDNAMEs like VM%%F%%%. If STAGE fails, retry using larger disk size up to max. CP DETACH tape unit (option D in FMCLOS) Use new version of SYSREQ (one line per CHARACTER element) Protect in FMVERI against blanks, unseen chars in GENAM. Update use count in FMOPEN only for input datasets Output datasets require U option in FMCLOS Add option E to FMOPEN - issue SETUP (END Save vaddr of tape unit used in FMOPEN, free in FMCLOS. Save and reset current directory in FMCPC, FMMVC. Extend FMCOPY - disk-disk, disk-tape, tape-disk, tape-tape via VMIO. Fix bug in FMALLO for curious length TMS replies Rewrite FMRM. If more than one match is found, key serial number must be specified. Version 1.15=Fix bug in FMFZI in call to FMCOMP. Set date/time of cataloging, last access and use count in FMSMCF. Add -K option on stagein (Cray) Add Apollo version of GETENV (FMGENV) RC=3 from TMS, use defaults IF=TMSTEST, ELSE sleep for 1 minute and then retry. Option G in FMALLO - change control group to *None to allow GROUP access to the tape allocated. FMLIST calls FMFNMS if PATH contains no wildcards Labeltype in lower case on Cray Add routine FMSMCF to make automatic copy into SMCF (FMOPEN option D, CERN specific routine!) Add flag TMSTEST (for CERN until all tapes in TMS) Modify FATSERV to support FATOWNERS and FATOPERATORS lists from NAMES file. Apollo version with local catalogue Version 1.14=Add routine FMCOPY - copy dataset from GENAM1 to GENAM2 using STAGE CHANGE, COPYTAPE, DISKTAPE, TAPEDISK or ZFTP. Add option S in FMOPEN - update bank with file size from VMSTAGE. Add option N in FMOPEN - do not specify DSN on STAGE/LABELDEF command. Stop in FAOPEN if RZ file not found. Version 1.13=Add shell command MAKE. Add print out to FMCLOS. Add DCB to FILEDEF for VM/CMS disk files. Print use count in FMLS/FMSHOW (option P). Add OPEN to FMOPEN routine, unless option U(seropen) Support C(lear), D(rop), E(nd), F(zstat), P(ut), U(pdate) options in FMCLOS. Add routines FML2DD, FMDD2L to convert FORTRAN logical unit to corresponding DDNAME. Add call to FZFILE in FMOPEN, if option F is chosen. Add optional parameters RECFM, LRECL, BLOCK, FSIZE in FMADDT/D. Add support for 3420s (media type 3) in FMRZIN Use mode 4 for VM VBS disk files. Support remote non-Bitnet servers. Pull updates over using ZFTP based utility. Polling interval defined by remote installation. Version 1.12=Fix bug in FMSHOW for user supplied bank. Add flags SETUP and STAGE to allow sites to enforce tape processing style. Add entry FMOPEN - just options RTUW for now Use TMS to allocate tapes in FMALLO TMS QUERY CONTENTS LIBRARY user slot 1 TMS GETPOOL VID FROM Version 1.11=Add C routines for Cray to find next file in a directory (from Phil Defert). Fix bug in FAT4WARD when no remote servers are specified. Add exec FAT2CERN to forward updates to CERNVM, unless they originated there. Activate FAT4WARD if on CERNVM (forward last update to remote servers) Add routine FMBOOK - create bank with FATMEN format at L, LSUP and JBIAS specified by user. Fix bug in FMMV - protect bank address in LTDSFA Add command VIEW, to edit a local disk file, using KUEDIT. Use TMS to determine MNTTYP in FMRZIN. Get labeltype, generic device from TMS (FMFIND/MAKE) Add interface to TMS (FMLS/FMSHOW) + patchy flag TMS. Set warning in FMVERI if VID unknown to TMS. Update use count (MUSCFA) and last access date in FMFIND/MAKE. Increment in FMFIND, set to 1 in FMMAKE. Modify FMTOVM to issue dispose from Cray to CERNVM VM: Nick names FATSYS, FATGRP, fatgrp VMS: Logical names FATMEN$SYSTEM, FATMEN$GROUP, DISK$fatgrp Unix: Variables FATSYS, FATGRP, fatgrp Send logging message to server only on CERNVM Add interface to TMS via routine FMQTMS. Use flag TMS to allow sites without TMS to continue. Use variables for UNIX systems to determine location of FATMEN RZ file (FMgroup=/u/mf/fml3, for ex.) and group for which this server is running (FATMEN) Use count stored in MSYWFA+1(=MUSCFA) Version 1.10=Enable CONVEX flag. Introduce FFATMEN patch Version 1.08=Fix bug in FMALLK when directory is empty. Allow VAX server to run under any account. Version 1.07=Fix bug in FMVERI for check on user words. Fix bugs in 1.06. Bad +SELF in FATMDI. Fix bugs in VAXVMS version. FATMEN logical names now in GROUP table. Add patch FATNEW (to create new RZ file) Ensure that directory is reset in FMFNDC Version 1.06=Fix bug in FMVERI - copy level may be 0. Add EXECs to PAM Calls to FMONIT in FMFIND/MAKE rather than FMGET Add routine FMVERI, return extra information via IQUEST in FMLIFT, FMKDIR. Extend FMOPEN/FMCLOS. IQUEST(11) = 1 : generic name already exists IQUEST(12) = 0 : path name already exists IQUEST(12) = 1 : path name does not exist Numeric ranges (m:n) supported in FMLIST Version 1.05=Add routine FMSORT - call SORTCH (modified from SORTZV) Fix problem in FMFZI - allocate next key using FMALLK In case of MOD or REP operation, re-use old key. Add DCB on STAGE OUT /FILEDEF commands (VM only) Add routines FMUPTM/FMPKTM - as DBxxx but with return code Use mode 6 for RZ files on VM (unless mode=*) Fix bugs in FMATCH. Add routine CSQMCH (squeeze multiple characters) Add FMSHOW example print out routine. Use DEVTYP SMCF for robot, if VID =Innnnn and MMTPFA=2 Introduce flag DECS for DEC MIPS. Modify C code to use +SELF rather than #IFDEF. Add journaling of FZ files. Use AUTOPUT option on STAGE OUT command. Tidy LOGL. Version 1.04=Retry connect to ORACLE up to 5 times. Reinit RZ if error from RZFILE. Add FMALLO on VM systems New versions of SQL/DS compatible FOxxx routines. Cleanup pilot patches. Modify for AIX. Default for CD is PWD Find KEYS(1) using FMSELK,FMCOMP in FMFZI (for remote delete to work). Allow NOWAIT option in FMFIND, if CHLUN=NOWAIT Add routine FMCOMP to compare banks pointed to by two generic names. Add routine FMLIST - combine FMTREE with FMFNMS and wild card support for directory names. Add G option to FMLS - list full generic name Support VAXclusters and DFS in FATMEN selection. VAXclusters treated as a single node, DFS disk taken after local disk but before local tape. (DFS logical name must be in LNM$SYSTEM_TABLE). New routine FMSELB to allow user to perform select on contents of FATMEN bank. Version 1.03=Fix bug in call to RZIN - don't use 'S' option. Server now uses FATLIB. Rewrite FMATCH subroutine. Add LOGLEVEL to FMLS Bugs fixes and enhancements from DELPHI installation. Add debug print to FOPUT. Add patch TAPELOAD. Add PROGRAM FATO2F - recover from ORACLE /SQL and send to server as FZ file(s). Add DSN to STAGE command. Add UPDATE command to CDF. Bugs in FMLIFT/FMLINK fixed (IQUEST/IRC uninitialised) Fix bug in FMFILL for user-allocated tapes Error message in FMRM if key vector cannot be found Add routines FMMOD and FMUPDT Examine REXX variable FREE_BLOCKS to determine number of records to preformat in RZ file (for FATMEN server) Modify FMFZI, FMZTOR and FOPUT to support equivalent of DISP=NEW, OLD, MOD. Add routine FMSELK to allow selection of files on basis of keys vector (e.g. media type, copy level etc.) Add SIZE qualifier on input STAGE requests. Sizes are based on current VMSTAGE disk sizes. Selection of best copy (local_disk>robot_tape>manual_tape) Improved logging: Level -3 Suppress all log messages -2 Error messages -1 Terse logging 0 Normal (FMINIT, FMEND etc.) 1 Log to watch FM calls 2 Log to monitor FM decisions 3 Debug messages Add PATCH FATSTAT, to print statistics on usage of FATMEN RZ database. Current version VM only. Version 1.02=Bugs reported by CHARM2. Conform to CERN Program Library convention for flags Preformat RZ file before call to RZMAKE by writing 2500 records (fills 85% of a 20 cylinder disk) Version 1.01=Coincide with version 1.00 of documentation Add IRC to all FM calls, make FMATCH a subroutine Use KIPRMT to set KUIP prompt, rather than KUEXEC Version 1.00=Meddle meeting of 19/10/89 and CERN Library release of CNL196 File and Tape Management Package Requires: CERN libraries, HEPVM (VM/CMS systems), VMS 4.6 or greater (VAX/VMS systems), Apollo SR10 (Apollo systems), Unicos (Cray systems). Enhancements to external packages: Requests from LFATMEN list: <> wild-card support (Daniel Lellouch) (done, FMLDIR) in FATMEN selection (fmnext) Wild card support in LS, LD (done) Output to disk files for LS, LD (done) COPY command in FM shell (done for local files) Select disk with max. space for output to search lists (VAX) (done) To be clarified: For FORTRAN 90: Hollerith (FMSTRT, FMINIT, FMVERS) UCOPY (FMMODU) +PATCH,FATFLAGS,IF=$DOC. EXPLANATION OF SOME OF THE PATCHY FLAGS +DECK,BLANKDEK. +USE,TYPE. To activate 'STRONG TYPING' for patchy sequences +USE,TMS. For systems running the HEPVM Tape Management System (TMS) +USE,TMSTEST. Use defaults for tapes unknown to TMS +USE,PREFIX. For systems supporting VID prefices (FRCPN11) +USE,QVID. For systems without the QVOL command (FRCPN11) +USE,HEPVM. To activate HEPVM specific code (SETUP, STAGE etc.) (default) +USE,SETUP. To force tape access via SETUP +USE,STAGE. To force tape access via STAGE +USE,SQL. To activate the SQL code (only in server) +USE,VMBATCH. If you are running VMBATCH from Systems Center +USE,VMTAPE. If you are running VMTAPE from Systems Center +USE,VMTMC. If user tapes are catalogue in the VMTAPE TMC +USE,CERNVM,IF=CERN,IF=IBMVM. +PATCH,FATDOC,IF=$DOC. +PATCH,*FATCAT. +DECK,BLANKDEK. +USE,IBMRT,FATCAT. +PATCH,*DSYIBM. +DECK,BLANKDEK. +USE,FATASM. +USE,NEWLIB. +USE,DSYIBM. +USE,IBMMVS. +USE,FPACK. +USE,CSPACK. +PATCH,*GSIIBM. +DECK,BLANKDEK. +USE,GSI. +USE,IBMMVS. +PATCH,*SHIFT. +DECK,BLANKDEK. +USE,SHIFT. +PATCH,*CERNVM. +DECK,BLANKDEK. +USE,TMS. +USE,TMSTEST,T=INHIBIT. +USE,CERNVM. +USE,CERN. +PATCH,*CERNVMB. +DECK,BLANKDEK. +USE,TMS. +USE,CERNVMB. +PATCH,*FNAL. +DECK,BLANKDEK. +USE,FNAL. +PATCH,*FRCPN11. +DECK,BLANKDEK. +USE,TMS. +USE,QVID. +USE,PREFIX. +PATCH,*LEPICS. +DECK,BLANKDEK. +USE,TMS. +USE,LEPICS. +PATCH,*UVVM. +DECK,BLANKDEK. +USE,TAPESYS. +PATCH,*APOL3. +DECK,BLANKDEK. +USE,TMS,T=INHIBIT. +USE,TMSTEST,T=INHIBIT. +USE,APOL3. +PATCH,*VXCERN. +DECK,BLANKDEK. +USE,VXCERN. +PATCH,*FATRZCHK. +DECK,BLANKDEK. +USE,P=QCDE. +USE,P=FATCDES. +USE,P=FFATMEN. +USE,P=FATRZCHK. +PATCH,*FAT2SQL. +DECK,FAT2SQL. +USE,FAT2SQL,FFATMEN,FATCDES. *CMZ : 18/09/91 16.22.40 by Jamie Shiers +PATCH,*FATSQL. +DECK,BLANKDEK. +USE,*FOGET. +USE,*FOPUT. +USE,*FODEL. +USE,FMLOGI. +USE,FATCDES. +USE,SQLINT. *CMZ : 18/09/91 16.22.40 by Jamie Shiers +PATCH,*FATUSER. +DECK,BLANKDEK. +USE,QCDE. +USE,FATCDES. +USE,FATUSER. +USE,FFATMEN. +PATCH,*FATO2Z. +DECK,BLANKDEK. +USE,QCDE. +USE,FATCDES. +USE,*SQL. +USE,FATO2Z. +USE,FMOTOZ. CUSE,P=FATBODY,D=FATMDI. +USE,P=FATSRV,D=FMALLK. +PATCH,*FATO2F. +DECK,BLANKDEK. +USE,QCDE. +USE,P=FATCDES. +USE,*SQL. +USE,FATO2F. +USE,FMOTOZ. +PATCH,*FATNEW. +DECK,BLANKDEK. +USE,FATCDES. +USE,FFATMEN. +USE,FATNEW. +PATCH,*FATSRV. +DECK,BLANKDEK. +USE,P=QCDE. +USE,P=FATCDES. +USE,P=FATSRV. +USE,P=FFATMEN. +PATCH,*FATSEND. +DECK,FATSEND. +USE,P=QCDE. +USE,P=FATCDES. +USE,P=FFATMEN. +USE,P=FATSEND. *CMZ : 18/09/91 16.22.40 by Jamie Shiers +PATCH,*FMCDF. +DECK,BLANKDEK. +USE,FMCDF. *CMZ : 18/09/91 16.22.40 by Jamie Shiers +PATCH,*FATMEN. +DECK,BLANKDEK. +USE,FFATMEN. +USE,FATCDES. +USE,FMKUIP. +USE,FMCDF. +PATCH,*FMKUIP. +DECK,BLANKDEK. +USE,FFATMEN. +USE,FATCDES. +USE,FMKUIP. +USE,FMCDF. +PATCH,*FATLIB. +DECK,BLANKDEK. +USE,FFATMEN. Flags for FATMEN +USE,FATCDES. CDEs for FATMEN +USE,FMINT. FATMEN interface +USE,FATUTIL. Utility routines - documented +USE,FMUTIL. Utility routines - undocumented +USE,FATUOUS. Novice user interface +USE,FMTMS. FATMEN<->TMS interface routines +USE,FATBODY. FATMEN routines for Zebra interface +USE,FATUSER. Dummy user selection routines +USE,L3UTIL. L3 utility routines - for backward compatibility +USE,FMVAX,IF=VAXVMS. VAX specific routines (for interface to STAGE) +PATCH,*FMFIND. +DECK,blankdek. +USE,FFATMEN. +USE,FATCDES. +USE,FMFIND. +PATCH,*FMGET. +DECK,blankdek. +USE,FFATMEN. +USE,FATCDES. +USE,FMGET. +PATCH,*CHEOPSIF. +DECK,BLANKDEK. +USE,FFATMEN. Flags for FATMEN +USE,FATCDES. CDEs for FATMEN +USE,CHEOPSIF. Special interface for CHEOPS +PATCH,*CHEOPS2F. +DECK,CHEOPS2F. +USE,P=CHEOPS2F. +USE,P=FFATMEN. +USE,P=FATCDES. *CMZ : 23/04/92 10.45.49 by Jamie Shiers +PATCH,*SQL. +DECK,BLANKDEK. +USE,SQLCOM. +USE,FMZTOR. +USE,FFATMEN. +PATCH,*FODEL. PILOT PATCH FOR FODEL +DECK,BLANKDEK. +USE, SQLCOM, FODEL. +PATCH,*FOGET. PILOT PATCH FOR FOGET +DECK,BLANKDEK. +USE, SQLCOM, FOGET. +PATCH,*FOPUT. PILOT PATCH FOR FOPUT +DECK,BLANKDEK. +USE, SQLCOM, FOPUT. +PATCH,*FATSCAN2. +DECK,BLANKDEK. *CMZ : 1.66/06 27/11/91 09.28.33 by Jamie Shiers +USE,P=FFATMEN. +USE,P=FATCDES. +USE,P=EXAMPLE,D=FATSCAN2. +PATCH,*FATCHK. +DECK,blankdek. +USE,FFATMEN. +USE,FATCDES. +USE,FATCHK. +PATCH,*FATBACK. +DECK,blankdek. +USE,FFATMEN. +USE,FATCDES. +USE,FATBACK. +PATCH,*FATOUCH. +DECK,BLANKDEK. +USE,FATCDES,FFATMEN. +USE,P=EXAMPLE,D=FATOUCH. +PATCH,*FATPARA. +DECK,BLANKDEK. *CMZ : 1.66/06 06/01/92 09.25.51 by Jamie Shiers *CMZ : 06/01/92 09.25.51 by Jamie Shiers +USE,FATCDES. +USE,FATPARA. +PATCH,*FATSREQ. +DECK,blankdek. +USE,FFATMEN. +USE,FATCDES. +USE,FATSREQ. +PATCH,*STGSERV. +DECK,STGSERV. +USE,STGSERV,IF=VAXVMS. +PATCH,FFATMEN. +DECK,BLANKDEK. +USE, IBM, IF=IBMMVS,IBMVM. +USE, UNIX, IF=ALLIANT,APOLLO,CONVEX,CRAY,IBMAIX,UNISYS. +USE, UNIX, IF=DECS,GOULD,HPUX,IBMRT,MACMPW,MIPS,SGI,SUN. +USE, UNIX, IF=NEXT,QMVAOS. +USE, APOL3, IF=APOLLO. +USE, FMC, IF=UNIX,IF=*FATLIB. +USE, FMH, IF=UNIX,IF=*FATLIB. +USE, FATASM, IF=IBMMVS,IF=*FATLIB. +USE, VAX, IF=VAXVMS,VAXULX. +USE, DOUBLE, IF=IBM, VAX, NORD. +USE, DOUBLE, IF=UNIX, IF=-SINGLE. +USE, QMIBMXA,IF=IBM. +USE, VMCENTER,IF=FERMI,IF=IBMVM. +USE, VMBATCH, VMTAPE,IF=VMCENTER. +USE, HEPVM, IF=IBMVM,IF=-VMTAPE,IF=-VMBATCH. +USE, VAXTAP, IF=VAXVMS. +USE, QXCAPT, IF=CRAY. +USE, QX_SC, IF=SUN, SGI, DECS, CONVEX, IBMRT, HPUX, AIX370, APOF77. +USE, QX_SC, IF=NEXT,QMVAOS. +USE, QXNO_SC, IF=APOLLO,IF=-APOF77. +USE, BSD, IF=APOLLO, SGI, SUN. +USE, SYS5, IF=IBMRT, DECS, HPUX. +USE, DCL, IF=VAXVMS,IF=*FATLIB. +USE, SCRIPT, IF=UNIX,IF=*FATLIB. +USE, REXX, IF=IBMVM,IF=*FATLIB. +PATCH,FATHEAD,IF=$DOC. +PATCH,FATCDES. +DECK,FATCDES. +KEEP,FATSTAT. * * Count number of server operations: * Number of different users, nodes, files, commands, * PUTs, MODs, DELs, MKDIRs, RMDIRs, OPENs and CLOSEs. * NFMUSR and NMFNOD not currently counted * Problems: * Number of warnings from RZDELK * Number of PUTs for existing entries * Number of REPs for non-existing entries * Number of DELs for non-existing entries * Number of BAD (unrecognised) commands * Number of logging records * COMMON/FATSTAT/NFMUSR,NFMNOD,NFMFIL,NFMCOM,NFMPUT, + NFMMOD,NFMDEL,NFMMDR,NFMRMD,NFMOPN, + NFMCLS,NFMPDK,NFMPRP,NFMPDL,NFMBAD, + NFMLOG +KEEP,FAUSTO. PARAMETER (KOHOLL=0) PARAMETER (KLHOLL=70) PARAMETER (KOREAL=KOHOLL+KLHOLL) PARAMETER (KLREAL=20) PARAMETER (KODATE=KOREAL+KLREAL) PARAMETER (KLDATE=10) PARAMETER (KOCMOD=KODATE+KLDATE) PARAMETER (KLCMOD=20) PARAMETER (KOFILE=KOCMOD+KLCMOD) PARAMETER (KLFILE=10) PARAMETER (KOTMS =KOFILE+KLFILE) PARAMETER (KLTMS =20) PARAMETER (KOCFAT=KOTMS +KLTMS ) PARAMETER (KLCFAT=20) PARAMETER (KLINT = KLDATE+KLCMOD+KLFILE+KLTMS+KLCFAT) * * Hollerith block * PARAMETER (KFMSYS=KOHOLL+2) PARAMETER (KFMGRP=KOHOLL+7) PARAMETER (KFMTIT=KOHOLL+12) PARAMETER (KFMUSR=KOHOLL+31) PARAMETER (KFMHST=KOHOLL+41) PARAMETER (KFMTYP=KOHOLL+51) PARAMETER (KFMOS =KOHOLL+61) * * MB counts * PARAMETER (KFMMBR=KOREAL+1) PARAMETER (KFMMBW=KOREAL+2) PARAMETER (KFZMBR=KOREAL+3) PARAMETER (KFZMBW=KOREAL+4) PARAMETER (KFMMBC=KOREAL+5) PARAMETER (KFMMBN=KOREAL+6) PARAMETER (KFMMBQ=KOREAL+7) * * Dates and times * PARAMETER (KFMIDQ=KODATE+1) PARAMETER (KFMIDS=KODATE+2) PARAMETER (KFMIDE=KODATE+3) * * Catalogue modifications * PARAMETER (KFMADD=KOCMOD+1) PARAMETER (KFMADL=KOCMOD+2) PARAMETER (KFMADT=KOCMOD+3) PARAMETER (KFMMDR=KOCMOD+4) PARAMETER (KFMRDR=KOCMOD+5) PARAMETER (KFMRLN=KOCMOD+6) PARAMETER (KFMRTR=KOCMOD+7) PARAMETER (KFMRMF=KOCMOD+8) PARAMETER (KFMCPF=KOCMOD+9) PARAMETER (KFMMVF=KOCMOD+10) PARAMETER (KFMMOD=KOCMOD+11) PARAMETER (KFMTCH=KOCMOD+12) * * File accesses (OPENs, CLOSEs, COPYs) * PARAMETER (KFMOPN=KOFILE+1) PARAMETER (KFMCLS=KOFILE+2) PARAMETER (KFMCPY=KOFILE+3) PARAMETER (KFMCPQ=KOFILE+5) PARAMETER (KFMCPN=KOFILE+5) * * SYSREQ and TMS operations * PARAMETER (KFMSRQ=KOTMS+1) PARAMETER (KFMQVL=KOTMS+2) PARAMETER (KFMAVL=KOTMS+3) PARAMETER (KFMASP=KOTMS+4) PARAMETER (KFMPOL=KOTMS+5) PARAMETER (KFMLCK=KOTMS+6) PARAMETER (KFMULK=KOTMS+7) PARAMETER (KFMDTG=KOTMS+8) PARAMETER (KFMGTG=KOTMS+9) PARAMETER (KFMSTG=KOTMS+10) * * Catalogue processing * PARAMETER (KFMBNK=KOCFAT+1) PARAMETER (KFMGET=KOCFAT+2) PARAMETER (KFMGTK=KOCFAT+3) PARAMETER (KFMSHW=KOCFAT+4) PARAMETER (KFMSCN=KOCFAT+5) PARAMETER (KFMLOP=KOCFAT+6) PARAMETER (KFMLDR=KOCFAT+7) PARAMETER (KFMLFL=KOCFAT+8) PARAMETER (KFMSRT=KOCFAT+9) PARAMETER (KFMRNK=KOCFAT+10) PARAMETER (KFMSLK=KOCFAT+11) PARAMETER (KFMMTC=KOCFAT+12) +KEEP,FAUST. * * FATMEN USer STatistics * * Adds, MKDIRS, RMDIRS etc. * INTEGER NFADDD,NFADDL,NFADDT,NFMDIR,NFRDIR,NFRLNK,NFRTRE, + NFRMFL,NFCPFL,NFMVFL,NFMODI,NFTOUC * * OPENs, CLOSEs, COPYs etc. * INTEGER NFOPEN,NFCLOS,NFCOPY,NFCOPR,NFCOPQ * * TMS operations * INTEGER NFSREQ,NFQVOL,NFAVOL,NFASPC,NFPOOL,NFLOCK,NFULOK, + NFDTAG,NFGTAG,NFSTAG * * Catalogue operations * INTEGER NFBANK,NFGET, NFGETK,NFSHOW,NFSCAN,NFLOOP,NFLDIR, + NFLFIL,NFSORT,NFRANK,NFSELK,NFMTCH * * # MB read/written * REAL FATMBR,FATMBW,FATMZR,FATMZW,FATMBC,FATMBQ,FATMBN * * Stuff * INTEGER NFSTAD,NFSTAT COMMON/FAUST/NFADDD,NFADDL,NFADDT,NFMDIR,NFRDIR,NFRLNK,NFRTRE, + NFRMFL,NFCPFL,NFMVFL,NFMODI,NFTOUC, + NFOPEN,NFCLOS,NFCOPY,NFCOPR,NFCOPQ, + NFSREQ,NFQVOL,NFAVOL,NFASPC,NFPOOL,NFLOCK,NFULOK, + NFDTAG,NFGTAG,NFSTAG, + NFBANK,NFGET, NFGETK,NFSHOW,NFSCAN,NFLOOP,NFLDIR, + NFLFIL,NFSORT,NFRANK,NFSELK,NFMTCH, + NFSTAD,NFSTAT, + FATMBR,FATMBW,FATMZR,FATMZW,FATMBC,FATMBQ,FATMBN +KEEP,FACARD. COMMON/FACARD/IWIDTH,CARD CHARACTER*132 CARD +KEEP,FATMON. * * Fatmen monitoring information * IHOWFA: how was file accessed? * ITIMFA: elapsed time in FMOPEN (in seconds) * CHFNFA: fully qualified file name, except VM * CHARACTER*255 CHFNFA COMMON/FATMON/IHOWFA,ITIMFA,CHFNFA * Local disk (standard file system) PARAMETER (JLOCFA=1) * VM shared file system PARAMETER (JSFSFA=2) * MSCP (VAXcluster) PARAMETER (JMSCFA=3) * Andrew file system PARAMETER (JAFSFA=4) * OSF distributed file system PARAMETER (JOSFFA=5) * DEC DFS PARAMETER (JDFSFA=6) * Sun NFS PARAMETER (JNFSFA=7) * DECnet PARAMETER (JDECFA=8) * CSPACK server PARAMETER (JCSPFA=9) * FPACK server PARAMETER (JFPKFA=10) * RFIO PARAMETER (JRFIFA=11) * Lachman OSM PARAMETER (JOSMFA=12) * Unitree PARAMETER (JUNIFA=13) * Adstar ADSM PARAMETER (JDSMFA=14) * E-MASS PARAMETER (JEMSFA=15) * Stage required PARAMETER (JSTGFA=31) * TPMNT (=not staged) PARAMETER (JTPMFA=32) +KEEP,FATDUMMY. IF(IDEBFA.GE.2) PRINT *,CHROUT,'dummy user exit called' +KEEP,FATSHIFT. * * Shift configuration file * COMMON/FMSHIFT/LSHCONF,LTPCONF,SHCONF,TPCONF CHARACTER*255 SHCONF,TPCONF +KEEP,FATAPOL3. COMMON/FMAPOL3/IAPOL3 +KEEP,FATCLIO. COMMON/FMCLIO/ICLIO +KEEP,FATMSS. COMMON/FATMSS/IFMMSS +KEEP,FATGET. COMMON/FATGET/ISFGET +KEEP,FATVAXRC. * sequence FATVAXRC IF(.NOT.ISTAT) THEN CALL LIB$SIGNAL(%VAL(ISTAT)) IRC = 42 ENDIF +KEEP,FMQUED. COMMON/FMQUED/LQUED,CHQUED CHARACTER*255 CHQUED +KEEP,FATSTRUCT,IF=F90. * * Draft F90 derived data type for mapping to FATMEN bank * TYPE FATBANK * * Generic file description * CHARACTER*256 FILE_NAME CHARACTER*8 HOST_NAME INTEGER COPY_LEVEL INTEGER MEDIA_TYPE INTEGER LOCATION_CODE * * Disk description * CHARACTER*16 HOST_TYPE CHARACTER*12 HOST_SYSTEM * * Tape description * CHARACTER*8 VSN CHARACTER*8 VID INTEGER VID_PREFIX INTEGER DENSITY INTEGER VOLUME_SEQUENCE_NUMBER INTEGER FILE_SEQUENCE_NUMBER * * File description * INTEGER START_RECORD INTEGER END_RECORD INTEGER START_BLOCK INTEGER END_BLOCK * * Physical description * CHARACTER*4 RECORD_FORMAT INTEGER RECORD_LENGTH INTEGER BLOCK_LENGTH INTEGER FILE_SIZE INTEGER USE_COUNT * * Logical description * CHARACTER*4 LOGICAL_FORMAT CHARACTER*4 USER_FORMAT * * Dates and times * INTEGER DATE_CREATED INTEGER DATE_CATALOGUED INTEGER DATE_ACCESSED * * Creation information * CHARACTER*8 CREATED_BY_OWNER CHARACTER*8 CREATED_BY_ACCOUNT CHARACTER*8 CREATED_ON_NODE CHARACTER*8 CREATED_BY_JOB * * File protection * INTEGER FILE_PROTECTION_MASK * * User words * INTEGER USER_WORDS(10) * * System words * INTEGER SYSTEM_WORDS(10) END TYPE FATBANK +SELF. +KEEP,CHEOPS. * * CHEOPS error messages * PARAMETER (NKEOPS=5) CHARACTER*80 MKEOPS(NKEOPS) DATA MKEOPS(1)/'Inquire on dataset failed'/, + MKEOPS(2)/'Dataset not regular'/, + MKEOPS(3)/'Cannot open dataset'/, + MKEOPS(4)/'Cannot close dataset'/, + MKEOPS(5)/'Transaction expired'/ *define CC_OK 0 *define CC_STATONDATASETFAILS 1 *define CC_DATASETNOTREGULAR 2 *define CC_CANNOTOPENDATASET 3 *define CC_CANNOTCLOSEDATASET 4 *define CC_TRANSACTIONEXPIRED 5 +KEEP,FMSHFT. COMMON/FMSHFT/SHFNAM,SHUNAM,SHPOOL,SHUSER CHARACTER*255 SHFNAM,SHUNAM CHARACTER*16 SHPOOL,SHUSER +KEEP,FATLAB0. CHARACTER*6 VAXLAB(3) CHARACTER*2 IBMLAB(3) +KEEP,FATLAB1. DATA IBMLAB(1)/'SL'/,IBMLAB(2)/'NL'/IBMLAB(3)/'AL'/ DATA VAXLAB(1)/'EBCDIC'/, + VAXLAB(2)/'NONE '/, + VAXLAB(3)/'ASCII '/ +KEEP,FATLAB. +CDE,FATLAB0. +CDE,FATLAB1. +KEEP,FASPAC. COMMON/FASPAC/NPRIFA,NSECFA +KEEP,FARSTG. * * Wait time for remote job: * IWTNET - time to wait if network is down * IWTACK - time for acknowledgement * IWTPND - time when entry is pending * IWTEXE - time when entry is executing * COMMON/FARSTG/IWTNET,IWTACK,IWTPND,IWTEXE,MAXNET,MAXACK +KEEP,FATRON. COMMON/FATRON/LTHR,THRONG CHARACTER*8 THRONG +KEEP,FSTATE. COMMON/FSTATE/MFPHAS +KEEP,FATRAN0. PARAMETER (NTRANS=3) COMMON/FATRAN/ITRANS CHARACTER*8 CHTRNS(NTRANS),TRANSP(NTRANS) +KEEP,FATRAN1. DATA CHTRNS/'T*CPIP','D*ECNET','C*HEOPS'/ DATA TRANSP/'TCPIP ','DECNET','CHEOPS '/ +KEEP,FATRAN. +CDE,FATRAN0. +CDE,FATRAN1. +KEEP,CZSOCK. COMMON/CZSOCK/LUNCZ,IADTCP,LBUF,ISKIN,ISKOUT,IPROT, + JUNIT(99),JSKIN(99),JSKOUT(99),CUNODE, + CHNODE(99),CHUSER(99) CHARACTER*12 CHNODE,CUNODE,CHUSER PARAMETER (LNODE=12) PARAMETER (LUSER=12) PARAMETER (MAXSOC=99) * * IPROT: 0 - TCP/IP (TCPAW) * 1 - DECnet (included in CZ) * CHNODE & CHUSER store the node and user names that correspond * to JUNIT * +KEEP,FATSAT0. COMMON/FATSAT/LSRCST,LDSTST,CHSRCE,CHDEST CHARACTER*40 CHSRCE,CHDEST * * CHEOPS sites * PARAMETER (NSITES=5) CHARACTER*8 CHSITE(NSITES) +KEEP,FATSAT1. DATA CHSITE(1)/'CERN '/, + CHSITE(2)/'HELSINKI'/, + CHSITE(3)/'LISBON '/, + CHSITE(4)/'SARDINIA'/, + CHSITE(5)/'ATHENS '/ +KEEP,FATSAT. +CDE,FATSAT0. +CDE,FATSAT1. * +KEEP,ERRNO. * * Extract from /usr/include/sys/errno.h * or sys$library:errno.h * *define ECONNRESET 54 /* Connection reset by peer */ *define ETIMEDOUT 60 /* Connection timed out */ *define ECONNREFUSED 61 /* Connection refused */ IFATRC(1)=54 IFATRC(2)=60 IFATRC(3)=61 IFATRC(4)=3 IRETRY(1)=60 IRETRY(2)=5 IRETRY(3)=5 IRETRY(4)=60 +KEEP,ERRSGI. *define ECONNRESET 120 /* Connection reset by peer */ *define ETIMEDOUT 126 /* Connection timed out */ *define ECONNREFUSED 127 /* Connection refused */ IFATRC(1)=120 IFATRC(2)=126 IFATRC(3)=127 IFATRC(4)=3 IRETRY(1)=60 IRETRY(2)=5 IRETRY(3)=5 IRETRY(4)=60 +KEEP,ERRCRAY. *define ECONNRESET 145 /* Connection reset by peer */ *define ETIMEDOUT 151 /* Connection timed out */ *define ECONNREFUSED 152 /* Connection refused */ IFATRC(1)=145 IFATRC(2)=151 IFATRC(3)=152 IFATRC(4)=3 IRETRY(1)=60 IRETRY(2)=5 IRETRY(3)=5 IRETRY(4)=60 +KEEP,FATINIT. IF(SERNAM(1:4).EQ.'INIT') THEN PRINT *,'Error - FATMEN has not been initialised' RETURN ENDIF +KEEP,FATDCB. COMMON/FATDCB/TYPE,HDSN,DISP,VOL,LABEL,IDCB, + UNIT,ISPACE,IUSED INTEGER TYPE,HDSN(14),DISP(3),VOL(2),LABEL(3),IDCB(4), + UNIT(2),ISPACE(4),IUSED(5) COMMON/FATSPA/CHSPAC CHARACTER*4 CHSPAC +KEEP,FATNET. PARAMETER (NERRS=4) DIMENSION IFATRC(NERRS),IRETRY(NERRS) +KEEP,SLATE. COMMON/SLATE/IS(40) INTEGER IS +KEEP,SLATEX. COMMON/SLATEX_/IS(40) INTEGER IS +KEEP,FAT. PARAMETER (LURCOR=200000) COMMON/FAT/IXSTOR,IXDIV,IFENCE(2),LEV,LEVIN,BLVECT(LURCOR) DIMENSION LQ(999),IQ(999),Q(999) EQUIVALENCE (IQ(1),Q(1),LQ(9)),(LQ(1),LEV) +KEEP,FATLNK. * COMMON/FATLNK/LOPNBK,LCLSBK,LCP1BK,LCP2BK +KEEP,FATUSR. * COMMON /USRLNK/LUSRK1,LUSRBK,LADDBK,LUSRLS +KEEP,FMAXCOP. * * The following statement limits the maximum number of copies * of a file that can exist, i.e. the maximum number of entries * with the same generic name * PARAMETER (MAXCOP=100) +KEEP,FMNKEYS. PARAMETER (LKEYFA=10) +KEEP,FATOUT. COMMON/FATOUT/OUTPUT,LPIPE CHARACTER*80 OUTPUT +KEEP,FARNGE. * NFRNGE - range count (e.g. [8:10] = 3) * IFRNGE - 8,9,10 (in previous example) COMMON/FARNGE/NFRNGE(20),IFRNGE(100,20), + IFELEM(100,20),IFVAL(100,20) +KEEP,FAEXCM. For FMEXTR COMMON/FAEXCM/NFILES,NBAD +CDE,FATOPTD. +KEEP,FAMUCM. For FMMODU COMMON/FAMUCM/IOPT,IWORDS(10),CHUCOM,CHUFRM,CHFILE CHARACTER*80 CHUCOM CHARACTER*4 CHUFRM CHARACTER*20 CHFILE +CDE,FATOPTD. +KEEP,FAHUCM. For FMHUNT +CDE,FMNKEYS. COMMON/FAHUCM/KEYH(LKEYFA),CHFILE CHARACTER*255 CHFILE +KEEP,FALNCM. For FMRMLN/FALN COMMON/FALNCM/LWRITE,NLINKS,NFILES,IOPTTD,IOPTTF,IOPTTP,IOPTTR +KEEP,FASECM. For FMSEAC COMMON/FASECM/LWRITE,NFILES,NDIRS,NMATCH,IOPT, + LDSN,LHOST,LVID,LUSER,LFORM,LCOMM,LSTR, + DSN,HOST,VID,USER,CHFILE,UFORM,COMM,CHSTR CHARACTER*255 CHFILE,CHSTR CHARACTER*255 HOST,VID,USER CHARACTER*255 DSN,UFORM,COMM +CDE,FATOPTD. +KEEP,FALSCM. For FMLS(C) COMMON/FALSCM/LWRITE,NFILES,NFILT,NDIRT,IOPT,CHFILE CHARACTER*20 CHFILE +CDE,FATOPTD. +KEEP,FAFCCM. For FMFC COMMON/FAFCCM/LWRITE,IOPTD,IOPTF,IOPTL,IOPTZ, + NFOUND,NMATCH,NDIRT,CHFILE CHARACTER*20 CHFILE +KEEP,FATSEA. COMMON/FATSEA/IDCREA,ITCREA,JDCREA,JTCREA, + IDCATA,ITCATA,JDCATA,JTCATA, + IDLAST,ITLAST,JDLAST,JTLAST, + IUSER(2,10) +KEEP,FATUWD. COMMON/FATUWD/IFUSER(2,10) +KEEP,FATKEY. COMMON/FATKEY/NUMKEY,MFMKEY(KMXKEY),CHKEY CHARACTER*8 CHKEY +KEEP,FATLCC. * * Location code definitions (from FATMEN.LOCCODES) * PARAMETER (MXLCFA=99) CHARACTER*255 CHLOCF COMMON/FATLCC/NKLCFA,NLCCFA(MXLCFA),CHLOCF(MXLCFA) +KEEP,FATLOC. COMMON/FATLOC/NUMLOC,MFMLOC(KMXLOC) +KEEP,FATCPL. COMMON/FATCPL/NUMCPL,MFMCPL(KMXCPL) +KEEP,FATMTP. COMMON/FATMTP/NUMMTP,MFMMTP(KMXMTP) +KEEP,FATLUN. COMMON/FATLUN/NUMLUN,MFMLUN(KMXLUN),MFMLUA(KMXLUN) +KEEP,FATSEL. * * Common to store ranges for KEYS (for FATMEN selection) * COMMON/FATSEL/MRMTFA(2),MRCLFA(2),MRLCFA(2) +KEEP,FATINFO. * * Common to store FATMEN information per LUN * Access method (disk, stage, setup) and filemode (CMS only) * Virtual address for tape drive * This information is set by FMOPEN/FIND/MAKE and subsequently * used by FMCLOS. * * IFMODE: 0: FZin, 1: FZout, 2: RZ * JFMODE: ICFOP from FMOPEN (Fortran, C, package I/O) * LFMODE: 1=disk, 2=stage, 3=tape * COMMON/FATINF/IVADDR(99),IDEV(99), IFMODE(99), + JFMODE(99),LFMODE(99),IFPNTR(99),CHMODE(99) CHARACTER*1 CHMODE +KEEP,FATOSET. DO 9999 I=1,36 9999 IOPT(I) = 1 +KEEP,FATOPT0. DIMENSION IOPT(36) EQUIVALENCE (IOPT(1),IOPTA),(IOPT(2),IOPTB),(IOPT(3),IOPTC), + (IOPT(4),IOPTD),(IOPT(5),IOPTE),(IOPT(6),IOPTF), + (IOPT(7),IOPTG),(IOPT(8),IOPTH),(IOPT(9),IOPTI), + (IOPT(10),IOPTJ),(IOPT(11),IOPTK),(IOPT(12),IOPTL), + (IOPT(13),IOPTM),(IOPT(14),IOPTN),(IOPT(15),IOPTO), + (IOPT(16),IOPTP),(IOPT(17),IOPTQ),(IOPT(18),IOPTR), + (IOPT(19),IOPTS),(IOPT(20),IOPTT),(IOPT(21),IOPTU), + (IOPT(22),IOPTV),(IOPT(23),IOPTW),(IOPT(24),IOPTX), + (IOPT(25),IOPTY),(IOPT(26),IOPTZ),(IOPT(27),IOPT1), + (IOPT(28),IOPT2),(IOPT(29),IOPT3),(IOPT(30),IOPT4), + (IOPT(31),IOPT5),(IOPT(32),IOPT6),(IOPT(33),IOPT7), + (IOPT(31),IOPT5),(IOPT(32),IOPT6),(IOPT(33),IOPT7), + (IOPT(34),IOPT8),(IOPT(35),IOPT9),(IOPT(36),IOPT0) CHARACTER*36 ALFNUM +KEEP,FATOPT1. DATA ALFNUM/'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'/ +KEEP,FATOPTD. +CDE,FATOPT0. +CDE,FATOPT1. +KEEP,FATOPTS. CHARACTER*(*) CHOPT +CDE,FATOPTD. CALL FMOPTC(CHOPT,ALFNUM,IOPT) * CALL UOPTC(CHOPT,ALFNUM,IOPT) +KEEP,FATOPTC. CALL FMOPTC(CHOPT,ALFNUM,IOPT) +KEEP,TMSREP. PARAMETER (LENREP=20) CHARACTER*132 TMSREP(LENREP) +KEEP,TMSDEF0. CHARACTER*6 DENS CHARACTER*8 LIB CHARACTER*4 LABTYP CHARACTER*1 MNTTYP CHARACTER*8 MODEL CHARACTER*7 ROBMAN(2) +KEEP,TMSDEF1. DATA ROBMAN(1)/'-Robot '/,ROBMAN(2)/'-Manual'/ +KEEP,TMSDEF. +CDE,TMSDEF0. +CDE,TMSDEF1. +KEEP,FATVID0. * * Sequence FATVIDP - table of VID prefices * CHARACTER*8 PREVID(6) INTEGER NTMS PARAMETER (NTMS=6) +KEEP,FATVID1. DATA PREVID(1) /'CERN '/,PREVID(2) /'IN2P3 '/, + PREVID(3) /'SACLAY '/,PREVID(4) /'DESY '/, + PREVID(5) /'RAL '/,PREVID(6) /'SEFT '/ +KEEP,FATVIDP. +CDE,FATVID0. +CDE,FATVID1. +KEEP,FATFORM0. * * Sequence FATFORM. File format (MFLFFA) and record format (MRFMFA) * definitions * PARAMETER (NFATFM=21) CHARACTER*4 FATFRM(NFATFM) PARAMETER (NRECFM=8) CHARACTER*4 FRCFM(NRECFM) INTEGER FMXBLK,FMXREC > * > * New tapes support block lengths 8 times ANSI standard > * PARAMETER (FMXBLK=65536) PARAMETER (FMXBLK=65536) * PARAMETER (FMXREC=8192) * PARAMETER (FMXREC=8192) +KEEP,FATFORM1. DATA FATFRM(1)/'FZ '/, + FATFRM(2)/'FA ' /, + FATFRM(3)/'FX ' /, + FATFRM(4)/'FFX ' /, + FATFRM(5)/'RZ ' /, + FATFRM(6)/'RX ' /, + FATFRM(7)/'EP ' /, + FATFRM(8)/'AS ' /, + FATFRM(9)/'UN ' /, + FATFRM(10)/'DA ' /, + FATFRM(11)/'FXN ' /, + FATFRM(12)/'FPT ' /, + FATFRM(13)/'FPS ' /, + FATFRM(14)/'FPD ' /, + FATFRM(15)/'FPK ' /, + FATFRM(16)/'FPO ' /, + FATFRM(17)/'YBB ' /, + FATFRM(18)/'YBD ' /, + FATFRM(19)/'RWN ' /, + FATFRM(20)/'CWN ' /, + FATFRM(21)/'EBCD' / DATA FRCFM(1)/'F '/, + FRCFM(2)/'FB '/, + FRCFM(3)/'V '/, + FRCFM(4)/'VB '/, + FRCFM(5)/'VBS '/, + FRCFM(6)/'VS '/, + FRCFM(7)/'U '/, + FRCFM(8)/'RMS '/ +KEEP,FATFORM. +CDE,FATFORM0. +CDE,FATFORM1. +KEEP,FATSTG. * * Sequence FATSTG. Media size and density definitions * plus stage path name (first for L3) * COMMON/FATSTG/ISIZSG,STGPTH CHARACTER*255 STGPTH +KEEP,FATTYP. Media type definitions PARAMETER (NMTYP=100) COMMON/FATTYP/NFMTYP,CHMTYP,CHMGEN,CHMSIZ, + CHMDEN,CHMMNT,CHMLAB,MEDSIZ, + MEDDEN,MEDHWM,MEDMFL,MEDMFS INTEGER NFMTYP INTEGER MEDSIZ(NMTYP),MEDDEN(NMTYP), + MEDHWM(NMTYP),MEDMFL(NMTYP), + MEDMFS(NMTYP) CHARACTER*8 CHMTYP(NMTYP),CHMGEN(NMTYP), + CHMSIZ(NMTYP),CHMDEN(NMTYP), + CHMMNT(NMTYP),CHMLAB(NMTYP) +KEEP,FATMED0. Default media attributes PARAMETER (NMEDIA=14) * * FATMEN media type * DIMENSION MFMMED(NMEDIA) * * Generic device type * CHARACTER*8 MFMGEN(NMEDIA) * * Physical device type * CHARACTER*8 MFMTYP(NMEDIA) * * Default density * CHARACTER*8 MFMDEN(NMEDIA) * * Media size in Megabytes * CHARACTER*8 MFMSIZ(NMEDIA) * * Default mount type * CHARACTER*1 MFMMNT(NMEDIA) * * Default label type * CHARACTER*2 MFMLAB(NMEDIA) +KEEP,FATMED1. * SYSREQ TMS Q DEVTYPES * TMS Model DATA MFMTYP(1)/'DISK'/,MFMTYP(2)/'3480'/, + MFMTYP(3)/'3420'/,MFMTYP(4)/'8200'/, + MFMTYP(5)/'8500'/,MFMTYP(6)/'3490'/, + MFMTYP(7)/'DAT60'/,MFMTYP(8)/'DAT90'/, + MFMTYP(9)/'3490E'/,MFMTYP(10)/'AMPEX'/, + MFMTYP(11)/'REDWOOD'/,MFMTYP(12)/'DLT2'/, + MFMTYP(13)/'DAT120'/,MFMTYP(14)/'3590'/ * TMS Sort DATA MFMGEN(1)/'DISK'/,MFMGEN(2)/'CT1 '/, + MFMGEN(3)/'TAPE'/,MFMGEN(4)/'8MM '/, + MFMGEN(5)/'8MM '/,MFMGEN(6)/'CT2 '/, + MFMGEN(7)/'DAT '/,MFMGEN(8)/'DAT '/, + MFMGEN(9)/'CT2E'/,MFMGEN(10)/'DD2 '/, + MFMGEN(11)/'DD3 '/,MFMGEN(12)/'DLT '/, + MFMGEN(13)/'DAT '/,MFMGEN(14)/'NTP '/ * TMS density code DATA MFMDEN(1)/'N/A '/,MFMDEN(2)/'38K '/, + MFMDEN(3)/'6250'/,MFMDEN(4)/'43200'/ + MFMDEN(5)/'86400'/,MFMDEN(6)/'38KDC'/, + MFMDEN(7)/'DDSC'/,MFMDEN(8)/'DDSC'/, + MFMDEN(9)/'....'/,MFMDEN(10)/'....'/, + MFMDEN(11)/'....'/,MFMDEN(12)/'10GC'/, + MFMDEN(13)/'DDSC'/,MFMDEN(14)/'10GC'/ * Maximum capacity DATA MFMSIZ(1)/'N/A'/, MFMSIZ(2)/'200'/, + MFMSIZ(3)/'200'/, MFMSIZ(4)/'2300'/, + MFMSIZ(5)/'5000'/,MFMSIZ(6)/'1000'/, + MFMSIZ(7)/'2000'/,MFMSIZ(8)/'5000'/, + MFMSIZ(9)/'2000'/,MFMSIZ(10)/'25000'/, + MFMSIZ(11)/'40000'/,MFMSIZ(12)/'10000'/, + MFMSIZ(13)/'4000'/,MFMSIZ(14)/'10000'/ * Default mount type DATA MFMMNT(1)/'M'/, MFMMNT(2)/'M'/, + MFMMNT(3)/'M'/, MFMMNT(4)/'M'/, + MFMMNT(5)/'M'/, MFMMNT(6)/'M'/, + MFMMNT(7)/'M'/, MFMMNT(8)/'M'/, + MFMMNT(9)/'M'/, MFMMNT(10)/'M'/, + MFMMNT(11)/'M'/, MFMMNT(12)/'M'/, + MFMMNT(13)/'M'/, MFMMNT(14)/'M'/ * Default label type DATA MFMLAB(1)/' '/, MFMLAB(2)/'SL'/, + MFMLAB(3)/'SL'/, MFMLAB(4)/'SL'/, + MFMLAB(5)/'SL'/, MFMLAB(6)/'SL'/, + MFMLAB(7)/'SL'/, MFMLAB(8)/'SL'/, + MFMLAB(9)/'SL'/, MFMLAB(10)/'SL'/, + MFMLAB(11)/'SL'/, MFMLAB(12)/'SL'/, + MFMLAB(13)/'SL'/, MFMLAB(14)/'SL'/ * * Number of media types defined * DATA NFTYPS/14/ * * TMS density codes * * Model Density Code P * ------ -------- -------- - * 3420 1600 1600 Y * 3420 6250 6250 Y * 3480 38KC 15 Y * 3480 38KD 20 Y * 3480 38K 38000 N * 3480 38000 38000 Y * 3490 38KCD 10 N * 3490 38KDC 10 Y * 8200 8200 8200 Y * 8200 8500 8500 Y +KEEP,FATMED. +CDE,FATMED0. +CDE,FATMED1. +KEEP,FATSHO. COMMON/FATSHO/CWDSHO CHARACTER*255 CWDSHO +KEEP,FATUPD. COMMON/FATUPD/MAXDEF,NGRDEF,NUPDT,MAXUPD,NGROUP,MAXVIO,NVIOL +KEEP,FMPATH. CHARACTER*255 PATH,FILE1,FILE2,CDIR COMMON/FMKCOM/LCDIR,CDIR * +KEEP,FATSYS. * * Common to store name of service machine (IBM) * or default directory (VAX, Unix) * COMMON/FATSYS/STRMLF,IFMODX,SERNAM,SERMOD,FATNOD,DEFAULT, + FATTOP,TOPDIR,LOCALQ * Mode at which server disk is accessed (VM) CHARACTER*1 SERMOD * Name of service machine CHARACTER*20 SERNAM CHARACTER*64 FATTOP CHARACTER*16 TOPDIR CHARACTER*80 FATNOD CHARACTER*132 LOCALQ CHARACTER*132 DEFAULT LOGICAL STRMLF +KEEP,FTTBUG. INTEGER IDEBFA, IDIVFA, IKDRFA, KOFSFA, KOFUFA, LBFXFA + , LSAVFA, LTOPFA, LBBKFA, LBGNFA, LTDSFA, LBDSFA + , LPRTFA, NTOPFA, LUFZFA, IOUPFA, IOBKFA, IODSFA + , LLNLFA, LLNHFA +KEEP,FATUSE. +SEQ,FTTBUG,IF=TYPE. COMMON /FATUSE/ IDEBFA, IDIVFA, IKDRFA, KOFSFA, KOFUFA, LBFXFA + , LSAVFA, LTOPFA, LBBKFA, LBGNFA, LTDSFA, LBDSFA + , LPRTFA, NTOPFA, LUFZFA, IOUPFA, IOBKFA, IODSFA + , LLNLFA, LLNHFA +KEEP,FATBUG. +SEQ,FTTBUG,IF=TYPE. COMMON /FATUSE/ IDEBFA, IDIVFA, IKDRFA, KOFSFA, KOFUFA, LBFXFA + , LSAVFA, LTOPFA, LBBKFA, LBGNFA, LTDSFA, LBDSFA + , LPRTFA, NTOPFA, LUFZFA, IOUPFA, IOBKFA, IODSFA + , LLNLFA, LLNHFA +KEEP,FATBANK. COMMON /FABANK/FATFEN(22),LQ(9) DIMENSION IQ(2), Q(2) EQUIVALENCE (IQ(1),Q(1),LQ(9)) * COMMON /QUEST/ IQUEST(100) * PARAMETER (IKTYFA=33, KNSDFA=23, KLSDFA=26, MAXLFA=128) * top directory fan-out bank "UPFA" PARAMETER (MNOPFA=1, MLUNFA=2, MFLGFA=3, MTOTFA=4) PARAMETER (MCRDFA=5, MINPFA=6, MOUTFA=7, MTOPFA=8) PARAMETER (MNCHFA=9, MCHRFA=10, NDUPFA=MCHRFA+31) PARAMETER (NSLUFA=2) * Book keeping "BKFA" PARAMETER (KLBKFA=1) PARAMETER (MSTAFA=1,MPNTFA=2,MCGNFA=3) PARAMETER (NWBKFA=3) * Generic names bank PARAMETER (KLGNFA=2) * COMMON /FATSTO/ LDIRFA, LBOUT, LJNKFA COMMON /FATUSE/ IDEBFA, IDIVFA, IKDRFA, KOFSFA, KOFUFA, LBFXFA + , LSAVFA, LTOPFA, LBBKFA, LBGNFA, LTDSFA, LBDSFA + , LPRTFA, NTOPFA, LUFZFA, IOUPFA, IOBKFA, IODSFA + , LLNLFA, LLNHFA COMMON /FATSER/ LNEWFA, LOLDFA, LCOMP1, LCOMP2, LBANKR COMMON /FATBNK/ LBKLUN(99) * PARAMETER (MXDMFA=100) * COMMON /FATKYS/ IOTYFA(MXDMFA), KEYVFA(MXDMFA), NKEYFA, NWKYFA COMMON /FATKYS/ IOTYFA(MXDMFA), KEYVFA(MXDMFA), NWKYFA * +KEEP, FATBANK%, IF=$DOC. +SEQ, FATBANK. fan-out bank offsets MNOPFA Number of open files belonging to such "data base" MLUNFA logical unit of the RZ-file MFLGFA MTOTFA MCRDFA MINPFA MOUTFA MTOPFA MNCHFA number of character of the top directory name MCHRFA top directory name NDUPFA total number of word in the top directory NSLUFA Number of "system links in "UPFA" bank Book-keeping bank "BKFA" KLBKFA link offset in UPFA NWBKFA number of word for each "file" MSTAFA file status MPNTFA pointer in the generic names bank MCGNFA number of characters used by the gen.name Generic names bank "GNFA" KLGNFA link offset in UPFA -5 number of word used +KEEP, FTTPARA. INTEGER MKSRFA,MKFNFA,MKCLFA,MKMTFA,MKLCFA,MKNBFA,NKDSFA INTEGER MFQNFA,MHSNFA,MCPLFA,MMTPFA,MLOCFA,MHSTFA,MHOSFA, + MVSNFA,MVIDFA,MVIPFA,MDENFA,MVSQFA,MFSQFA,MSRDFA, + MERDFA,MSBLFA,MEBLFA,MRFMFA,MRLNFA,MBLNFA,MFLFFA, + MFUTFA,MCRTFA,MCTTFA,MLATFA,MCURFA,MCIDFA,MCNIFA, + MCJIFA,MFPRFA,MSYWFA,MUSWFA,MUCMFA,NWDSFA,MFSZFA, + MUSCFA,MDRPFA,MKDRFA INTEGER NFQNFA,NHSNFA,NHSTFA,NHOSFA,NVSNFA,NVIDFA,NFLFFA, + NRFMFA,NFUTFA,NCURFA,NCIDFA,NCNIFA,NCJIFA,NUCMFA INTEGER MFIEEE,MFEEEI,MFIBM, MFCRAY,MFVAX ,MFUNIX,MFULTR INTEGER KMXLOC,KMXCPL,KMXMTP,KMXLUN INTEGER MFMLOC,MFMCPL,MFMMTP,MFMLUN INTEGER KMXKEY INTEGER NCPLFA INTEGER NMTPFA INTEGER NLOCFA INTEGER NVIPFA INTEGER NDENFA INTEGER NVSQFA INTEGER NFSQFA INTEGER NSRDFA INTEGER NERDFA INTEGER NSBLFA INTEGER NEBLFA INTEGER NRLNFA INTEGER NBLNFA INTEGER NCRTFA INTEGER NCTTFA INTEGER NLATFA INTEGER NFPRFA INTEGER NFSZFA INTEGER NUSCFA INTEGER NUSWFA INTEGER NSYWFA +KEEP,FATPARA. * Start of FATMEN sequence FATPARA +SEQ,FTTPARA. * ** *** Data set bank mnemonics * * Keys PARAMETER ( MKSRFA= 1, MKFNFA= 2, MKCLFA=7, MKMTFA=8 1 ,MKLCFA= 9, MKNBFA=10, NKDSFA=10,MKDRFA=2) * ** *** Bank offsets * PARAMETER ( MFQNFA= 1, MHSNFA= 65, MCPLFA= 67, MDRPFA= 67 1 ,MMTPFA= 68, MLOCFA= 69, MHSTFA= 70, MHOSFA= 74 2 ,MVSNFA= 77, MVIDFA= 79, MVIPFA= 81, MDENFA= 82 3 ,MVSQFA= 83, MFSQFA= 84, MSRDFA= 85, MERDFA= 86 4 ,MSBLFA= 87, MEBLFA= 88, MRFMFA= 89, MRLNFA= 90 5 ,MBLNFA= 91, MFLFFA= 92, MFUTFA= 93, MCRTFA= 94 6 ,MCTTFA= 95, MLATFA= 96, MCURFA= 97, MCIDFA= 99 7 ,MCNIFA=101, MCJIFA=103, MFPRFA=105, MSYWFA=106 8 ,MUSWFA=116, MUCMFA=126, NWDSFA=145 9 ,MFSZFA=MSYWFA,MUSCFA=MSYWFA+1) * ** *** Lengths of character fields in bytes * PARAMETER ( NFQNFA = (MHSNFA-MFQNFA)*4, + NHSNFA = (MCPLFA-MHSNFA)*4, + NHSTFA = (MHOSFA-MHSTFA)*4, + NHOSFA = (MVSNFA-MHOSFA)*4, + NVSNFA = (MVIDFA-MVSNFA)*4, + NVIDFA = (MVIPFA-MVIDFA)*4, + NRFMFA = (MRLNFA-MRFMFA)*4, + NFLFFA = (MFUTFA-MFLFFA)*4, + NFUTFA = (MCRTFA-MFUTFA)*4, + NCURFA = (MCIDFA-MCURFA)*4, + NCIDFA = (MCNIFA-MCIDFA)*4, + NCNIFA = (MCJIFA-MCNIFA)*4, + NCJIFA = (MFPRFA-MCJIFA)*4, + NUCMFA = (NWDSFA-MUCMFA)*4) * ** *** Lengths of integer fields in words * PARAMETER ( NCPLFA = 1 ) PARAMETER ( NMTPFA = 1 ) PARAMETER ( NLOCFA = 1 ) PARAMETER ( NVIPFA = 1 ) PARAMETER ( NDENFA = 1 ) PARAMETER ( NVSQFA = 1 ) PARAMETER ( NFSQFA = 1 ) PARAMETER ( NSRDFA = 1 ) PARAMETER ( NERDFA = 1 ) PARAMETER ( NSBLFA = 1 ) PARAMETER ( NEBLFA = 1 ) PARAMETER ( NRLNFA = 1 ) PARAMETER ( NBLNFA = 1 ) PARAMETER ( NCRTFA = 1 ) PARAMETER ( NCTTFA = 1 ) PARAMETER ( NLATFA = 1 ) PARAMETER ( NFPRFA = 1 ) PARAMETER ( NFSZFA = 1 ) PARAMETER ( NUSCFA = 1 ) PARAMETER ( NUSWFA = 10 ) PARAMETER ( NSYWFA = 10 ) * * Definitions of 'Copy Level' (i.e. Data representation) * These definitions adhere to those used in FPACK * * PARAMETER (MFIEEE= 1, MFEEEI= 5, MFIBM =2, MFCRAY= 4, PARAMETER (MFIEEE= 1, MFEEEI= 4, MFIBM =2, MFCRAY= 5, + MFVAX = 3) * * Maximum # of location codes, copy levels, media types and luns * PARAMETER (KMXLOC=99, KMXCPL=99, KMXMTP=99, KMXLUN=99) PARAMETER (KMXKEY=99) INTEGER IBTYPE(35) INTEGER IBOFFS(35) INTEGER IBLENG(35) CHARACTER*6 CHBANK(35) * End of FATMEN sequence FATPARA +KEEP,FMDREP. PARAMETER (NWFFAT=5) COMMON/FMDREP/CHDREP CHARACTER*30 CHDREP(NWFFAT) +KEEP,FATCHAR. * ** *** Types (1 = integer, 2 = character, 3 = time) * IBTYPE( 1)=2 IBTYPE( 2)=2 IBTYPE( 3)=1 IBTYPE( 4)=1 IBTYPE( 5)=1 IBTYPE( 6)=2 IBTYPE( 7)=2 IBTYPE( 8)=2 IBTYPE( 9)=2 IBTYPE(10)=1 IBTYPE(11)=1 IBTYPE(12)=1 IBTYPE(13)=1 IBTYPE(14)=1 IBTYPE(15)=1 IBTYPE(16)=1 IBTYPE(17)=1 IBTYPE(18)=2 IBTYPE(19)=1 IBTYPE(20)=1 IBTYPE(21)=2 IBTYPE(22)=2 IBTYPE(23)=3 IBTYPE(24)=3 IBTYPE(25)=3 IBTYPE(26)=2 IBTYPE(27)=2 IBTYPE(28)=2 IBTYPE(29)=2 IBTYPE(30)=1 IBTYPE(31)=1 IBTYPE(32)=1 IBTYPE(33)=2 IBTYPE(34)=1 IBTYPE(35)=1 * ** *** Offsets * IBOFFS( 1)=MFQNFA IBOFFS( 2)=MHSNFA IBOFFS( 3)=MCPLFA IBOFFS( 4)=MMTPFA IBOFFS( 5)=MLOCFA IBOFFS( 6)=MHSTFA IBOFFS( 7)=MHOSFA IBOFFS( 8)=MVSNFA IBOFFS( 9)=MVIDFA IBOFFS(10)=MVIPFA IBOFFS(11)=MDENFA IBOFFS(12)=MVSQFA IBOFFS(13)=MFSQFA IBOFFS(14)=MSRDFA IBOFFS(15)=MERDFA IBOFFS(16)=MSBLFA IBOFFS(17)=MEBLFA IBOFFS(18)=MRFMFA IBOFFS(19)=MRLNFA IBOFFS(20)=MBLNFA IBOFFS(21)=MFLFFA IBOFFS(22)=MFUTFA IBOFFS(23)=MCRTFA IBOFFS(24)=MCTTFA IBOFFS(25)=MLATFA IBOFFS(26)=MCURFA IBOFFS(27)=MCIDFA IBOFFS(28)=MCNIFA IBOFFS(29)=MCJIFA IBOFFS(30)=MFPRFA IBOFFS(31)=MSYWFA IBOFFS(32)=MUSWFA IBOFFS(33)=MUCMFA IBOFFS(34)=MFSZFA IBOFFS(35)=MUSCFA * ** *** Lengths * IBLENG( 1)=NFQNFA IBLENG( 2)=NHSNFA IBLENG( 3)=NCPLFA IBLENG( 4)=NMTPFA IBLENG( 5)=NLOCFA IBLENG( 6)=NHSTFA IBLENG( 7)=NHOSFA IBLENG( 8)=NVSNFA IBLENG( 9)=NVIDFA IBLENG(10)=NVIPFA IBLENG(11)=NDENFA IBLENG(12)=NVSQFA IBLENG(13)=NFSQFA IBLENG(14)=NSRDFA IBLENG(15)=NERDFA IBLENG(16)=NSBLFA IBLENG(17)=NEBLFA IBLENG(18)=NRFMFA IBLENG(19)=NRLNFA IBLENG(20)=NBLNFA IBLENG(21)=NFLFFA IBLENG(22)=NFUTFA IBLENG(23)=NCRTFA IBLENG(24)=NCTTFA IBLENG(25)=NLATFA IBLENG(26)=NCURFA IBLENG(27)=NCIDFA IBLENG(28)=NCNIFA IBLENG(29)=NCJIFA IBLENG(30)=NFPRFA IBLENG(31)=NSYWFA IBLENG(32)=NUSWFA IBLENG(33)=NUCMFA IBLENG(34)=NFSZFA IBLENG(35)=NUSCFA * ** *** Character names of offsets * CHBANK( 1)='MFQNFA' CHBANK( 2)='MHSNFA' CHBANK( 3)='MCPLFA' CHBANK( 4)='MMTPFA' CHBANK( 5)='MLOCFA' CHBANK( 6)='MHSTFA' CHBANK( 7)='MHOSFA' CHBANK( 8)='MVSNFA' CHBANK( 9)='MVIDFA' CHBANK(10)='MVIPFA' CHBANK(11)='MDENFA' CHBANK(12)='MVSQFA' CHBANK(13)='MFSQFA' CHBANK(14)='MSRDFA' CHBANK(15)='MERDFA' CHBANK(16)='MSBLFA' CHBANK(17)='MEBLFA' CHBANK(18)='MRFMFA' CHBANK(19)='MRLNFA' CHBANK(20)='MBLNFA' CHBANK(21)='MFLFFA' CHBANK(22)='MFUTFA' CHBANK(23)='MCRTFA' CHBANK(24)='MCTTFA' CHBANK(25)='MLATFA' CHBANK(26)='MCURFA' CHBANK(27)='MCIDFA' CHBANK(28)='MCNIFA' CHBANK(29)='MCJIFA' CHBANK(30)='MFPRFA' CHBANK(31)='MSYWFA' CHBANK(32)='MUSWFA' CHBANK(33)='MUCMFA' CHBANK(34)='MFSZFA' CHBANK(35)='MUSCFA' +KEEP,FABALQ. COMMON/FABALQ/NBLOKS +KEEP,FATREG,IF=IBMMVS. MACRO REGISTER R0 EQU 0 R1 EQU 1 R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 MEND +KEEP,FATBEG,IF=IBMMVS. MACRO &NAME BEG &ID,&MODE=REUS,&WKSIZE=0,&SP=0,&BASE=12,&RMODE=24 GBLC &RMD &RMD SETC '&RMODE' &NAME CSECT AIF ('&RMODE' EQ '24').NOT311 &NAME RMODE ANY &NAME AMODE ANY .NOT311 ENTRY &NAME USING *,&BASE ANF &ID,MODE=&MODE,WKSIZE=&WKSIZE,SP=&SP,BASE=&BASE MEND +KEEP,FATANF,IF=IBMMVS. MACRO &NAME ANF &ID,&MODE=REUS,&WKSIZE=0,&SP=0,&BASE=12 GBLC &DY0ID,&MD LCLA &A,&B,&D LCLC &E,&F &F SETC '&SYSNDX' &MD SETC '&MODE' * ANF VERSION 2.4 (SUPPORTS PRNT MACRO AND EQUATED WORKSIZE) .* DIE VORIGE VERSION HEISST ANF8 AIF ((T'&WKSIZE NE 'N') AND (T'&WKSIZE NE 'U')).ERROR4 AIF (T'&SP NE 'N').ERROR5 AIF (&SP GT 255).ERROR6 AIF (T'&BASE NE 'N').ERROR7 AIF ((&BASE GT 12) OR (&BASE LT 4)).ERROR8 AIF ('&MODE' NE 'REUS').RENT AIF ('&ID' EQ '').NULLID AIF ('&ID' EQ '*').SPECID &D SETA K'&ID AIF (&D GT 8).ERROR1 &A SETA ((K'&ID+4)/4)*4+80 &E SETC '&ID' CNOP 0,4 &NAME B &A.(0,15) BRANCH AROUND ID AND SA DC AL1(&D) LENGTH OF ID DC CL&D'&E' AGO .CONTA .NULLID ANOP CNOP 0,4 &NAME B 80(0,15) BRANCH AROUND SA AGO .CONTA .SPECID AIF ('&NAME' EQ '').CSECTN &E SETC '&NAME' &A SETA 1 .CONTB AIF ('&E'(1,&A) EQ '&E').CONTC &A SETA &A+1 AGO .CONTB .CONTC ANOP AIF ('&MODE' EQ 'RENT').CONTE &B SETA ((&A+4)/4)*4+80 CNOP 0,4 &NAME B &B.(0,15) BRANCH AROUND ID AND SA DC AL1(&A) LENGTH OF ID DC CL&A'&E' AGO .CONTA .CSECTN AIF ('&SYSECT' EQ '').ERROR2 &E SETC '&SYSECT' &A SETA 1 AGO .CONTB .ERROR2 MNOTE 12,'CSECT NAME NOT SPECIFIED' AGO .NULLID .CONTA ANOP &DY0ID SETC '&SYSNDX' SAVE&F DC 19F'0' SAVE AREA STM 14,12,12(13) SAVE CALLER'S REGISTER LR &BASE,15 LOAD BASE LA 3,SAVE&F ADDRESS OF NEW SAVE AREA ST 3,8(13) FORWARD CHAIN L 3,32(13) RESTORE REG 3 ST 13,SAVE&F.+4 BACKWARD CHAIN LA 13,SAVE&F LOAD SAVE AREA REG MEXIT .ERROR1 MNOTE 12,'IDENTIFICATION FIELD TOO LONG' MEXIT .RENT ANOP AIF ('&MODE' NE 'RENT').ERROR3 AIF ('&ID' EQ '').RNULL AIF ('&ID' EQ '*').SPECID &D SETA K'&ID AIF (&D GT 8).ERROR1 &A SETA ((&D+2)/2)*2+4 &E SETC '&ID' &NAME B &A.(0,15) BRANCH AROUND ID DC AL1(&D) LENGTH OF ID DC CL&D'&E' STM 14,12,12(13) SAVE CALLER'S REGISTER AGO .CONTD .RNULL ANOP &NAME STM 14,12,12(13) SAVE CALLER'S REGISTER AGO .CONTD .CONTE ANOP &B SETA ((&A+2)/2)*2+4 &NAME B &B.(0,15) BRANCH AROUND ID DC AL1(&A) LENGTH OF ID DC CL&A'&E' STM 14,12,12(13) SAVE CALLER'S REGISTER .CONTD ANOP LR &BASE,15 LOAD BASE CNOP 0,4 ALIGN ON FULL WORD BOUNDARY BAL 1,*+8 BRANCH AROUND SUBPOOL AND LENGTH DC AL1(&SP) SUBPOOL ID DC AL3(&WKSIZE+88) LENGTH VALUE L 0,0(0,1) LOAD SP AND LENGTH SVC 10 ISSUE GETMAIN SVC XC 0(88,1),0(1) CLEAR CHAIN FIELDS AND SAVE AREA MVI 8(1),X'FF' INDICATE LAST ON CHAIN MVC 12(4,1),*-20 SAVE LENGTH AN SUBPOOL MVC 0(4,1),12(13) LA 15,FR&F ST 15,12(13) ST 13,20(1) BACKWARD CHAIN LR 15,13 SAVE OLD SAVE AREA POINTER LA 13,16(1) LOAD NEW SA REGISTER ST 13,8(15) FORWARD CHAIN LM 15,1,16(15) RESTORE ALL REGISTER B FO&F FR&F ST 15,16(13) SAVE RETURN CODE LA 0,16 LENGTH OF PREFIX L 1,8(13) SAVE OLD SA POINTER SR 1,0 POINT TO PREFIX MVC 12(4,13),0(1) L 14,8(1) LOAD 1-ST CHAIN POINTER L 0,12(1) LOAD 1-ST SUBPOOL AND LENGTH BALR 10,0 B 12(10) L 14,0(1) LOAD CHAIN POINTER L 0,4(1) LOAD SUBPOOL AND LENGTH LA 1,0(1) CLEAR HIGH ORDER BYTE SVC 10 ISSUE FREEMAIN SVC LA 1,0(14) GET CHAIN POINTER C 14,36(10) LAST IN CHAIN BNZ 4(10) NO, BRANCH LM 14,12,12(13) RESTORE REGISTERS AFTER FREEMAIN BR 14 DC X'FF000000' FO&F EQU * MEXIT .ERROR3 MNOTE 12,'MODE=&MODE INVALID' MEXIT .ERROR4 MNOTE 12,'WKSIZE=&WKSIZE SHOULD BE SELF-DEFINING TERM OR NAME * FIELD OF AN ''EQU''' MEXIT .ERROR5 MNOTE 12,'SP=&SP SHOULD BE A SELF DEFINING TERM' MEXIT .ERROR6 MNOTE 12,'SP=&SP GREATER 255 SPECIFIED' MEXIT .ERROR7 MNOTE 12,'BASE=&BASE SHOULD BE A SELF DEFINING TERM' MEXIT .ERROR8 MNOTE 12,'BASE CAN BE ONLY 4 TO 12' MEND +KEEP,FATSCHL,IF=IBMMVS. MACRO &NAME SCHL &RET=,&MODE= &NAME L 13,4(13) RELOAD SA-REG AIF ('&RET' NE '').RETCODE LM 14,12,12(13) RELOAD REGISTERS BR 14 RETURN TO CALLER MEXIT .RETCODE AIF ('&RET'(1,1) EQ '(').REGIST AIF (T'&RET NE 'N').ADDRESS LA 15,&RET LOAD REG 15 WITH RET CODE AGO .FURTHER .REGIST AIF ('&RET(1)' EQ '15').FURTHER LR 15,&RET(1) LOAD REG 15 WITH SPECIF. REGISTER AGO .FURTHER .ADDRESS L 15,&RET LOAD REG 15 FROM STORAGE .FURTHER LM 0,12,20(13) RESTORE REG 0 TO 12 L 14,12(13) RESTORE REG 14 BR 14 RETURN TO CALLER MEND +KEEP, FATPARA%, IF=$DOC. +SEQ, FATPARA. K E Y S MKSRFA Key serial number MKFNFA File name MKCLFA Copy level MKMTFA Medium type MKLCFA Location type MKNBFA Number of bank in the data set linear chain NKDSFA Number of keys B A N K words field type length description (in words) --------- generic description ------------- (* = NOT NULL in ORACLE or SQL/DS tables - filled in by FMLIFT) 1-64 * fully qual. name H 64 in case of instance the generi name of the corresponding data set dataset name has format fn.ft on VM, where '.addr' may be omitted. 65-66 * host name H 2 in case of tape the nearest host to its physical location (maybe more words to clearly state the location (lab. bld. etc) would be needed) 67 * copy level I 1 0 master 1 duplicate 2 duplicate from a duplicate etc 68 * location code I 1 to find the nearest (FATMEN code 69 * medium type I 1 3=tape, 2=cartridge, 4=exabyte, 1=disk ................... 0=instance --------- disk description ------------- 70-73 host type H 4 only for disk files 74-76 operating syst. H 3 " --------- tape description ------------- 77-78 * VSN H 2 only for tapes 79-80 * VID H 2 " 81 VID prefix I 1 " 82 Density I 1 " 83 vol. seq. numb. I 1 " 84 * file seq. numb. I 1 " --------- file description ------------- 85 start record # I 1 86 end record # I 1 87 start block # I 1 88 end block # I 1 --------- physical description ------------- 89 record format H 1 90 record length I 1 (in words!) 91 block length I 1 " 106 file size I 1 (in Megabytes, rounded up = SYSWD0 to next integer) --------- logical description ------------- 92 * file format H 1 FATMEN oriented FZ=zebra native FA=zebra ascii FX=zebra exchange RZ=zebra RZ EP=EPIO AS=normal Ascii UN=unknown to FATMEN ............... 93 file user type H 1 user oriented and user defined --------- dates and times ------------- 94 creation date I 1 95 catalog. date I 1 96 last acc.date I 1 --------- creator identier ------------- 97-98 user name creat. H 2 "creator" user name 99-100 user id. " H 2 user id. UUUGG/UUU$GG or NFSID 101-102 node id. " H 2 node id. 103-104 job id. " H 2 job id. (user defined) --------- protections ------------- 105 file protect. I 1 (maybe just a pointer in a ACL definition bank) --------- user area ------------- 106-115 system words I 10 (reserved) 116-125 user words I 10 (user defined) 126-145 comment H 20 +PATCH,PAMEND. *