home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / t / turbocom.zip / INSTALL.TXT < prev    next >
Text File  |  1991-06-04  |  26KB  |  629 lines

  1. (c) Copyright 1991  Bio-Engineering Research Laboratories, Berkeley, CA 
  2.  
  3. This document may not, in whole or in part, be copied, photocopied,
  4. translated, or reduced to any electronic medium or machine readable 
  5. form without prior written consent from Bio-Engineering Research 
  6. Laboratories.
  7.  
  8.         About your SINGLE USER LICENSE of TurboCom(TM)
  9.  
  10. TurboCom is a commercial product developed by John Loram at 
  11. Bio-Engineering Research Laboratories, Berkeley, CA.
  12.  
  13. TurboCom was developed on a speculative basis in response to
  14. the perceived need for improved Asynchronous communications
  15. capabilities under Microsoft Windows 3.0.
  16.  
  17. The Single User License, printed on the envelope in which TurboCom 
  18. is packaged, grants specific rights.  Please take a few minutes to
  19. read and understand the extend of these grants.  We have tried to 
  20. make the elements of the Single User License as unencumbering as 
  21. possible  while protecting the substantial effort that has been 
  22. made to provide a useful product.  
  23.  
  24. TurboCom is not a shareware product.  Please do not share it 
  25. with your friends and associates, even on a trial basis.  You
  26. may of course test TurboCom on any system and as many systems as
  27. you wish, so long as the Single User License agreement is not violated.
  28.  
  29. A copy of the Single User License appears at the end of this 
  30. document for your reference.
  31.  
  32. TurboCom is available under single user licenses, site licenses,
  33. and licenses for bundling with other software and hardware 
  34. products.
  35.  
  36. Quantity discounts are available for single user and site 
  37. licenses. For further information contact John Loram at:
  38.  
  39. Bio-Engineering Research Laboratories
  40. 2831 Seventh St.
  41. Berkeley, California 94710
  42.  
  43. (415) 540-8080
  44.  
  45.  
  46.  
  47.  
  48.  
  49.                        Basic Installation
  50.  
  51. Installing TurboCom is a five step process.  It may be accom-
  52. plished while in Windows or DOS.
  53.  
  54.  
  55. 1) Copy the three files named TURBOCOM.DRV, TURBOVCD.386, and 
  56. TURBOBUF.386 from the TurboCom distribution disk into the 
  57. \WINDOWS\SYSTEM sub-directory. If your system is based on the 
  58. 80286 processor you need only copy TURBOCOM.DRV.
  59.  
  60.  
  61. 2) Copy the file named TURBOCOM.SYS from the TurboCom distribu-
  62. tion disk to the directory in which you keep your DOS .SYS files.  
  63. On many systems this would be the root directory of the boot 
  64. volume (e.g. C:\).  TURBOCOM.SYS is not required for IBM PS/2 
  65. Microchannel models 50 and above.
  66.  
  67.  
  68. 3) Append the contents of TURBOCOM.INI from the TurboCom distri-
  69. bution disk to your Windows SYSTEM.INI file, which you will find 
  70. in your main \WINDOWS sub-directory.  Make sure that TURBOCOM.INI 
  71. is appended to the SYSTEM.INI file, not to one of the other .INI 
  72. files located in this sub-directory.
  73.  
  74.  
  75. 4) Find and modify the following profile strings in your 
  76. SYSTEM.INI file:
  77.  
  78. In the [boot] section of SYSTEM.INI:
  79.  
  80.   change profile string comm.drv=comm.drv to read comm.drv=TurboCom.drv
  81.  
  82. In the [386enh] section of SYSTEM.INI make two changes (unnecessary 
  83. for 286 machines):
  84.  
  85.   change profile string device=*vcd to read device=TurboVcd.386
  86.  
  87.   change device=*combuff to read device=TurboBuf.386
  88.  
  89.  
  90. 5) Add the following line to your CONFIG.SYS file:
  91.  
  92. DEVICE=TURBOCOM.SYS
  93.  
  94. This line must appear in the CONFIG.SYS file before any line 
  95. which loads a driver involving Com ports such as a serial port 
  96. mouse driver, or a serial port network driver.  It can be safely 
  97. placed as the first device driver in the CONFIG.SYS file.  
  98. TURBOCOM.SYS is not required for IBM PS/2 Microchannel models 50 
  99. and above.
  100.  
  101.  
  102.                      How Does TurboCom Work
  103.  
  104. TurboCom works on three levels to greatly improved Windows and DOS 
  105. asynchronous communications performance.
  106.  
  107. Level 1 Improvements - Comm Port hang-ups and COM3/4 availability:
  108. TurboCom.sys is a DOS device driver that extends the boot-time 
  109. system initialization functions of the ROM BIOS of your ISA based 
  110. system.  Few ISA ROM BIOSes make provisions to initialize COM3 and COM4 
  111. hardware and the associated ROM BIOS data area where comm port base 
  112. addresses are stored.  No ROM BIOS for ISA based system properly 
  113. initialize the 16550 UART.  The result of these limitations is that 
  114. many systems cold boot with their serial port hardware incompletely 
  115. initialized, and warm boot with their UARTs in unpredictable, often 
  116. inaccessible states.  TurboCom.sys performs proper hardware 
  117. initialization of 8250, 16450, and 16550 UARTs, and builds a 
  118. complete UART data table in the ROMBIOS data area of system RAM.  
  119. It then reports the results of its efforts and discoveries and 
  120. exits without taking up system RAM.
  121.  
  122. Level 2 Improvements - Windows Comm Port bugs and 16550 UART support:
  123. TurboCom.drv and TurboVCD.386 comprise the two basic Windows Comm 
  124. Drivers.  TurboCom.drv is the Windows 3 Comm Driver.  It provides 
  125. the application program interface (API) for Windows applications 
  126. which use the serial and parallel ports, and the interrupt level 
  127. routines for Real and Standard mode operation.
  128.  
  129. Two bugs, one dealing with comm port hangups during high-speed full 
  130. duplex operations and another causing IRQ conflicts were corrected.  
  131. The interrupt level code was restructured to make it more efficient
  132. standard UARTs, and take better advantage of the high performance 
  133. hardware features of the 16550 UART.
  134.  
  135. TurboCom brings new levels of performance to Windows Asynchronous 
  136. port usage by providing support for the hardware buffers in the 
  137. 16550 high performance UART.  The sixteen byte transmit and receive
  138. buffers of the 16550 UART make it highly resistant to the often 
  139. poor interrupt response time of multi-tasking environments like 
  140. Windows.  In addition, with the 16550 UART's ability to collect 
  141. multiple characters before issuing an interrupt, the receive and 
  142. transmit interrupt overhead can be reduced by as much as an order 
  143. of magnitude.
  144.  
  145. Level 3 Improvements - DOS Comm support and 16550 access:
  146. TurboBuff.386 provides a RAM based UART buffer for DOS 
  147. applications running under enhanced mode Windows.  TurboBuf 
  148. collects characters from the UART into a system RAM buffer while a 
  149. DOS application is switched out.  When the application is switch 
  150. in during its time-slice, TurboBuf provides the collected characters 
  151. to the DOS application by simulating the UART, interrupts and all.
  152.  
  153.  
  154.  
  155.               Performance Tuning TurboCom
  156.               Windows and DOS Applications
  157.  
  158. TurboCom provides a number of performance modifying parameters 
  159. which can be placed in the TurboCom section of the SYSTEM.INI 
  160. file.  Some of them are quite esoteric and will not need to be 
  161. change in most systems.  Others, will likely be changed by every 
  162. user.
  163.  
  164. First, a little about the purpose and structure of your 
  165. SYSTEM.INI file.
  166.  
  167. The SYSTEM.INI file is similar in function to the DOS CONFIG.SYS 
  168. file; it tells Windows which Windows device drivers to load, and 
  169. it allows those device drivers access to user supplied configura-
  170. tion information.
  171.  
  172. The SYSTEM.INI file's contents are composed of sections in the 
  173. format of [SectionName] (note the square brackets) and profile 
  174. strings in the format of Profile=String (note the equal sign).
  175.  
  176. Profile=Strings are always associated with the specific 
  177. [SectionName] which proceed them.  Should another [SectionName] 
  178. inadvertently be placed between a Profile=String and its associated 
  179. [SectionName], the association is broken and strange unpredict-
  180. able events will almost certainly occur, often at boot time but 
  181. sometimes much later.  
  182.  
  183. Make a copy of your SYSTEM.INI file before you change it and keep 
  184. the copy in a separated directory.
  185.  
  186.  
  187.  
  188.  
  189.           Identifying the Communications Device
  190.                Windows and DOS Applications
  191.  
  192. COMxDeviceType=n, default n = 16, legal values = 0, 1, 2, or 16
  193.  
  194. If your system does not exclusively use 16550 style UARTs, you 
  195. will want to change one or more of the COMxDeviceType profile 
  196. strings to reflect your actual hardware configuration.
  197.  
  198. TurboCom does a good job of identifying which kind of communica-
  199. tion devices (e.g., UARTs) are available in your system.  How-
  200. ever, should you wish to turn off the use of the advanced features 
  201. of whichever device has been detected, you can.  TurboCom will 
  202. override inappropriate choices and tell you about it.  To force 
  203. device identification, change the following lines(s) of text in 
  204. your SYSTEM.INI file, in the [TurboCom] section.  
  205.  
  206. COMxDeviceType=n
  207.  
  208. Where x = the Com port number 1, 2, 3 or 4, and n is the identi-
  209. fier for the communications device:
  210.     0 = unknown, 
  211.     1 = 8250 / 8250-B style UARTs, 
  212.     2 = 8250A / 16450 style UARTs, 
  213.     16 = 16550 style UARTs
  214.  
  215. For example;
  216.  
  217. COM1DeviceType=16 tells TurboCom that Com port 1 is a 16550 style 
  218. UART.
  219.  
  220. COM3DeviceType=0 tells TurboCom to treat the Com3 device as the 
  221. simplest of     communication devices, which is currently the 
  222. same as choice #1, the 8250 / 8250-B.
  223.  
  224.  
  225.  
  226.  
  227.                     Setting High Baud Rates
  228.                       Windows Applications
  229.  
  230. If you wish to use baud rates above the 19,200 limit imposed by 
  231. the standard Windows Comm driver, the COMxBaudX profile string allows 
  232. you to do so.
  233.  
  234. COMxBaudX=n, default  n = 1, legal values = 1, 2, or 3:
  235.  
  236. Most commercial Windows applications only provide for baud rate 
  237. settings of 19,200 baud and below.  This is because the standard 
  238. Windows Comm driver rejects any attempt to set a higher rate.
  239.  
  240. Since TurboCom performs well at 57,600 baud in fast machines, you 
  241. can multiply the nominal baud rate by a factor of two (2) or 
  242. three (3) on a per channel basis.
  243.  
  244. To multiply the baud rate set by your Windows application, change 
  245. the following line(s) of text in your SYSTEM.INI file, in the 
  246. [TurboCom] section.
  247.  
  248. COMxBaudX=n
  249.  
  250. Where x = the Com port number 1, 2, 3, or 4, and n = the baud 
  251. rate multiplier 1, 2, or 3.
  252.  
  253. For example;
  254.  
  255. COM2BaudX=3 will multiply an application set baud rate of 19,200 
  256. baud to an actual 57,600 baud for Com2.
  257.  
  258. COM4BaudX=2 will multiply an application set baud rate of 19,200 
  259. baud to an actual 38,400 baud for Com4.
  260.  
  261. TurboCom will reject attempts to set rates above 19,200 baud on 
  262. ports that do not have high performance hardware (e.g., 16550 
  263. style UARTs).
  264.  
  265. The TurboCom API allows a Windows application to directly set 
  266. baud rates up to 57,600 baud if the appropriate UART is avail-
  267. able.
  268.  
  269.  
  270.  
  271.  
  272.       Setting the Receiver FIFO Interrupt Trigger Level
  273.                  Window and DOS applications
  274.  
  275. Note: This is really high tech stuff, and is here mostly for the 
  276. un-reconstructed hacker.  Unless you really enjoy tinkering, 
  277. there is probably no reason to change the Receive FIFO Interrupt 
  278. Trigger Level.
  279.  
  280. COMxRcvTrigLvl=n, default n = 8, legal values 1, 4, 8, or 14
  281.  
  282. The 16550 UART has two 16 byte fifos (First In First Out 
  283. buffers). One is for incoming (received) characters, and the 
  284. other for outgoing (Transmitted) characters.  These two fifos are 
  285. the 16550's distinguishing features, and are key to the perform-
  286. ance enhancements that TurboCom provides.
  287.  
  288. Associated with the Receive Fifo, is the Receive Fifo Interrupt 
  289. Trigger Level.  This programmable value determines to what level 
  290. the receive fifo must be filled by incoming data, before the UART 
  291. will issue a service requesting Data Available interrupt.  You 
  292. may set this variable to one of its four legal values 1, 4, 8, or 
  293. 14.  If your Windows applications lose incoming characters when 
  294. your system is very active, you might try reducing this variable 
  295. from the default of 8 to 4 or even 1. 
  296.  
  297. If you are serious about dinking with this variable you should 
  298. probably become thoroughly familiar with the technical issues 
  299. concerning the 16550 UART (get a data sheet) and the interrupt 
  300. response time of you system.
  301.  
  302. To set this variable, change the following line(s) of text in 
  303. your SYSTEM.INI file in the [TurboCom] section.  
  304.  
  305. COMxRcvTrigLvl=n
  306.  
  307. Where x= the Com port number 1, 2, 3, or 4, and n= the trigger 
  308. level 1, 4, 8, or 14
  309.  
  310. For example;
  311.  
  312. COM3RcvTrigLvl=14 means that the UART will not issue a Data 
  313. Available interrupt until it has collect 14 bytes of data.  It 
  314. can receive 2 more bytes before it absolutely must be serviced, 
  315. or a data overrun will occur.
  316.  
  317. If you're wondering what happens if just 13 characters come in, 
  318. the answer is that the UART has a timer.  That timer will cause 
  319. an interrupt if data sits in the UART for four character times 
  320. without another character being received or the fifo being ser-
  321. viced.
  322.  
  323.  
  324.  
  325.  
  326.             Setting the Transmit Fifo Filling Level
  327.                   Windows and DOS Applications
  328.  
  329. Note: This is another item for the hacker.  Unless you really 
  330. enjoy tinkering, there is probably no reason to change the Trans-
  331. mit Fifo Filling Level.
  332.  
  333. COMxTxDepth=n, Default n = 8, legal values 1, 2, 3......, 16
  334.  
  335. Each time the Transmit Fifo becomes empty, the UART issues a 
  336. service requesting Transmit Fifo Empty interrupt.  While an empty 
  337. Transmit Fifo could be filled with as many as 16 characters, 
  338. there may be times when this is not desirable.  Certain flow 
  339. control issues might make it desirable to stop transmitting 
  340. characters before the 16 byte fifo is empty, and there is no 
  341. mechanism in the 16550 UART to accomplish this.  The only option 
  342. is not to fill the Transmit Fifo so full.
  343.  
  344. To set the number of characters placed in the Transmit Fifo on 
  345. each Transmit Fifo Empty interrupt, place the following line(s) 
  346. of text in your SYSTEM.INI file, in the 
  347. [TurboCom] section.
  348.  
  349. COMxTxDepth=n
  350.  
  351. Where x = the Com port number 1,2,3 or 4, and n = the fill level 
  352. 1,2,3....., 16
  353. For example:
  354.  
  355. COM3TxDepth=12 means that each time the Com3 Transmit Fifo Empty 
  356. interrupt is serviced, the Transmit Fifo will be filled with 12 
  357. characters from the Transmit Queue, if that many are available.
  358.  
  359.  
  360.  
  361.  
  362.                 Setting the COMM Buffer Size
  363.                       DOS Applications
  364.  
  365. If your DOS applications running under enhanced mode Windows are 
  366. experiencing character overruns (lost received characters) this 
  367. section is for you.
  368.  
  369. COMxBuffer=n, Default n = 128, legal values 0, 1, 2......, 10000
  370.  
  371. In traditional (UNIX, VMS, etc.) multi-tasking environments, inter-
  372. rupt level services are provided by the operating system.  All 
  373. applications are required to use these services to access the hard-
  374. ware.  Enhanced mode Windows is unique in that each Virtual Machine 
  375. (VM) provides its own hardware drivers.  The Serial Port Drivers, 
  376. (Comm Drivers) for the Windows VM (Comm.drv, or TurboCom.drv in our 
  377. case) are provided with the Windows package.  The Serial Port 
  378. Drivers for DOS applications running under Windows are provided 
  379. either by DOS or by the DOS application itself.  The question then 
  380. arises, what shall we do with a character received by a UART which 
  381. is "owned" by a VM (DOS application) that has been switched out.  
  382. TurboBuf provides an answer, by providing a buffer in system RAM for 
  383. each comm port.  TurboBuf collects characters from the UARTs, places 
  384. them in buffers, and then when the VM (DOS application) which owns a 
  385. comm port is active, TurboBuf delivers the characters by simulating 
  386. the UART, interrupts and all.  In this way even 16550 unaware DOS 
  387. applications benefit from its high performance features.
  388.  
  389. To set the number of bytes buffered for DOS applications, place the 
  390. following line(s) of text in your SYSTEM.INI file, in the [TurboCom] 
  391. section.
  392.  
  393. COMxBuffer=n
  394.  
  395. Where x = the Com port number 1,2,3, or 4, and n = the size of the 
  396. buffer in bytes, 0, 1, 2..... 10000
  397.  
  398. For example:
  399.  
  400. COM2Buffer=512 means that TurboBuf will provide a 512 byte buffer for 
  401. the COM2 serial port.  This buffer would be large enough to hold 
  402. about one half second's worth of characters at 9600 baud.  If you
  403. assume that there are three VMs active, Windows and two DOS appli-
  404. cations, and that the minimum time slice is set to the default value 
  405. of 20 milliseconds, then 512 bytes would be more than sufficient.
  406.  
  407.  
  408.  
  409.                  Setting the COMM Boost Time
  410.                  Windows and DOS applications
  411.  
  412. If your Windows or DOS applications are experiencing sluggish comm 
  413. performance, character overruns (lost received characters), or loss 
  414. of keyboard characters under enhanced mode Windows, this section is
  415. for you.
  416.  
  417. COMBoostTime=n, Default n = 2, legal value 0, 1, 2......, ?
  418.  
  419. This setting gives a VM addition time each time it receives an inter-
  420. rupt from an comm port.  Since TurboCom and a 16550 UART result in 
  421. substantial reductions in interrupt overhead it may not be necessary 
  422. to ever increase this value.  If you give a VM too much additional 
  423. time using this method, it can quickly hog the whole system.  There is 
  424. only one COMBoostTime profile string for all comm ports.
  425.  
  426. To set the number of milliseconds additional time upon each owned 
  427. comm interrupt, place the following line of text in your SYSTEM.INI 
  428. file, in the [TurboCom] section.
  429.  
  430. COMBoostTime=n
  431.  
  432. Where n equals the number of additional milliseconds operating time 
  433. granted to a VM upon receipt of each comm interrupt.
  434.  
  435. For example:
  436.  
  437. COMBoostTime=5 will give the VM an additional 5 milliseconds of oper-
  438. ating time each time it receives an interrupt from a comm port which 
  439. it owns.
  440.  
  441.  
  442.  
  443.  
  444. Hardware: I/O Addresses, port availability, Interrupts, and Com 
  445. Port Lockups
  446.  
  447. If you have experienced difficulties with Windows' Message Boxes 
  448. that proclaim "The COMx port is currently assigned to a DOS 
  449. application.  Do you want to reassign the port to Windows?", and 
  450. then when you answer in the affirmative nothing happens.  Or, Com 
  451. ports that work one minute but not the next, this section is for 
  452. you.  It will give you some understanding of the roots of your 
  453. travail, and an explanation of how TurboCom will help.
  454.  
  455. I/O addresses and Port Availability:
  456.  
  457. A Windows Comm driver looks in a dedicated area of RAM to find 
  458. the addresses of your system's (up to) four Com ports.  This RAM 
  459. area is initialized by the system ROM BIOS at boot time.  Only a 
  460. few very recent ROM BIOSes are fully aware of Com3 and Com4 and 
  461. correctly initialize this data area.  If  the data area is not 
  462. properly initialized, and the address the Windows Comm driver 
  463. finds is ZERO, Windows will make assumptions that depend:
  464.  
  465.     upon whether Windows is operating in Real/Standard vs. 
  466.         Enhanced mode, 
  467.     upon whether it is looking for Com1/Com2 or Com3/Com4, 
  468.     upon whether the bus structure is the ISA vs. EISA/MCA, 
  469.     upon the Model and Submodel data in the ROM BIOS
  470.     and finally, upon quantity and the base addresses of the 
  471.         Com ports in you system.
  472.  
  473. The permutations and combinations have created a great deal of 
  474. misunderstanding and confusion.  
  475.  
  476. All of this is made more complex by a Com port addressing incon-
  477. sistency between the Windows Comm driver COMM.DRV and the en-
  478. hanced mode Virtual Machine Comm driver *VCD.  
  479.  
  480. However, all the addressing and availability problems are re-
  481. solved if the dedicated area of RAM has the correct information 
  482. about Com port addresses, and the addressing inconsistency be-
  483. tween the Windows Comm driver and the Virtual Machine Comm driver 
  484. is corrected.  
  485.  
  486. TURBOCOM.SYS is provided to properly initialize the data area and 
  487. TURBOVCD.386 corrects the addressing inconsistency.  TURBOCOM.SYS 
  488. is not required for IBM PS/2
  489. Microchannel models 50 and above.
  490.  
  491. TURBOCOM.SYS, in part, acts as an extension of the ROM BIOS.  
  492. When loaded by the CONFIG.SYS file at DOS boot time, TURBOCOM.SYS 
  493. searches for four Com ports, places their addresses in the dedi-
  494. cated RAM area, and reports its findings.
  495.  
  496. TURBOCOM.SYS also permits the user to optionally enter load line 
  497. arguments (switches) which extend the search for Com ports to 
  498. non-standard I/O addresses, and force a specific 
  499. physical-to-logical mapping of Com ports that are found.  Up to 
  500. four switches may be entered, one for each logical Com port.
  501.  
  502. For example, if your ISA system has four Com ports at the quasi-
  503. standard addresses of 3f8h, 2f8h, 3e8h, and 2e8h, the 
  504. TURBOCOM.SYS load line in your CONFIG.SYS file might be:
  505.  
  506. DEVICE=TURBOCOM.SYS /3f8 /2f8 /3e8 /2e8
  507.  
  508. This would make the following assignments:
  509.     Logical port        Physical port
  510.     Com1:        =    3f8h
  511.     Com2:        =    2f8h
  512.     Com3:        =    3e8h
  513.     Com4:        =    2e8h
  514.  
  515. You could reverse the Logical to Physical connection with the 
  516. following load line:
  517.  
  518. DEVICE=TURBOCOM.SYS  /2e8 /3e8 /2f8 /3f8
  519.  
  520. Which would make the following assignments:
  521.     Logical port        Physical port
  522.     Com1:        =    2e8h
  523.     Com2:        =    3e8h
  524.     Com3:        =    2f8h
  525.     Com4:        =    3f8h
  526.  
  527. If you choose to use a non-standard arrangement of Com port 
  528. addresses, be aware that many DOS based communications programs 
  529. make their own Logical to Physical associations, and pay no 
  530. attentions to those provided by the ROM BIOS.  Conflicts of Com 
  531. port associations between Windows and DOS based applications lead 
  532. to great confusion and grief!
  533.  
  534. TURBOCOM.SYS is 16550 UART aware, and will properly initialize 
  535. these high performance devices.
  536.  
  537. Interrupt sharing and Com Port Lockups:
  538. While simultaneous hardware interrupt sharing is not possible in 
  539. the ISA bus environment without special serial port hardware, it 
  540. should be possible to share hardware interrupts on a sequential 
  541. basis.  However, because of a conceptual error in the Windows 
  542. Enhanced mode Virtual Comm driver, interrupt sharing of any kind 
  543. with Windows in an ISA bus environment will lead to Com port 
  544. lockup.  Once a Com port has been acquired by a process (i.e., a 
  545. Windows or DOS application) the hardware interrupt associated 
  546. with that Com port will become permanently unavailable to the 
  547. other serial port sharing the interrupt.  If the other serial 
  548. port, which shares the interrupt, is subsequently activated it 
  549. will also claim the hardware interrupt.  At this point neither 
  550. port will operate, yet neither port will completely relinquish 
  551. the interrupt.  The only solution is a power off re-boot of your 
  552. system.  Even a warm boot is not enough because of limitations in 
  553. most ROM BIOS.
  554.  
  555. TURBOVCD.386 corrects this problem and allows serial ports to be 
  556. passed about with abandon, provide the one-at-a-time on an IRQ 
  557. restriction is observed.
  558.  
  559.  
  560.  
  561. The follow is a reproduction of the Single User License AGREEMENT 
  562. print on the sealed disk package in which TurboCom is shipped is provide 
  563. here for your convenience.  Should there be any difference between this 
  564. reproduction and the original on the sealed disk package, the original 
  565. shall prevail.
  566.  
  567. TURBOCOM LICENSE AGREEMENT
  568.  
  569. BY OPENING THIS SEALED DISK PACKAGE, YOU AGREE TO THE TERMS OF THIS 
  570. AGREEMENT WITH BIO-ENGINEERING RESEARCH LABORATORIES.  IF YOU DO NOT 
  571. AGREE TO THE TERMS OF THIS AGREEMENT, PROMPTLY RETURN THE UNOPENED 
  572. DISK PACKAGE AND THE ACCOMPANYING MATERIALS TO THE PLACE YOU OBTAINED 
  573. THEM FOR A REAL REFUND.  This agreement supersedes all prior agreements 
  574. and understandings between you and Bio-Engineering Research Laboratories 
  575. regarding the TurboCom driver.
  576.  
  577. SOFTWARE LICENSE
  578.  
  579. 1. The enclosed software is protected by both United States copyright 
  580. law and international treaty provisions.  Therefore, you must treat 
  581. this software like a book, with the following single exception.  You 
  582. are authorized to make archival copies of the software for purposes 
  583. of backup to protect your investment from loss.  2. By saying "like 
  584. a book" we mean, for example, that this software may be used by any 
  585. number of people and may be freely moved from one computer location 
  586. to another so long as there is no possibility of it being used at one 
  587. location while it is being used at another.  Just like a book that 
  588. cannot be read by two different people in two different places at the 
  589. same time, the software may not be used by two different people in two 
  590. different places at the same time.  3. The software is licensed to you 
  591. and title to the software is retained by Bio-Engineering Research 
  592. Laboratories.  You may not rent or lease the software but you may 
  593. transfer the software and accompanying written materials on a permanent 
  594. basis provided you retain no copies and the recipient agrees to the 
  595. terms of this agreement.  If the software is an update, any transfer 
  596. must include the update and all prior versions.  4. You agree that you 
  597. will not reverse, engineer, decompile or disassemble the software.
  598.  
  599. LIMITED WARRANTY
  600.  
  601. 5. Bio-Engineering Research Laboratories warrants the physical disk and 
  602. the accompanying physical documentation to be free of defects for a 
  603. period of thirty days from the date of purchase.  In the event of 
  604. notification within the warranty period of defects, Bio-Engineering 
  605. Research Laboratories will replace the defective disk or documentation.  
  606. The remedy for breach of this warranty is limited to replacement and 
  607. shall not encompass any other damages, including but not limited to loss 
  608. of profit, and special, incidental, consequential or other similar claims.  
  609. 6. Bio-Engineering Research Laboratories specifically disclaims all other 
  610. warranties, expressed or implied, including but not limited to implied 
  611. warranties of merchantability and fitness for a particular purpose, with 
  612. respect to the disk, accompanying documentation, and the program license 
  613. granted herein.  In no event shall Bio-Engineering Research Laboratories 
  614. be liable for any loss of profit or other commercial damage, including 
  615. but not limited to special, incidental, consequential or other damages.
  616.  
  617. GENERAL
  618.  
  619. 7. For purposes of licensing to any agency of the United States government, 
  620. the software and documentation are provided with RESTRICTED RIGHTS.  8. This 
  621. agreement is governed by the laws of the State of California and is enforce-
  622. able by Bio-Engineering Research Laboratories and/or its resellers and 
  623. distributors.  The prevailing party in any action brought in connection with 
  624. an alleged infringement of proprietary rights in the enclosed software will 
  625. be entitled to recover its costs and expenses, including attorneys fees.
  626.  
  627. Bio-Engineering Research Laboratories - 2831 Seventh St., Berkeley, Califorina 
  628. (415) 540-8080
  629.