home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 6 File / 06-File.zip / lpt209.zip / lptool.doc < prev    next >
Text File  |  1999-09-14  |  36KB  |  855 lines

  1.  
  2.   LPTool filetransfer & rexec; version 2.09 14-09-99 (c) 1996-98; Jan van Wijk
  3.  ════════════════════════════[ www.fsys.demon.nl ]═════════════════════════════
  4.  
  5.  
  6. CONTENTS
  7. --------
  8.  Introduction, purpose of the program                                   1
  9.  Status of the program                                                  1
  10.  Installation                                                           2
  11.  Quick setup and verification                                           3
  12.  Summary of commands                                                    4
  13.  Command reference                                                      5
  14.  Examples of LPT usage                                                  9
  15.  Laplink cable layout                                                   9
  16.  Known limitations                                                     10
  17.  Considered improvements                                               10
  18.  
  19.  
  20. Introduction, purpose of the program
  21. ------------------------------------
  22.  LPTool enables file transfer and remote execution via a "laplink" cable
  23.  connection between parallel ports of two machines running OS/2 3.0 or
  24.  greater.
  25.  
  26.  Features include the ability to create directories on the remote
  27.  machine, copy of complete directory-trees including EAs (S option), and
  28.  replace locked (in use) OS/2 DLLs or EXEs at the receiver side.
  29.  
  30.  LPTool works using a daemon in a text-window, accessible either directly or
  31.  through other programs with the help of LPTQ.EXE, enabling REXX and batchfile
  32.  automation and integration with file-managers.
  33.  
  34.  Two warnings!  LPTool will overwrite directories and files without
  35.  warning, so make very certain you know where your files are headed
  36.  before you begin a transfer.  And, LPTool comes with no guarantee of any
  37.  nature.  But so far it seems to work quite well.
  38.  
  39.  
  40. Availability
  41. ------------
  42.  
  43.  1) My Homepage:  http://www.fsys.demon.nl       look for lptool
  44.  
  45.  2) HOBBES (WWW): http://hobbes.nmsu.edu         search for "LPTOOL"
  46.  
  47.  3) Several other WEB and FTP sites, bulletin boards (often outdated!)
  48.  
  49. Status of the program
  50. ---------------------
  51.  
  52.  This version of the program is free for anyone to use, it was written
  53.  in my own time using my own equipment. However, I would very much
  54.  appreciate any feedback by e-mail or a simple postcard to:
  55.  
  56.                       ┌───────────────────┐
  57.                       │  Jan van Wijk     │
  58.                       │  Blekerstraat 83  │
  59.                       │  1315 AC  Almere  │
  60.                       │  Netherlands      │
  61.                       └───────────────────┘
  62.  
  63.  Further development depends on my own needs and feedback I receive from
  64.  other users, al work has to be done on spare time...
  65.  
  66.  You can reach me through the Internet: lpt@fsys.demon.nl
  67.                                                                               
  68. Change History
  69. --------------
  70. 1.00  27-01-96     Initial version, communicate with the device-driver
  71. 1.16  22-02-96     First BETA; with some known bugs
  72. 1.26  06-03-96     GAMMA version, including REXEC and performance statistics
  73. 1.30  14-03-96     First production version, including REXX; no internal trace
  74.                    CRC-32 checking is being done on file-transfer
  75. 1.34  10-04-96     Added extra file-spec evaluation for include/exclude [x]
  76. 1.35  14-04-96     Auto exit feature; Replace of locked EXE's or DLL's
  77. 1.42  12-05-96     Command-queueing, other programs can supply cmds (LPTQ.EXE)
  78. 1.50  27-05-96     Final version using command-queueing, WARP EXEPACK:2
  79. 1.56  16-06-96     First version using multi-threaded read/write port/disk
  80. 1.65  27-01-97     Dynamic loading of REXX support; fixed thread priorities
  81. 1.69  06-02-97     filetree and drivemap commands added for GUI interface
  82. 1.70  08-02-97     -c option (clean) and daemon command added for LPTGUI
  83. 1.71  12-02-97     P option on send, no peer-prompting and stat; *cmd pilot
  84. 1.75  17-02-97     *send reliable (but slow); lpts.cmd for synchronizing dirs
  85. 1.76  23-02-97     New cmd "qscreen" on/off, new cmd "say"; @ for no echo
  86. 1.81  13-07-97     New filetree / tstree commands; bug-fixes
  87. 1.83  26-04-98     Multiple-cmd using # separators; cosmetic fixes; WEB info
  88. 1.84  04-05-98     Accept \pipe\xxx as source and \pipe\ as destination stream
  89. 1.86  09-05-98     Fixed 'sound asleep' priority problem for daemon thread
  90. 1.87  15-05-98     Fixed some more dead-lock possibilities in agent thread
  91. 1.90  07-06-98     Made size-param obsolete on \pipe\, prepare for LZW compres
  92. 1.92  15-06-98     First release with LZW compression on file-transfer
  93. 1.95  21-06-98     Rename to LPTool, display changes + fixes for compress bugs
  94. 1.96  23-06-98     High-res icons, fix for 'overwriting dir' trap; diplay fixes
  95. 1.97  01-08-98     Added support for LPT2, BETA, not properly tested yet :-(
  96. 1.98  04-08-98     Update LPTDD.SYS for LPT2/LPT3 use (works OK but hardcoded)
  97. 1.99  05-12-98     Documentation and help-text update, ?? = verbose SEND help
  98. 2.00  12-07-99     Windowed user-interface, scroll-buffer
  99. 2.01  04-08-99     Cable spec doc; enhanced command-recall; 80 column width
  100. 2.02  17-08-99     Improved display performance; progress numeric on large files
  101.                    default asynchronious mode on send (more robust normally)
  102. 2.03  21-08-99     Remote execution HANGS fixed! screen-lines param on start
  103. 2.04  22-08-99     Cleanup; <Esc> will now abort send, show etc at next file
  104. 2.05  05-09-99     Type-ahead default ON (for DragText compatibilty); SET cmd
  105. 2.06  06-09-99     Minor update in SEND (AF default) and DEVICE (rmview info)
  106. 2.07  07-09-99     Fixed hang-on-exit when windowed (lptq qq); Link to PCOPY
  107. 2.08  12-09-99     Fixed SET command (compress) and added 'U' option to send
  108. 2.09  14-09-99     Minor fix in SET SEPARATOR cmd (trap)
  109.  
  110.                    WARNING ==> LPTQ.EXE 2.01 or older is not compatible with
  111.                                releases starting from 2.02, using it wil KILL
  112.                                the daemon LPTOOL.EXE!
  113.  
  114. Special thanks to:
  115.  
  116. Ray Tennenbaum     for his contribution to this documentation
  117. Aglaja Przyborski  for the nice icons she created for the tool
  118. Joe Nord           for writing an excellent LPT device driver wich was
  119.                    the basis to start LPTool development
  120.                    (LPTIO.SYS, part of the PCOPY package, see www.leo.org)
  121.                                                                               
  122. Installation
  123. ------------
  124.  
  125. Only two files are required to operate LPTool, LPTDD.SYS, the device
  126. driver, and LPTOOL.EXE, the actual LPTool.
  127.  
  128. 1) Unzip the files into a directory.  Next, add to your config.sys:
  129.  
  130.    DEVICE=[drive]:\[path]\LPTDD.SYS
  131.  
  132. Note: LPTDD.SYS can take two optional parameters:
  133.   "-T:ss" specifying the timeout value on send/receive (default 10 seconds).
  134.   If using slow media (diskette), or when LPTool is used on a very busy system,
  135.   increase this for reliable operation, e.g.
  136.  
  137.    DEVICE=[drive]:\[path]\LPTDD.SYS -T:30
  138.  
  139.   "-P:n" specifying the LPT port-address to use (default is 1 for using 0378).
  140.  
  141.    DEVICE=[drive]:\[path]\LPTDD.SYS -P:2
  142.  
  143. 2) To use LPTOOL.EXE, either copy it to a directory in your path
  144.    (recommended) or simply start it in its own directory.
  145.    You may then issue commands like the ones below.
  146.    LPTool supports REXX.
  147.  
  148. * LPTRACE.EXE is the LPTool with trace and debug code (available on request)
  149.   -- it also runs on OS/2 2.11.
  150.  
  151. * LPTQ.EXE is a simple text front-end to pass LPTool commands to LPTool.EXE
  152.   -- very useful for batchfile transfers and from file-managers
  153.   -- no need for LPTQ at all at the 'receiver', optional at the 'sender'
  154.  
  155. * LPTS.CMD is an LPTool REXX script to synchronize a local directory with
  156.   a remote directory, based on date- and time-info.
  157.  
  158. * LPTD.CMD is a simple command to start LPTool as dedicated daemon.
  159.   -- useful when commands are passed from one or more LPTQ's
  160.  
  161. For best results, all these should be in your PATH.
  162.  
  163.  
  164. LPTool quick setup and verification
  165. -----------------------------------
  166.  
  167.  
  168.    PC-number 1,  "this" or "HERE"          PC-number 2,  "peer"
  169.    usualy originating/sending              usualy listening/receiving
  170.  
  171.  
  172.      Keyb   Screen
  173.                           Keyb   Screen          Keyb   Screen
  174.        |      |
  175.     +------------+          |      |               |      |
  176.     |  LPTQ.EXE  |       +------------+         +------------+
  177.     | front end  |------>|            |         |            |
  178.     +------------+       | LPTOOL.EXE |         | LPTOOL.EXE |
  179.                          |            |         |            |
  180.     +------------+       |   daemon   |         |   daemon   |
  181.     |  LPTQ.EXE  |------>|            |         |            |
  182.     | front end  |       +------------+         +------------+
  183.     +------------+             |                      |
  184.        |      |                |                      |
  185.                          +------------+         +------------+
  186.      Keyb   Screen       | LPTDD.SYS  |  cable  | LPTDD.SYS  |
  187.                          |            |========>|            |
  188.                          |  driver    |         |  driver    |
  189.     Note: Use of LPTQ    +------------+         +------------+
  190.           is optional
  191.  
  192.  
  193. You need to run LPTool on both ends, actualy there is no real 'host'
  194. and 'client' both are equal peers. For LPTool to start, you need to
  195. have LPTDD.SYS installed in config.sys, and a working parallel port
  196. must be available.
  197.  
  198. On some laptops this is sometimes a problem, to save power, they can
  199. be switched off in the BIOS setup. Also, chewck the port-address, when
  200. not standard, you need to specify it on the LPTDD.SYS line in config.sys.
  201. Look for the -P:xx option (LPTOOL.DOC).
  202.  
  203. The port should be a bi-directional one, no ECP or EPP mode required.
  204. (usualy a BIOS setting too, often the default)
  205.  
  206. And you need the right cable connected, it is a regular LapLink cable,
  207. sold in computer stores. The cable-layout is in LPTOOL.DOC too.
  208.  
  209. After starting LPTool you can check the connection to the port using
  210. the 'device' command, it should say something like:
  211.  
  212. >> Current LPTool device: LPTDD1$
  213.  
  214. or, when using LPTool version 3.06 or newer:
  215.  
  216. >> Current LPTool device: LPTDD1$, possible values are:
  217. >>
  218. >> Possible devices are :
  219. >> (LPT1) fixed at 0378 : LPTDD1$, use LPTDD -P:1
  220. >> (LPT2) fixed at 0278 : LPTDD2$  use LPTDD -P:2
  221. >> (LPT3) fixed at 03BC : LPTDD3$  use LPTDD -P:3
  222. >>  LPT1 as set by BIOS : LPTIO1$, requires LPTIO.SYS
  223. >>
  224. >> Parallel ports as seen bij OS/2 device-manager:
  225. >>  I/O = 0X0378  Len = 8  Flg = MULTIPLEXED PARALLEL_0 Parallel Port Adapter
  226.  
  227. When you have that correct on both sides, you can test the actual connection
  228. using a 'ping' command'
  229.  
  230. It should say "Ping sent, Pong received ..."
  231.  
  232. If a timeout occurs, either the cable is not connected or is wrong, or
  233. the selected port is not operating correctly, or LPTool is not running
  234. at the other end.
  235.  
  236. When it does work you can give a 'send' command on either side to send
  237. one or more files to the other side, example:
  238.  
  239. send g:\documents\*  d:\backup  s
  240.  
  241. Will send the whole 'documents' directory tree to a 'backup' directory
  242. on the D: drive.
  243.  
  244.  
  245. Summary of commands
  246. -------------------
  247.  LPTool takes commands as an OS/2 command-line argument or from the
  248.  keyboard using either a classic or a windowed user-interface.
  249.  It displays the results to the screen, scrolling text upward.
  250.  Results can also be copied to a file for later analysis.
  251.  
  252.  When a command is passed from the OS/2 command-line, LPTool will quit
  253.  after execution of the command. This makes is easier to call LPTool functions
  254.  from other tools, like file-managers.  The commands are single words.
  255.  Most commands have one or more parameters of wich some are optional.
  256.  
  257.  Interrupting the program using Ctrl-C will exit completely.
  258.  Most commands can be aborted using the <Esc> key however, the file
  259.  related commands like SEND and SHOW will then stop at the next file.
  260.  
  261.  An overview of the available commands is given below, it can also be
  262.  referenced from within the program using the '?' command.
  263.  
  264.  ping [ + | - ]          = Check if other station is connected and ready
  265.  find [s][c][o][a][n][x] = Find files, display info; optional cmd [c])
  266.  show [s][d][o][a][n][x] = Show source & target filespec for a send
  267.  send [s][d][o][a][n][x] = Send files to connected peer machine
  268.  
  269.       s = source specification, optional absolute or relative path
  270.       d = destination: path, '*' = current dir, '=' = same path, d:, d:=
  271.       o = options: S=subdirectories, F=Files, D=Dirs, I=Include, A=async
  272.       x = exclude/include file-spec(s), wildcards * and ? allowed
  273.       a = Attributes to match for source selection
  274.       n = Attributes to set/reset afterwards on source
  275.             A = Archive, R = Read-only, S = System, H = Hidden
  276.                 Prefix each with '+' for set and '-' for reset
  277.  
  278.  ??                    = Give verbose help on the 'send' parameters
  279.  command-string        = Execute an LPTool or OS/2 command here
  280.  .command-string       = Execute an LPTool command at the other side
  281.  r command-string      = Remote exec command, redirect output back
  282.                          External GUI and filemanager support commands
  283.  filetree   [filespec] = As 'find' includes date and time, no destination
  284.  tstree  [fspec][dest] = As 'find' with sortable date/time; includes dest
  285.  drivemap    [ - | + ] = Available drive-letters in different formats
  286.  
  287.  run lpt-macro[.cmd]   = Run REXX macro in LPTool ADDRESS-environment
  288.  q, quit, exit         = Exit LPTool; 2.09 14-09-99  (c) 1996-99; Jan van Wijk
  289.  
  290.  
  291.  EXTERNALS   Any command not recognized as a valid LPTool internal command
  292.              will be passed to the default command-processor (COMSPEC).
  293.              Usefull commands: DIR, DEL, ...
  294.                                                                                
  295. Command reference
  296.  
  297.  send [source-files] [destination] [options] [attrib] [new-attr] [excludes]
  298.  
  299.  Purpose:       Send one or more files from THIS to PEER
  300.  
  301.  Parameters:    source-files    source specification, default '*'
  302.                                 may include absolute or relative path, can
  303.                                 also be a named pipe: "\pipe\pipename" where
  304.                                 pipename will be used as destination filename
  305.  
  306.                 dest            destination path, absolute including drive or
  307.                                 relative to receiving LPTool current directory
  308.  
  309.                                 Some special values or combinations are:
  310.  
  311.                                 '*'    = current dir at receiving LPTool
  312.                                 'd:'   = current receiver dir, different drive
  313.                                 '='    = same path as source, on same drive
  314.                                 'd:='  = same path as source, different drive
  315.                                 \pipe\ = Named pipe "\pipe\src-fname" where
  316.                                          src-fname is the filename part of
  317.                                          the source specification (no path)
  318.  
  319.                 options         default is 'AF' for single-dir, 'AB' for a tree
  320.                                 A = Asynchronious mode, no direct RC reportback
  321.                                 R = Reportback RC of file-transfer to sender
  322.                                 U = Uncompressed, do not compress any files
  323.                                 S = subdirectories included
  324.                                 F = Files only
  325.                                 D = Directories only
  326.                                 B = Both files and directories
  327.                                 I = Use additional Filespecs [x] as INCLUDE
  328.                                     selection, not Exclude. (default exclude)
  329.  
  330.                                 may be prefixed with '+', '-' or '/'
  331.  
  332.                 attrib          Attributes for selection, default none
  333.  
  334.                                 A = Archive
  335.                                 R = Read-only
  336.                                 S = System
  337.                                 H = Hidden
  338.                                 D = Directory
  339.  
  340.                                 When specified, each attribute must be
  341.                                 prefixed with:
  342.  
  343.                                 '+'  attribute set
  344.                                 '-'  attribute clear
  345.                                 '*'  attribute don't care
  346.  
  347.                 new-attr        Attributes to set/reset afterwards on
  348.                                 each selected source file/directory.
  349.  
  350.                                 A = Archive             H = Hidden
  351.                                 R = Read-only           D = Directory
  352.                                 S = System
  353.  
  354.                                 When specified, prefix each attribute with:
  355.  
  356.                                 '+'  attribute set      '*'  attribute keep
  357.                                 '-'  attribute clear
  358.  
  359.                 excludes        Upto 9 seperate file-specs to be excluded or
  360.                                 specifically included.
  361.                                 Multiple wildcards * and ? allowed.
  362.                                                                                
  363.  
  364.  Output:        One line for each file/directory sent to PEER, with:
  365.  
  366.                   filesize  EA-size  attributes  filename   progress
  367.  
  368.                 Some lines with a summary of the number of files,
  369.                 directories, read-only files etcetera that were found.
  370.                 Also a performance indication in Kb/second is given,
  371.                 the actual amount sent and the compression ratio.
  372.  
  373.  
  374.  show [source-files] [destination] [options] [attrib] [new-attr] [excludes]
  375.  
  376.  Purpose:       Show wich files will be sent from THIS to PEER if the
  377.                 same parameters are used on the SEND command
  378.  
  379.  Parameters     see SEND command
  380.  
  381.  Output:        One line for each file/directory sent to PEER with:
  382.  
  383.                   source-filespec  => target-filespec
  384.  
  385.  
  386.  find [source-files] [os2-command] [options] [attrib] [new-attr] [excludes]
  387.  
  388.  Parameters     see SEND command, except for [c] parameter
  389.  
  390.                 os2-command     Command to execute on each file found, the
  391.                                 full path and filename will be passed as
  392.                                 argument to the specified command.
  393.                                 Note: DO NOT INCLUDE ANY SPACES IN THE COMMAND
  394.  
  395.  Purpose:       Find files using same syntax as send/show
  396.  
  397.  Output:        One line for each file/directory found with:
  398.  
  399.                   filesize  EA-size  attributes  filename
  400.  
  401.                 Some lines with a summary of the number of files,
  402.                 directories, read-only files etcetera that were found.
  403.  
  404.  
  405.  filetree [source-files] [dest] [options] [attrib] [new-attr] [excludes]
  406.  
  407.  Purpose:       Show wich files exist for a given filespec and attributes
  408.                 usefull for a GUI interface remote query ("r filetree")
  409.  
  410.  Parameters     see SEND command, [dest] parameter is ignored
  411.  
  412.  Output:        One line for each file/directory found with:
  413.  
  414.                   dd/mm/yy hh:mm filesize  attributes  full-filename
  415.  
  416.  
  417.  tstree   [source-files] [dest] [options] [attrib] [new-attr] [excludes]
  418.  
  419.  Purpose:       Find and list files using a date sortable output format
  420.  
  421.  Parameters     see SEND command, including [dest] parameter (destination)
  422.  
  423.  Output:        One line for each file/directory found with:
  424.  
  425.                   yymmddhhmm full-filename » destination-path
  426.                                                                                
  427.  
  428.  .command-string         = Execute an LPTool command at the other side
  429.  
  430.  Purpose:       Execute an LPTool command at the PEER
  431.  
  432.  Parameters:    As required by the LPTool command
  433.  
  434.  
  435.  *command-string         = Execute an LPTool command at the other side, watch
  436.  
  437.  Purpose:       Execute an LPTool command at the PEER, stay watching output for
  438.                 a short while (usefull from LPTQ to get AGENT output back)
  439.                 Also see the 'WATCH' command
  440.  
  441.  Parameters:    As required by the LPTool command
  442.  
  443.  
  444.  r command-string        = Remote exec command, redirect output back
  445.  
  446.  Purpose:       Execute an OS/2 command at the PEER and get output HERE
  447.  
  448.  Parameters:    As required by the OS/2 command
  449.  
  450.  Output:        All standard-output (STDOUT, filehandle 1) and all
  451.                 standard-error (STDERR, filehandle 2) will be intercepted
  452.                 at the PEER, send back to the local machine, and is displayed
  453.                 using standard LPTool mechanisms. This includes a local log-file.
  454.  
  455.  
  456.  set var [value]         = Set/show an LPTool system variable value
  457.  
  458.  Purpose:       Set an LPTool system variable to a specific value and/or
  459.                 show the actual value of a variable
  460.  
  461.  Parameters:    var  [value]     Name and optional value for a variable
  462.  
  463.                      - PROMPT    Prompting level, default valie is 4
  464.                                    0         no automatic prompting
  465.                                    1         just a command-prompt
  466.                                    2         full menu at auto prompt
  467.                                    4         Daemon usage auto prompt
  468.  
  469.                      - COMPRESS  Compression level, default value is 14
  470.                                    0         no compression
  471.                                    10 .. 13  LZW variants
  472.                                    14        LZW 14-bit (default)
  473.  
  474.                      - PROGRESS  Progress indicator type, default value is 2
  475.                                    0   dots & diamonds only (classic way)
  476.                                    2   dynamic, use numeric on large files
  477.                                    4   numeric, transferred size in Kb or Mb
  478.  
  479.                      - SEPARATOR Separator character for multiple-commands
  480.  
  481.                      - SCREEN    Screen output, default ON
  482.                                    on        Screen output on
  483.                                    off       Off, output to LOG or REXX only
  484.  
  485.                      - ANSI      Ansi color and cursor-movement, default ON
  486.                                    on        ANSI support ON
  487.                                    off       Off, black & white output
  488.  
  489.                      - TYPE      Type-ahead, default ON
  490.                                    on        Type-ahead enabled
  491.                                    off       Type-ahead disabled
  492.  
  493.                      - PRIO      Process priority
  494.                                    --        lowest priority
  495.                                    -         lower priority
  496.                                    -         standard priority
  497.                                    +         higher priority
  498.                                    ++        highest priority
  499.  
  500.  Output:        Value of the system-variable, after optional value assignment
  501.  
  502.                                                                                
  503.  watch [time-out] [idle-time]
  504.  
  505.  Purpose:       Keep watching, and redirecting, screenouput to be able to
  506.                 see it from an attached LPTQ or in the logfile
  507.  
  508.  Parameters:    time-out        Timeout for first-output line in seconds,
  509.                                 if no ouput after (to) then command ends
  510.  
  511.                 idle-time       Timeout after first output is seen in seconds,
  512.                                 if no more ouput is seen for (it) seconds the
  513.                                 command (and redirection) will end
  514.  
  515.  Output:        All standard-output (STDOUT, filehandle 1) and all
  516.                 standard-error (STDERR, filehandle 2) will be intercepted
  517.                 at the PEER, send back to the local machine, and is displayed
  518.                 using standard LPTool mechanisms. This includes a local log-file.
  519.  
  520.                                                                                
  521.  l [file]                = Log to 'file' ('l' = stop log)
  522.  
  523.  Purpose:       Close current LOG, open new and capture LPTool output in it
  524.  
  525.  Parameters:    File specification
  526.                 If no parameter is specified, logging is stopped.
  527.  
  528.  Output:        Concatenated output of LPTool commands given after the
  529.                 'l' command, upto next 'l' or 'q' command.
  530.                 ANSI control characters for colors and cursor-positioning
  531.                 are not written to the logfile.
  532.  
  533.  Remarks:       There is no check on available space on the destination
  534.                 drive, file may end up empty if disk(ette) is full.
  535.  
  536.                 The same logfile specification can be used more than once,
  537.                 output will be concatenated.
  538.  
  539.                 On each 'l' command the current logfile will be closed.
  540.  
  541.  
  542.  trace [level]           = Set trace level for LPTool internal functions
  543.  
  544.  Purpose:       Investigate unexpected behaviour and debug LPTool
  545.  
  546.  Parameters:    level   optional   Trace level; 0 = no trace
  547.  
  548.  Output:        The resulting trace-level, after this the output will be
  549.                 normal output mixed with extra trace information showing
  550.                 API return-codes and LPTool internal variables
  551.  
  552.  Remarks        Use with care, tracing will delay processing wich might
  553.                 cause additional problems like LPTDD$ timeouts.
  554.  
  555.                 This function might be left out of production versions of
  556.                 the tool to get maximum performance.
  557.  
  558.  
  559.  q, quit, exit         = Exit LPTool; 2.00 12-07-99  (c) 1996-98; Jan van Wijk
  560.  
  561.  Purpose:       Exit LPTool program
  562.  
  563.  Parameters:    none
  564.  
  565.  Output:        none
  566.  
  567.  Remarks:       LPTDD$ and logfile will be closed on exit
  568.                 Asynchronious running threads will be aborted.
  569.  
  570.                 When given from clients like LPTQ, the daemon can be stopped
  571.                 as well by executing the 'QQ' command.
  572.  
  573.  
  574.  lpt                     = Identify currently running LPTool (daemon) version
  575.  
  576.  Purpose:       Show version of connected LPTool daemon, useful from clients
  577.  
  578.  Parameters:    none
  579.  
  580.  Output:        Version info
  581.  
  582.  
  583.  device [device-name]    = Identify or set the LPT device to use
  584.  
  585.  Purpose:       Show attached device-driver name, or optionaly set and re-open
  586.                 with a different name (allowing use of LPT2 for instance)
  587.  
  588.  Parameters:    device-name     The device-driver name to open, any valid OS/2
  589.                                 device will do, but only the ones created by
  590.                                 LPTDD.SYS or LPTIO.SYS will actualy work :-)
  591.                                 The device names are:
  592.                                 "LPTDD1$"  for LPT1, hardcoded I/O port 0378
  593.                                 "LPTDD2$"  for LPT2, hardcoded I/O port 0278
  594.                                 "LPTDD3$"  for LPT3, hardcoded I/O port 03BC
  595.                                 "LPTIO1$"  for LPT1, BIOS resolved I/O port
  596.                                                      requires LPTIO.SYS
  597.  
  598.  Output:        Either the name of the currently attached device name, or
  599.                 a message indicating success or failure opening the device, and
  600.                 possible warnings if the device is not a proper LPTool device.
  601.                 Also, when on Warp version 4 or newer, rmview ouput for the
  602.                 available parallel port-addresses is given.
  603.  
  604.  Remarks:       On startup LPTool automaticaly will try to open each of the
  605.                 above mentioned devices, until it finds one present.
  606.                 This will usualy be the "LPTDD1$" device.
  607.  
  608.                 For use of another port, like LPT2 the "-P:n" switch is needed
  609.                 on the device statement in config.sys for LPTDD.SYS and the
  610.                 LPTDD.SYS must be at level 1.98 (dated 04-08-1998) or newer.
  611.  
  612.                 The used port-addresses are HARDCODED in the driver, so systems
  613.                 with non-standard LPT assignments might fail to work properly.
  614.  
  615.                 Tip: You can have multiple LPTDD statements in config.sys for
  616.                      different ports, LPTool will open the first available one,
  617.                      but you can change that later using the 'device' command.
  618.  
  619.                  ==> You can even start multiple LPTool daemons and use them
  620.                      concurrently to different connected machines!
  621.  
  622.  
  623.  cd [path]    = Change current Directory
  624.  
  625.  Purpose:       Change both the current directory and the current drive
  626.  
  627.  Parameters:    path    optional   Absolute or relative path specification
  628.  
  629.  Output:        The resulting current drive and directory
  630.  
  631.  Remarks:       '.' and '..' can be used in the relative path specification
  632.  
  633.  
  634.  
  635.  d:           = Change current Drive
  636.  
  637.  Purpose:       Change the current drive, without changing current directory
  638.  
  639.  Parameters:    none
  640.  
  641.  Output:        The resulting current drive and directory
  642.  
  643.  
  644.  
  645.  
  646.  screen [arg] = Switch output to the screen on or off
  647.  
  648.  Purpose:       Allow output to logfile only
  649.  
  650.  Parameters:    arg     optional   'on' or 'off' to switch mode
  651.  
  652.  Output:        none
  653.  
  654.  Remarks:       The returncode (rc from REXX) will indicate the setting for
  655.                 screen output: 0 indicates screen switched on
  656.                                1 indicates screen switched off
  657.  
  658.  
  659.  
  660.  run mf [arg] = Run a REXX macro from LPT
  661.  
  662.  Purpose:       Execute a REXX script using the 'LPT' environment
  663.  
  664.  Parameters:    mf      mandatory  Macro file specification
  665.  
  666.                 arg     optional   Arguments to the REXX macro
  667.  
  668.  Output:        Any output from the REXX macro including (OS/2) commands
  669.                 executed from the macro.
  670.                 There is no redirection of any output to the LPTool logfile.
  671.  
  672.  Remarks:       LPTool commands can be issued from within the macro, this
  673.                 is the default environment (Address LPT).
  674.                 Command for CMD.EXE must be addressed explicitly using
  675.                 an 'Address Cmd'
  676.  
  677.                 The following REXX variables will be available after
  678.                 each executed LPTool command from a macro:
  679.  
  680.                 rc            The returncode from the LPTool command
  681.  
  682.                 REXX is dynamically loaded, when the run-command is exectuted
  683.                 It requires REXX.DLL and REXXAPI.DLL in the libpath.
  684.                                                                                
  685.  
  686.  drivemap [d]                  Show wich logical drives exist
  687.  
  688.  Purpose:       Show wich drive-letters exist at the LPT-deamon
  689.                 usefull for a GUI interface remote query ("r drivemap")
  690.  
  691.  Parameters     d       optional   Output-format / level of detail
  692.  
  693.  Output:        default:    One line of drives, example: "C: D: E: R: Z:"
  694.                 '-'    :    One line for each drive-letter, just the drive
  695.                 '+'    :    One line for each drive-letter, with drive and
  696.                             additional filesystem information
  697.  
  698.  
  699.  EXTERNALS      Any command not recognized as a valid LPTool internal command
  700.                 will be passed to the default command-processor (COMSPEC).
  701.  
  702.  Purpose:       Allow execution of external commands like CHKDSK, DIR etc.
  703.  
  704.  Parameters:    As required by the external command
  705.  
  706.  Output:        Any output by the command
  707.  
  708.  
  709.  
  710. Examples of LPTool usage
  711. -----------------------
  712.  -  Send all files in current directory to PEER's current directory
  713.     SEND
  714.  
  715.  -  Send a single file to a specific directory
  716.     SEND s:\some\source\path\somefile.ext d:\some\destination\path
  717.  
  718.  -  Send a complete tree of files to a specific destination directory
  719.     SEND s:\some\source\path\* d:\some\destination\path s
  720.  
  721.  -  Send a complete tree of files to same path on a different drive
  722.     SEND s:\some\source\path\* d:= s
  723.  
  724.  -  Send all modified (archive-bit set) file in a directory tree to
  725.     exactly the same path on the PEER side and reset archive-bit on source
  726.     SEND * = s +a -a
  727.  
  728.  -  Show wich files will be sent for the previous example
  729.     SHOW * = s +a
  730.  
  731.     Note that the '-a' option is NOT SPECIFIED to prevent the archive-bit
  732.     to be reset just by showing (we want that to happen on SEND).
  733.  
  734.  -  Send a product-development tree except objects and executables:
  735.     SEND d:\project\* . s * * *.OBj *.EXE
  736.  
  737.  -  Send an installed OS/2 version to a different destination-drive and
  738.     exclude the OS/2 ini-files, swapper end desktop-directory
  739.     SEND c:\* e:\ s * * *os2*.ini *swapper.dat c:\desktop*
  740.                                                                                
  741.  -  Send all .C and .H files, from a tree, that have changed (archive bit)
  742.     SEND d:\project\test\* . si +a * *.c *.h
  743.  
  744.  -  Find all files on the C: drive that are read-only
  745.     FIND C:\* s +r
  746.  
  747.  -  Show drives available at the remote machine:
  748.     REXEC DRIVEMAP
  749.  
  750.  -  Show new (archive attribute) files at remote machine in filetree format:
  751.     REXEC FILETREE C:\* s +a
  752.  
  753.  -  Show new (archive attribute) files at local machine in filetree format:
  754.     FILETREE C:\* s +a
  755.  
  756.  -  Send a file using a named-pipe as source (as called from DFSee "sim"):
  757.     SEND \pipe\bootsect.img d:\tmp
  758.  
  759.  -  Receive a file using a named-pipe as destination (as with DFSee "wrim"):
  760.     .SEND d:\tmp\bootsect.img \pipe\
  761.  
  762.  
  763. Known limitations and bugs
  764. --------------------------
  765.  Error recovery
  766.  
  767.      Error recovery is limitted to reporting the error-code and for most
  768.      common errors also a short description of the error. Usualy this will
  769.      be shown both HERE and at the PEER station.
  770.  
  771.  
  772.  REXEC redirection of STDIN
  773.  
  774.      No redirection for a remote program's standard-input is possible yet.
  775.  
  776.  
  777.  Canceling functions
  778.  
  779.  Interrupting the program using Ctrl-C will exit completely.
  780.  Most commands can be aborted using the <Esc> key.
  781.  
  782.  
  783.  When the scroll-buffer or windowing-mode causes any problems,
  784.  LPTool can be started in classic mode as follows:
  785.  
  786.    LPTOOL.EXE nowin
  787.  
  788.  
  789.  WARNING: LPTool, or better: LPTDD.SYS will NOT work when the
  790.           IBM NDIS parallel port-driver PMAC is active, so when
  791.           a statement like:
  792.  
  793.           DEVICE=C:\IBMCOM\MACS\PMAC.OS2
  794.  
  795.           is in your config.sys
  796.  
  797.  
  798. LPTIO.SYS and PCOPY
  799. -------------------
  800.  
  801. This is the original package created by Joe Nord, being used widely
  802. within IBM itself, also available on several external sites.
  803.  
  804.  LEO download site: www.leo.org/pub/comp/os/os2/leo/systools/pcopy.zip
  805.  
  806.  
  807. It's device driver LPTIO.SYS and LPTDD.SYS are very similar.
  808.  
  809. However LPTDD.SYS supports multiple port-addresses to select, at
  810. the cost of HARD-CODING those addresses.
  811.  
  812. In some circumstances LPTDD.SYS may fail to load or attach to the
  813. port, in those cases you might want to try LPTIO.SYS instead.
  814.  
  815. LPTOOL.EXE will work with LPTDD or LPTIO, while Joe Nords original
  816. PCOPY.EXE can only operate together with LPTIO.SYS.
  817.  
  818.  
  819.  
  820. Laplink cable layout
  821. --------------------
  822.  
  823. LapLink cables are 25-pin to 25-pin direct cables.
  824. The pin layout is listed below.  DOS 6.x, Fastlynx and
  825. Brooklyn Bridge use this same format.
  826.  
  827.   OneSide    OtherSide   (LapLink PC to PC pin connections)
  828.      2  ----->  15
  829.      3  ----->  13
  830.      4  ----->  12
  831.      5  ----->  10
  832.      6  ----->  11
  833.     15  <-----   2
  834.     13  <-----   3
  835.     12  <-----   4
  836.     10  <-----   5
  837.     11  <-----   6
  838.     25  ------  25  Ground
  839.  
  840.  
  841. Considered improvements
  842. -----------------------
  843.  
  844.  - Limited retries on failing block-transfers (CRC error, timeout etc)
  845.  
  846.  - Redirect STDIN for remote executed commands from PEER to HERE
  847.  
  848.  - A text-mode frontend (LPTQVIO.EXE) to supply LPTool command with a
  849.    user-interface for both input and output.
  850.  
  851.    This will probably be a Norton-commander style interface with two
  852.    windows, one for THIS and one for PEER with a display of the
  853.    directory contents.
  854.  
  855.