Daphne Installation Instructions Page 1 1 Help If you have problems contact: Tom Moog Bitnet: MOOG@ANLPHY Internet: MOOG@ANLPHY.PHY.ANL.GOV (numeric) MOOG@146.139.144.1 HEP Decnet: ANLPHY::MOOG (numeric) 46905::MOOG Telephone: 708-252-3073 FAX: 708-252-2864 2 Distribution Tape The distribution tape was created with the following command file: +---------------------------------------------------------------------------+ | $ inquire drive "Tape drive with initialized and mounted tape" | $ define tape 'drive' | $ inquire mode "AXP or VAX" | $ backup/ignore=label/interchange dap$disk:[daphne.exe...] - | tape:'mode'_exe.bac/save | $ backup/ignore=label/interchange dap$disk:[daphne.help] - | tape:'mode'_help.bac/save | $ backup/ignore=label/interchange dap$disk:[daphne]*.*;0,- | [daphne.libsource...]*.*;0,- | [daphne.ugs...]*.*;0,- | [daphne.msg...]*.*;0,- | [daphne.newhist...]*.*;0,- | [daphne.tek...]*.*;0,- | [daphne.tabgen...]*.*;0,- | [daphne.FV...]*.*;0,- | [daphne.SAP...]*.*;0,- | [daphne.d4100...]*.*;0,- | [daphne.ps...]*.*;0,- | [daphne.savcom...]*.*;0,- | [daphne.uh...]*.*;0,- | [daphne.uis...]*.*;0,- | [daphne.gentape...]*.*;0,- | [daphne.export...]*.*;0,- | [daphne.gaspan...]*.*;0,- | [daphne.xdsp...]*.*;0 - | [daphne.verify...]*.*;0 - | tape:'mode'_code.bac/save - | /exclude=(*.lis;*,*.sec;*,*.log;*,*.hs*;*,*.sav;*,login.com;*,- | *.jou;*,*.tjl;*,*.dif;*,*.tmp;*,*.junk;*,a.*;*,*.ev;*,*.dir;*,- | *.mai;*,- | *.tab,*.log1) | $ backup/ignore=label/interchange dap$disk:[daphne.help.docsrc] - | tape:'mode'_docsrc.bac/save +---------------------------------------------------------------------------+ Daphne Installation Instructions Page 2 Depending on the distribution kit requested this command file will be run once in VAX mode, once in AXP mode, or twice - in both VAX and AXP modes. The same source code is distributed with both versions. There are some sections of code and command file which are processor specific but these differences will normally be invisible to both the user and system manager. The first save set, _EXE.BAC, is the executables and everything necessary to make a running Daphne system (except the HELP files). It requires about 18,000 blocks. The next save set, _HELP.BAC, when restored will require about 4000 blocks in the directory [DAPHNE.HELP] for Daphne documentation and help files. The next save set, _CODE.BAC, contains the source for Daphne. except what is in earlier save sets. It will include a second set of *.EXE files which duplicates the first set and .LIS and .OBJ if they happened to exist at the time of the backup. These are the developer's version of these programs which can be modified without interfering with users. These files require about 65,000 blocks. On a VAX save set these will be VAX .EXE, .OBJ, and .OLB files. On an AXP save set these will be AXP .EXE, .OBJ, and .OLB files. The _CODE.BAC save set includes some programs which are useful for reading Daphne format tapes or histograms in systems which have not installed Daphne. Among these are Lisa subroutines for reading Daphne tapes, a program to convert Daphne event tapes to Oak Ridge format, and a program for converting many histogram formats to other histogram formats (e.g. Daphne .HS1 to PAW, or PAW to Oak Ridge format). The latter two programs were contributed by B. Crowell of Yale University. The last save set, _DOCSRC.BAC, requires about 4000 blocks for the RUNOFF source code for the Daphne documentation in [DAPHNE.HELP.DOCSRC] Daphne Installation Instructions Page 3 2.1 Disk Space Requirements Most users will to install only the executable files and the help files. This is the minimal set and requires about 20,000 blocks for the VAX version and about 30,000 blocks for the AXP version. Some space can be saved by deleting programs used only for acquisition, and by deleting documentation files. The following programs are for acquisition at Argonne: they can be deleted on a replay only system: EH*.EXE event handler routines EP*.EXE event processor routines MDV.EXE multibus allocation CDV.EXE camac allocation NSSORT.EXE acquisition sorting MSUVAXSORT*.* interface to the MSU/NSCL acquisition system Documentation files have the following extensions: *.MEM for standard line printer *.QMS for QMS laser printer *.QMSREV for QMS laser printer in reverse order The source code save set is about 200,000 blocks. In the source code save-set some object libraries are distributed in both VAX and AXP format. These can be identified with the extension of ".vaxolb" or ".axpolb". Files with these extensions may be deleted unless one needs to support both architectures. Some object libraries can be quite large: the Cern libraries in [DAPHNE.HBOOK} require about 40,000 blocks for both the VAX and AXP versions. Daphne Installation Instructions Page 4 2.2 Restoring Daphne from the Distribution Tape To restore the files from the distribution tape: 2.3 For Personal Use Suppose you want to install the Daphne programs from tape drive MFA0: to the directory DUA1:[SMITH.DAPHNE.EXE] and the Daphne help files to the directory DUA1:[SMITH.DAPHNE.HELP] Use the following commands: $ mount/foreign mfa0: $ backup mfa0:vax_exe.bac/select=([daphne.exe...]) - $_ dua1:[smith.daphne.exe...] $ backup mfa0:vax_help.bac/select=([daphne.help...]) - $_ dua1:[smith.daphne.help...] $ dismount mfa0: 2.4 For System-Wide Use Suppose you want to install Daphne programs from tape drive MFA0: to the directory DUA1:[DAPHNE.EXE] and the Daphne help files to the directory DUA1:[DAPHNE.HELP] Use the following commands: $ mount/foreign mfa0: $ backup mfa0:vax_exe.bac dua1:[*...] $ backup mfa0:vax_help.bac dua1:[*...] $ dismount mfa0: Daphne Installation Instructions Page 5 2.5 Access to VAX and AXP Versions on the Same Disk Normally the VAX and AXP versions will be placed on different disks: the VAX version will be on a VAX processor's disk and the AXP version on the disk of an AXP processor. In cases where you want both versions on the same disk the following procedure is recommended: Place the VAX version in DUA1:[DAPVAX.DAPHNE...]. Place the AXP version in DUA1:[DAPAXP.DAPHNE...]. Use the following logical names on VAX processors: $ define/job dap$disk:[dapVAX.]/translation=concealed Use the following logical names on AXP processors: $ define/job dap$disk:[dapAXP.]/translation=concealed 3 Logical Names 3.1 For Personal Use Place the following logical names in your LOGIN.COM file: $ define/job dap$disk dua1:[smith.]/translation=concealed (Smith's "disk") Please note the use of the rooted logical name ("[SMITH.]") and the concealed attribute to make a subdirectory look like a disk $ define/job dapexe dap$disk:[daphne.exe] (executables) $ define/job dapdir dap$disk:[daphne] (developer's directory) $ define/job daphlp dap$disk:[daphne.help] (help/documentation) $ define/group dapuserfunc dapexe:dapuserfunc.exe (null user function) The logical name DAPUSERFUNC must be in the GROUP or SYSTEM logical name table. This requires GRPNAM privilege. A workaround is available for users who lack GRPNAM privilege and have uncooperative system managers. $ define/job dapuh dap$disk:[daphne.uh] (UH examples and sources) $ define/job dapcuh dapexe:dapcuh.exe (Callable UH shareable iimage) It is important that you these logical names are placed in the job logical name table ("DEFINE/JOB") or the GROUP logical name table ("DEFINE/GROUP") because they are used by sub-processes. Sub-processes do not inherit names from the process logical name table. Daphne Installation Instructions Page 6 3.2 System-Wide Use Place the following logical name definitions in SYS$MANAGER:SYSTARTUP.COM, the system dependent start-up file: $ define/sys dap$disk dua1: (Daphne disk) $ define/sys dapexe dap$disk:[daphne.exe] (executables) $ define/sys dapdir dap$disk:[daphne] (developer's directory) $ define/sys daphlp dap$disk:[daphne.help] (help/documentation) $ define/sys dapuserfunc dapexe:dapuserfunc.exe (null user function) $ define/sys dapuh dap$disk:[daphne.uh] (UH examples and sources) $ define/sys dapcuh dapexe:dapcuh.exe (Callable UH shareable iimage) Daphne Installation Instructions Page 7 4 Plot Device Definitions The plot program $PDV does not know anything about the plot devices on a system. Instead it uses logical names to determine what plot devices are available and what type they are. The plot program is based on the Unified Graphics system developed by Robert C. Beech at the Stanford Linear Accelerator Center (SLAC). The logical name "DAP$PDV_DEVICE_PROMPT" is translated by $PDV to get an appropriate message to give the user when it wants a valid device type. If the first character of the equivalence string is an "@" then the program interprets the rest of the string as the name of a file (similar to the logical name SYS$WELCOME). This file will be printed on the command terminal, thus providing a way to give a verbose "Device Prompt". The logical name "DAP$PDV_TYPE_PROMPT" is translated by $PDV to get an appropriate message to give the user when it wants a valid device type. If the first character of the equivalence string is an "@" then the program interprets the rest of the string as the name of a file (similar to the logical name SYS$WELCOME). This file will be printed on the command terminal, thus providing a way to give a verbose "Type Prompt". If the user enters a blank for the device type the program will create a "metafile". A metafile is a file which can be sent to the device at a later time for plotting. When the user enters a device or queue name the $PDV program combines it with the string "DAP$TYPE_" to get a logical name and attempts to translate it to a device type. If the device name supplied by the user is in fact a queue name $PDV will also try the to translate a logical name "DAP$TYPE_" combined with the queue's "physical name". If either of these logical names are defined then the equivalence name is used for the device type. If neither of the logical names exist then the program prompts the user for a valid device type using the equivalence value of the logical name "DAP$PDV_TYPE_PROMPT". For example, if the logical name "G_QMS_1" points to the queue "G_WING_QMS_1200". Either of the following command will allow $PDV to determine the device type automatically: $ define/system DAP$TYPE_G_QMS_1 QMS1200 or $ define/system DAP$TYPE_G_WING_QMS_1200 QMS1200 Daphne Installation Instructions Page 8 An example. On the Argonne VAXcluster we have the following plot devices: Device Name Device Type Unified Graphics Code LPB0 Versatec V80 VEP12FF (No longer attached) C_QMS_1 QMS 1200 QMS1200 D_QMS_1 QMS 1200 QMS1200 F_QMS_1 QMS 1200 QMS1200 G_QMS_1 QMS 1200 QMS1200 Metafile Talaris 811 TLRS811 GWPOST PS FWPOST PS SEIKO PS=SEIKO (Remote color PostScript printer) For this combination of devices I use the following commands in my system startup file: $ define/system dap$pdv_device_prompt - "Queue [GWPOST FWPOST FWING GWING DYNALP GWTEK (G Wing AST Tek Emulation)]" $ define/system dap$pdv_type_prompt "@DAPEXE:PDV_TYPE_PROMPT.TXT" $ define/system dap$type_fwpost PS $ define/system dap$type_gwpost PS $ define/system dap$type_seiko "PS=SEIKO" $ define/system dap$type_fwing QMS1200 $ define/system dap$type_gwing QMS1200 $ define/system dap$type_dynalp TLRS811 $ define/system dap$type_ast_gwing_tek4014 TLRS811 With DAPEXE:PDV_TYPE_PROMPT.TXT Enter Description PS Postscript for 300 dpi black/white or grayscale printers QMS1200 QMS laser printers VEP12FF Versatec 1200 electrostatic printer/plotter TLRS811 Talaris 811 laser printer POSTSCR Unified Graphics generated postscript PS=SEIKO Postscript for 300 dpi color Seiko printer at ANL/CTD Use the command procedure: $ @ DAPEXE:COLORPS file-name to send the file to CTD for printing Requires account at some machine administered by CTD These logical names can also be defined in the process or job logical name table if used by only a few people. Daphne Installation Instructions Page 9 5 HELP Libraries If you want to make the VMS $HELP command automatically search the Daphne HELP library you have to create a logical name of the form "HLP$LIBRARY_n" where "n" represents a sequence number. When first invoked, the HELP utility searches the help library "HLP$LIBRARY", then "HLP$LIBRARY_1", then "HLP$LIBRARY_2", and so on. 5.1 For personal Use $ define hlp$library_N daphlp:daphne ^ | +--- choose "N" as described above Do NOT place the logical name in the job logical name table ! 5.2 For System-Wide Use Modify SYS$MANAGER:SYSTARTUP.COM to include the following: $ define/system hlp$library_N daphlp:daphne ^ | +--- choose "N" as described above 6 Daphne Command Tables Daphne uses the DEC Command Definition Utility to add new commands to the standard set of DCL commands. The name of the command definition file is "DAPEXE:DPCMMDS.CLD". To load the command tables place in the LOGIN.COM file of each Daphne user, or in the system-wide file SYS$MANAGER:SYLOGIN.COM (not recommended): $ set command dapexe:dpcmmds Daphne Installation Instructions Page 10 7 Privileges To run Daphne in replay mode requires the following privileges: TMPMBX - temporary mailbox NETMBX - if accessing files across DECNET Almost all VAX users have these privileges. To check that you have these privileges use the following command: +-----------------------------------------------------------+ | $ SHOW PROCESS/PRIVILEGES | | | | 23-SEP-1988 11:46:20.69 TXA5: User: MOOG | | | | Process privileges: | | TMPMBX may create temporary mailbox | | NETMBX may create network device | | | | Process rights identifiers: | | INTERACTIVE | | LOCAL | +-----------------------------------------------------------+ Some of the Daphne programs can take advantage of WORLD privilege to give additional information when there is a conflict in allocating a device. For instance, if you try to allocate a graphics terminal which is already allocated to another user, the program will tell you the username and the name of the command terminal that owns the device. To repeat: WORLD privilege is optional. The following programs will use WORLD privilege, if enabled, to give additional information to the user: DAPHNE.EXE checks for unique Daphne identifier DDV.EXE information about device allocation conflicts TAPE.EXE initiate tape process Under certain circumstances the easiest way for a user to create graphics on a second terminal it to log in from two different terminals or windows and then use the second session's terminal as a graphics device. If D4100.EXE or DSPDP.EXE are installed with SHARE and BYPASS privilege then your users will be able to do this. The DDV.EXE program (which starts D4100.EXE and DSPDP.EXE) checks that the username of the slave terminal is the same as that of the process which is executing the DDV command. For an example of how to install programs with privilege see the command file "DAPEXE:DPCMMDS_REPLACE.COM". For an example of how to remove privileges from installed programs see the command file "DAPEXE:DPCMMDS_REMOVE.COM". Daphne Installation Instructions Page 11 8 SYSGEN parameters The proper SYSGEN parameters depend on the number of histograms to be sorted, the size of histograms, and the number of simultaneously active Daphne users. 8.1 GBLSECTIONS One global section is required for each histogram. A global section is also required for each "data area" that must be shared between Daphne processes. A suitable value is the maximum number of histogram likely to be used plus about 50 for various odds and ends. If more than one person will be using Daphne simultaneously then the number of global sections will have to be increased accordingly. A value of 250 for each simultaneously active Daphne user should be adequate for the "average" sort. The system overhead for a global section which is not used is not significant. 8.2 GBLPAGES One global page is required for every 512 bytes in a global section. Since every histogram is stored in a global section (except for disk sorted histograms) the number of GBLPAGES is very sensitive to the size of histograms being sorted. A user who intends to sort ten 512 by 512 two dimensional histograms will require: number of bytes = 10 * 512 * 512 * 2 bytes/channel = 5,242,880 bytes number of pages = 5,242,880 / 512 bytes/page = 10,240 pages GBLPAGES must be greater than 10,240 (pages) Additional global pages will be required for one dimensional histograms, and all kinds of other data structures. The cost of an unused global page is one PTE (4 bytes) per global page. In other words, the data structures to describe 20,000 global pages requires about 160 pages of system memory. If more than one person will be using Daphne simultaneously then the number of global sections will have to be increased accordingly. Daphne Installation Instructions Page 12 8.3 VIRTUALPAGECNT This SYSGEN parameter controls the amount of virtual memory that any program can use. The VIRTUALPAGECNT should be large enough to include every histogram that could be sorted simultaneously, plus additional pages for the program itself and other data objects. It should be computed in the same manner as GBLPAGES, but differs from GBLPAGES in that it does NOT depend on the number of simultaneous users. Daphne Installation Instructions Page 13 9 Quotas 9.1 JTQUOTA Job Table Quota is required to create job logical names. A sufficient value is a couple of thousand bytes. 9.2 BUFIO Buffered I/O quota is required for a multitude of purposes. A sufficient value is probably on the order of 5,000 bytes 9.3 FILLM The number of files that need to open simultaneously depends on the number of two dimensional disk sorted histograms. If you don't know what disk sorted histograms are, don't worry. Disk sorting is described in the document "DAPHLP:REPLAY.MEM". Disk sorting is for extremely large two dimensional histograms, such as a gamma-gamma coincidence matrices. To use them, create 2D histograms with the /DISKSORT qualifier. Each disk-sorted histogram requires one I/O channel, which is deducted from the process FILLM. A value of 30 is probably sufficient for FILLM. 9.4 SHRFILLM The shared file limit should be zero or at least 5 greater than the number of disk-sorted histograms. 9.5 ASTLM A value of 20 is probably adequate for the AST limit. 9.6 ENQLM A value of 20 is probably adequate for the Enqueue limit. Daphne Installation Instructions Page 14 9.7 PRCLM A Daphne user can have the following processes simultaneously active: 1. main process 2. display process #1 for first graphics terminal 3. display process #2 for second graphics terminal 4. plot process for hardcopy graphics 5. sorting process 6. tape or disk input process 7. tape or disk output process 8. holder process Thus the recommended value is at least 9. 9.8 PGFLQU The page file quota should be at least as large as the largest histogram being created, plus a few thousand extra. For instance if the largest histogram is 2048 by 2048 channels then: number of bytes = 2048 * 2048 channels * 2 bytes/channel = 8,388,608 bytes number of pages = 8,388,608 / 512 bytes/pages = 16,384 pages Set PGFLQU to about 18,000 to 20,000 pages Daphne Installation Instructions Page 15 10 Command Name Conflicts On some systems there have been conflicts in the names of commands. To change the name of a Daphne command one should edit the file "DAPEXE:DPCMMDS.CLD". Remember to change the corresponding entry in the Daphne help library. For example, to change the name of the restore command from RES to RST: $ set default DAPHLP: $ @updatelib Library member: RES Delete existing member [Use when changing member name]: Y 11 Logical Name Conflicts On some systems there may be logical names that cause problems during compilation. For instance, at the University of Michigan at Ann Arbor the logical name "M1" is assigned to a user disk. This causes problems when compiling the program M1.FOR with a command like: $ FORTRAN M1 The solution to this is to define (temporarily) a logical which makes the original logical name "invisible" to the user. For the above case: $ define/job/translation=terminal m1 m1 This kind of definition should only be necessary while things are being compiled, not during normal operations. Daphne Installation Instructions Page 16 12 For Developers 12.1 Important Files - Main Directory [DAPHNE] - DAPHNE.COM Defines many Daphne symbols - NEWCOM.COM Recompiles a developer's version of Daphne - NEWEXE.COM Recompiles all of Daphne to create new version for both developers and users - DAPLNK.COM Standard Daphne command file for linking - DAPLNK.OPT Options file for linking Daphne (with DAPLNK.COM) - DAPHNE.OLB Standard Daphne object library - DPCMMDS.CLD Daphne command tables - *.LNK For linking a program which requires additional options - *.COLORS and *.DMA_COLORS Color tables to use for Tektronix 4100 color terminals - Source Code Tektronix 4100 Display Program - [DAPHNE.D4100] NEWD4100.COM - Rebuild Tek 4100 display program - Routines for data files in non-Daphne format - [DAPHNE.GENTAPE] - Help Library and Documentation - [DAPHNE.HELP] UPDATELIB.COM - Edit Daphne HELP library element - Documentation Sources [DAPHNE.HELP.DOCSRC] - Source Code general Subroutines - [DAPHNE.LIBSOURCE] LIB_COM.COM - Recompile routines dependent on Daphne INCLUDE files LIB_NOCOM.COM - Recompile routines NOT dependent on Daphne INCLUDE files Daphne Installation Instructions Page 17 - Message Library - [DAPHNE.MSG] MSGLIB.COM - Rebuild message library MSG.OLB - Message library - Source Code Spectrum Analysis Program - [DAPHNE.SAP] BUILD_SAP.COM - Rebuild SAP - Source Code for VAXSORT and TABGEN - [DAPHNE.TABGEN] NEWTAB.COM - Rebuild VAXSORT, TABGEN, and related programs DAPHNE2.OLB - Subroutine library for VAXSORT, TABGEN, etc. *.LNK - Relink programs - Source Code for $SAV/COMMAND - [DAPHNE.SAVCOM] NEWSAVCOM.COM - Rebuild $SAV/COMMAND - Source Code Tektronix Subroutines - [DAPHNE.TEK] CRTEKLIBS.COM - Rebuild Tektronix Library TEKLIB.OLB TEKSUBLIB.OLB - Source Code Unified Graphics - [DAPHNE.UGS] - Source Code $UH - [DAPHNE.UH] NEWUI.COM - Rebuild $UH, $UI and related routines 12.2 Commonly Used Symbols in DAPHNE.COM FL - Fortran (with options) and Link F4 - Fortran (with options) F4DB - Fortran (with debug options) FLN - Fortran and Link (no traceback) FLGN - Fortran and Link (no traceback) with Unified Graphics FLG - Fortran and Link with Unified Graphics FLTK - Fortran and Link with Tektronix Library FLTKN - Fortran and Link (no traceback) with Tektronix Library FLDB - Fortran and Link (with debugger) GLB - List global sections ADD - Add element to DAPHNE.OLB DHELP - Help from Daphne Help Library Daphne Installation Instructions Page 18 12.3 Logical Names Here is a list of logical names used in development: $ define/system dap$disk sys$sysdevice $ define/system dapdir dap$disk:[daphne] $ define/system daplib dap$disk:[daphne.libsource] $ define/system dapxdsp dap$disk:[daphne.xdsp] $ define/system dapugs dap$disk:[daphne.ugs] $ define/system dapexe dap$disk:[daphne.exe] $ define/system daphlp dap$disk:[daphne.help] $ define/system daptab dap$disk:[daphne.tabgen] $ define/system daptek dap$disk:[daphne.tek] $ define/system dapmsg dap$disk:[daphne.msg] $ define/system dapuh dap$disk:[daphne.uh] $ define/system dapsap dap$disk:[daphne.sap] $ define/system sapdefinitions sys$manager $ ! $ ! (Optional) Priorities when not using the default priorities $ ! EXE_PRIOR - execution priority for real-time tasks $ ! EXIT_PRIOR - normal priority $ ! $ define/system dap$replay_priority 4 $ define/system dap$_exe_prior 4 $ define/system dap$_exit_prior 4 $ ! $ ! The $PDV command doesn't know anything about I/O devices on $ ! the system - logical names supply appropriate prompts $ ! $ define/system dap$pdv_type_prompt - "Plot Device Type [QMS1200(QMS) VEP12FF(Versatec) TLRS811(Talaris) ]" $ define/system dap$pdv_device_prompt - "NONE" $ ! $ ! Defines the default shareable image for use with VAXSORT in Daphne $ ! $ define/system dapuserfunc dapexe:dapuserfunc.exe $ ! $ ! Defines the shareable image for use with Callable UH in Daphne $ ! $ define/system dapcuh dapexe:dapcuh.exe Daphne Installation Instructions Page 19 12.4 Reading Non-Daphne Tapes The directory [DAPHNE.GENTAPE] contains routines for processing non-Daphne tapes with Daphne. The tape input process has been split into three parts: - Main Program The main program knows how to talk to the rest of Daphne, but it doesn't know anything about the format of the input tape. It depends on user-supplied routines to implement specific functions and return certain status codes. - User Supplied Routines The user-supplied routines don't need to know anything about Daphne. They don't need to know much about tapes, either, since the Daphne developers supply routines for doing tape operations. See the main program "GENTAPE.FOR" or "GENDISK.FOR" for more information. - Tape Routines The Daphne developers have written routines for doing tape operations such as mount, dismount, read, skip, rewind, etc. Thus the user does not need to know much about doing I/O on the VAX. These routines are in "GENSUBS.FOR". Non-Daphne tape formats currently supported: RSX/Multi, LBL/Chaos, XSYS, JAERI, MSU/NSCL, and a very simple (SIMPLEDISK) file structure for use with simulation programs which want to generate data for sorting. The source code for these are in the directory [DAPHNE.GENTAPE]. A particularly common problem is the need to interchange bytes of a word when processing tapes from IBM series computers. The routine [DAPHNE.GENTAPE]SWAB.MAR is an assembly language routine which does this as efficiently as I know how to on a VAX (with a limited amount of memory). More efficient would be to have a 65,536 byte table and do the translation by table lookup. 12.5 Reading Daphne Tapes With Lisa The directory [DAPHNE.EXPORT.LISA] contains those LISA routines which were modified at Argonne so that LISA could read Daphne tapes. Daphne Installation Instructions Page 20 12.6 Reading Daphne Tapes Without Daphne The document DAPHLP:TAPE_FORMAT.MEM describes the Daphne tape format in detail. The program [DAPHNE.EXPORT]DAPTAP.FOR (and its associated INCLUDE files) demonstrates how to read a Daphne data tape on a system without Daphne. The DAPTAP.FOR program has been written to be relatively easy to transport to non-VAX computers. For instance, all identifiers are six characters or fewer, and machine specific operations have been isolated in subroutines with appropriate warnings. 12.7 Reading Daphne Histogram Files Without Daphne Sometimes users need to process Daphne histogram save files on a VAX without Daphne installed. The files [DAPHNE.EXPORT]READDAP1D.FOR and [DAPHNE.EXPORT]READDAP2D.FOR (and their associated INCLUDE files) demonstrate how to read the histogram save files with a "standalone" program.