home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac_os2 / wpsbk205.zip / WPSBKUP.INF (.txt) < prev   
OS/2 Help File  |  1994-06-11  |  46KB  |  1,062 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Restore Boot Notes ΓòÉΓòÉΓòÉ
  3.  
  4. The WPSrest.cmd procedure (created by the Workplace Shell Backup Utility) 
  5. requires the use of the OS/2 command EAUTIL.EXE.  EAUTIL is sensitive to the 
  6. service level of the running system.  So, you can not boot from your OS/2 2.1 
  7. GA system installation diskettes in order to restore a system that is running 
  8. at the Service Pack level.  The Service Pack level EAUTIL will recognise that 
  9. it has been invoked by a system running at a different maintenance level and 
  10. then terminate with error message SYS1210. 
  11.  
  12. This just means that you must always boot from the diskettes that you used to 
  13. install or update your system when you need to run the WPSrest procedure. 
  14. However, there may be occasions that will require special pre-planning on your 
  15. part.  (See the next topic regarding XR06200.)  Also, special care should be 
  16. taken when creating single boot diskette environments. 
  17.  
  18.  
  19. ΓòÉΓòÉΓòÉ 2. SP 2.11 Information ΓòÉΓòÉΓòÉ
  20.  
  21. The Workplace Shell Backup Utility release 2.04 has been successfully validated 
  22. with the OS/2 2.1 Service Pack (XR06200.)  Backup and restore procedures 
  23. operate as designed.  Site registrants who have releases earlier than 2.04 can 
  24. expect to receive update order forms during the month of March.  Individual 
  25. registrants having releases earlier than 2.04 are encouraged to download file 
  26. WPSBKP.ZIP from Compuserve forum OS2AVEN, lib 1. 
  27.  
  28. PLEASE NOTE THIS REQUIREMENT AFTER THE INSTALLATION OF XR06200: 
  29.  
  30. XR06200 updates the OS2KRNL (system kernel,) the ATTRIB command and the EAUTIL 
  31. command.  The ATTRIB and EAUTIL commands are required by the WPSrest desktop 
  32. restoration procedure.  After XR06200 is installed on your system, the desktop 
  33. restore WILL NOT WORK if you boot your system to the OS/2 command prompt using 
  34. your original OS/2 2.1 installation diskettes.  The OS2KRNL on your original 
  35. installation diskettes is now "out of sync" with your XR06200 service level 
  36. system.  You will receive the following message many times while WPSrest 
  37. attempts to execute ATTRIB and EAUTIL on your behalf: 
  38.  
  39. SYS1210: The process can not be completed.  You are using an incorrect version 
  40. of the operating system. 
  41.  
  42. Therefore, you must create new stand-alone boot diskettes.  Happily, this is 
  43. very easy to do: 
  44.  
  45. o Label a diskette, "Stand-alone Boot 0" 
  46.  
  47. o Copy the XR06200 Disk 1 of 13 to the above diskette: 
  48.  
  49.    DISKCOPY  A:  A: 
  50.  
  51. o Label a diskette, "Stand-alone Boot 1 (formerly CSD Disk 2 of 13)" 
  52.  
  53. o Copy the XR06200 Disk 2 of 13 to the above diskette: 
  54.  
  55.    DISKCOPY  A:  A: 
  56.  
  57. o Remove the ReadOnly flag from CONFIG.SYS on the Stand-alone Boot 1 diskette: 
  58.  
  59.    ATTRIB  -r  A:\CONFIG.SYS 
  60.  
  61. o Edit the CONFIG.SYS file on the Stand-alone Boot 1 diskette 
  62.  
  63. o Find the following two statements: 
  64.  
  65.    protshell=fs1.exe 
  66.    set os2_shell=fservice.exe 
  67.  
  68. o Change them to read: 
  69.  
  70.    protshell=cmd.exe 
  71.    set os2_shell=cmd.exe
  72.  
  73. Use these two diskettes instead of your original OS/2 2.1 installation 
  74. diskettes when you need to run the WPSrest desktop restore procedure. 
  75.  
  76. I would like to take this opportunity to thank all of my registrants for their 
  77. support and continued interest in the Workplace Shell Backup Utility. 
  78.  
  79. Regards .... dave lester 03/06/94 
  80.  
  81.  
  82. ΓòÉΓòÉΓòÉ 3. Release Notes - 06/11/94 ΓòÉΓòÉΓòÉ
  83.  
  84. Release 2.05 of the Workplace Shell Backup Utility includes the minor changes 
  85. introduced in two predessor interim releases, 2.04b and 2.04a.  However, the 
  86. most significant improvements in this release have been made to the WPSrest 
  87. procedure.  So, be sure to replace both WPSbkup.exe and WipeWPS.exe when you 
  88. ugrade to release 2.05! 
  89.  
  90. o WPSbkup recognizes the OS/2 for Windows performance beta 
  91.  
  92. o WPSbkup now ignores the BackupINI and NoBackupINI parameters, if present. 
  93.   WPSbkup will always back up the OS/2 INI files. 
  94.  
  95. o WPSbkup has two new runtime parameters, RestMsg and RestPrompt.  (See below) 
  96.  
  97. o WPSrest has been changed to bypass user confirmation before the desktop 
  98.   directory is cleaned up.  Use the RestPrompt parameter on the WPSbkup command 
  99.   to change behavior to old default. 
  100.  
  101. o WPSrest messages have been trimmed.  (An understatement!)  WipeWPS desktop 
  102.   directory cleanup messages are suppressed by default.  Use the RestMsg 
  103.   parameter on the WPSbkup command to change behavior to old default. 
  104.  
  105. o WPSrest restores the OS/2 INI files to the file names and location specified 
  106.   in the target system's config.sys file.  Hopefully, this is good news for 
  107.   users of disk compression software who have moved the INI files for 
  108.   performance reasons. 
  109.  
  110. o WPSrest checks the service level of the target system against the service 
  111.   level present at backup.  This will prevent you from inadvertantly 
  112.   downleveling your INI files during restore. 
  113.  
  114. o WPSrest checks for boot system mismatch before attempting restore.  (See 
  115.   above note.) 
  116.  
  117.  
  118. ΓòÉΓòÉΓòÉ 3.1. Interim Release Notes 2.04b - 05/25/94 ΓòÉΓòÉΓòÉ
  119.  
  120. o Returns RC 4 if user terminates backup (instead of RC 8) 
  121.  
  122. o Recognizes service pack for OS/2 for Windows 
  123.  
  124.  
  125. ΓòÉΓòÉΓòÉ 3.2. Interim Release Notes 2.04a - 04/17/94 ΓòÉΓòÉΓòÉ
  126.  
  127. o Removed the last vestige of XCOPY 
  128.  
  129. o Added a user contributed extract section to this documentation 
  130.  
  131. o Added the -s parameter to the INI Attrib commands in WPSrest for those 2.11 
  132.   SP users who have to restore after a hard fail 
  133.  
  134.  
  135. ΓòÉΓòÉΓòÉ 3.3. Release Notes - 01/15/94 ΓòÉΓòÉΓòÉ
  136.  
  137. o Read.Me material is now presented in this INF format. 
  138.  
  139. o Qlog is now distributed along with WPSbkup so that trace data can be easily 
  140.   obtained. 
  141.  
  142. o WPSbkup will now allow you to discard unreadable records found in the INI 
  143.   files.  If you choose to discard damaged records, an appropriate warning is 
  144.   placed in the WPSrest.Cmd file. 
  145.  
  146. o WPSbkup no longer uses XCOPY to copy files found in the desktop.  Hidden 
  147.   files can now be backed up and appropriate ATTRIB commands are generated in 
  148.   the WPSrest.cmd file. 
  149.  
  150. o Because WPSbkup no longer uses XCOPY, erroneous EAs are not attached to the 
  151.   FLSTORE directory.  So, backup target directories may be deleted through the 
  152.   Drives object. 
  153.  
  154. o WPSbkup now calls EAUTIL as a child process. 
  155.  
  156. o Performance ehancements have been provided in the desktop backup phase. 
  157.  
  158. o The temporary folder created during the desktop location phase will now 
  159.   replace existing folder if it exists.  This will aid run reliability. 
  160.  
  161.  
  162. ΓòÉΓòÉΓòÉ 3.4. Release Notes - 12/30/93 ΓòÉΓòÉΓòÉ
  163.  
  164. o Some systems did not respond well to the WinDrawText API.  This caused 
  165.   WPSbkup to loop trying to set the fontsize.  A workaround was added to trap 
  166.   this situation.  10 point fontsize is now forced under these circumstances. 
  167.  
  168. o The system levels for OS/2 for Windows and the 2.1 Standard Edition CSD were 
  169.   added to WPSbkup's recognised list. 
  170.  
  171.  
  172. ΓòÉΓòÉΓòÉ 3.5. Release Notes - 10/04/93 ΓòÉΓòÉΓòÉ
  173.  
  174. o Added the optional parameters NotifyOK and NoNotifyOK (default.)  The 
  175.   NotifyOK parameter may be placed after the specification of the backup target 
  176.   directory on the command line or in the Parameters entry field of WPSbkup's 
  177.   program reference settings notebook.  The NotifyOK parm causes WPSbkup to 
  178.   display an informational message window just before it exits from a 
  179.   successful backup run.  WPSbkup *always* displays error messages for any 
  180.   reason that causes it to exit without creating a valid backup.  As always, a 
  181.   discription of WPSbkup syntax requirements can be displayed by entering 
  182.   WPSBKUP from the command line with no input parameters. 
  183.  
  184. o The WPSrest.cmd was modified slightly to cut down on non-essential messages 
  185.   displayed during restore.  Also, a new message is displayed at the end of the 
  186.   restore process that instructs the PC user that the restore is complete and a 
  187.   reboot is needed. 
  188.  
  189. o Plugged a hole whereby WPSbkup would be unable to find the desktop of OS/2 2. 
  190.   0 GA systems. 
  191.  
  192. o Added logic to more closely examine a display system's ability to present a 
  193.   given font size in a specific target area. 
  194.  
  195.  
  196. ΓòÉΓòÉΓòÉ 3.6. Release Notes - 09/07/93 ΓòÉΓòÉΓòÉ
  197.  
  198. o WPSrest command generation is completely reworked.  It is now possible to 
  199.   copy the backup target to any other location.  The restore process is no 
  200.   longer dependent upon the physical location of the backup directory.  (The 
  201.   old approach required that the backup directory be unchanged from the place 
  202.   of its creation.) However, now you must change to the backup directory before 
  203.   executing the WPSrest.cmd restore command.  To relocate the backup directory, 
  204.   use: 
  205.  
  206.       XCOPY D:\MYbackupDir\*.*  A:\MYBKDIR /s /e /v
  207.  
  208.   If the backup directory is contained upon an HPFS volume, you may also simply 
  209.   rename the directory to establish backup generation control: 
  210.  
  211.       REN D:\MYbackupDir  E:\MYbackupDir.old
  212.  
  213. o WPSbkup can now find your Desktop directory even if you move it to a 
  214.   different drive or subdirectory. 
  215.  
  216. o WPSbkup will not allow you to specify the Desktop directory as a backup 
  217.   target.  This specification was accidentally made by several users while 
  218.   adding WPSbkup to the Desktop popup menu.  Since the first step of the backup 
  219.   process includes deleting all of the entries in the target directory, 
  220.   allowing the Desktop directory to be specified as the target had dire 
  221.   consequences.  WPSbkup will ignore the Desktop path if it is found in the 
  222.   input parameters. 
  223.  
  224. o WipeWPS.exe is stored in the backup target directory during the backup 
  225.   process.  This removes any PATH requirements for the restore procedure. 
  226.   Formerly , I suggested that WPSbkup.exe and WipeWPS.exe be placed in the 
  227.   \OS2\ INSTALL. This is no longer required.  These files may be placed in any 
  228.   directory with the following provisions 
  229.  
  230.    - They can't reside in the backup target directory 
  231.    - They shouldn't reside in the physical Desktop Directory 
  232.    - BOTH FILES MUST RESIDE IN THE SAME DIRECTORY 
  233.  
  234. o WPSbkup has been given a new look.  The presentation code is completely 
  235.   rewritten.  A new program icon has been assigned. 
  236.  
  237. o WPSbkup recognizes and has been tested with all levels of OS/2 up to and 
  238.   including the S3 video support production release. 
  239.  
  240.  
  241. ΓòÉΓòÉΓòÉ 3.7. Release Notes - 06/12/93 ΓòÉΓòÉΓòÉ
  242.  
  243. o Corrected an ambiguity in the creation scheme for the progress indicator that 
  244.   caused an error under OS/2 2.1 GA. 
  245.  
  246. o Tested and validated under OS/2 2.1 GA. 
  247.  
  248.  
  249. ΓòÉΓòÉΓòÉ 3.8. Release Notes - 04/02/93 ΓòÉΓòÉΓòÉ
  250.  
  251. o Inserted ATTRIB command to remove potential ReadOnly flag from INI being 
  252.   replaced during restore.  (3/93 beta) 
  253.  
  254. o Added some performance/size parms to compile and link 
  255.  
  256. o Changed WipeWPS from fullscreen to windowable 
  257.  
  258. o Changed WipeWPS DosDelete to DosForceDelete 
  259.  
  260. o Changed WipeWPS reply prompt from scanf to _getch to allow use of minimal 
  261.   boot partition created for 2.1 by SE20boot 
  262.  
  263. o Removed read.me section relating to long elapsed times.  (Thank you prf* API 
  264.   developers for 2.1!) 
  265.  
  266.  
  267. ΓòÉΓòÉΓòÉ 3.9. Release Notes - 11/08/92 ΓòÉΓòÉΓòÉ
  268.  
  269. o Fixed my own bug that occurred >63K record in OS2SYS.ini Special thanks to 
  270.   Olaf Koch, Bruce Leiwant and Rick Yoder. 
  271.  
  272. o WPSbkup release number now appears on the title bar 
  273.  
  274.  
  275. ΓòÉΓòÉΓòÉ 3.10. Release Notes - 11/02/92 ΓòÉΓòÉΓòÉ
  276.  
  277. o Bug workaround when >64K I/O area input to PrfQueryProfileData 
  278.  
  279. o Version check recognises SP levels 6050 and 6055 
  280.  
  281.  
  282. ΓòÉΓòÉΓòÉ 3.11. Release Notes - 09/18/92 ΓòÉΓòÉΓòÉ
  283.  
  284. o 32 bit GRE beta level code tested and certified 
  285.  
  286. o Bug workaround when 64K I/O area and enumerate appls 
  287.  
  288. o DosForceDelete used to clear old target dir 
  289.  
  290. o Wait pointer consistant over client area 
  291.  
  292. o Progress indicator added for INI backups 
  293.  
  294. o Enterprise registration now available 
  295.  
  296.  
  297. ΓòÉΓòÉΓòÉ 3.12. Release Notes - 07/04/92 ΓòÉΓòÉΓòÉ
  298.  
  299. o WPSbkup goes full production! 
  300.  
  301.  
  302. ΓòÉΓòÉΓòÉ 4. Introduction ΓòÉΓòÉΓòÉ
  303.  
  304. Thank you for trying WPSbkup.  WPSbkup is a 32 bit utility that will backup 
  305. status and configuration data for the OS/2 2.x WorkPlace Shell (WPS). The OS/2 
  306. WPS is the new and exciting object oriented user interface that accompanies the 
  307. OS/2 version 2 operating system.  When you customize the WPS to suit your own 
  308. need and taste, you are modifying two physical elements of OS/2. These elements 
  309. are: 
  310.  
  311. o The system initialization (INI) files, OS2.INI and OS2SYS.INI which reside in 
  312.   the OS2 directory of the boot drive.  These INI files contain the bulk of 
  313.   your system customization information.  They are opened for update 
  314.   immediately after boot.  The INI files are accessed through a set of two 
  315.   indices.  Since these files are updated through "random access", data 
  316.   integrity using a sequential backup method can not be provided while the INI 
  317.   files are open. WPSbkup uses API calls provided by OS/2 for the purpose of 
  318.   accessing INI files with integrity.  The INI integrity is critical for the 
  319.   successful operation of your system.  Remember that OS/2 is a multitasking 
  320.   system.  You can do real work while WPSbkup is active. 
  321.  
  322. o The desktop directory structure (DTP) and its associated extended attribute 
  323.   (EA) data also holds a large amount of your customization data.  The DTP is 
  324.   more visible to you because you directly manipulate its elements using the 
  325.   OS/2 file system and WPS objective controls.  However, much of its 
  326.   information is really stored in the INI files (see above.)  When you drag a 
  327.   "Program object instance" out of the Templates folder, drop it on the desktop 
  328.   and fill in execution related information you are interacting with DTP. 
  329.   However, almost all of the information that records this activity is 
  330.   maintained in the INI files.  WPSbkup records enough information about the 
  331.   DTP to be able to recreate it in a way that preserves its associations in the 
  332.   INI files.  WPSbkup records the information in a way that allows you to store 
  333.   the backup data on removable (floppy) FAT formatted media. 
  334.  
  335. WPSbkup provides an alternative to the Alt+F1 procedure.  WPSbkup will provide 
  336. backup data for your WPS and create a simple to use WPS restore procedure. 
  337. More than likely you will never need to use the restore procedure, but if you 
  338. do, it can save you hours of recovery time.  WPSbkup backs up only the data 
  339. that " personalizes" your implementation of OS2 2.x. 
  340.  
  341. WPSbkup has been tested with both US and National Language releases of OS2 
  342. version 2. 
  343.  
  344. WPSbkup can also be used in organizations to install a standard WPS user 
  345. interface for user machines that have identical (or VERY VERY similar) hardware 
  346. configurations. 
  347.  
  348.  
  349. ΓòÉΓòÉΓòÉ 5. Package Contents ΓòÉΓòÉΓòÉ
  350.  
  351. Contents of this package are: 
  352.  
  353. ReadMe.Inf - You're reading it right now. 
  354.  
  355. WPSbkup.exe - The Workplace Shell image copy utility. 
  356.  
  357. WipeWPS.exe - Clears out the desktop directorie(s) during recovery. 
  358.  
  359. Qlog.exe  - Trace facility for WPSbkup. 
  360.  
  361. Qlog.hlp  - Help file for Qlog. 
  362.  
  363.  
  364. ΓòÉΓòÉΓòÉ 5.1. What's Qlog?? ΓòÉΓòÉΓòÉ
  365.  
  366. Qlog is a trace facility that can be used to monitor the progress of the 
  367. desktop backup.  Monitoring is only helpful if WPSbkup is unable to 
  368. successfully backup your OS/2 Desktop settings. Should you need to report a 
  369. problem, you may wish to first execute the following procedure: 
  370.  
  371.  1. Start Qlog 
  372.  
  373.  2. Open a new log file from the File action bar item. 
  374.  
  375.  3. Reset the priority from the Options/Priority/Critical action bar item 
  376.  
  377.  4. Run WPSbkup using the undocumented parameter "log" (without the quotes.) 
  378.     For Example: 
  379.  
  380.           WPSbkup D:\MyBackup LOG
  381.  
  382.  5. After the error occurs stop WPSbkup as normal 
  383.  
  384.  6. Close the Qlog file from its File action bar item 
  385.  
  386.  7. Edit out the last ten lines or so and send them to: 
  387.  
  388.         Dave Lester CIS ID 75600,237
  389.         or
  390.         Dave Lester
  391.         New Freedom Data Center
  392.         Box 461
  393.         New Freedom, PA 17349
  394.  
  395. Armed with this information, we can usually resolve backup problems. 
  396.  
  397.  
  398. ΓòÉΓòÉΓòÉ 6. Installation ΓòÉΓòÉΓòÉ
  399.  
  400. Installation is pretty darn simple: 
  401.  
  402. Step1 
  403.           Copy WPSbkup.exe to a directory that you use to store programs. Use a 
  404.           directory OTHER THAN the OS/2 Desktop directory or any of its 
  405.           subdirectories, though.  If a program is physically located in the 
  406.           desktop directory structure AND that program is running when you 
  407.           execute WPSbkup, then the backup will fail. 
  408.  
  409. Step2 
  410.           Copy WipeWPS.exe TO THE SAME DIRECTORY AS USED ABOVE. 
  411.  
  412. Step3 
  413.           Add a  Program Reference object to any of your folders for WPSbkup. 
  414.           All you really have to specify is path and file name for where you 
  415.           placed WPSbkup.exe and the name of the target directory into which 
  416.           Workplace Shell backup data will be placed.  Enter the name of the 
  417.           target directory in the Parameters entry field. You must specify 
  418.           drive and full path name for example, E:\WPSstore.  If this directory 
  419.           does not exist, WPSbkup will create it when it executes. 
  420.  
  421. CAUTION:
  422. WPSbkup.exe owns the target directory lock, stock and barrel.  When it starts 
  423. execution, it erases all files and sub-directories contained within its target 
  424. directory.  So don't specify a directory that holds any files or sub- 
  425. directories that you wish to keep. 
  426.  
  427.  
  428. ΓòÉΓòÉΓòÉ 6.1. Creating a Program Reference ΓòÉΓòÉΓòÉ
  429.  
  430. OS/2 makes it very easy to add icons to your desktop that will cause programs 
  431. to execute.  Just follow these steps: 
  432.  
  433.  1. Open your system Templates folder 
  434.  
  435.  2. Drag a Program template and drop it on your desktop or any desktop folder 
  436.  
  437.  3. The Program Reference object will automatically open to the Program 
  438.     Settings page of its settings notebook 
  439.  
  440.  4. Fill in the "Path and filename:" field.  This is where you specify the full 
  441.     pathname for the WPSbkup program.  For example: 
  442.  
  443.           E:\WPSbkpgm\WPSbkup.exe
  444.  
  445.  5. Fill in the "Parameters:" entry field.  This is where you specify the 
  446.     startup parms for WPSbkup.  The only required parameter is the full 
  447.     pathname of the directory in which you want WPSbkup to create  your backup. 
  448.     For example: 
  449.  
  450.           E:\WPSstore
  451.  
  452.     If this directory does not exist, WPSbkup will create it when it runs. 
  453.  
  454.         CAUTION:
  455.     Be careful, WPSbkup starts the backup process by deleting everything (files 
  456.     and subdirectories)  that it finds in the directory that you specify here. 
  457.     So, do not specify a directory that holds ANYTHING that you already have. 
  458.  
  459.  6. WPSbkup has other parameters  that you may also wish to specify here. 
  460.  
  461.  7. Click the General tab on the settings notebook.  Enter a descriptive name 
  462.     in the "Title:" entry field.  Anything you enter here will appear beneath 
  463.     the icon for WPSbkup. 
  464.  
  465.  8. Close the settings notebook.  You're done! 
  466.  
  467.  
  468. ΓòÉΓòÉΓòÉ 6.2. A Trick with WPS Parameters ΓòÉΓòÉΓòÉ
  469.  
  470. A little known (but extremely handy) device can be used when entering 
  471. parameters into the settings notebook for a program reference object. 
  472.  
  473. You can get the WPS to prompt you for all or part of the input parameters for a 
  474. program.  Your response to the prompt will be inserted into the startup 
  475. parameters that are passed to the program. 
  476.  
  477. Simply enter the prompt message inside of square braces that you wish to see 
  478. when the WPS starts the program. 
  479.  
  480. For example, let's say that you have a directory called D:\MyBkups and you wish 
  481. to save desktop backups in this directory orgainzed by day of week. You could 
  482. enter the following into the parameters field in WPSbkup's program reference 
  483. object settings notebook: 
  484.  
  485.   D:\MyBkups\[Enter the day of the week:]
  486.  
  487. When you double click WPSbkup's program reference icon, the WPS will display a 
  488. prompt window with instructions to "Enter the day of the week."  The WPS would 
  489. take your reply and insert it into the parameter string before it invoked 
  490. WPSbkup.  The resulting parameter might look like: 
  491.  
  492.   D:\MyBkups\Thursday
  493.  
  494. Given that input parameter, WPSbkup would make a backup of your desktop 
  495. configuraton in a subdirectory called Thursday of the directory D:\MyBkups. 
  496.  
  497.  
  498. ΓòÉΓòÉΓòÉ 7. Misc. Notes + Exec Parms ΓòÉΓòÉΓòÉ
  499.  
  500. Miscellaneous Notes: 
  501.  
  502. o To receive syntax help for WPSbkup, execute it with no parameters from an OS2 
  503.   command prompt. 
  504.  
  505. o Optional Parameters: (Defaults are shown first followed by overrides.) 
  506.  
  507. PurgePrompt | NoPurgePrompt 
  508.           allows suppression of the confirmation message box that warns of the 
  509.           erasure of files and sub-directories in the backup target.  Default 
  510.           is PurgePrompt.  Be advised that WPSbkup is running when the WPS 
  511.           status is stored.  That means that if you have to restore, WPSbkup 
  512.           will be initiated for execution.  If you use the NoPurgePrompt 
  513.           parameter, a superfluous backup will be taken when you reboot after a 
  514.           restore. 
  515.  
  516. TestVer2Rev | NoTestVer2Rev 
  517.           allows suppression of the check made for tested OS/2 CSD levels.  Use 
  518.           this parameter if you have more current maintenance and are sure that 
  519.           this backup procedure will still work with your revision.  Default is 
  520.           TestVer2Rev. 
  521.  
  522. NoNotifyOK  | NotifyOK 
  523.           allows generation of an "all clear" message that indicates the backup 
  524.           completed successfully.  Default is NoNotifyOK. WPSbkup *always* 
  525.           reports error conditions that might keep it from being able to create 
  526.           a valid backup. 
  527.  
  528. NoRestMsg | RestMsg 
  529.           controls the amount of messages that are generated in the restore 
  530.           process.  The default (NoRestMsg) minimizes restore messages. 
  531.  
  532. NoRestPrompt | RestPrompt 
  533.           controls restore desktop directory cleanup verfication prompt. 
  534.           Default is not to prompt. 
  535.  
  536. NoLog | Log 
  537.           causes WPSbkup to output trace records. These trace records can be 
  538.           displayed and saved to disk by the Qlog utility. 
  539.  
  540. o Many checks are made to insure that you will be notified if valid backups are 
  541.   not created.  However, image copies are created and the GIGO (garbage in / 
  542.   garbage out) rule applies.  Therefore, make sure that you are running cleanly 
  543.   before you write over backup data with a new backup.  Try to use a rotating 
  544.   target directory methodology so that you can maintain a valid -1 backup 
  545.   should the current backup data prove to be damaged. 
  546.  
  547.  
  548. ΓòÉΓòÉΓòÉ 8. User Contributed Extracts ΓòÉΓòÉΓòÉ
  549.  
  550. I am very happy to make this new section available in the on-line 
  551. documentation.  From time to time I receive absolutely wonderful suggestions 
  552. from WPSbkup users in regard to ways in which they have extended or enhanced 
  553. the functionality of the utility.  In the future I will try to update this 
  554. section so that we may all share the benefit of these endeavors. 
  555.  
  556. Contributor:   Enhancement: 
  557.  
  558. Jim Jinkins    REXX WPSbkup installation utility 
  559. Bob Stark      REXX utility to create and manage backup generations 
  560.  
  561.  
  562. ΓòÉΓòÉΓòÉ 8.1. Installation Utility ΓòÉΓòÉΓòÉ
  563.  
  564. /* Install.Cmd -- REXX */
  565. /*
  566. Install WPSbkup from RDServer
  567. See procedure SelfDocExit at the end of this file.
  568. */
  569.  
  570. SrcPath = 'a:' /* Gold copy of WPSbkup */
  571.  
  572. /* Maximum number of separate boot sets.  Keep in sync with Startup.Cmd */
  573. BootSetMax = 2
  574.  
  575. parse ARG Arg1 Arg2
  576. if ("" == Arg1) | (WordPos( Arg1, "/H /h /? -H -h -?") > 0) then
  577.   call SelfDocExit
  578. else if (Arg2 <> "") & (Translate( Strip( Arg2)) <> "/STARTUP") then
  579. do
  580.   say "Invalid command line arguments "D2C( 7)
  581.   call SelfDocExit
  582. end
  583.  
  584. call RxFuncAdd SysLoadFuncs, RexxUtil, SysLoadFuncs
  585. call SysLoadFuncs
  586.  
  587. TgtPath = Arg1
  588. 'IF NOT EXIST 'TgtPath'\*.*  MD 'TgtPath
  589. call SysFileTree  TgtPath, FileTree, 'DT'
  590. if FileTree.0 <> 1 then
  591. do
  592.   say "Can't find or create directory "TgtPath || D2C( 7)
  593.   call SelfDocExit
  594. end
  595.  
  596. BkupParent = TgtPath'\WPStore'  /* Keep in sync with Install.Cmd */
  597. 'IF NOT EXIST 'BkupParent'  MD 'BkupParent
  598.  
  599. '@COPY 'SrcPath'\WPSbkup.Exe 'TgtPath' >NUL'
  600. '@COPY 'SrcPath'\WipeWPS.Exe 'TgtPath' >NUL'
  601. '@COPY 'SrcPath'\WPSbkup.Inf 'TgtPath' >NUL'
  602. '@COPY 'SrcPath'\Book.Ico 'TgtPath' >NUL'
  603. '@COPY 'SrcPath'\Startup.Cmd 'TgtPath' >NUL'
  604. '@COPY 'SrcPath'\WPSbkup.Ico 'TgtPath' >NUL'
  605.  
  606. /* Create object on Desktop */
  607. Setup = 'EXENAME='TgtPath'\WPSbkup.Exe'
  608. Setup = Setup';PARAMETERS='BkupParent'\[BackupSubDirName]'
  609. Setup = Setup';STARTUPDIR='TgtPath
  610. rc = SysCreateObject( "WPPROGRAM", "WPSbkup", "<WP_DESKTOP>", Setup, "replace" )
  611.  
  612. /* Create object in Information folder */
  613. Setup = 'EXENAME=C:OS2\View.Exe'
  614. Setup = Setup';PARAMETERS='TgtPath'\WPSbkup.Inf'
  615. Setup = Setup';ICONFILE='TgtPath'\Book.Ico'
  616. rc = SysCreateObject( "WPPROGRAM", "WPSbkup", "<WP_INFO>", Setup, "replace" )
  617.  
  618. /* Create object in Startup folder */
  619. if Arg2 <> "" then
  620. do
  621.   do I = 1 to BootSetMax
  622.     'IF NOT EXIST 'BkupParent'\BOOT'I'  MD 'BkupParent'\BOOT'I
  623.   end
  624.   Setup = 'EXENAME='TgtPath'\Startup.Cmd'
  625.   Setup = Setup';PARAMETERS='TgtPath
  626.   Setup = Setup';STARTUPDIR='TgtPath
  627.   Setup = Setup';ICONFILE='TgtPath'\WPSbkup.Ico'
  628.   rc = SysCreateObject( "WPPROGRAM", "WPSbkup", "<WP_START>", Setup, "replace" )
  629. end
  630.  
  631. EXIT  rc
  632.  
  633. /* ------------------------------------------------------------------------- */
  634.  
  635. SelfDocExit:     procedure      expose SrcPath BootSetMax
  636.  
  637. SAY "Install.Cmd"
  638. SAY "Copy the WPSbkup programs to a specified directory and create objects on the"
  639. SAY "Desktop, in the Information folder, and - optionally - in the Startup folder."
  640. SAY "If your boot drive is not C: you will have to edit the WPSbkup object settings"
  641. SAY "in the Information folder."
  642. SAY ""
  643. SAY "All backups are to named subdirectories of the WPSbkup subdirectory, WPSTORE."
  644. SAY ""
  645. SAY "If the /STARTUP parameter is on the command line there will be "BootSetMax" backup"
  646. SAY "subdirectories with names beginning with BOOT.  Each will contain the latest"
  647. SAY "startup backup for a different day."
  648. SAY ""
  649. SAY "A backup subdirectory may require up to a megabyte of disk space, so limit the"
  650. SAY "number of backup subdirectory names, and reuse or delete them when they are no"
  651. SAY "longer needed."
  652. SAY ""
  653. SAY "NOTE:  If the backup works at startup time then cancel and ignore the message"
  654. SAY '    box saying "Cannot start ..\Startup.Cmd".'
  655. SAY ""
  656. SAY "USAGE:    INSTALL  wpsbkup_prog_dir  [ /STARTUP ]"
  657. SAY "EXAMPLE:   "SrcPath"\Install  C:\WPSbkup  /Startup"
  658.  
  659. EXIT  1
  660.  
  661. /* ------------------------------------------------------------------------- */
  662. /* end file Install.Cmd */
  663.  
  664.  
  665. ΓòÉΓòÉΓòÉ 8.2. Generation Utility ΓòÉΓòÉΓòÉ
  666.  
  667. /*---------Language: OS/2 2.x REXX----------------------------$$PROLOG*/
  668. /* This program is a "shell" around the WPS backup program.  It    */
  669. /* maintains a fixed number of backup generations, and will      */
  670. /* optionally display the date of the last backup and prompt the    */
  671. /* user to take a new one.  This feature is useful when this exec   */
  672. /* is called as part of your OS/2 shutdown exec.            */
  673. /* To call it (from another exec):                   */
  674. /*  CALL WPSBKMGR PROMPT=YES                     */
  675. /* Written by Bob Stark. Public Domain.  Bug reports /  comments may  */
  676. /* be sent to bstark@pit.legent.com or 72002,2376@compuserv.com    */
  677. /* Version 1.0, 09-MAR-1994.                      */
  678. /*--------------------------------------------------------------------*/
  679.  
  680. /*--------Customization section---------------------------------------*/
  681. generations = 3           /* Number of generations to retain */
  682. backupdir  = 'f:\wpsdata'     /* Directory to contain backup data*/
  683.                   /*  (1 subdirectory per generaton) */
  684. exepath   = 'd:\download\wpsbk204\wpsbkup.exe' /* Program path    */
  685. prompt    = 'NO'         /* Default for prompting (Yes/No)  */
  686. /*----End Customization section---------------------------------------*/
  687.  
  688. TRACE N
  689. CALL RxFuncAdd 'SysLoadFuncs','RexxUtil', 'SysLoadFuncs'
  690. CALL SysLoadFuncs
  691.  
  692. PARSE UPPER ARG 'PROMPT=' x .
  693. IF x <> '' THEN prompt = x
  694.  
  695. IF RIGHT(backupdir,1) = '\'     /* Remove trailing \ from backupdir*/
  696. THEN backupdir = LEFT(backupdir,LENGTH(backupdir)-1)
  697.  
  698. /* Get a list of subdirectories in our backupdir directory       */
  699. CALL SysFileTree backupdir'\', 'DIR', 'DT'
  700.  
  701. /*--------------------------------------------------------------------*/
  702. /* If PROMPT=YES option specified, find the date of the most recent  */
  703. /* backup and display it, then prompt to see if they want to take a  */
  704. /* new backup.                             */
  705. /*--------------------------------------------------------------------*/
  706. IF LEFT(prompt,1) <> 'N' THEN
  707.  DO
  708.  SAY
  709.  IF dir.0 > 0 THEN         /* See if any backups exist at all */
  710.   DO               /* Yes, at least one does.     */
  711.   newest = WORD(dir.1,1)     /* Assume 1st directory is newest  */
  712.  
  713.    DO i = 2 TO dir.0       /* Look through the remaining ones */
  714.    IF WORD(dir.i,1) > newest   /* Assumption incorrect, this one  */
  715.    THEN newest = WORD(dir.i,1)  /*  is newer.  Save its date.    */
  716.    END i
  717.  
  718.   PARSE VAR newest 1 yy 3 4 mm 6 7 dd 9 10 hh 12 13 mn 15
  719.   SAY 'Most recent Workplace Shell backup on 'mm'/'dd'/'yy' at',
  720.     hh':'mn
  721.  
  722.   lastbkup = GREG2JUL(mm'/'dd'/'yy)VALUE(hh)VALUE(mn)
  723.   rightnow = GREG2JUL(DATE('USA'))RIGHT(TIME('Hours'),2,0)
  724.   rightnow = rightnow||SUBSTR(TIME(),4,2)
  725.   bkupage = DIFFDATE(rightnow,lastbkup)
  726.   SAY 'Workplace Shell Backup is ',
  727.     FORMAT(SUBSTR(bkupage,1,5))' Days, ',
  728.     FORMAT(SUBSTR(bkupage,6,2))' Hours, and ',
  729.     FORMAT(SUBSTR(bkupage,8,2))' Minutes old'
  730.   SAY
  731.   END
  732.  
  733.  x = ''
  734.   DO WHILE x = ''
  735.   CALL CHAROUT,,
  736.    'Do you want to take a new backup (Y or N, <Enter> = N): '
  737.   x = TRANSLATE(SysGetKey())
  738.   SAY
  739.   IF C2D(x) = 13 THEN x = 'N'
  740.   IF POS(x,'YN') = 0
  741.   THEN x = ''
  742.   IF x = 'N' THEN EXIT 0
  743.   END
  744.  END /* IF LEFT(prompt,1) <> 'N' THEN ... */
  745.  
  746. /*--------------------------------------------------------------------*/
  747. /* Each subdirectory in backupdir is a generation of a WPS backup. If */
  748. /* there are more subdirectories than we are to maintain generations, */
  749. /* then delete the oldest ones.                    */
  750. /*--------------------------------------------------------------------*/
  751. IF dir.0 >= generations THEN    /* Some generations need deleted?  */
  752.  DO FOREVER            /* Yes. Find the oldest one.    */
  753.  
  754.  lowest = WORD(dir.1,1)      /* Assume 1st directory is oldest  */
  755.  lowi = 1
  756.   DO i = 2 TO dir.0        /* Look through the remaining ones */
  757.   IF WORD(dir.i,1) < lowest THEN
  758.    DO              /* Assumption incorrect, this one  */
  759.    lowest = WORD(dir.i,1)    /*  is older.  Save its date and  */
  760.    lowi = i           /* index number.          */
  761.    END
  762.   END i
  763.  
  764.  /* We've found the oldest directory.  Call DELDIR to delete it.   */
  765.  rc = DELDIR(WORD(dir.lowi,4))
  766.  IF rc <> 0 THEN
  767.   DO
  768.   SAY 'Error, unable to remove directory',
  769.   WORD(dir.lowi,4)': DELDIR RC='rc
  770.   EXIT 8
  771.   END
  772.  
  773.  dir.0 = dir.0 - 1         /* One directory is now gone    */
  774.   DO i = lowi TO dir.0      /* Move remaining ones back over it*/
  775.   x = i + 1            /*  it in the index,        */
  776.   dir.i = dir.x          /*  e.g., dir.4 becomes dir.3   */
  777.   END i
  778.  
  779.  IF dir.0 < generations      /* Deleted enough generations yet? */
  780.  THEN LEAVE            /* Yes, we have, so exit the loop. */
  781.  END /* FOREVER */
  782.  
  783. /*--------------------------------------------------------------------*/
  784. /* Now that we've deleted all obsolete generations, take a new WPS   */
  785. /* backup to a new directory.                     */
  786. /*--------------------------------------------------------------------*/
  787. IF dir.0 = 0            /* If backupdir might not exist,  */
  788. THEN CALL SysMkDir backupdir    /* Then create it first.      */
  789.  
  790. /* Build a subdirectory name in the form YDDDMMMM (Year, day, minute) */
  791. subdir = SUBSTR(DATE('Ordered'),2,1)RIGHT(DATE('Days'),3,'0')
  792. subdir = subdir || TIME('MINUTES')
  793.  
  794. '@'exepath' 'backupdir'\'subdir
  795.  
  796. EXIT 0
  797.  
  798.  
  799. /*--------------------------------------------------------------------*/
  800. /*:DELDIR Subroutine - recursive routine to delete everything below  */
  801. /* a given directory.                         */
  802. /*--------------------------------------------------------------------*/
  803. DELDIR: PROCEDURE
  804.  
  805. PARSE ARG dir
  806. maxrc = 0
  807. /* Get a list of subdirectories in the current directory        */
  808. CALL SysFileTree dir'\', 'DELDIR', 'DT'
  809.  
  810.  DO i = 1 TO deldir.0       /* For each subdirectory, call   */
  811.  rc = DELDIR(WORD(deldir.i,4))   /*  ourselves recursively to    */
  812.  IF rc > maxrc           /*  delete it, saving the highest */
  813.  THEN maxrc = rc          /*   return code from any delete. */
  814.  END
  815.  
  816. /* Get a list of files in the current directory, then delete them.   */
  817. CALL SysFileTree dir'\', 'DELDIR', 'FT'
  818.  DO i = 1 TO deldir.0
  819.  rc = SysFileDelete(WORD(deldir.i,4))
  820.  IF rc > maxrc
  821.  THEN maxrc = rc
  822.  END
  823.  
  824. rc = SysRmDir(dir)         /* Remove the (now empty) directory*/
  825. IF rc > maxrc
  826. THEN maxrc = rc
  827. RETURN maxrc            /* Return the highest return code  */
  828.  
  829. /*RCOPY greg2jul **** 12 LINES COPIED ON 04-09-94 AT 06:54*************/
  830. /*--------------------------------------------------------------------*/
  831. /*:GREG2JUL Function: Converts Gregorian date to Julian date.     */
  832. /* PARMS:     GREGORIAN DATE: MM/DD/YY               */
  833. /* RETURNS:    JULIAN DATE:   YYDDD                 */
  834. /* EXAMPLE:    jdate = GREG2JUL('01/01/93')             */
  835. /*--------------------------------------------------------------------*/
  836. GREG2JUL: PROCEDURE
  837. PARSE ARG mm '/' dd '/' yy
  838. IF yy//4 = 0            /* IS YEAR DIVISIBLE BY 4?     */
  839. THEN result = (1000*yy)+TRUNC((((((mm+9)//12*306)+5)/10+dd+59)//366)+1)
  840. ELSE result = (1000*yy)+TRUNC((((((mm+9)//12*306)+5)/10+dd+58)//365)+1)
  841. RETURN result
  842.  
  843. /*RCOPY diffdate **** 22 LINES COPIED ON 04-09-94 AT 06:54*************/
  844. /*-------------------------------------------------------------------*/
  845. /*:SUBROUTINE:  DIFFDATE                       */
  846. /* PURPOSE:    Calc the difference between two Julian date/times.  */
  847. /* PARMS:     1. Most recent Julian date, in the form YYDDDHHMM  */
  848. /*        2. The other Julian date, in the form YYDDDHHMM   */
  849. /* RETURNS:    Elapsed time in the form DDDDDHHMM          */
  850. /* EXAMPLE:    days = FORMAT(LEFT(DIFFDATE(930010000,920010000),5))*/
  851. /*-------------------------------------------------------------------*/
  852. DIFFDATE: PROCEDURE
  853. PARSE ARG datetime1, datetime2
  854. PARSE VAR datetime1 1 y1 3 d1 6 hh1 8 mm1
  855. PARSE VAR datetime2 1 y2 3 d2 6 hh2 8 mm2
  856. min1 = hh1*60+mm1
  857. min2 = hh2*60+mm2
  858. m1 = min1-min2           /* minutes after 12am (may be neg) */
  859. m2 = (m1+2*1440)//1440       /* make sure minutes are positive  */
  860. m3 = (m1-m2)%1440          /* if min was neg decr. days by 1  */
  861. y1 = (y1+99)%4*1461+(y1+99)//4*365 /* convert yrs to days (+constant) */
  862. y2 = (y2+99)%4*1461+(y2+99)//4*365 /* ditto (+same constant!)     */
  863. d3 = d1-d2+m3+y1-y2         /* number of days difference    */
  864. d3 = (d3+2*36525)//36525      /* handle century wrap       */
  865. RETURN RIGHT(d3,5,0)RIGHT(m2%60,2,0)RIGHT(m2//60,2,0)
  866.  
  867.  
  868. ΓòÉΓòÉΓòÉ 9. A Short Message From Our Sponsor ΓòÉΓòÉΓòÉ
  869.  
  870. Please print a registration form topic and register WPSbkup. 
  871.  
  872. I hope you find this utility helpful, but (here comes the disclaimer) I am in 
  873. no way responsible for any damages the use of this utility may cause.  You are 
  874. free to use this utility at your own risk with no obligation to me, the author, 
  875. for only a short period of time. 
  876.  
  877. This backup utility will allow 15 trial executions.  Then it will "time out." 
  878. If WPSbkup is helpful to you or your organization, you should register it.  The 
  879. registration fees are: 
  880.  
  881. o For individuals - $15 (US) 
  882. o For each business location - $150 (US) 
  883. o Enterprise wide - $1500 (US) 
  884.  
  885. Checks must be drawn upon US banks. 
  886.  
  887. Comments, suggestions and bug reports may be submitted to Dave Lester through 
  888. CIS Mail ID 75600,237.  These will be answered on a "best effort" basis. 
  889.  
  890.  
  891. ΓòÉΓòÉΓòÉ 10. Registration Forms ΓòÉΓòÉΓòÉ
  892.  
  893. Since there are varied ways in which WPSbkup may be registered, I have provided 
  894. several order forms that you can use.  Just click the + sign located to the 
  895. left of the Registration Forms line in the Contents window.  That will expand 
  896. several registration form entries.  Please choose Print from the Services menu 
  897. to print the registration form that best suits your needs. 
  898.  
  899.  
  900. ΓòÉΓòÉΓòÉ 10.1. 2.05: Individual Registration ΓòÉΓòÉΓòÉ
  901.  
  902. Please, print this form and register WPSbkup.
  903. My Name and Address:                                Remit Payment and Order To:
  904. ________________________           Dave Lester
  905. ________________________           New Freedom Data Center
  906. ________________________           Box 461
  907. ________________________           New Freedom, PA. 17349
  908.  
  909. Qty.        Description                  Unit   Extended
  910.                                 Price   Price
  911.  
  912. ____      I would like to register WPSbkup for my individual use.                     $15   _______
  913.  
  914.                                 TOTAL:  _______
  915.          Please remit payment in US dollars or check written in US dollars drawn upon US bank.
  916.  
  917.  
  918. ΓòÉΓòÉΓòÉ 10.2. 2.05: Company Site Registration (by check) ΓòÉΓòÉΓòÉ
  919.  
  920. Please, print this form and register WPSbkup.
  921. Remit Payment and Order To:
  922. Dave Lester
  923. New Freedom Data Center                   (717) 235-7315 (Voice)
  924. Box 461                             (717) 235-0985 (FAX)
  925. New Freedom, PA. 17349
  926.  
  927. Qty.        Description                  Unit   Extended
  928.                                 Price   Price
  929.  
  930. _1__    I am registering WPSbkup to be used at one of my company's business locations.  A check is
  931.       enclosed and the following addresses should be used to deliver WPSbkup to us.          $150   _150___
  932.         Technical Contact        Ship To Address       Registered Site Address
  933.     _____________________ ____________________ ____________________
  934.     _____________________ ____________________ ____________________
  935.     _____________________ ____________________ ____________________
  936.     _____________________ ____________________ ____________________
  937. ____    Additional business sites at which WPSbkup will be run in my company.         $150  _______
  938.     _____________________ ____________________ ____________________
  939.     _____________________ ____________________ ____________________
  940.     _____________________ ____________________ ____________________
  941.     _____________________ ____________________ ____________________
  942.  
  943.     _____________________ ____________________ ____________________
  944.     _____________________ ____________________ ____________________
  945.     _____________________ ____________________ ____________________
  946.     _____________________ ____________________ ____________________
  947.  
  948.     _____________________ ____________________ ____________________
  949.     _____________________ ____________________ ____________________
  950.     _____________________ ____________________ ____________________
  951.     _____________________ ____________________ ____________________
  952.                                             TOTAL:  _______
  953.      Please remit payment in US dollars or check written in US dollars drawn upon US bank.
  954.  
  955.  
  956. ΓòÉΓòÉΓòÉ 10.3. 2.05: Company Site Registration (by purchase order) ΓòÉΓòÉΓòÉ
  957.  
  958. Please, print this form and register WPSbkup.
  959. Remit Purchase Order and Order Form To:
  960. Dave Lester
  961. New Freedom Data Center                   (717) 235-7315 (Voice)
  962. Box 461                             (717) 235-0985 (FAX)
  963. New Freedom, PA. 17349
  964.  
  965. Qty.        Description                  Unit   Extended
  966.                                 Price   Price
  967.  
  968. _1__    I am registering WPSbkup to be used at one of my company's business locations.  A purchase order
  969.       is enclosed and the following addresses should be used to deliver and bill WPSbkup to us.   $150   _150___
  970.         Technical Contact        Ship To Address       Registered Site Address       Bill To Address
  971.     _____________________ ____________________ ____________________ ____________________
  972.     _____________________ ____________________ ____________________ ____________________
  973.     _____________________ ____________________ ____________________ ____________________
  974.     _____________________ ____________________ ____________________ ____________________
  975. ____    Additional business sites at which WPSbkup will be run in my company.         $150  _______
  976.     _____________________ ____________________ ____________________
  977.     _____________________ ____________________ ____________________
  978.     _____________________ ____________________ ____________________
  979.     _____________________ ____________________ ____________________
  980.  
  981.     _____________________ ____________________ ____________________
  982.     _____________________ ____________________ ____________________
  983.     _____________________ ____________________ ____________________
  984.     _____________________ ____________________ ____________________
  985.  
  986.     _____________________ ____________________ ____________________
  987.     _____________________ ____________________ ____________________
  988.     _____________________ ____________________ ____________________
  989.     _____________________ ____________________ ____________________
  990.                                             TOTAL:  _______
  991.      Please remit payment in US dollars or check written in US dollars drawn upon US bank.
  992.  
  993.  
  994. ΓòÉΓòÉΓòÉ 10.4. 2.05: Enterprise Registration (by check) ΓòÉΓòÉΓòÉ
  995.  
  996. Please, print this form and register WPSbkup.
  997. Remit Payment and Order To:
  998. Dave Lester
  999. New Freedom Data Center                   (717) 235-7315 (Voice)
  1000. Box 461                             (717) 235-0985 (FAX)
  1001. New Freedom, PA. 17349
  1002.  
  1003. Qty.        Description                  Unit   Extended
  1004.                                 Price   Price
  1005.  
  1006. _1__    I am registering WPSbkup for unlimited use within our enterprise  A check is
  1007.       enclosed and the following addresses should be used to deliver WPSbkup to us.        $1,500  _1,500_
  1008.         Technical Contact        Ship To Address
  1009.     _____________________ ____________________
  1010.     _____________________ ____________________
  1011.     _____________________ ____________________
  1012.     _____________________ ____________________
  1013.  
  1014.     I understand that by registering WPSbkup for my enterprise I secure the following rights:
  1015.  
  1016.     - Ability to make unlimited copies of the software for use at any of our
  1017.      corporate facilities
  1018.     - Employees of my corporation may copy the software for their home use
  1019.     - Updates to the software (as they occur) will be automatically mailed to the
  1020.      technical contact listed above
  1021.  
  1022.  
  1023.  
  1024.  
  1025.                                             TOTAL:  _$,1500_
  1026.      Please remit payment in US dollars or check written in US dollars drawn upon US bank.
  1027.  
  1028.  
  1029. ΓòÉΓòÉΓòÉ 10.5. 2.05: Enterprise Registration (by purchase order) ΓòÉΓòÉΓòÉ
  1030.  
  1031. Please, print this form and register WPSbkup.
  1032. Remit Purchase Order and Order Form To:
  1033. Dave Lester
  1034. New Freedom Data Center                   (717) 235-7315 (Voice)
  1035. Box 461                             (717) 235-0985 (FAX)
  1036. New Freedom, PA. 17349
  1037.  
  1038. Qty.        Description                  Unit   Extended
  1039.                                 Price   Price
  1040.  
  1041. _1__    I am registering WPSbkup for unlimited use within our enterprise  A purchase order
  1042.       is enclosed and the following addresses should be used to deliver and bill WPSbkup to us.   $1,500  _1,500_
  1043.         Technical Contact        Ship To Address         Bill To Address
  1044.     _____________________ ____________________ ____________________
  1045.     _____________________ ____________________ ____________________
  1046.     _____________________ ____________________ ____________________
  1047.     _____________________ ____________________ ____________________
  1048.  
  1049.     I understand that by registering WPSbkup for my enterprise I secure the following rights:
  1050.  
  1051.     - Ability to make unlimited copies of the software for use at any of our
  1052.      corporate facilities
  1053.     - Employees of my corporation may copy the software for their home use
  1054.     - Updates to the software (as they occur) will be automatically mailed to the
  1055.      technical contact listed above
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                                             TOTAL:  _$,1500_
  1061.      Please remit payment in US dollars or check written in US dollars drawn upon US bank.
  1062.