home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / GENUTIL / VFD055B.ZIP / VFD.DOC < prev    next >
Text File  |  1994-05-15  |  14KB  |  359 lines

  1.                          ┌─╖    ┌─╖ ┌───────╖ ┌─────╖
  2.                          │ ║    │ ║ │       ║ │     ╙╖
  3.                          │ ║    │ ║ │ ╔═════╝ │ ╔══╕ ║
  4.                          │ ║    │ ║ │ ║       │ ║  │ ╙╖
  5.                          │ ║    │ ║ │ ║       │ ║  │  ║
  6.                          │ ║    │ ║ │ ║       │ ║  ╘╕ ║
  7.                          │ ║    │ ║ │ ║       │ ║   │ ║
  8.                          │ ╙╖   │ ║ │ ╙───╖   │ ║   │ ║
  9.                          ╘╕ ║   │ ║ │     ║   │ ║   │ ║
  10.                           │ ╙╖  │ ║ │ ╔═══╝   │ ║   │ ║
  11.                           ╘╕ ║  │ ║ │ ║       │ ║   │ ║
  12.                            │ ╙╖ │ ║ │ ║       │ ║  ┌┘ ║
  13.                            ╘╕ ║ │ ║ │ ║       │ ║  │  ║
  14.                             │ ╙╖│ ║ │ ║       │ ║  │ ╔╝
  15.                             ╘╕ ╙┘ ║ │ ║       │ ╙──┘ ║
  16.                              │    ║ │ ║       │     ╔╝
  17.                              ╘════╝ ╘═╝       ╘═════╝
  18.  
  19.  
  20.  
  21.                                      -----
  22.  
  23.             Virtual FOSSIL Driver - VFD - A FOSSIL driver for OS/2
  24.  
  25.                           Public Beta Version 0.55ß
  26.  
  27.            Copyright 1993 Joakim B. Hernberg;  All rights reserved.
  28.  
  29.                                      -----
  30.  
  31.  
  32.    1 SOFTWARE LICENSE AGREEMENT
  33.  
  34.    The Virtual FOSSIL Driver computer software, information attached hereto,
  35.    and any modifications made to the enclosed information, hereafter referred
  36.    to as VFD, is protected by applicable copyright laws and international
  37.    treaty provisions pertaining to intellectual property.  VFD is provided to
  38.    you "as is", without warranty of any kind, promise of merchantability, or
  39.    fitness for a particular purpose, either expressed or implied, all of
  40.    which are hereby explicitly disclaimed.
  41.  
  42.    Joakim B. Hernberg only guarantees that VFD occupies disk space.
  43.  
  44.    You are hereby granted a non-exclusive license to use and test this beta
  45.    version of VFD, provided you agree and abide to the following:
  46.  
  47.     1. You agree and acknowledge that VFD is a proprietary product of Joakim
  48.     B. Hernberg, protected under international treaty provisions and other
  49.     applicable copyright laws.  You further acknowledge and agree that all
  50.     rights, title, and interest in and to VFD are and shall remain with
  51.     Joakim B. Hernberg.
  52.  
  53.     2. In no event shall Joakim B. Hernberg be liable for any indirect,
  54.     incidental, consequential, special, or exemplary damages or lost profits,
  55.     even if Joakim B. Hernberg has been advised of the possibility of such
  56.     damages.
  57.  
  58.     3. Joakim B. Hernberg's cumulative liability to you or any other party
  59.     for any loss or damages resulting from any claims, demands, or action
  60.     arising out of or relating to this agreement shall not exceed the license
  61.     fee paid by you to Joakim B. Hernberg for VFD.
  62.  
  63.     4. You may not lease, rent, or sell VFD.  You may not disassemble,
  64.     decompile, or reverse engineer VFD.
  65.  
  66.  
  67.    2 AVAILABILITY
  68.  
  69.    If you need to contact me, use one of the following addresses.
  70.  
  71.    Joakim Hernberg
  72.    240, rue de Luxembourg
  73.    L-8077 Bertrange
  74.    Luxembourg
  75.  
  76.    FAX#: +352 878 239
  77.  
  78.    Fidonet:  Joakim Hernberg, 2:270/3
  79.    Internet: jbh@fido.lu
  80.  
  81.    The fidonet echo VFD_BETA is available from most below listed support
  82.    nodes.
  83.  
  84.    You can always get the latest version of VFD by requesting magic file
  85.    name VFD from the following fidonet sites:
  86.  
  87.    1:222/10           - DogStar
  88.    +1-705-942-8370    - Mario Dulisse
  89.  
  90.    1:260/369          - The Blue Fox
  91.    +1-315-458-0725    - Bob Beilstein
  92.  
  93.    1:170/400          - The Truckstop BBS
  94.    +1-918-254-6618    - Bruce Bodger
  95.  
  96.    2:201/329          - FrontDoor Help Europe
  97.    +46-8-64-53285     - Mats Wallin
  98.  
  99.    2:243/5039         - WayForward BBS
  100.    +49-2309-77019     - Tobias Burchhardt
  101.  
  102.    2:257/168          - Barnabas The Caring BBS [OS/2]
  103.    +44-708-670-068    - john barton
  104.  
  105.    2:270/3            - The SourceTap
  106.    +352-442-089       - Joakim Hernberg
  107.  
  108.    2:270/17           - Use your illusion
  109.    +352-318-766       - joaquim homrighausen
  110.  
  111.    2:285/712          - Medusa BBS
  112.    +31-1650-46107     - Winston van Oosterhout
  113.  
  114.    2:344/2            - Ostargi
  115.    +34-4-476-2621     - Eduardo Jacob
  116.  
  117.    3:712/704          - Eagle One BBS
  118.    +61-2-745-3500     - Terry Harvey
  119.  
  120.    3:774/10           - Global NetWork
  121.    +64-7-846-2952     - Barry Blackford
  122.  
  123.  
  124.    VFD is also available for ftp from ftp.luth.se in the directory
  125.    /pub/os2/2.x/dos/network.
  126.  
  127.  
  128.    3 WHAT IT IS
  129.  
  130.    VFD is a Virtual Device Driver providing int 14h (FOSSIL) functionality
  131.    to VDMs (Virtual DOS Machines) running under OS/2.  It does this by
  132.    translating int 14h calls (from a VDM) into OS/2 file system calls.
  133.  
  134.    This technique allows for very efficient file transfers when the
  135.    communication software uses FOSSIL block read/write calls.  Software
  136.    which uses single character I/O should be avoided if at all possible,
  137.    especially for file transfers.
  138.  
  139.    VFD should be compatible with all OS/2 serial communication solutions due
  140.    to it's use of the OS/2 file system.  This will of course prove not true,
  141.    and I am interested in any reports you have on exotic hardware like DMA
  142.    capable boards, or network redirected serial devices.  I have run FD/RA
  143.    and FD - Terminal on remote comm devices using IBM Lan Server 3.0.
  144.  
  145.    VFD opens the comm handle in "deny none sharing mode", this means that
  146.    it should be possible to coordinate access to the com port with other
  147.    programs that also use deny none sharing.  Some type of semaphore file
  148.    scheme or a control program using named pipes might be used for this
  149.    purpose.  Or, you might want to run some DOS doors under your OS/2 BBS
  150.    program, just start a DOS sesion and run your door.
  151.  
  152.    VFD supports up to 8 com ports with the standard names COM1 - COM8.
  153.  
  154.    VFD adds a DOS property setting 'COM_FOSSIL' which is turned ON by
  155.    default.  FOSSIL support can be turned off, by toggling this DOS setting
  156.    for your program object, if it should prove necessary.
  157.  
  158.    It seems like it is very difficult to give precise settings for perfect
  159.    communications under OS/2.  Settings seem to vary from system to
  160.    system, and what works on one system might not work at all on another.
  161.    You should read the files in FDTN-002.* compiled by john barton.  Inside
  162.    of this archive you will find a couple of technotes on how to run FD & RA
  163.    under OS/2, containing invaluable advice for using vfd.
  164.  
  165.    If you can not find FDTN-002.* where you got this archive, you can get it
  166.    from the support sites.
  167.  
  168.    All the advice I can offer, is to try different comm drivers if you have
  169.    a problem, and once you find a working solution, stick with it !  I am
  170.    using all default DOS_SETTINGS...
  171.  
  172.  
  173.    4 INSTALLATION
  174.  
  175.    Installation should prove straight forward.  Just add the line "device =
  176.    x:\path\vfd.os2" to your config.sys together with the default com/vcom.sys
  177.    device driver pair or a replacement (such as sio/vsio.sys).
  178.  
  179.    If you are using the IBM drivers, see FDTN-002 and IBM docs for parameters
  180.    to com.sys.
  181.  
  182.    VFD does not require the virtual driver (vcom.sys) to be loaded, but it
  183.    will coexist peacefully, and it is a good idea to leave this driver
  184.    present if you intend to use DOS software that talks straight to the
  185.    hardware, since VFD will not provide a virtual UART.
  186.  
  187.    The com.sys driver has to be initialized to the proper state by using
  188.    the OS/2 mode command.  This is preferably done by using a mode statement
  189.    in the bat/cmd file launching your bbs/terminal software.  It can also be
  190.    done in config.sys by using the run command or in startup.cmd, but since
  191.    some other application might clobber your settings, you might want to run
  192.    mode before every application that is about to use the port.
  193.  
  194.    This is the mode command in use on my system:
  195.  
  196.    mode com1 38400,n,8,1,,to=on,xon=off,idsr=off,odsr=off,octs=on,dtr=on,
  197.              rts=hs,buffer=on
  198.  
  199.    The SIO driver is locked in config.sys and works fine with default
  200.    settings (no need for the mode statement) when used with VFD.  See the
  201.    tech notes and the SIO documentation for more details.
  202.  
  203.  
  204.    5 VFDU.EXE
  205.  
  206.    This is a small crude command line interface for communicating with VFD.
  207.    Note that VFDU does no verification of the command line passed it, so
  208.    anything can happen if you don't watch it.  This will of course be
  209.    rectified in a future version. and I am open to suggestions as to the
  210.    "look" and settings to be provided.
  211.  
  212.    Syntax is:  vfdu parm1 parm2 ...
  213.  
  214.    At the moment the following parameters are accepted:
  215.  
  216.    l#,ls - lock baudrate at port # (COM1 is 1...), lazy status
  217.    u#,ls - unlock port #, lazy status
  218.    pc,l  - change DOS session's priority (c = class, l = delta of level)
  219.    b#,s  - single char read buffer (port #) block size s = 1 - 1024
  220.    td    - tame, d = delay in milli seconds, 0 turns off tame
  221.    r#,s  - port # restrict read block size, 0 = disable restriction
  222.    w#,s  - port # restrict write block size, 0 = disable restriction
  223.    h#,$  - set port # to os/2 handle $
  224.  
  225.  
  226.    Port numbers start with 1, which means that 1 is COM1 !
  227.  
  228.  
  229.    Lazy status means that the status byte returned by function 3 only is
  230.    updated once per clock tick, this allows programs that do single char I/O
  231.    instead of block I/O to run at full speed.  Very useful for SEAlink
  232.    receive and terminal work in FD, just don't complain that you can't do
  233.    3.000 cps in x-modem ;-)  To turn this option on, add ",ls" to the end of
  234.    the lock/unlock option and to turn it off, leave it out.  Default is OFF.
  235.  
  236.  
  237.    You should probably leave the priority settings on default, but the
  238.    hook is there if you want to experiment.  I am interested in your results.
  239.  
  240.    I've seen recommendations to set a communication task to Foreground Server
  241.    class with a delta of 10, this is accomplished by using 'vfdu p4,10'.
  242.    You should set priority back by 'p2,-10' upon exiting to do other
  243.    processing, only keep it at server priority while the mailer or bbs is
  244.    running (A DOS application running at server priority and hogging the CPU,
  245.    will severely slow down the rest of OS/2 !).  Your DOS session starts out
  246.    at class 2, level 0.
  247.  
  248.    Note that delta of level represents a change not an absolute value !
  249.  
  250.    That means that if you change level by +10, you have to change by -10 in
  251.    order to restore starting value...
  252.  
  253.    See IBM's Red Books (now available as *.inf files) for a discussion on
  254.    priority levels.
  255.  
  256.    The following classes exist (and their corresponding 'c' parameter):
  257.  
  258.    Idle                = 1
  259.    Regular             = 2
  260.    Time Critical       = 3
  261.    Foreground Server   = 4
  262.    Simulated Interrupt = 5
  263.  
  264.    Each class has 31 levels.
  265.  
  266.  
  267.    Single char read buffer, attempts to read up to block size chars in one
  268.    block read if available.  It then portions these bytes out to subsequent
  269.    single char read requests.  Default is 64 which yields a good compromise
  270.    between smooth terminal and efficient (?) SEAlink recieve on my system.
  271.  
  272.    This setting can cause a problem on a bbs, since it will allow a terminal
  273.    to send a lot of chars without the bbs echoing them.  Fix by setting to 1.
  274.  
  275.  
  276.    The tame parameter is not the normal type of tame which forces a program
  277.    to give up time slices, rather it does exactly the reverse.  I know I
  278.    should have named this parameter differently, but I could just not come up
  279.    with an appropriate name for it.  This is useful, because a lot of
  280.    programs give up slices in the wrong place and can cause a slowdown under
  281.    OS/2.
  282.  
  283.    The default value is ON with a 250 ms delay, which has been arrived at by
  284.    trial and error on a few systems.  This value seems to be optimal, in as
  285.    much as it stops most of the slow down of the offending programs without
  286.    degrading system performance.
  287.  
  288.  
  289.    The two switches for restricting read and write block size work by
  290.    restricting the maximum size of the block that will used with FOSSIL
  291.    functions 18h and 19h.  This is useful for stopping "choppy" behaviour of
  292.    some bbs programs, and to make Hydra (a bidirectional protocoll) perform
  293.    faster.  The default is DISABLED, which means that VFD will read or write
  294.    as large a block as requested by the program. 
  295.  
  296.  
  297.    The parameter for setting a FOSSIL port to an OS/2 handle sets the file
  298.    handle used internally by VFD to the handle passed to it.  This can be
  299.    used to run DOS doors under an OS/2 BBS or a DOS BBS under an OS/2
  300.    mailer.  Note that this hasn't been throughly tested, but I ran
  301.    Global Wars under Maximus/2 with it.
  302.  
  303.  
  304.    6 FOSSIL IMPLEMENTATION
  305.  
  306.    The following revision 5 calls are fully implemented:
  307.  
  308.     0:  Set line parameters
  309.     1:  Transmit - wait
  310.     2:  Receive - wait
  311.     3:  Request status
  312.     4:  Initialize driver
  313.     5:  De-initialize driver
  314.     6:  Toggle DTR
  315.  
  316.     8:  Flush output buffer
  317.     9:  Purge output buffer
  318.     A:  Purge input buffer
  319.     B:  Transmit - no wait
  320.     C:  Non-destructive read ahead
  321.     D:  Keyboard read - no wait
  322.     E:  Keyboard read - wait
  323.     F:  Enable or disable flow control
  324.  
  325.    11:  Set current cursor location
  326.    12:  Get current cursor location
  327.    13:  Single char ANSI write to screen
  328.    14:  Watchdog (closes DOS session on carrier loss)
  329.    15:  Single char write to screen
  330.    16:  Insert/Delete from timer chain
  331.    17:  Reboot System (closes DOS session)
  332.    18:  Read block
  333.    19:  Write block
  334.    1A:  Toggle Break
  335.    1B:  Return driver info
  336.  
  337.  
  338.    The following are partly implemented:
  339.  
  340.     7:  Returns dummy value 0A08 in ax
  341.    10:  Transmit on/off (bug: transmit will start on receipt of an X-ON byte)
  342.  
  343.  
  344.    The following are missing altogether:
  345.  
  346.    7E:  Install external function
  347.    7F:  Remove external function
  348.  
  349.  
  350.    7 KNOWN PROBLEMS
  351.  
  352.    VFD does not work under a Virtual Boot Machine emulation of MS or IBM
  353.    DOS.  This is because real DOS wants to load itself over the data area
  354.    that VFD has allocated.  This will be solved in a future version, but
  355.    for right now you will have to set COM_FOSSIL to off (disabling VFD)
  356.    when running REAL DOS under OS/2.
  357.  
  358.  
  359.