home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume27 / fas-2.11.0 / part01 next >
Text File  |  1993-10-12  |  64KB  |  1,808 lines

  1. Newsgroups: comp.sources.unix
  2. From: fas@geminix.in-berlin.de (FAS Support Account)
  3. Subject: v27i067: FAS-2.11.0 - asynch serial driver for System V, Part01/08
  4. Message-id: <1.750471074.20539@gw.home.vix.com>
  5. Sender: unix-sources-moderator@gw.home.vix.com
  6. Approved: vixie@gw.home.vix.com
  7.  
  8. Submitted-By: fas@geminix.in-berlin.de (FAS Support Account)
  9. Posting-Number: Volume 27, Issue 67
  10. Archive-Name: fas-2.11.0/part01
  11.  
  12. here is the FAS 2.11 async serial driver for 286/386 UNIX/Xenix systems.
  13.  
  14. Since FAS 2.10 came out over a year ago, I have continued to optimize
  15. FAS for both speed and configuration flexibility. Several bugs were fixed
  16. as well. For the many changes I've made please refer to the RELEASENOTES
  17. file. Note especially that the configuration mechanism for 57600 and
  18. 115200 bps has changed!
  19.  
  20. Unfortunately, I must again disappoint those of you who were waiting for
  21. SVR4 STREAMS support, although I didn't make any promises. FAS is still
  22. a CLIST driver. Apart from the bugs SVR4 still has, the SVR4 market is
  23. confusing at the moment. I wouldn't know from what vendor to buy if I
  24. were forced to purchase a SVR4 UNIX at this time. So I still use my good
  25. old SVR3.2. Therefore, no STREAMS. Sorry.
  26.  
  27. ATTENTION SCO _UNIX_ USERS!
  28.     All previous FAS releases have an incompatibility with SCO _UNIX_ that
  29.     can cause all sorts of weired malfunctions and even frequent system
  30.     crashes. Unfortunately, I didn't find out the cause for these problems
  31.     earlier (I don't have access to SCO UNIX). The bug is fixed now. So I
  32.     urge all SCO _UNIX_ users to upgrade to FAS 2.11 as soon as possible!
  33.  
  34. For those who don't know FAS, yet, here is an excerpt from the fas(7)
  35. man page:
  36.  
  37.        FAS, which is an    acronym    for Final Async    Solution, is a
  38.        "dumb"-port character device driver for 286/386 based UNIX
  39.        systems that adds several features that are often not pro-
  40.        vided by    vendors    drivers.
  41.  
  42.        It supports
  43.  
  44.       -  the NS16450 and um82450 UART chips.
  45.       -  the NS16550A and i82510 UART chips    in FIFO    mode.
  46.       -  up    to 115200 bps with NS16550A.
  47.       -  built-in modem line sharing for dialin and    dialout.
  48.       -  modem control on both dialin and dialout devices.
  49.       -  full and half duplex hardware flow    control.
  50.       -  concurrent    hardware and software (XON/XOFF) flow control.
  51.       -  shared interrupts.
  52.       -  multiplexed UART registers    (HUB-6 card etc.).
  53.       -  any mix of    up to 16 UARTs.
  54.       -  any I/O address, any IRQ.
  55.       -  VP/ix, the    ISC DOS    emulator.
  56.  
  57.        FAS was successfully tested under the following operating
  58.        systems:
  59.  
  60.       ISC UNIX 2.0.2 and later
  61.       SCO UNIX 3.2.2 and later
  62.       SCO XENIX 286    2.3.2 and later
  63.       SCO XENIX 386    2.3.2 and later
  64.       Microport SVR3.0
  65.       ESIX SVR3.2 Rev. C & D
  66.       Bell Tech/Intel SVR3.2
  67.       AT&T SVR3.2 V    2.1
  68.       SVR4.0 (with tty compatibility drivers)
  69.  
  70. Enjoy!
  71.  
  72.       Uwe Doering
  73.  
  74. #!/bin/sh
  75. # This is a shell archive (produced by shar 3.49)
  76. # To extract the files from this archive, save it to a file, remove
  77. # everything above the "!/bin/sh" line above, and type "sh file_name".
  78. #
  79. # made 10/12/1993 14:34 UTC by fas@geminix.in-berlin.de
  80. # Source directory /u/src/private/fas/fas211/dist
  81. #
  82. # existing files will NOT be overwritten unless -c is specified
  83. # This format requires very little intelligence at unshar time.
  84. # "if test", "cat", "rm", "echo", "true", and "sed" may be needed.
  85. #
  86. # This is part 1 of a multipart archive                                    
  87. # do not concatenate these parts, unpack them in order with /bin/sh        
  88. #
  89. # This shar contains:
  90. # length  mode       name
  91. # ------ ---------- ------------------------------------------
  92. #   1573 -rw-r--r-- COPYING
  93. #     68 -rw-r--r-- DrivDesc
  94. #  20816 -rw-r--r-- INSTALLATION
  95. #   1895 -rw-r--r-- Makefile.ATT
  96. #   1906 -rw-r--r-- Makefile.BELL
  97. #   1895 -rw-r--r-- Makefile.ESIX
  98. #   1896 -rw-r--r-- Makefile.ISC2
  99. #   2023 -rw-r--r-- Makefile.ISC3
  100. #   1828 -rw-r--r-- Makefile.SCO
  101. #   1824 -rw-r--r-- Makefile.SVR40
  102. #    837 -rw-r--r-- Makefile.X286
  103. #    753 -rw-r--r-- Makefile.X386
  104. #   1222 -rw-r--r-- Makefile.uPort
  105. #     26 -rw-r--r-- PATCHLEVEL
  106. #   5212 -rw-r--r-- README
  107. #  46451 -rw-r--r-- RELEASENOTES
  108. #    255 -rw-r--r-- config-ast4c12
  109. #    257 -rw-r--r-- config-ast8c12
  110. #    255 -rw-r--r-- config-c123
  111. #    255 -rw-r--r-- config-gen8c12
  112. #    255 -rw-r--r-- config-hub6c12
  113. #    256 -rw-r--r-- config-use4c12
  114. #  54577 -rw-r--r-- fas.7
  115. #  68446 -rw-r--r-- fas.7.cat
  116. # 103106 -rw-r--r-- fas.c
  117. #  23728 -rw-r--r-- fas.h
  118. #    240 -rw-r--r-- i_fas-ast4c12
  119. #    400 -rw-r--r-- i_fas-ast8c12
  120. #    120 -rw-r--r-- i_fas-c123
  121. #    400 -rw-r--r-- i_fas-gen8c12
  122. #    320 -rw-r--r-- i_fas-hub6c12
  123. #    240 -rw-r--r-- i_fas-use4c12
  124. #     33 -rw-r--r-- m_fas
  125. #    204 -rw-r--r-- n_fas-ast4c12
  126. #    340 -rw-r--r-- n_fas-ast8c12
  127. #    102 -rw-r--r-- n_fas-c123
  128. #    340 -rw-r--r-- n_fas-gen8c12
  129. #    272 -rw-r--r-- n_fas-hub6c12
  130. #    204 -rw-r--r-- n_fas-use4c12
  131. #   4623 -rw-r--r-- optim_att.awk
  132. #    589 -rwxr-xr-x os_dep_update
  133. #     78 -rw-r--r-- s_fas-ast4c12
  134. #    104 -rw-r--r-- s_fas-ast8c12
  135. #     78 -rw-r--r-- s_fas-c123
  136. #     78 -rw-r--r-- s_fas-gen8c12
  137. #     78 -rw-r--r-- s_fas-hub6c12
  138. #     79 -rw-r--r-- s_fas-use4c12
  139. #  10354 -rw-r--r-- space-ast4c12
  140. #  10856 -rw-r--r-- space-ast8c12
  141. #   9996 -rw-r--r-- space-c123
  142. #  10826 -rw-r--r-- space-gen8c12
  143. #  10535 -rw-r--r-- space-hub6c12
  144. #  10357 -rw-r--r-- space-use4c12
  145. #    174 -rwxr-xr-x update_desc
  146. #
  147. if test -r _shar_seq_.tmp; then
  148.     echo 'Must unpack archives in sequence!'
  149.     echo Please unpack part `cat _shar_seq_.tmp` next
  150.     exit 1
  151. fi
  152. # ============= COPYING ==============
  153. if test -f 'COPYING' -a X"$1" != X"-c"; then
  154.     echo 'x - skipping COPYING (File already exists)'
  155.     rm -f _shar_wnt_.tmp
  156. else
  157. > _shar_wnt_.tmp
  158. echo 'x - extracting COPYING (Text)'
  159. sed 's/^X//' << 'SHAR_EOF' > 'COPYING' &&
  160. XFAS COPYRIGHT
  161. X-------------
  162. X
  163. XCopyright (C) 1990-1993 Uwe Doering
  164. X
  165. XAlthough FAS is frequently refered to as a public domain driver,
  166. XFAS was never released to the public domain (this is true for
  167. Xall releases of FAS). FAS is freeware, and the author has the
  168. Xfull copyright.
  169. X
  170. XHere are the conditions under which you may copy and distribute
  171. XFAS. The goal of these terms is to spread FAS as wide as possible
  172. Xand, on the other hand, to prevent anyone from making money out
  173. Xof it, and to prevent any restrictions of the availability of
  174. XFAS.
  175. X
  176. X1. You can freely copy FAS, and you may give copies of FAS to
  177. X   everyone.
  178. X2. FAS has to be distributed as the complete package released
  179. X   by its author.
  180. X3. Vendors may bundle FAS with their products as long as they
  181. X   a) tell their customers (somewhere in the written documentation)
  182. X      that FAS is freeware, wasn't developed by the vendor, and the
  183. X      vendor doesn't have the copyright for FAS. 
  184. X   b) provide the complete original package in addition to their
  185. X      customized version. Customization means modification of
  186. X      the configuration files. No changes to the actual source
  187. X      file (fas.c) are allowed.
  188. X   c) tell their customers (somewhere in the written documentation)
  189. X      where the original package is located on the distribution
  190. X      media.
  191. X4. Changes to the sources are allowed
  192. X   a) for private use.
  193. X   b) to develop another freeware package with similar copyright
  194. X      restrictions. This new package has to have a different name.
  195. X5. The author isn't liable for any damage or loss of data caused
  196. X   by FAS.
  197. SHAR_EOF
  198. true || echo 'restore of COPYING failed'
  199. rm -f _shar_wnt_.tmp
  200. fi
  201. # ============= DrivDesc ==============
  202. if test -f 'DrivDesc' -a X"$1" != X"-c"; then
  203.     echo 'x - skipping DrivDesc (File already exists)'
  204.     rm -f _shar_wnt_.tmp
  205. else
  206. > _shar_wnt_.tmp
  207. echo 'x - extracting DrivDesc (Text)'
  208. sed 's/^X//' << 'SHAR_EOF' > 'DrivDesc' &&
  209. XDRIVER=fas
  210. XCLASS=io
  211. XHARDWARE=TRUE
  212. XDESCRIPTION=FAS Serial I/O Driver
  213. SHAR_EOF
  214. true || echo 'restore of DrivDesc failed'
  215. rm -f _shar_wnt_.tmp
  216. fi
  217. # ============= INSTALLATION ==============
  218. if test -f 'INSTALLATION' -a X"$1" != X"-c"; then
  219.     echo 'x - skipping INSTALLATION (File already exists)'
  220.     rm -f _shar_wnt_.tmp
  221. else
  222. > _shar_wnt_.tmp
  223. echo 'x - extracting INSTALLATION (Text)'
  224. sed 's/^X//' << 'SHAR_EOF' > 'INSTALLATION' &&
  225. XInstallation guide for the FAS driver
  226. X-------------------------------------
  227. X
  228. XTo install this driver you need the manual of your serial card,
  229. Xyour system manuals and a certain knowledge about what actually
  230. Xa serial driver is.
  231. X
  232. XNote that the sample config files for multiport cards all have COM1
  233. Xand COM2 additionally enabled. If you don't have COM1 and/or COM2
  234. Xand the IRQs associated with them are needed for another device driver
  235. Xall you have to do is to disable the respective interrupt so that the
  236. Xkernel build program stops complaining. How to do that is OS dependent
  237. Xand is described below. Apart from that, you don't need to change any
  238. Xother config file in case of an interrupt conflict. If COM1 and/or COM2
  239. Xaren't present in your system FAS automatically disables them.
  240. X
  241. XThere is an fas(7) man page that contains most of the informations
  242. Xabout FAS. File `fas.7' is the man page in NROFF source format while
  243. X`fas.7.cat' is the formatted version. As there is no automatic
  244. Xinstallation procedure in the makefiles you need to install the man
  245. Xpage by hand. This is not only because the layout of the man page
  246. Xdirectory tree differs between the various platforms but also because
  247. Xthis layout is frequently modified when there is an improved man program
  248. Xinstalled. So just copy one of the two files into the proper directory
  249. Xand, if necessary, notify your man porgram about the new man page.
  250. X
  251. XYou have to be user root to install the driver!
  252. X
  253. X
  254. XCOMPILATION
  255. X===========
  256. X
  257. XFirst of all you should copy the makefile that matches your system
  258. Xto the file `Makefile'. Make sure that the makefile contains the
  259. Xproper compiler switches, paths and file names for your system.
  260. XYou may also look at `fas.c' and `fas.h' to find out what defines
  261. Xare possible for conditional compilation. In particular, you should
  262. Xtake a closer look at the following OS dependent symbolic constants
  263. Xin `fas.h':
  264. X
  265. XNEED_PUT_GETCHAR
  266. X     If you don't link in the original serial driver you need to
  267. X     uncomment `NEED_PUT_GETCHAR' if the kernel linker complains
  268. X     about the undefined symbols `(asy|sio)putchar' and
  269. X     `(asy|sio)getchar'.
  270. XHAVE_VPIX
  271. X     If your OS doesn't have VP/ix support or FAS doesn't compile
  272. X     properly with VP/ix support you need to comment `HAVE_VPIX'
  273. X     out to disable it.
  274. XTUNABLE_TTYHOG
  275. X     Some UNIX flavors have a tunable `ttyhog' kernel variable
  276. X     that is used by FAS. If the kernel linker complains about
  277. X     this symbol being undefined you have to comment `TUNABLE_TTYHOG'
  278. X     out so that FAS uses the `TTYHOG' symbolic constant (from
  279. X     `sys/tty.h') instead.
  280. X
  281. XAfter that you choose one of the space-* configuration files
  282. Xthat matches your serial card and copy this to `space.c'. If you
  283. Xdon't find a matching space file you should copy the one that
  284. Xcomes closest to your card to `space.c'.
  285. X
  286. XIn any case you should check the entries in that file against your
  287. Xcard's manual and jumper settings. The space files contain explanations
  288. Xabout what data you have to enter.
  289. X
  290. XIf your `space.c' is filled in properly you simply type `make' to
  291. Xcompile the driver. If you don't get error messages you may begin
  292. Xwith the actual installation. Otherwise you have to find the cause of
  293. Xthe problem. Some error reasons may be missing include files, macros
  294. Xthat are defined in different include files or missing at all, or you
  295. Xdon't use the standard UNIX [34].X/386 AT&T C compiler. Don't use any
  296. Xother compiler because this may break things. An exception from this
  297. Xrule is the GNU C compiler which can also be used. But note that only
  298. Xnewer versions are capable of producing object files that are linkable
  299. Xwith the rest of the kernel. Gcc 1.40 or newer should be fine, though.
  300. XHowever, don't overestimate the performance gain of a gcc compiled FAS
  301. Xdriver. At least with gcc 1.42, gcc produces rather poor code for FAS,
  302. Xespecially when volatile inline assembler instructions are used (this
  303. Xfeature turns off some optimization stages).
  304. X
  305. XFor SCO Xenix you have to use the Microsoft C compiler because Xenix
  306. Xdoesn't have the AT&T compiler. You will need the ANSI C version of
  307. Xthe Microsoft compiler because the preprocessor of the original
  308. XXenix distribution doesn't understand `#if defined(...)' statements
  309. Xin 386 mode.
  310. X
  311. X
  312. XINSTALLATION
  313. X============
  314. X
  315. XIf you want to have both the original asy (or sio) and the new FAS
  316. Xdriver in the kernel the only restriction is that ports and interrupt
  317. Xvectors can't be shared between the two drivers. Each driver controls
  318. Xits own separate set of ports and IRQs.
  319. X
  320. XuPort:  Copy one of the config-* files to `config'. Check out
  321. X        whether the interrupt vectors in this file reflect the
  322. X        jumper settings on your serial card. Note that an IRQ2 on
  323. X        your card is an interrupt vector of 9. All other IRQ numbers
  324. X        correspond to the vector number, though. If you want to
  325. X        disable an interrupt vector just remove the respective number
  326. X        from the `intvec' entry.
  327. X
  328. X        Next you have to tell the config program to include the new
  329. X        driver at kernel link time. This is done by a line in the file
  330. X        /etc/atconf/systems/system.std. Look for the line containing
  331. X        `asy' followed by an asterisk (`*') and a comment. Create a
  332. X        similar line where `asy' is substituted with `fas'. Add a
  333. X        proper comment. If you don't want to use any ports under the
  334. X        DOS emulator you should insert an asterisk at the beginning
  335. X        of the line that contains the word `asy'. This excludes the
  336. X        asy driver from the kernel. But if you want to have it in the
  337. X        kernel you have to configure it to only use the ports you
  338. X        need under DOS. The remaining ports should be controlled by
  339. X        the FAS driver.
  340. X
  341. X        Now type `make install' and after that you are ready to link
  342. X        a new kernel. Refer to your system manuals on how to do that.
  343. X
  344. X        Before you reboot the new kernel make sure that you create
  345. X        the proper tty device nodes in /dev. But first you should
  346. X        remove all device nodes belonging to the original asy driver
  347. X        that you don't need any more.
  348. X
  349. X        Now create your own tty device nodes that fit your needs.
  350. X        The default device name prefix for the FAS driver is `ttyF'.
  351. X        That is, ttyF00, ttyF01 ... and ttyFM00, ttyFM01 ...
  352. X        You may choose another prefix, but note that some utilities
  353. X        like uustat depend on tty-devices beginning with `tty'!
  354. X
  355. X        The default value for the major device number is 4, and
  356. X        sane values for the minor device numbers are 80 + device #
  357. X        for the dialout node and 208 + device # for the dialin (getty)
  358. X        node. Device # counts from 0 and reflects the actual port number.
  359. X        Refer to the fas(7) man page for a description of the possible
  360. X        minor device numbers.
  361. X
  362. X        Remember to change the inittab file to the new device names.
  363. X        Other files that contain tty-names for some reason should be
  364. X        updated, too (ttytype, Devices etc.).
  365. X
  366. X        After you have booted the new kernel, provided your configuration
  367. X        was correct, you should be able to use the serial devices. You
  368. X        may also want to look at the `CABLING' and `MODEM SETUP' sections
  369. X        in the fas(7) man page.
  370. X
  371. X
  372. XISC:    Copy one of the s_fas-* files to `s_fas'. Make sure that
  373. X        you have a separate line in it for each block of contiguous
  374. X        port addresses assigned to the same interrupt vector (check
  375. X        the jumper settings on your serial card). Each line contains
  376. X        the number of ports bound to that interrupt, the start address
  377. X        of the first (lowest or only) and the end address of the last
  378. X        (highest or only) port on this interrupt line and other data.
  379. X        Refer to your ISC manuals if you need to change this file. Note
  380. X        that an IRQ2 on your card is an interrupt vector of 9. All other
  381. X        IRQ numbers correspond to the vector number, though.
  382. X
  383. X        If you want to change the interrupt vector assignment of the
  384. X        various ports/cards you can do so by changing the 6th field
  385. X        of the respective line. But make sure that each line has a
  386. X        different value in the 6th field when you're finished with
  387. X        the changes. If you want to disable an interrupt vector just
  388. X        set the second field of the line to `N'. A `Y', on the other
  389. X        hand, enables the vector. Due to a bug in some kernel build
  390. X        programs you need to have all enabled lines (with `Y') in
  391. X        front of the disabled lines (with `N') because the build
  392. X        program stops scanning the file when it finds the first line
  393. X        with an `N' in the second field. So just move all enabled lines
  394. X        to the beginning of the file.
  395. X
  396. X        Then you copy one of the n_fas-* files to `n_fas'. This
  397. X        file contains data needed to automatically create tty device
  398. X        nodes at installation time. Things you may want to change are
  399. X        the tty node names and the minor device numbers (last field) for
  400. X        these nodes. Make sure you have a node for every port on your
  401. X        serial card in this file.
  402. X
  403. X        Sane values for the minor device numbers are 80 + device #
  404. X        for the dialout node and 208 + device # for the dialin (getty)
  405. X        node. Device # counts from 0 and reflects the actual port number.
  406. X        Refer to the fas(7) man page for a description of the possible
  407. X        minor device numbers.
  408. X
  409. X        Now copy one of the i_fas-* files to `i_fas'. This file
  410. X        contains the getty lines for the inittab file which is rebuilt
  411. X        every time a new kernel is installed. Make sure that you use the
  412. X        same device names here as in the file `n_fas'. If there is a
  413. X        file /etc/conf/init.d/fas already installed, note that `i_fas'
  414. X        won't be copied over it so that customized lines in
  415. X        /etc/conf/init.d/fas are preserved.
  416. X
  417. X        Next you have to modify the file /etc/conf/sdevice.d/asy in a way
  418. X        that only those devices are enabled that you want to be controlled
  419. X        by the original `asy' driver. This is done with an `N' in the second
  420. X        column of the corresponding line to disable the port and a `Y' to
  421. X        enable it. But usually you don't need the original driver any more.
  422. X        Therefore, all lines in /etc/conf/sdevice.d/asy should be set to `N'.
  423. X
  424. X        To tell the kernel config program how to link in the FAS driver
  425. X        you have to add the following line to the file /etc/conf/cf.d/mdevice:
  426. X
  427. X        fas    Iocrwi    iHct    fas    0    3    1    16    -1
  428. X
  429. X        The 6th field contains the major device number of the driver. You
  430. X        may change this if it collides with another driver. This is normal
  431. X        as I can't know in advance what major device numbers all the UNIX
  432. X        vendors will use for their drivers. You can, however, use the
  433. X        major device number of the original asy driver if you completely
  434. X        suspend the asy driver (see above), that is, drivers can have the
  435. X        same major device number if not more than one of them is linked
  436. X        into the kernel at the same time.
  437. X
  438. X        The sample line above is contained in the file `m_fas' so you
  439. X        don't need to type it in. All you have to do is to edit the file
  440. X        (the 6th field if you want to change the major device number) and
  441. X        to then append it once to /etc/conf/cf.d/mdevice.
  442. X
  443. X        All this is in the ISC manuals. Read them carefully.
  444. X
  445. X        Now type `make install' and after that you are ready to link
  446. X        a new kernel. Refer to your system manuals on how to do that.
  447. X
  448. X        You may have to change files that contain tty names to the new
  449. X        device names (ttytype, Devices etc.). Take the names from `n_fas'.
  450. X
  451. X        After you have booted the new kernel, provided your configuration
  452. X        was correct, you should be able to use the serial devices. You
  453. X        may also want to look at the `CABLING' and `MODEM SETUP' sections
  454. X        in the fas(7) man page.
  455. X
  456. X
  457. XESIX:   Follow the description for ISC UNIX.
  458. X
  459. X
  460. XBELL:   Follow the description for ISC UNIX.
  461. X
  462. X
  463. XATT:    Follow the description for ISC UNIX.
  464. X
  465. X
  466. XSCO:    Do the same steps as for ISC UNIX. Here are some additional
  467. X        hints:
  468. X
  469. X        The original SCO serial driver is called `sio' instead of `asy'.
  470. X        You need to disable it because it won't coexist peacefully with
  471. X        FAS.
  472. X
  473. X        According to reports from some beta test sites it isn't enough
  474. X        to disable the `sio' driver by setting all lines in
  475. X        `/etc/conf/sdevice.d/sio' to `N'. Additionally, you have to
  476. X        delete the `sio' entry in `/etc/conf/cf.d/mdevice'. You may also
  477. X        want to remove the file `/etc/conf/init.d/sio' in order to get
  478. X        rid of the lines in `/etc/inittab' that refer to `sio' devices.
  479. X
  480. X        For the device nodes you should use SCO's naming conventions because
  481. X        there are some utilities that expect this tty name format. You need
  482. X        to change the names in `i_fas' and `n_fas'. To prevent a collision
  483. X        with the `sio' device node names you need to remove the file
  484. X        `/etc/conf/node.d/sio'.
  485. X
  486. X        In file `fas.h' you may need to uncomment the `NEED_PUT_GETCHAR'
  487. X        define before you compile the sources.
  488. X
  489. X        You have to compile FAS with the AT&T standard C compiler (rcc,
  490. X        don't use the Microsoft compiler !) and with the `-DSCO'
  491. X        compiler command line flag. The makefile for SCO takes
  492. X        care of this, though.
  493. X
  494. X        After you made all the changes you need to run the `configure'
  495. X        utility to get all the dependencies right. To convince the
  496. X        configure program that it has work to do you should change some
  497. X        parameter and put in the original value afterwards. Be prepared
  498. X        that there may be more tinkering needed to disable `sio' completely
  499. X        because there seem to be SCO UNIX releases where the kernel config
  500. X        and build programs are broken.
  501. X
  502. X        By default, FAS' boot message doesn't contain informations about
  503. X        the interrupt vector assignment. This is because FAS doesn't have,
  504. X        and doesn't need to have any knowledge about interrupt vectors.
  505. X        Only the generic kernel interrupt dispatcher knows about the
  506. X        assignment. However, if you can't live without the interrupt infos
  507. X        all you need to do to have them displayed is to enter the respective
  508. X        numbers into the fas_vec[] array in `space.c'. But make sure that
  509. X        these values correspond with the entries in `s_fas'.
  510. X
  511. X        At least under some SCO UNIX versions there is a bug/feature in
  512. X        getty. It writes the `login:' message to stdout and then flushes
  513. X        the receiver buffers. This means that a fast automatic login
  514. X        attempt (`uucico') may fail because it sends the login name
  515. X        before getty has a chance to do the buffer flush. So the login
  516. X        name is lost and the login fails.
  517. X
  518. X        There are two workarouds: Either use a different getty program
  519. X        or delay the sending of the login name for about two seconds
  520. X        (to be on the safe side). The latter solution implies that you
  521. X        have to tell every dialup user and poll site about the problem,
  522. X        as the fix has to be implemented on the remote side.
  523. X
  524. X
  525. XXENIX:  The installation procedure for Xenix is completely different
  526. X        from the other UNIX flavors.
  527. X
  528. X        In file `fas.h' you may need to uncomment the `NEED_PUT_GETCHAR'
  529. X        define before you compile the sources. After compilation
  530. X        the files `fas.o' and `space.o' have to be copied to the
  531. X        directory `/usr/sys/io/fas'. Typing `make install' takes care
  532. X        of this.
  533. X
  534. X        As the `sio' driver won't coexist peacefully with FAS you have
  535. X        to remove the `sio' line from the file `/usr/sys/conf/xenixconf'.
  536. X        Create a new line for `fas' in this file.
  537. X
  538. X        After this you have to modify the file `/usr/sys/conf/master'.
  539. X        There is a line in it that looks like this:
  540. X
  541. X        sio      4  0577 104    sio  0   0   5    1   7    3     4     33  34  
  542. X
  543. X        You have to comment this out with an asterisk (`*') at the beginning
  544. X        of the line. Directly after this line you need to insert a new line
  545. X        with the following contents (for two ports, one on IRQ3 and one on
  546. X        IRQ4):
  547. X
  548. X        fas      2  0537 104    fas  0   0   5    1   7    3     4     0   0  
  549. X
  550. X        The second column indicates how many interrupt vectors are used by
  551. X        this driver (two vectors in this example). The last four columns
  552. X        contain the corresponding IRQ numbers (in octal !). Unused vectors
  553. X        are set to zero.
  554. X
  555. X        Here is an example for three ports (on IRQ3, IRQ4 and IRQ5):
  556. X
  557. X        fas      3  0537 104    fas  0   0   5    1   7    3     4     5   0  
  558. X
  559. X        And this is for four ports (IRQ3, IRQ4, IRQ5 and IRQ2/9):
  560. X
  561. X        fas      4  0537 104    fas  0   0   5    1   7    3     4     5   31 
  562. X
  563. X        Note that the AT bus interrupts IRQ8 to IRQ15 are mapped to vector
  564. X        30 (octal) to 37 (octal). Therefore, IRQ9 (IRQ2 on the serial card) is
  565. X        vector 31 (octal) in this example.
  566. X
  567. X        Take care that you don't use interrupt vectors that are already
  568. X        assigned to other drivers.
  569. X
  570. X        For further details refer to the master(F) man page.
  571. X
  572. X        By default, FAS' boot message doesn't contain informations about
  573. X        the interrupt vector assignment. This is because FAS doesn't have,
  574. X        and doesn't need to have any knowledge about interrupt vectors.
  575. X        Only the generic kernel interrupt dispatcher knows about the
  576. X        assignment. However, if you can't live without the interrupt infos
  577. X        all you need to do to have them displayed is to enter the respective
  578. X        numbers into the fas_vec[] array in `space.c'. But make sure that
  579. X        these values correspond with the entries in `/usr/sys/conf/master'.
  580. X
  581. X        Now you have to insert the following line in `/usr/sys/conf/link_xenix'
  582. X        (before the lines with the system libs):
  583. X
  584. X                ../io/fas/fas.o ../io/fas/space.o \
  585. X
  586. X        After you made all the changes you might need to run the
  587. X        `/usr/sys/conf/configure' utility to get all the dependencies right.
  588. X        To convince the configure program that it has work to do you should
  589. X        change some parameter and put in the original value afterwards.
  590. X
  591. X        Go to the directory `/usr/sys/conf' and link the new kernel with
  592. X        the `make' command. If all went well, copy the kernel to the
  593. X        root directory.
  594. X
  595. X        You need to create the FAS device nodes manually in the directory
  596. X        `/dev' (with the command `mknod'). You should use SCO's naming
  597. X        conventions because there are some utilities that expect this
  598. X        tty name format. Here is an example how to make the device nodes:
  599. X
  600. X        mknod tty1a c 5 80; mknod tty1A c 5 208
  601. X        mknod tty1b c 5 81; mknod tty1B c 5 209
  602. X
  603. X        Major device number is always `5' (that of the suspended `sio'
  604. X        driver), the minor device numbers are calculated as described in
  605. X        the fas(7) man page. For full duplex hardware flow control
  606. X        tty1[a-z] gets the minor device number 80 + device# (device#
  607. X        counted from 0) and tty1[A-Z] gets 208 + device#.
  608. X
  609. X        The last thing you have to do before you reboot your system is
  610. X        to check whether you need to make changes to the files that contain
  611. X        the device names for your original `sio' driver (for programs like
  612. X        `getty', `cu' and `uucico').
  613. X
  614. X        After reboot you should remove all device nodes that belong
  615. X        to the now suspended `sio' driver. You may want to look at the
  616. X        `CABLING' and `MODEM SETUP' sections in the fas(7) man page.
  617. X
  618. X
  619. XSVR4.0: Do the same steps as for ISC UNIX. Here are some additional
  620. X        hints:
  621. X
  622. X        Currently, FAS is _not_ a STREAMS driver. Therefore, you need
  623. X        the tty compatibility drivers in the kernel. They are named
  624. X        `ttcompat', `clist', and maybe there are even more drivers
  625. X        needed. These compatibility drivers don't provide some of the
  626. X        features a genuine STREAMS driver would have. So FAS under SVR4.0
  627. X        can't be used for SLIP, for instance. Please look into your SVR4.0
  628. X        manuals for more informations.
  629. X
  630. X        Neither VP/ix nor DosMerge are supported by FAS under this
  631. X        operating system. You should comment `HAVE_VPIX' out in `fas.h'.
  632. X        This will change when FAS is converted into a STREAMS driver.
  633. X
  634. X
  635. XOther flavors of UNIX
  636. X=====================
  637. X
  638. XCheck out if one of the above installation schemes is similar to the
  639. Xone you need for your system. Make the appropriate changes and try
  640. Xout if it works. If your system is entirely different you have to
  641. Xfind out from your manuals how to install device drivers. But if
  642. Xyou use a UNIX SYSV/386 [34].X you should get it to work eventually.
  643. X
  644. XGood luck.
  645. SHAR_EOF
  646. true || echo 'restore of INSTALLATION failed'
  647. rm -f _shar_wnt_.tmp
  648. fi
  649. # ============= Makefile.ATT ==============
  650. if test -f 'Makefile.ATT' -a X"$1" != X"-c"; then
  651.     echo 'x - skipping Makefile.ATT (File already exists)'
  652.     rm -f _shar_wnt_.tmp
  653. else
  654. > _shar_wnt_.tmp
  655. echo 'x - extracting Makefile.ATT (Text)'
  656. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.ATT' &&
  657. X# Makefile for AT&T SVR3.2
  658. X
  659. XSHELL = /bin/sh
  660. XINCLSYS = /usr/include/sys
  661. XLKDRVRDIR = /etc/conf/pack.d/fas
  662. XLKSCONFDIR = /etc/conf/sdevice.d
  663. XLKNCONFDIR = /etc/conf/node.d
  664. XLKICONFDIR = /etc/conf/init.d
  665. XLKKCONFDIR = /etc/conf/kconfig.d
  666. XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
  667. XDRVRNAME = Driver.o
  668. XCONFNAME = fas
  669. X
  670. XCC = cc
  671. XCFLAGS = -O -DINKERNEL $(LKDEFINES)
  672. X
  673. X# Don't attach a `-D' to the OS dependent defines!
  674. XOS_DEP_DEFS =
  675. X
  676. Xall:        fas.o
  677. X
  678. Xfas.o:        fas.s
  679. X# Comment out the next two lines if you're using GCC
  680. X    awk -f optim_att.awk fas.s > fas.tmp
  681. X    mv -f fas.tmp fas.s
  682. X    $(CC) -c fas.s
  683. X
  684. Xfas.s:        fas.c fas.h Makefile
  685. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  686. X    $(CC) $(CFLAGS) -S fas.c
  687. X
  688. Xinstall:    all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
  689. X        fas.h
  690. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  691. X    chmod 755 $(LKDRVRDIR)
  692. X    cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
  693. X    chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
  694. X    cp space.c $(LKDRVRDIR)/space.c
  695. X    chmod 644 $(LKDRVRDIR)/space.c
  696. X    cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
  697. X    chmod 644 $(LKSCONFDIR)/$(CONFNAME)
  698. X    cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
  699. X    chmod 644 $(LKNCONFDIR)/$(CONFNAME)
  700. X    test -f $(LKICONFDIR)/$(CONFNAME) || \
  701. X        cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
  702. X    chmod 644 $(LKICONFDIR)/$(CONFNAME)
  703. X    cp fas.h $(INCLSYS)/fas.h
  704. X    chmod 444 $(INCLSYS)/fas.h
  705. X    $(SHELL) update_desc $(LKKCONFDIR)/description
  706. X
  707. Xspace.c:
  708. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  709. X    @false
  710. X
  711. Xs_$(CONFNAME):
  712. X    @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
  713. X    @false
  714. X
  715. Xn_$(CONFNAME):
  716. X    @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
  717. X    @false
  718. X
  719. Xi_$(CONFNAME):
  720. X    @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
  721. X    @false
  722. X
  723. Xfas.h:
  724. X    @echo "The file \`fas.h' is missing for some reason"
  725. X    @false
  726. X
  727. Xclean:
  728. X    rm -f fas.s fas.tmp fas.o
  729. X
  730. Xclobber:    clean
  731. X
  732. SHAR_EOF
  733. true || echo 'restore of Makefile.ATT failed'
  734. rm -f _shar_wnt_.tmp
  735. fi
  736. # ============= Makefile.BELL ==============
  737. if test -f 'Makefile.BELL' -a X"$1" != X"-c"; then
  738.     echo 'x - skipping Makefile.BELL (File already exists)'
  739.     rm -f _shar_wnt_.tmp
  740. else
  741. > _shar_wnt_.tmp
  742. echo 'x - extracting Makefile.BELL (Text)'
  743. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.BELL' &&
  744. X# Makefile for Bell Tech/Intel SVR3.2
  745. X
  746. XSHELL = /bin/sh
  747. XINCLSYS = /usr/include/sys
  748. XLKDRVRDIR = /etc/conf/pack.d/fas
  749. XLKSCONFDIR = /etc/conf/sdevice.d
  750. XLKNCONFDIR = /etc/conf/node.d
  751. XLKICONFDIR = /etc/conf/init.d
  752. XLKKCONFDIR = /etc/conf/kconfig.d
  753. XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
  754. XDRVRNAME = Driver.o
  755. XCONFNAME = fas
  756. X
  757. XCC = cc
  758. XCFLAGS = -O -DINKERNEL $(LKDEFINES)
  759. X
  760. X# Don't attach a `-D' to the OS dependent defines!
  761. XOS_DEP_DEFS =
  762. X
  763. Xall:        fas.o
  764. X
  765. Xfas.o:        fas.s
  766. X# Comment out the next two lines if you're using GCC
  767. X    awk -f optim_att.awk fas.s > fas.tmp
  768. X    mv -f fas.tmp fas.s
  769. X    $(CC) -c fas.s
  770. X
  771. Xfas.s:        fas.c fas.h Makefile
  772. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  773. X    $(CC) $(CFLAGS) -S fas.c
  774. X
  775. Xinstall:    all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
  776. X        fas.h
  777. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  778. X    chmod 755 $(LKDRVRDIR)
  779. X    cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
  780. X    chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
  781. X    cp space.c $(LKDRVRDIR)/space.c
  782. X    chmod 644 $(LKDRVRDIR)/space.c
  783. X    cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
  784. X    chmod 644 $(LKSCONFDIR)/$(CONFNAME)
  785. X    cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
  786. X    chmod 644 $(LKNCONFDIR)/$(CONFNAME)
  787. X    test -f $(LKICONFDIR)/$(CONFNAME) || \
  788. X        cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
  789. X    chmod 644 $(LKICONFDIR)/$(CONFNAME)
  790. X    cp fas.h $(INCLSYS)/fas.h
  791. X    chmod 444 $(INCLSYS)/fas.h
  792. X    $(SHELL) update_desc $(LKKCONFDIR)/description
  793. X
  794. Xspace.c:
  795. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  796. X    @false
  797. X
  798. Xs_$(CONFNAME):
  799. X    @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
  800. X    @false
  801. X
  802. Xn_$(CONFNAME):
  803. X    @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
  804. X    @false
  805. X
  806. Xi_$(CONFNAME):
  807. X    @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
  808. X    @false
  809. X
  810. Xfas.h:
  811. X    @echo "The file \`fas.h' is missing for some reason"
  812. X    @false
  813. X
  814. Xclean:
  815. X    rm -f fas.s fas.tmp fas.o
  816. X
  817. Xclobber:    clean
  818. X
  819. SHAR_EOF
  820. true || echo 'restore of Makefile.BELL failed'
  821. rm -f _shar_wnt_.tmp
  822. fi
  823. # ============= Makefile.ESIX ==============
  824. if test -f 'Makefile.ESIX' -a X"$1" != X"-c"; then
  825.     echo 'x - skipping Makefile.ESIX (File already exists)'
  826.     rm -f _shar_wnt_.tmp
  827. else
  828. > _shar_wnt_.tmp
  829. echo 'x - extracting Makefile.ESIX (Text)'
  830. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.ESIX' &&
  831. X# Makefile for ESIX SVR3.2
  832. X
  833. XSHELL = /bin/sh
  834. XINCLSYS = /usr/include/sys
  835. XLKDRVRDIR = /etc/conf/pack.d/fas
  836. XLKSCONFDIR = /etc/conf/sdevice.d
  837. XLKNCONFDIR = /etc/conf/node.d
  838. XLKICONFDIR = /etc/conf/init.d
  839. XLKKCONFDIR = /etc/conf/kconfig.d
  840. XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
  841. XDRVRNAME = Driver.o
  842. XCONFNAME = fas
  843. X
  844. XCC = cc
  845. XCFLAGS = -O -DINKERNEL $(LKDEFINES)
  846. X
  847. X# Don't attach a `-D' to the OS dependent defines!
  848. XOS_DEP_DEFS =
  849. X
  850. Xall:        fas.o
  851. X
  852. Xfas.o:        fas.s
  853. X# Comment out the next two lines if you're using GCC
  854. X    awk -f optim_att.awk fas.s > fas.tmp
  855. X    mv -f fas.tmp fas.s
  856. X    $(CC) -c fas.s
  857. X
  858. Xfas.s:        fas.c fas.h Makefile
  859. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  860. X    $(CC) $(CFLAGS) -S fas.c
  861. X
  862. Xinstall:    all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
  863. X        fas.h
  864. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  865. X    chmod 755 $(LKDRVRDIR)
  866. X    cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
  867. X    chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
  868. X    cp space.c $(LKDRVRDIR)/space.c
  869. X    chmod 644 $(LKDRVRDIR)/space.c
  870. X    cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
  871. X    chmod 644 $(LKSCONFDIR)/$(CONFNAME)
  872. X    cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
  873. X    chmod 644 $(LKNCONFDIR)/$(CONFNAME)
  874. X    test -f $(LKICONFDIR)/$(CONFNAME) || \
  875. X        cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
  876. X    chmod 644 $(LKICONFDIR)/$(CONFNAME)
  877. X    cp fas.h $(INCLSYS)/fas.h
  878. X    chmod 444 $(INCLSYS)/fas.h
  879. X    $(SHELL) update_desc $(LKKCONFDIR)/description
  880. X
  881. Xspace.c:
  882. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  883. X    @false
  884. X
  885. Xs_$(CONFNAME):
  886. X    @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
  887. X    @false
  888. X
  889. Xn_$(CONFNAME):
  890. X    @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
  891. X    @false
  892. X
  893. Xi_$(CONFNAME):
  894. X    @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
  895. X    @false
  896. X
  897. Xfas.h:
  898. X    @echo "The file \`fas.h' is missing for some reason"
  899. X    @false
  900. X
  901. Xclean:
  902. X    rm -f fas.s fas.tmp fas.o
  903. X
  904. Xclobber:    clean
  905. X
  906. SHAR_EOF
  907. true || echo 'restore of Makefile.ESIX failed'
  908. rm -f _shar_wnt_.tmp
  909. fi
  910. # ============= Makefile.ISC2 ==============
  911. if test -f 'Makefile.ISC2' -a X"$1" != X"-c"; then
  912.     echo 'x - skipping Makefile.ISC2 (File already exists)'
  913.     rm -f _shar_wnt_.tmp
  914. else
  915. > _shar_wnt_.tmp
  916. echo 'x - extracting Makefile.ISC2 (Text)'
  917. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.ISC2' &&
  918. X# Makefile for ISC UNIX 2.x
  919. X
  920. XSHELL = /bin/sh
  921. XINCLSYS = /usr/include/sys
  922. XLKDRVRDIR = /etc/conf/pack.d/fas
  923. XLKSCONFDIR = /etc/conf/sdevice.d
  924. XLKNCONFDIR = /etc/conf/node.d
  925. XLKICONFDIR = /etc/conf/init.d
  926. XLKKCONFDIR = /etc/conf/kconfig.d
  927. XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
  928. XDRVRNAME = Driver.o
  929. XCONFNAME = fas
  930. X
  931. XCC = cc
  932. XCFLAGS = -O -DINKERNEL $(LKDEFINES)
  933. X
  934. X# Don't attach a `-D' to the OS dependent defines!
  935. XOS_DEP_DEFS =
  936. X
  937. Xall:        fas.o
  938. X
  939. Xfas.o:        fas.s
  940. X# Comment out the next two lines if you're using GCC
  941. X    awk -f optim_att.awk fas.s > fas.tmp
  942. X    mv -f fas.tmp fas.s
  943. X    $(CC) -c fas.s
  944. X
  945. Xfas.s:        fas.c fas.h Makefile
  946. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  947. X    $(CC) $(CFLAGS) -S fas.c
  948. X
  949. Xinstall:    all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
  950. X        fas.h
  951. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  952. X    chmod 755 $(LKDRVRDIR)
  953. X    cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
  954. X    chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
  955. X    cp space.c $(LKDRVRDIR)/space.c
  956. X    chmod 644 $(LKDRVRDIR)/space.c
  957. X    cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
  958. X    chmod 644 $(LKSCONFDIR)/$(CONFNAME)
  959. X    cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
  960. X    chmod 644 $(LKNCONFDIR)/$(CONFNAME)
  961. X    test -f $(LKICONFDIR)/$(CONFNAME) || \
  962. X        cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
  963. X    chmod 644 $(LKICONFDIR)/$(CONFNAME)
  964. X    cp fas.h $(INCLSYS)/fas.h
  965. X    chmod 444 $(INCLSYS)/fas.h
  966. X    $(SHELL) update_desc $(LKKCONFDIR)/description
  967. X
  968. Xspace.c:
  969. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  970. X    @false
  971. X
  972. Xs_$(CONFNAME):
  973. X    @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
  974. X    @false
  975. X
  976. Xn_$(CONFNAME):
  977. X    @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
  978. X    @false
  979. X
  980. Xi_$(CONFNAME):
  981. X    @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
  982. X    @false
  983. X
  984. Xfas.h:
  985. X    @echo "The file \`fas.h' is missing for some reason"
  986. X    @false
  987. X
  988. Xclean:
  989. X    rm -f fas.s fas.tmp fas.o
  990. X
  991. Xclobber:    clean
  992. X
  993. SHAR_EOF
  994. true || echo 'restore of Makefile.ISC2 failed'
  995. rm -f _shar_wnt_.tmp
  996. fi
  997. # ============= Makefile.ISC3 ==============
  998. if test -f 'Makefile.ISC3' -a X"$1" != X"-c"; then
  999.     echo 'x - skipping Makefile.ISC3 (File already exists)'
  1000.     rm -f _shar_wnt_.tmp
  1001. else
  1002. > _shar_wnt_.tmp
  1003. echo 'x - extracting Makefile.ISC3 (Text)'
  1004. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.ISC3' &&
  1005. X# Makefile for ISC UNIX 3.0 and later
  1006. X
  1007. XSHELL = /bin/sh
  1008. XINCLSYS = /usr/include/sys
  1009. XLKDRVRDIR = /etc/conf/pack.d/fas
  1010. XLKSCONFDIR = /etc/conf/sdevice.d
  1011. XLKNCONFDIR = /etc/conf/node.d
  1012. XLKICONFDIR = /etc/conf/init.d
  1013. XLKKCONFDIR = /etc/conf/kconfig.d
  1014. XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
  1015. XDRVRNAME = Driver.o
  1016. XCONFNAME = fas
  1017. X
  1018. XCC = cc
  1019. XCFLAGS = -O -DINKERNEL $(LKDEFINES)
  1020. X
  1021. X# Don't attach a `-D' to the OS dependent defines!
  1022. XOS_DEP_DEFS = LOW_INT_LAT
  1023. X
  1024. Xall:        fas.o
  1025. X
  1026. Xfas.o:        fas.s
  1027. X# Comment out the next two lines if you're using GCC
  1028. X    awk -f optim_att.awk fas.s > fas.tmp
  1029. X    mv -f fas.tmp fas.s
  1030. X    $(CC) -c fas.s
  1031. X
  1032. Xfas.s:        fas.c fas.h Makefile
  1033. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  1034. X    $(CC) $(CFLAGS) -S fas.c
  1035. X
  1036. Xinstall:    all space.c DrivDesc s_$(CONFNAME) n_$(CONFNAME) \
  1037. X        i_$(CONFNAME) fas.h
  1038. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  1039. X    chmod 755 $(LKDRVRDIR)
  1040. X    cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
  1041. X    chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
  1042. X    cp space.c $(LKDRVRDIR)/space.c
  1043. X    chmod 644 $(LKDRVRDIR)/space.c
  1044. X    cp DrivDesc $(LKDRVRDIR)/DrivDesc
  1045. X    chmod 644 $(LKDRVRDIR)/DrivDesc
  1046. X    cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
  1047. X    chmod 644 $(LKSCONFDIR)/$(CONFNAME)
  1048. X    cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
  1049. X    chmod 644 $(LKNCONFDIR)/$(CONFNAME)
  1050. X    test -f $(LKICONFDIR)/$(CONFNAME) || \
  1051. X        cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
  1052. X    chmod 644 $(LKICONFDIR)/$(CONFNAME)
  1053. X    cp fas.h $(INCLSYS)/fas.h
  1054. X    chmod 444 $(INCLSYS)/fas.h
  1055. X
  1056. Xspace.c:
  1057. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  1058. X    @false
  1059. X
  1060. XDrivDesc:
  1061. X    @echo "The file \`DrivDesc' is missing for some reason"
  1062. X    @false
  1063. X
  1064. Xs_$(CONFNAME):
  1065. X    @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
  1066. X    @false
  1067. X
  1068. Xn_$(CONFNAME):
  1069. X    @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
  1070. X    @false
  1071. X
  1072. Xi_$(CONFNAME):
  1073. X    @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
  1074. X    @false
  1075. X
  1076. Xfas.h:
  1077. X    @echo "The file \`fas.h' is missing for some reason"
  1078. X    @false
  1079. X
  1080. Xclean:
  1081. X    rm -f fas.s fas.tmp fas.o
  1082. X
  1083. Xclobber:    clean
  1084. X
  1085. SHAR_EOF
  1086. true || echo 'restore of Makefile.ISC3 failed'
  1087. rm -f _shar_wnt_.tmp
  1088. fi
  1089. # ============= Makefile.SCO ==============
  1090. if test -f 'Makefile.SCO' -a X"$1" != X"-c"; then
  1091.     echo 'x - skipping Makefile.SCO (File already exists)'
  1092.     rm -f _shar_wnt_.tmp
  1093. else
  1094. > _shar_wnt_.tmp
  1095. echo 'x - extracting Makefile.SCO (Text)'
  1096. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.SCO' &&
  1097. X# Makefile for SCO UNIX
  1098. X
  1099. XSHELL = /bin/sh
  1100. XINCLSYS = /usr/include/sys
  1101. XLKDRVRDIR = /etc/conf/pack.d/fas
  1102. XLKSCONFDIR = /etc/conf/sdevice.d
  1103. XLKNCONFDIR = /etc/conf/node.d
  1104. XLKICONFDIR = /etc/conf/init.d
  1105. XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
  1106. XDRVRNAME = Driver.o
  1107. XCONFNAME = fas
  1108. X
  1109. XCC = rcc
  1110. XCFLAGS = -O -DINKERNEL -D_INKERNEL $(LKDEFINES)
  1111. X
  1112. X# Don't attach a `-D' to the OS dependent defines!
  1113. XOS_DEP_DEFS = SCO
  1114. X
  1115. Xall:        fas.o
  1116. X
  1117. Xfas.o:        fas.s
  1118. X# Comment out the next two lines if you're using GCC
  1119. X    awk -f optim_att.awk fas.s > fas.tmp
  1120. X    mv -f fas.tmp fas.s
  1121. X    $(CC) -c fas.s
  1122. X
  1123. Xfas.s:        fas.c fas.h Makefile
  1124. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  1125. X    $(CC) $(CFLAGS) -S fas.c
  1126. X
  1127. Xinstall:    all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
  1128. X        fas.h
  1129. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  1130. X    chmod 755 $(LKDRVRDIR)
  1131. X    cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
  1132. X    chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
  1133. X    cp space.c $(LKDRVRDIR)/space.c
  1134. X    chmod 644 $(LKDRVRDIR)/space.c
  1135. X    cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
  1136. X    chmod 644 $(LKSCONFDIR)/$(CONFNAME)
  1137. X    cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
  1138. X    chmod 644 $(LKNCONFDIR)/$(CONFNAME)
  1139. X    test -f $(LKICONFDIR)/$(CONFNAME) || \
  1140. X        cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
  1141. X    chmod 644 $(LKICONFDIR)/$(CONFNAME)
  1142. X    cp fas.h $(INCLSYS)/fas.h
  1143. X    chmod 444 $(INCLSYS)/fas.h
  1144. X
  1145. Xspace.c:
  1146. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  1147. X    @false
  1148. X
  1149. Xs_$(CONFNAME):
  1150. X    @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
  1151. X    @false
  1152. X
  1153. Xn_$(CONFNAME):
  1154. X    @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
  1155. X    @false
  1156. X
  1157. Xi_$(CONFNAME):
  1158. X    @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
  1159. X    @false
  1160. X
  1161. Xfas.h:
  1162. X    @echo "The file \`fas.h' is missing for some reason"
  1163. X    @false
  1164. X
  1165. Xclean:
  1166. X    rm -f fas.s fas.tmp fas.o
  1167. X
  1168. Xclobber:    clean
  1169. X
  1170. SHAR_EOF
  1171. true || echo 'restore of Makefile.SCO failed'
  1172. rm -f _shar_wnt_.tmp
  1173. fi
  1174. # ============= Makefile.SVR40 ==============
  1175. if test -f 'Makefile.SVR40' -a X"$1" != X"-c"; then
  1176.     echo 'x - skipping Makefile.SVR40 (File already exists)'
  1177.     rm -f _shar_wnt_.tmp
  1178. else
  1179. > _shar_wnt_.tmp
  1180. echo 'x - extracting Makefile.SVR40 (Text)'
  1181. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.SVR40' &&
  1182. X# Makefile for SVR4.0
  1183. X
  1184. XSHELL = /bin/sh
  1185. XINCLSYS = /usr/include/sys
  1186. XLKDRVRDIR = /etc/conf/pack.d/fas
  1187. XLKSCONFDIR = /etc/conf/sdevice.d
  1188. XLKNCONFDIR = /etc/conf/node.d
  1189. XLKICONFDIR = /etc/conf/init.d
  1190. XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
  1191. XDRVRNAME = Driver.o
  1192. XCONFNAME = fas
  1193. X
  1194. XCC = cc
  1195. XCFLAGS = -O -DINKERNEL -D_KERNEL $(LKDEFINES)
  1196. X
  1197. X# Don't attach a `-D' to the OS dependent defines!
  1198. XOS_DEP_DEFS = SVR4
  1199. X
  1200. Xall:        fas.o
  1201. X
  1202. Xfas.o:        fas.s
  1203. X# Comment out the next two lines if you're using GCC
  1204. X    awk -f optim_att.awk fas.s > fas.tmp
  1205. X    mv -f fas.tmp fas.s
  1206. X    $(CC) -c fas.s
  1207. X
  1208. Xfas.s:        fas.c fas.h Makefile
  1209. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  1210. X    $(CC) $(CFLAGS) -S fas.c
  1211. X
  1212. Xinstall:    all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
  1213. X        fas.h
  1214. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  1215. X    chmod 755 $(LKDRVRDIR)
  1216. X    cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
  1217. X    chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
  1218. X    cp space.c $(LKDRVRDIR)/space.c
  1219. X    chmod 644 $(LKDRVRDIR)/space.c
  1220. X    cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
  1221. X    chmod 644 $(LKSCONFDIR)/$(CONFNAME)
  1222. X    cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
  1223. X    chmod 644 $(LKNCONFDIR)/$(CONFNAME)
  1224. X    test -f $(LKICONFDIR)/$(CONFNAME) || \
  1225. X        cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
  1226. X    chmod 644 $(LKICONFDIR)/$(CONFNAME)
  1227. X    cp fas.h $(INCLSYS)/fas.h
  1228. X    chmod 444 $(INCLSYS)/fas.h
  1229. X
  1230. Xspace.c:
  1231. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  1232. X    @false
  1233. X
  1234. Xs_$(CONFNAME):
  1235. X    @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
  1236. X    @false
  1237. X
  1238. Xn_$(CONFNAME):
  1239. X    @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
  1240. X    @false
  1241. X
  1242. Xi_$(CONFNAME):
  1243. X    @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
  1244. X    @false
  1245. X
  1246. Xfas.h:
  1247. X    @echo "The file \`fas.h' is missing for some reason"
  1248. X    @false
  1249. X
  1250. Xclean:
  1251. X    rm -f fas.s fas.tmp fas.o
  1252. X
  1253. Xclobber:    clean
  1254. X
  1255. SHAR_EOF
  1256. true || echo 'restore of Makefile.SVR40 failed'
  1257. rm -f _shar_wnt_.tmp
  1258. fi
  1259. # ============= Makefile.X286 ==============
  1260. if test -f 'Makefile.X286' -a X"$1" != X"-c"; then
  1261.     echo 'x - skipping Makefile.X286 (File already exists)'
  1262.     rm -f _shar_wnt_.tmp
  1263. else
  1264. > _shar_wnt_.tmp
  1265. echo 'x - extracting Makefile.X286 (Text)'
  1266. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.X286' &&
  1267. X# Makefile for SCO Xenix 286
  1268. X
  1269. XSHELL = /bin/sh
  1270. XLKDRVRDIR = /usr/sys/io/fas
  1271. X
  1272. XCC = cc
  1273. XCFLAGS = -LARGE -O -K -M2em -DM_KERNEL -UM_I8086 -DSYSINFO
  1274. XIOCFLAGS = -O -K -M2em -NT io_text -DM_KERNEL -UM_I8086
  1275. X
  1276. X# Don't attach a `-D' to the OS dependent defines!
  1277. XOS_DEP_DEFS = XENIX
  1278. X
  1279. Xall:        fas.o space.o
  1280. X
  1281. Xfas.o:        fas.c fas.h Makefile
  1282. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  1283. X    $(CC) $(IOCFLAGS) -c fas.c
  1284. X
  1285. Xspace.o:    space.c fas.h Makefile
  1286. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  1287. X    $(CC) $(CFLAGS) -DLOCAL_INCLUDE -c space.c
  1288. X
  1289. Xinstall:    all
  1290. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  1291. X    chmod 755 $(LKDRVRDIR)
  1292. X    cp fas.o $(LKDRVRDIR)
  1293. X    chmod 644 $(LKDRVRDIR)/fas.o
  1294. X    cp space.o $(LKDRVRDIR)
  1295. X    chmod 644 $(LKDRVRDIR)/space.o
  1296. X
  1297. Xspace.c:
  1298. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  1299. X    @false
  1300. X
  1301. Xclean:
  1302. X    rm -f fas.o space.o
  1303. X
  1304. Xclobber:    clean
  1305. X
  1306. SHAR_EOF
  1307. true || echo 'restore of Makefile.X286 failed'
  1308. rm -f _shar_wnt_.tmp
  1309. fi
  1310. # ============= Makefile.X386 ==============
  1311. if test -f 'Makefile.X386' -a X"$1" != X"-c"; then
  1312.     echo 'x - skipping Makefile.X386 (File already exists)'
  1313.     rm -f _shar_wnt_.tmp
  1314. else
  1315. > _shar_wnt_.tmp
  1316. echo 'x - extracting Makefile.X386 (Text)'
  1317. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.X386' &&
  1318. X# Makefile for SCO Xenix 386
  1319. X
  1320. XSHELL = /bin/sh
  1321. XLKDRVRDIR = /usr/sys/io/fas
  1322. X
  1323. XCC = cc
  1324. XCFLAGS = -O -DM_KERNEL -M3e -Zp4
  1325. X
  1326. X# Don't attach a `-D' to the OS dependent defines!
  1327. XOS_DEP_DEFS = XENIX
  1328. X
  1329. Xall:        fas.o space.o
  1330. X
  1331. Xfas.o:        fas.c fas.h Makefile
  1332. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  1333. X    $(CC) $(CFLAGS) -c fas.c
  1334. X
  1335. Xspace.o:    space.c fas.h Makefile
  1336. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  1337. X    $(CC) $(CFLAGS) -DLOCAL_INCLUDE -c space.c
  1338. X
  1339. Xinstall:    all
  1340. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  1341. X    chmod 755 $(LKDRVRDIR)
  1342. X    cp fas.o $(LKDRVRDIR)
  1343. X    chmod 644 $(LKDRVRDIR)/fas.o
  1344. X    cp space.o $(LKDRVRDIR)
  1345. X    chmod 644 $(LKDRVRDIR)/space.o
  1346. X
  1347. Xspace.c:
  1348. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  1349. X    @false
  1350. X
  1351. Xclean:
  1352. X    rm -f fas.o space.o
  1353. X
  1354. Xclobber:    clean
  1355. X
  1356. SHAR_EOF
  1357. true || echo 'restore of Makefile.X386 failed'
  1358. rm -f _shar_wnt_.tmp
  1359. fi
  1360. # ============= Makefile.uPort ==============
  1361. if test -f 'Makefile.uPort' -a X"$1" != X"-c"; then
  1362.     echo 'x - skipping Makefile.uPort (File already exists)'
  1363.     rm -f _shar_wnt_.tmp
  1364. else
  1365. > _shar_wnt_.tmp
  1366. echo 'x - extracting Makefile.uPort (Text)'
  1367. sed 's/^X//' << 'SHAR_EOF' > 'Makefile.uPort' &&
  1368. X# Makefile for Microport SVR3.0
  1369. X
  1370. XSHELL = /bin/sh
  1371. XINCLSYS = /usr/include/sys
  1372. XLKDRVRDIR = /etc/atconf/modules/fas
  1373. XLKCONFDIR = /etc/atconf/modules/fas
  1374. XDRVRNAME = fas.o
  1375. XCONFNAME = config
  1376. X
  1377. XCC = cc
  1378. XCFLAGS = -O -DINKERNEL
  1379. X
  1380. X# Don't attach a `-D' to the OS dependent defines!
  1381. XOS_DEP_DEFS = OPTIM
  1382. X
  1383. Xall:        fas.o
  1384. X
  1385. Xfas.o:        fas.s
  1386. X# Comment out the next two lines if you're using GCC
  1387. X    awk -f optim_att.awk fas.s > fas.tmp
  1388. X    mv -f fas.tmp fas.s
  1389. X    $(CC) -c fas.s
  1390. X
  1391. Xfas.s:        fas.c fas.h Makefile
  1392. X    $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
  1393. X    $(CC) $(CFLAGS) -S fas.c
  1394. X
  1395. Xinstall:    all space.c $(CONFNAME) fas.h
  1396. X    test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
  1397. X    chmod 755 $(LKDRVRDIR)
  1398. X    cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
  1399. X    chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
  1400. X    cp space.c $(LKDRVRDIR)/space.c
  1401. X    chmod 644 $(LKDRVRDIR)/space.c
  1402. X    cp $(CONFNAME) $(LKCONFDIR)/$(CONFNAME)
  1403. X    chmod 644 $(LKCONFDIR)/$(CONFNAME)
  1404. X    cp fas.h $(INCLSYS)/fas.h
  1405. X    chmod 444 $(INCLSYS)/fas.h
  1406. X
  1407. Xspace.c:
  1408. X    @echo "You must copy the proper space-xxxxx file to \`space.c'"
  1409. X    @false
  1410. X
  1411. X$(CONFNAME):
  1412. X    @echo "You must copy the proper $(CONFNAME)-xxxxx file to \`$(CONFNAME)'"
  1413. X    @false
  1414. X
  1415. Xfas.h:
  1416. X    @echo "The file \`fas.h' is missing for some reason"
  1417. X    @false
  1418. X
  1419. Xclean:
  1420. X    rm -f fas.s fas.tmp fas.o
  1421. X
  1422. Xclobber:    clean
  1423. X
  1424. SHAR_EOF
  1425. true || echo 'restore of Makefile.uPort failed'
  1426. rm -f _shar_wnt_.tmp
  1427. fi
  1428. # ============= PATCHLEVEL ==============
  1429. if test -f 'PATCHLEVEL' -a X"$1" != X"-c"; then
  1430.     echo 'x - skipping PATCHLEVEL (File already exists)'
  1431.     rm -f _shar_wnt_.tmp
  1432. else
  1433. > _shar_wnt_.tmp
  1434. echo 'x - extracting PATCHLEVEL (Text)'
  1435. sed 's/^X//' << 'SHAR_EOF' > 'PATCHLEVEL' &&
  1436. Xrelease 2.11 patchlevel 0
  1437. SHAR_EOF
  1438. true || echo 'restore of PATCHLEVEL failed'
  1439. rm -f _shar_wnt_.tmp
  1440. fi
  1441. # ============= README ==============
  1442. if test -f 'README' -a X"$1" != X"-c"; then
  1443.     echo 'x - skipping README (File already exists)'
  1444.     rm -f _shar_wnt_.tmp
  1445. else
  1446. > _shar_wnt_.tmp
  1447. echo 'x - extracting README (Text)'
  1448. sed 's/^X//' << 'SHAR_EOF' > 'README' &&
  1449. XREADME file for the FAS driver
  1450. X------------------------------
  1451. X
  1452. XFAS, which is an acronym for "Final Async Solution", is a "dumb"-port
  1453. Xcharacter device driver for 286/386 based UNIX systems that adds several
  1454. Xfeatures that are often not provided by vendors drivers.
  1455. X
  1456. XFor further details please refer to the fas(7) man page (file `fas.7'
  1457. Xor `fas.7.cat').
  1458. X
  1459. XFor informations about the FAS copyright please look at the file `COPYING'.
  1460. X
  1461. XThe installation of FAS is described in the file `INSTALLATION'.
  1462. X
  1463. X------------------------------------------------------------------------
  1464. X
  1465. XWhat's in this package:
  1466. X
  1467. XCOPYING        Details about the FAS copyright.
  1468. X
  1469. XDrivDesc       Driver description file for ISC UNIX 3.x systems.
  1470. X
  1471. XINSTALLATION   A description about how to install the driver
  1472. X               on your system.
  1473. X
  1474. XMakefile.*     These files are generic and should work for all
  1475. X               configurations of ports and interrupts.
  1476. X
  1477. X     Makefile.ATT   For AT&T SVR3.2 systems.
  1478. X
  1479. X     Makefile.BELL  For Bell Tech/Intel SVR3.2 systems.
  1480. X
  1481. X     Makefile.ESIX  For ESIX SVR3.2 systems.
  1482. X
  1483. X     Makefile.ISC2  For ISC UNIX 2.x systems.
  1484. X
  1485. X     Makefile.ISC3  For ISC UNIX 3.x systems.
  1486. X
  1487. X     Makefile.SCO   For SCO UNIX systems.
  1488. X
  1489. X     Makefile.SVR40 For SVR4.0 systems.
  1490. X
  1491. X     Makefile.X286  For SCO Xenix 286 systems.
  1492. X
  1493. X     Makefile.X386  For SCO Xenix 386 systems.
  1494. X
  1495. X     Makefile.uPort For Microport SVR3.0 systems.
  1496. X
  1497. XPATCHLEVEL     Just a reference file for future updates.
  1498. X
  1499. XREADME         This file.
  1500. X
  1501. XRELEASENOTES   Notes about the various FAS releases.
  1502. X               
  1503. Xconfig-*       This is for Microport SVR3.0 only.
  1504. X               Kernel configuaration files.  You should pick the one
  1505. X               that matches your configuration and copy it to `config'.
  1506. X
  1507. Xfas.7          The man page in NROFF source format.
  1508. X
  1509. Xfas.7.cat      The formatted man page (for systems without NROFF).
  1510. X
  1511. Xfas.c          The driver itself.
  1512. X
  1513. Xfas.h          The header file for the driver.
  1514. X
  1515. Xi_fas-*        This is for ISC, ESIX, Bell Tech/Intel, SCO, AT&T and
  1516. X               SVR4.0 UNIX.
  1517. X               Inittab getty lines files.  You should pick the one
  1518. X               that matches your configuration and copy it to `i_fas'.
  1519. X
  1520. Xm_fas          This is for ISC, ESIX, Bell Tech/Intel, SCO, AT&T and
  1521. X               SVR4.0 UNIX.
  1522. X               Kernel configuration file.  It contains a sample entry
  1523. X               for the file `/etc/conf/cf.d/mdevice'.
  1524. X
  1525. Xn_fas-*        This is for ISC, ESIX, Bell Tech/Intel, SCO, AT&T and
  1526. X               SVR4.0 UNIX.
  1527. X               Tty device nodes files.  You should pick the one
  1528. X               that matches your configuration and copy it to `n_fas'.
  1529. X
  1530. Xoptim_att.awk  AWK script that optimizes the AT&T assembler file
  1531. X               generated during compilation under some UNIX flavors.
  1532. X
  1533. Xos_dep_update  Shell script for the update of OS dependent defines.
  1534. X
  1535. Xs_fas-*        This is for ISC, ESIX, Bell Tech/Intel, SCO, AT&T and
  1536. X               SVR4.0 UNIX.
  1537. X               Kernel configuration files.  You should pick the one
  1538. X               that matches your configuration and copy it to `s_fas'.
  1539. X
  1540. Xspace-*        These are samples of what `space.c' must look
  1541. X               like.  You can either copy one of these to
  1542. X               `space.c' or use it as a template to create your
  1543. X               own `space.c'.
  1544. X
  1545. Xupdate_desc    Shell script for the update of the kernel description
  1546. X               file (necessary for some UNIX flavors).
  1547. X
  1548. X------------------------------------------------------------------------
  1549. X
  1550. XWhat you will need to use this package:
  1551. X
  1552. XYou will need one of the above mentioned UNIX systems with the
  1553. Xkernel link kit and the software development package.
  1554. X
  1555. XOf course, you will also need one or more "dumb"-port serial cards.
  1556. X
  1557. XNote that FAS can be adapted to almost any kind of "dumb"-port serial
  1558. Xcard by just putting the right informations into the config
  1559. Xfiles.  Changes to the actual source file shouldn't be necessary.
  1560. X
  1561. XThis means that the sample config files that are part of the FAS
  1562. Xdistribution are there for convenience in case you have one of the
  1563. Xmore common serial cards.  If there are no sample files for your
  1564. Xcard you can make your own config files.  In this case the sample
  1565. Xfiles are still useful for you as you can look at them to learn
  1566. Xhow things are done for other cards.
  1567. X
  1568. XIf you know how your serial card works and the manual for it is
  1569. Xdetailed enough it won't be that difficult to make your own config
  1570. Xfiles.  Just try it!
  1571. X
  1572. X------------------------------------------------------------------------
  1573. X
  1574. XThe original asy replacement driver for Microport UNIX/386 (FAS' predecessor)
  1575. Xwas developed by
  1576. X
  1577. XJim Murray              INET            jjm%jjmhome@m2c.m2c.org
  1578. X2 Mohawk Circle         UUCP            harvard!m2c!jjmhome!jjm
  1579. XWestboro Mass 01581     
  1580. XUSA                                     voice (508) 366-2813
  1581. X
  1582. XCredits to him for releasing this great driver to the Usenet community.
  1583. XBut if you have problems with FAS please don't contact him because he
  1584. Xwasn't involved in the developement of FAS.
  1585. X
  1586. XFAS was developed by
  1587. X
  1588. XUwe Doering <fas@geminix.in-berlin.de>
  1589. XBillstedter Pfad 17 b
  1590. X13591 Berlin
  1591. XGermany
  1592. X
  1593. X  ^    ^    ^    ^    ^    ^    ^    ^    ^    ^
  1594. XSend your questions and bug reports to this address.
  1595. SHAR_EOF
  1596. true || echo 'restore of README failed'
  1597. rm -f _shar_wnt_.tmp
  1598. fi
  1599. # ============= RELEASENOTES ==============
  1600. if test -f 'RELEASENOTES' -a X"$1" != X"-c"; then
  1601.     echo 'x - skipping RELEASENOTES (File already exists)'
  1602.     rm -f _shar_wnt_.tmp
  1603. else
  1604. > _shar_wnt_.tmp
  1605. echo 'x - extracting RELEASENOTES (Text)'
  1606. sed 's/^X//' << 'SHAR_EOF' > 'RELEASENOTES' &&
  1607. Xrelease 1.1a Sat Nov 11, 1989
  1608. X
  1609. XThis is an unofficial release as I'm not the original author
  1610. Xof this async driver.
  1611. X
  1612. XUwe Doering <fas@geminix.in-berlin.de>
  1613. XBillstedter Pfad 17 b
  1614. X13591 Berlin
  1615. XGermany
  1616. X
  1617. XNew Features:
  1618. X
  1619. X    Added a third minor tty device number for every physical
  1620. X    port. See description preceding the asyopen function in
  1621. X    asy.c. Changed the behavior of ttyxx, too.
  1622. X
  1623. X    Added output hardware handshake support for DSR. Now you
  1624. X    can do handshake with CTS, DSR or both. Input hardware
  1625. X    handshake is on if you use at least one of the output
  1626. X    handshake signals.
  1627. X
  1628. X    More flexible support of additional interrupt registers
  1629. X    on mux boards. This is fully configurable now.
  1630. X
  1631. X    Added support for the CREAD flag. If not set, receiver
  1632. X    interrupts are still serviced, but the received characters
  1633. X    are simply thrown away. This is not as elegant as disabeling
  1634. X    the interrupts themselves, but with the already existing
  1635. X    driver it was the easiest way, and the most new-bugs-preventing,
  1636. X    too.
  1637. X
  1638. X    Added a lot of comments to the source so that the curious
  1639. X    user can understand why and how things are done.
  1640. X
  1641. X
  1642. XBug Fixes:
  1643. X
  1644. X    The hang-up-on-last-close flag (HUPCL) was ignored. DTR
  1645. X    was asserted regardless of this flag.
  1646. X
  1647. X    Made the detection of CTS and DCD more bullet-proof.
  1648. X    Especially because between a close and the next open of
  1649. X    a line, where interrupts are ignored, the software copys of
  1650. X    CTS and DCD must be set up propperly in the asyopen function
  1651. X    or the tty line would be blocked under certain circum-
  1652. X    stances. For similar reasons, there is also a setup in the
  1653. X    asyparam function.
  1654. X
  1655. X    Rewrote the input character processing function to work
  1656. X    according to the TERMIO(7) man page.
  1657. X
  1658. X    Changed the behavior of BREAK generation to let the
  1659. X    transmitter drain before TX is set to low.
  1660. X
  1661. X    Changed line hangup procedure so that the closing
  1662. X    process returns immediately and doesn't sleep during
  1663. X    the hangup delay/time. Instead, if an other process tries
  1664. X    to open the line while hangup is still in progress, this
  1665. X    process will sleep until hangup is competed.
  1666. X
  1667. X    With DOS Merge, on MicroPort V/386 3.0e the linker was
  1668. X    missing the function `init8250'. Reengineered this from
  1669. X    a disassembler listing of MicroPort's original driver and
  1670. X    modified it to work with the NS16550A 16-byte FIFO. This
  1671. X    funktion was added simply to be able to link the kernel.
  1672. X    DOS Merge's virtual COM ports are still unusable with this
  1673. X    release, though. To include this function, add a `-DMERGE'
  1674. X    to the CFLAGS line in your makefile.
  1675. X
  1676. X    Made a lot of other corrections and enhancements in both
  1677. X    speed and functionallity. As a result of all my effords
  1678. X    I think this driver is slightly faster, more versatile
  1679. X    and much more stable than the original release.
  1680. X
  1681. X------------------------------------------------------------
  1682. X    
  1683. Xrelease 1.1b Sat Nov 25, 1989
  1684. X
  1685. XNew Features:
  1686. X
  1687. X    Changed the minor device number scheme again.
  1688. X    There are now two main groups: The unblocked open
  1689. X    and the blocked open. Every group has four sub-modes
  1690. X    and an additional hardware handshake flag. All this
  1691. X    is coded in the higher four bits of the minor device
  1692. X    number. Because of this, the maximum of 32 ports was
  1693. X    reduced to 16 ports so that the port number fits into
  1694. X    the remaining lower four bits of the minor device number.
  1695. X    32 dumb ports in a single machine would have been overkill
  1696. X    anyway. For more details refer to the description in the
  1697. X    README file.
  1698. X
  1699. X------------------------------------------------------------
  1700. X    
  1701. Xrelease 2.00 Mon Nov 27, 1989
  1702. X
  1703. XAs this release differs so much from the original version I got,
  1704. XI now declare this as independant from the original author
  1705. XJim Murray. This allows me to introduce new release levels
  1706. Xwithout wondering whether they will collide with Jim's releases.
  1707. XOf course many credits to Jim for writing this software in the
  1708. Xfirst place. Without his driver as a base I never would have
  1709. Xbeen able to do such kernel driver development.
  1710. X
  1711. XBug Fixes:
  1712. X
  1713. X    If there were glitches on the hardware handshake lines
  1714. X    and the DCD line a getty on this port would sometimes
  1715. X    hang and become an immortal process. I think this was
  1716. X    because the output buffer wasn't flushed properly
  1717. X    on carrier loss. I hope I fixed this now. We'll see.
  1718. X
  1719. X------------------------------------------------------------
  1720. X    
  1721. Xrelease 2.01 Tue Nov 28, 1989
  1722. X
  1723. XDid some cleanup in the source code.
  1724. X
  1725. XI splitted the driver into two parts: The driver itself and
  1726. Xthe file `space.c'.
  1727. X`space.c' contains all data structures necessary to configure
  1728. Xthe driver and is compiled at kernel link time. Therefore, if you
  1729. Xchange your serial card configuration you simply change `space.c'
  1730. Xdirectly in the link kit directory and relink the kernel. No
  1731. Xdriver recompilation or installation is necessary for this.
  1732. XBut note that whenever you use `make install' your setup in
  1733. Xthe link kit directory is overwritten by the original `space.c'
  1734. Xfile. Therefore, you should copy your new `space.c' back to
  1735. Xthe source directory when you are finished with the configuration.
  1736. X
  1737. XRenamed the package to `FAS Final Async Solution'. The following
  1738. Xfiles have been renamed:
  1739. X    asy.c          -> fas.c
  1740. X    asy.h          -> fas.h
  1741. X    asy_conf-xxxxx -> space-xxxxx
  1742. X
  1743. XISC 386/ix is supported now. There are separate makefiles
  1744. Xfor uPort and ISC to cope with the differences in link kit
  1745. Xinstallation.
  1746. X
  1747. XBug Fixes:
  1748. X
  1749. X    `getty' still hung sometimes on a line with hardware
  1750. X    handshake. Tried to fix it this time.
  1751. X
  1752. X------------------------------------------------------------
  1753. X    
  1754. Xrelease 2.02 Thu Nov 30, 1989
  1755. X
  1756. XAbandoned the distinction between space-xxxxx files with
  1757. Xand without hardware flow control because this is selected
  1758. Xby the minor device number now.
  1759. X
  1760. XBug Fixes:
  1761. X
  1762. X    Set the high and low water marks for hardware input flow
  1763. X    control to higher values than software flow control. This
  1764. X    gives precedence to software flow control if both methods
  1765. X    are used. These marks are self-adjusting and don't need to
  1766. X    be changed if some flavor of UNIX has a different buffer
  1767. X    size than the standard 256 characters. Before this change
  1768. X    concurrent use of both flow controls could cause trouble
  1769. X    with some high-speed modems. This is fixed now.
  1770. X
  1771. X    A flush read or write buffer request now also clears the
  1772. X    receiver or transmitter FIFO, respectively. An ioctl
  1773. X    call with a TCSETA* command clears the FIFOs, too.
  1774. X
  1775. X------------------------------------------------------------
  1776. X    
  1777. Xrelease 2.03 Fri Dec 01, 1989
  1778. X
  1779. XWrote an installation guide. The driver should be quite
  1780. Xeasy to install now.
  1781. X
  1782. XAdded tty node configuration files for ISC.
  1783. X
  1784. XHardware input flow control is bound now to the level of the
  1785. Xreceiver ring buffer instead of the UNIX input buffer. This
  1786. Xhas the advantage that buffer size and trigger levels are
  1787. Xdefined in the driver and therefore can be varied as needed.
  1788. X
  1789. XNew Features:
  1790. X
  1791. X    Added a boot time status message that shows the init
  1792. X    state of each port. This tells you immediately what
  1793. X    ports are found and initted by the driver. Useful to
  1794. X    determine hardware configuration problems. Look at
  1795. X    the description in the README file. Thanks to
  1796. X    Kritt Gierlewsen (kritt@einoed.UUCP) for this proposal.
  1797. X
  1798. X------------------------------------------------------------
  1799. X    
  1800. Xrelease 2.04 Thu Dec 07, 1989
  1801. SHAR_EOF
  1802. true || echo 'restore of RELEASENOTES failed'
  1803. fi
  1804. echo 'End of  part 1'
  1805. echo 'File RELEASENOTES is continued in part 2'
  1806. echo 2 > _shar_seq_.tmp
  1807. exit 0
  1808.