home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / DRIVERS / FX550107.ZIP / FIX16550.DOC < prev    next >
Text File  |  1994-03-14  |  15KB  |  276 lines

  1. FIX16550 Device Driver v01.07.00  14 MAR 1994 (94073) 20:39:03
  2. Copyright (c) 1993-94 Professional Software Engineering, Ltd.
  3. All rights reserved.
  4.  
  5.  
  6. This is the documentation file for the FIX16550 program.
  7.  
  8. This program has a pretty narrow function -- to fix problems with AMI BIOSes 
  9. and 16550 ("hi-speed/buffered") UARTS.  As an added benefit, the program also 
  10. happens to permit (usually much older) computers which only recognize COM1: and 
  11. COM2: to automatically recognize COM3: and COM4: if they are present.
  12.  
  13. If you can power-off your computer and power it back on and all of your serial 
  14. ports get recognized, but they don't if you simply reboot the computer using 
  15. the keyboard, then this program is probably what you're looking for.
  16.  
  17. While this document makes a number of references to the AMI BIOS, this program 
  18. is not dependant IN ANY WAY on the presence of an AMI BIOS -- there may very 
  19. well be other BIOSes out there that exibit this or a similar problem.  When 
  20. using this program to extend older BIOSes to COM3: and COM4: capability, the 
  21. BIOSes will certainly vary in manufacturer.
  22.  
  23.  
  24. Operation is simple:  Simply add the line:
  25.  
  26. DEVICE=C:\PATH\FIX16550.SYS [8514] [NO8514] [ARCNET] [NOBEEP] [BRIEF]
  27.  
  28. (where "C:\PATH\" is replaced by where you really put the file.) into your 
  29. CONFIG.SYS file.  Near the top is best (before any other programs initialize, 
  30. so they too will know how many ports your machine has, if they care).
  31.  
  32. Normally, there is no need for any parameters at all.  The exceptions being:
  33.  
  34.   *    You have an 8514/A video controller (see v01.06.00 - v01.07.00 release 
  35.     notes below), and for some reason it is not automatically detected by 
  36.     the program, in which case you'd specify "8514" on the commandline.
  37.   *    You do not have have an 8514/A video controller, and for some reason 
  38.     the program claims it found one.  BE CAREFUL WITH THIS -- IF YOU USE 
  39.     THIS OPTION AND YOUR VIDEO DISPLAY BLINKS OUT WHEN THIS PROGRAM IS RUN, 
  40.     THEN YOU HAVE AN 8514/A ADAPTER, WHETHER YOU THOUGHT YOU DID OR NOT.  
  41.     The "NO8514" switch is provided strictly for compatibility purposes in 
  42.     the event that somehow a system is incorrectly identified as having an 
  43.     8514/A.
  44.   *    You have an ARCNET board configured which conflicts with COM4:.  No 
  45.     autodetect is done for these boards, so if you have one, you may wish 
  46.     to include the optional switch "ARCNET".  Better yet, reconfigure the 
  47.     ARCNET board to not clash with the COM4: device.
  48.   *    You don't like the warning tones the program generates to inform you 
  49.     that it is doing it's job (when it detects a port the BIOS didn't, or 
  50.     detects a conflict with COM4: and the 8514/A), in which case you would 
  51.     want to add "NOBEEP" to disable the beep tones from being emitted when 
  52.     these error/warning conditions occur.
  53.   *    You don't really want to see all the port information each time your 
  54.     computer boots, in which case you would specify "BRIEF" to disable all 
  55.     the port status messages from being displayed, keeping your boot screen 
  56.     a bit less cluttered.  Since BRIEF also inhibits status messages 
  57.     indicating automatic port additions and removal (such as a COM4: with 
  58.     the 8514/A), it also happens to inhibit the beep tones which are part 
  59.     of the messages being displayed under those circumstances.
  60.  
  61. Commandline options are not case-sensitive, but also DO NOT REQUIRE dashes or 
  62. slashes (in other words, don't use slashes or dashes in front of the arguments).
  63.  
  64. Since this driver is an initialization-only driver (it does it's job and quits, 
  65. much like a word processor would -- it doesn't remain in memory to do 
  66. anything), there is no purpose to loading it high (although the program will 
  67. operate fine if loaded high to run), and it will not affect memory use in a 
  68. computer.  If you loaded it at the top of your CONFIG.SYS, loading high 
  69. wouldn't be an option anyway -- your upper memory driver (QEMM, EMM386, 
  70. NetRoom, 386MAX, etc.) wouldn't be loaded yet.
  71.  
  72.  
  73. When the program is executed, it displays a version/copyright banner, and 
  74. (unless BRIEF is specified on the commandline), four lines in the format:
  75. COM[n]:  BIOS [Y/N]  SCAN:  [type of UART found / conflict message]
  76.  
  77. Where 'n' is the port number (1-4), "BIOS Y" indicates that the BIOS table 
  78. showed the presence of this port, and "BIOS N" indicates that the BIOS table 
  79. did not have the port listed.  The text following "SCAN:" indicates the type of 
  80. chip found, or lack thereof.  When BIOS shows 'N', and SCAN shows a port was 
  81. found (or when BIOS shows 'Y', and SCAN reports an 8514/A conflict) is when 
  82. FIX16550 has done something for you.
  83.  
  84.                 *-------------*
  85.  
  86. I don't know how widespread the AMI BIOS problem with 16550 FIFOs is, but it 
  87. appears to exist in the (as of this original writing in late 1993) "current" 
  88. version of the AMI BIOS dated DEC 1991.  The problem manifests itself when you 
  89. have a high-speed UART installed (something which is advised if you use a high 
  90. speed modem -- most internal high speed modems are equipped with a 16550 
  91. equivalent), and use a program which enables the FIFO (the special feature of 
  92. the 16550 UART chip), but which either does not disable it on exit, or is 
  93. rebooted while running (which is a valid thing to do, say if the computer is 
  94. running a BBS, and a user shells to DOS and drops carrier).  When the AMI BIOS 
  95. goes looking for serial ports on startup, it fails to see the port (because it 
  96. doesn't appear normal, since the FIFO is enabled), and the computer boots up 
  97. without that port in the list of available ports.  Then other software cannot 
  98. "see" the port as being present, and won't work (such as attempting to run your 
  99. comm program or the BBS after the reboot).  A hard reboot (power cycle, or that 
  100. red button on the front of the case) will reset the UART at the hardware level, 
  101. and thus the AMI BIOS will recognize it.  This program simply looks for the 
  102. hardware in a better way than the AMI BIOS does, and adds the ports 
  103. automatically for you.
  104.  
  105. I've heard that some people have thought that this problem was something wrong 
  106. with their system board (since it doesn't show up if you hard reboot the 
  107. machine).  Take another look -- you may have an AMI BIOS.
  108.  
  109. Don't get me wrong -- I like AMI BIOSes very much (I could be using a different 
  110. one if I wanted).  They have a lot of great features, and aside from this one 
  111. problem, appear quite bug free (unlike the old DTK/Erso).
  112.  
  113.  
  114. As for systems that don't recognize COM3: and COM4:, they are fairly 
  115. widespread, and include PC, 286, and 386 machines, though I don't know about 
  116. 486 boxes (most companies should have it straight by now).  Name brand 
  117. manufacturers known to have this problem, at least in some models, include 
  118. Compaq and AST.
  119.  
  120. After a lengthly discussion with a user, it was determined that QMODEM (at 
  121. least certain versions of it, and I suspect other comm programs as well) may 
  122. require a base port address in order to operate (i.e. "COM4" might be a 
  123. configuration option, but you need to tell it that "COM4" is 0x02E8 elsewhere 
  124. in the configuration).  Telix is similar (v3.10 - v3.22 I know), but has all 
  125. the base addresses pre-initialized, although it allows you to change them.
  126.  
  127. For reference, the standard assignments of ports and their base addresses and 
  128. IRQs are:
  129.  
  130.     COM1:    03F8    IRQ4
  131.     COM2:    02F8    IRQ3
  132.     COM3:    03E8    IRQ4
  133.     COM4:    02E8    IRQ3
  134.  
  135.  
  136. This program will not enable support for a serial port that a specific software 
  137. program cannot otherwise recognize (some games, for instance allow modem or 
  138. direct serial connection, but usually only through COM1: or COM2:).  Microsoft 
  139. Windows, for instance (v3.0-v3.11, though it might be fixed in v4.0) will only 
  140. recognize a Microsoft mouse on COM1: or COM2:, even though you can use the DOS 
  141. Microsoft mouse driver on COM1-COM4 (other mouse drivers may differ).
  142.  
  143. Some BIOS manufacturers also have the very bad habit of providing BIOS services 
  144. for the serial ports based on the position number they occupy rather than the 
  145. port value -- that is if you have COM1:(3F8) and COM4:(2E8), the BIOS will 
  146. provide services for serial port 1 and serial port 2 (NOT serial port 4).  This 
  147. should not be an issue with most systems, and certainly not most high-speed 
  148. serial communications programs, which don't use the BIOS to manipulate the 
  149. serial port anyway.
  150.  
  151.  
  152. I originally wrote this utility strictly to deal with my experiences with the 
  153. AMI BIOS problem.  When I called AMI, they told me I needed to get in touch 
  154. with the system board manufacturer -- which in all likelyhood is some offshore 
  155. company, and they wouldn't even give me a company name!  The AMI BIOS is 
  156. mentioned in the Microsoft Windows Resource Kit as having serial problems -- 
  157. and my BIOS is for a 486DX2 machine -- not exactly old technology.
  158.  
  159.                 *-------------*
  160.  
  161. v01.00.00
  162. v01.01.00
  163. v01.02.00 unreleased versions, used internally before finding that AMI had no 
  164. interest in being given code to correct a problem in their BIOSes, since they 
  165. wouldn't admit they even had a problem.
  166.  
  167. v01.03.00 incorporates a detection for the 8514/A video adapter, which 
  168. conflicts with the use of a COM4: port.  With all the port addresses they use 
  169. for the 8514/A, you'd think they could have left 2E8h alone!  First public 
  170. release.
  171.  
  172. v01.04.00
  173. v01.04.01 debugging versions, not released.
  174.  
  175. v01.05.00 incorporates a fix for an odd bug which caused some ports not to be 
  176. properly added back to the port table (although they were detected and reset).  
  177. 8514/A support has been disabled until better documentation is available.
  178.  
  179. v01.06.00 adds a commandline switch (which I'd like to have avoided the need 
  180. for, but still I cannot locate good docs on the 8514/A) for dealing with 8514/A 
  181. based video systems.  The switch is simply "8514" (no slash, dash, or anything, 
  182. example:  "DEVICE=FIX16550.SYS 8514").  This will flag the program to not 
  183. initialize the COM4: device (which would usually cause an 8514/A system to 
  184. blank it's screen), and to REMOVE any occurrence of COM4: (02E8h) from the BIOS 
  185. data table if it is found, and alert you in the process.  If you have a COM4:  
  186. and specify this switch, FIX16550 will beep at you each time it is run (you 
  187. have a hardware conflict that should be resolved).  A specific example of a 
  188. board with 8514/A capability is the ATI Ultra (a VLB Windows accelerator using 
  189. ATIs MACH-32 chipset).  The ATI Ultra does not support having the 8514/A mode 
  190. disabled -- which means (as is stated in it's documentation), you cannot have a 
  191. COM4: in a machine with an ATI Ultra.  I had one of these, and discarded it in 
  192. favour of the Diamond Viper VLB (no 8514/A crud, MUCH faster, and less buggy 
  193. Windows drivers).  If that sounds like a plug for the Viper, it is.
  194. Also with this release, the official formatting of the distribution archive 
  195. name changes to something a bit more version-identifiable:
  196.     FX550106 ( F(i)X (16)550 (v)1(.)06 )
  197. Not released.
  198.  
  199. v01.06.01 added two other options: NOBEEP and BRIEF, described above in the 
  200. usage section.  Added comments to the documentation about some comm programs 
  201. requiring additional configuration to see a port properly.
  202.  
  203. v01.06.02 was strictly a text change in the program, accompanied by a
  204. FILE_ID.DIZ with an updated format.
  205.  
  206. v01.07.00 Introduced improved 8514/A passive auto-detection code.  Also added 
  207. the NO8514 option (to force checking for an 8514A off).  If 8514 is specified 
  208. on the commandline, the autodetect will NOT take place, since the user has 
  209. specified that one is present.  Similarly, NO8514 will cause the program not to 
  210. perform the check, and claim that one is not present.  This is done so that in 
  211. the event that for some reason the 8514/A detection code mis-identifies a 
  212. system as having an 8514/A when in fact there is not one, the program can be 
  213. configured around the checking.  Also, having found that evidently some ARCNET 
  214. boards (when configured in a certain way) have a similar compatibility issue 
  215. with COM4:, I have added the "ARCNET" switch, which will also disable COM4:  
  216. operations and will kick in the compatibility removal of COM4: if the BIOS 
  217. claims it is present.
  218.  
  219.                 *-------------*
  220.  
  221. The archive this program was distributed in was originally a PKZIP v2.x 
  222. authenticated archive with only 4 files in it: this document, the program, and 
  223. two types of BBS description files (FILE_ID.DIZ and DESC.SDI).  Nothing else 
  224. should have been in the archive, and at completion of extraction of the 
  225. archive, you should have seen the following message, with an "-AV" after each 
  226. and every file in the archive:
  227.  
  228. Authentic files Verified!   # DQP160
  229. Professional Software Engineering
  230.  
  231. If not, then you did not recieve an original of the archive as produced by the 
  232. author.
  233.  
  234.  
  235. This program is ShareWare.  A fee is requested for it's use.  If you use it 
  236. (and the only reason you should be using it is if it addresses a problem you do 
  237. have), a registration of US$10.00 PER COPY USED is required.  The grief and 
  238. annoyance this program can save you over time will be well worth the small 
  239. registration, especially if you are a BBS operator.  Please make the cheque or 
  240. money order (drafted ib a U.S. bank) payable to: "Sean B. Straw", and send it 
  241. to the address below.
  242.  
  243. You will recieve notifications of major updates to the program for a period of 
  244. one year from the date of registration (although you will not get a disk each 
  245. time), and you are entitled to use any subsequent versions of FIX16550 without 
  246. re-registering.
  247.  
  248. Comments, suggestions, and corrections are invited.
  249.  
  250.  
  251. About the author:
  252. =================
  253.  
  254. Professional Software Engineering is a developer of system enhancement 
  255. utilities and a variety of anti-virus tools.  We also provide custom systems 
  256. programming services in assembler and C, and perform password recovery for 
  257. files in PKZIP files which have been encrypted.
  258.  
  259.  
  260. Professional Software Engineering
  261. Post Box 2395
  262. San Rafael, CA  94912-2395
  263.  
  264. (415) 459-7401
  265.  
  266.  
  267. If calling, and you get an answering device, please be sure to start your 
  268. message with your complete phone number (including area code), and the name and 
  269. version of the program you are calling about ("Your program" is not descriptive 
  270. enough).  Then describe the problem you are having, and end the message with 
  271. your phone number repeated a second time, just for good measure -- if I can't 
  272. make out your number, I cannot very well get back to you to help you with your 
  273. problem.
  274.  
  275.  
  276.