----> INSFIX V1.4 <---- March 27, 1992 (C) 1992 ZyBel MicroSystems Inc. All rights reserved. 1. Introduction ---------------- This file describes a LAN utility called INSFIX, which was created to solve a specific problem with a commercial program known as INSMARK*, but which has many uses in a networked environment. INSMARK, a popular insurance application, is available in a network ready version, but only supporting the Novell NOS. INSMARK is not compatible with other networks, including LANTASTIC. ZyBel was able to get INSMARK to operate perfectly on a LANTASTIC network by writing the INSFIX utility. Insfix is similar in nature to the DOS APPEND command, but with some important differences: 1). INSFIX only occupies 2.4K of memory (as opposed to 10K of memory with APPEND if executables are to be included). 2). INSFIX is removable from memory. APPEND is not. 3). INSFIX will not redirect FCB calls (APPEND does). However, programmers were discouraged from using DOS FCB file functions after DOS V2.0, and thus very few commercial applications do so today. 4). INSFIX supports two special options that modify the file open access modes and/or the share permissions for redirected files. These options can be used to allow a single user application to be converted to multi- user LAN operation - depending upon the structure of the application. NOTE: ZyBel does NOT support in any way the violation of commercial single user software licenses, and the license granted with INSFIX specifically prohibits its use in this fashion. INSFIX can be used to permit some types of in-house developed applications to run in a multi-user environment, and can be used to correct application specific problems with some network-ready (multi-user licensed) commercial programs. A demonstration version of INSFIX is included along with this text file. This demonstration version is fully functional, but will cease operating after approximately 200 file redirections. The symptoms of the DEMO program stopping operation will be a failure in the application currently running, or the inability to start a new application which requires INSFIX. The program can be removed from memory, and re-loaded as required, for evaluation purposes. The demonstration version is called INSDEMO.EXE, and should be used in place of INSFIX in the application examples discussed in this file. 2. Insmark ----------- As mentioned in the introduction, Insmark is a popular program for the insurance industry providing comprehensive graphics capabilities for producing insurance illustrations and analysis. Insmark is available in a network ready version, but only for use with the Novell NOS. The multi user version of Insmark is essentially identical to the single user version - only the installation instructions differ. Insmark is loaded in a "shared" directory (one that all users have access to through the network), and a subset of the files are copied to a private directory (each user has a private directory). The Novell MAP command is then used to establish a search path to the shared directory. Insmark is actually run from the private directory. When Insmark is first started, it requests that the user enter the name of the directory where Insmark is located. The user should specify the PRIVATE directory path. Insmark will then try to access files in the private directory. If the file is a personal data file, it is opened in the private directory. If the file is a shared file (program file, overlay etc), it is opened in the shared directory because of the Novell MAP command. This is essentially identical to the DOS APPEND command if the executable option is specified (/X:on). Through the above process, Insmark keeps multiple copies of personal files (each in a private directory), and reads files from a shared data directory. When trying to configure Insmark on a Lantastic network, the DOS APPEND command was used in place of the Novell MAP command. Unfortunately, the DOS APPEND command does not function with Insmark. In reality, even if Append did operate with Insmark, the application would still not operate on a network. This is because Insmark opens shared data files in R/W mode, even if it is only reading information from the file. As a result, the shared files cannot be set to Read Only mode, and share violations will occur if more than one user attempts to read from the same file at the same time. 3. INSFIX ----------- The INSFIX utility solves these problems by providing a functional version of APPEND, but with several special options: a). The /X option allows executable calls (load a program) to be redirected along with data read/write functions. This is similar to the APPEND /X:ON parameter. b). The /S option will modify file OPEN share parameters on REDIRECTED FILE OPERATIONS to DENY/NONE. This means that if a file was not found in the specified directory, but is found in a redirected path, the share permissions will be changed to DENY/NONE, preventing any share violations from occurring. c). The /R option will modify any file OPEN requests on REDIRECTED FILE OPERATIONS to READ mode. Since the purpose of INSFIX is to allow shared files to be accessed transparently to a DOS application, presumably the application will only read data from these files (else file corruption could occur). As a result, applications should only open such files in READ mode. Insmark, as an example, still opens these files in R/W mode. This option modifies the actual file open command to specify READ mode, thus allowing the shared files to be configured as READ/ONLY (using the DOS ATTRIB command), and preventing any share violations. Either of options b) or c) above can be used to prevent share violations in a networked environment. The correct syntax for INSFIX is as follows: INSFIX PATH1 ... where PATH1 is a DOS path name to which file operations should be redirected if such operations failed in the current directory, or in the specified full path. PATH2 is a second DOS path name for redirection (if the file operation was not successful in PATH1). ... PATH10 up to 10 PATHs may be specified /X Specifies that executable file operations should be redirected along with file open/read/write requests. This allows programs to be run from appended paths, or overlays loaded. /R Specifies that redirected file OPEN functions (file operations that failed in the current directory or the specified full path) should have the access mode changed to READ. /S Specifies that redirected file OPEN functions (file operations that failed in the current directory or the specified full path) should have the share permissions changed to DENY/NONE. /U Will unload INSFIX from memory if possible (if no other TSR programs were loaded after INSFIX that use the same interrupts). If INSFIX is run without any arguments, the current INSFIX settings are displayed. INSFIX may be run at any time to replace the parameters currently loaded in memory. This will not load a second copy of INSFIX, but will rather cause the parameters in the memory resident program to be changed (the new parameters, including options, will replace those previously loaded). NOTE: Although INSFIX can run in high memory through the use of the DOS 5.0 LOADHIGH command, this practice is not recommended. The technique which INSFIX uses to located a previously loaded version (and communicate new parameters) is not compatible with high memory, and thus a copy of INSFIX loaded in high memory cannot be removed without rebooting. However, INSFIX only occupies 2.4K of memory, so this is generally not a problem. 4. How INSFIX Works --------------------- To help in understanding the use of INSFIX, some discussion of internal operation will be provided. When a DOS file OPEN or FIND FIRST command (functions 3D and 4E) or a LOAD/EXECUTE command (function 4B, if the /X option is specified) is called by an application program, INSFIX intercepts the DOS call. INSFIX will then attempt the DOS call exactly as specified by the application. If the return code indicates successful completion, control is returned to the DOS application (i.e. INSFIX will have no effect). If, however, the return from the DOS call indicates the file operation failed, INSFIX will parse the specified path name to isolate the file name and file extension. It will then append the file name on to the INSFIX paths (PATH1 through PATH10), and attempt the same file operation with each new path. This process is repeated until all INSFIX paths have been tried, or a successful file operation results. If any of these calls are successful, control is returned to the DOS application. If all INSFIX paths fail, the application will receive the DOS failure code. INSFIX uses it's search paths in the order specified; that is PATH1 is tried first, followed by PATH2 etc. The operation of the INSFIX /R and /S command switches will only affect redirected file operations - that is file functions which use the INSFIX paths. If the path specified by the application was successful, the /R and /S options will have no effect. INSFIX paths may be specified with an optional drive letter (e.g. D:\INSMARK), or without the drive letter, in which case the current drive will be used for appended directories. 5. An Example --------------- The INSMARK application is tailored for each insurance carrier by utilizing a custom batch file. A data file from the particular insurance carrier's software is copied to the Insmark private directory (the data file is called BUTTON), and then INSMARK is started. To configure this system, the following INSFIX command would be utilized at each workstation: INSFIX H:\INSMARK /S /X Where H:\INSMARK is the location of the shared INSMARK files. Assuming a filed called "LOCAL" was located in the current directory (C:\PRIVATE), and a filed called "SHARED" was located in the common INSMARK directory (H:\INSMARK), the following file open commands would actually result in different files being opened: OPEN PATH REQUEST ACTUAL FILE OPENED ----------------- ------------------ C:\PRIVATE\LOCAL C:\PRIVATE\LOCAL LOCAL C:\PRIVATE\LOCAL C:\LOCAL C:\PRIVATE\SHARED H:\INSMARK\SHARED SHARED H:\INSMARK\SHARED C:\SHARED H:\INSMARK\SHARED In the above example, an open command for the "SHARED" file would have the share permissions changed to DENY/NONE (because of the /S switch), preventing any share violations in a multi-user environment. Because the /X switch was provided, any programs not found in the current directory can be loaded from the specified shared directories (without requiring the DOS PATH statement to be modified). In addition, the /X option will attempt to load executable files from the shared directory even if the DOS command specified a full path. For example, if the user typed "C:\BMENU" (to run a program called BMENU.EXE) which was not found in the C:\ directory, and a copy did exist in the H:\INSMARK directory, that copy would be loaded. This behaves differently from the DOS PATH command. 6. Using INSFIX with Single User Applications ---------------------------------------------- INSFIX can be used to make some types of in-house developed single-user applications operate in a multi-user environment, with limitations. If the application has a number of files from which it only reads data (including program files and overlays), and only has a few files that it writes to, this program can be made to operate multi-user, with a private copy of the "write" data for each user (the application cannot share output files unless it is specifically written for a network). To configure the above application, all common "read only" files and programs should be located in a shared directory (lets say H:\SHARED). All files which are written by the application should be copied to local private directories (for example, C:\PRIVATE). On each workstation, the user would install INSFIX, with H:\SHARED specified as the redirected path. To prevent share violations, the /R option can be utilized (in which case all shared files must be made READ/ONLY using the DOS ATTRIB command), or the /S option should be used. The following INSFIX command could be used: INSFIX H:\SHARED /R /X Although the DOS Append command can also be used in some cases to perform the same function, INSFIX is smaller than Append (2.4K verses 10K), can be removed from memory when finished, and has the optional share arguments to ensure that sharing violations do not result. 7. Ordering INSFIX -------------------- A fully operational copy of INSFIX is obtainable directly from ZyBel for a cost of $99 per network. ZyBel accepts VISA, Mastercard, American Express, or COD company check. Please address all inquiries to: ZyBel MicroSystems Inc. ATTN: Warren Belkin PO Box 1284 Weston, CT 06883-0284 203-226-8800 203-226-8851 (FAX) Compuserve ID: 70571, 3651 8. ZyBel MicroSystems Inc. ---------------------------- ZyBel MicroSystems Inc. is a software developer and Authorized Artisoft reseller specializing in LANs, custom Voice Response applications, and Wide Area Networking products (T1, LAN Bridging etc). ZyBel maintains offices in Fairfield County, CT and Herndon, VA, and has a technical support center located in Dallas, TX. * All products of other companies mentioned in this file are trademarks of their respective manufacturers.