home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume27 / fas-2.12.0 / part01 next >
Text File  |  1994-01-25  |  64KB  |  1,815 lines

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