home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-10-12 | 62.2 KB | 1,808 lines |
- Newsgroups: comp.sources.unix
- From: fas@geminix.in-berlin.de (FAS Support Account)
- Subject: v27i067: FAS-2.11.0 - asynch serial driver for System V, Part01/08
- Message-id: <1.750471074.20539@gw.home.vix.com>
- Sender: unix-sources-moderator@gw.home.vix.com
- Approved: vixie@gw.home.vix.com
-
- Submitted-By: fas@geminix.in-berlin.de (FAS Support Account)
- Posting-Number: Volume 27, Issue 67
- Archive-Name: fas-2.11.0/part01
-
- here is the FAS 2.11 async serial driver for 286/386 UNIX/Xenix systems.
-
- Since FAS 2.10 came out over a year ago, I have continued to optimize
- FAS for both speed and configuration flexibility. Several bugs were fixed
- as well. For the many changes I've made please refer to the RELEASENOTES
- file. Note especially that the configuration mechanism for 57600 and
- 115200 bps has changed!
-
- Unfortunately, I must again disappoint those of you who were waiting for
- SVR4 STREAMS support, although I didn't make any promises. FAS is still
- a CLIST driver. Apart from the bugs SVR4 still has, the SVR4 market is
- confusing at the moment. I wouldn't know from what vendor to buy if I
- were forced to purchase a SVR4 UNIX at this time. So I still use my good
- old SVR3.2. Therefore, no STREAMS. Sorry.
-
- ATTENTION SCO _UNIX_ USERS!
- All previous FAS releases have an incompatibility with SCO _UNIX_ that
- can cause all sorts of weired malfunctions and even frequent system
- crashes. Unfortunately, I didn't find out the cause for these problems
- earlier (I don't have access to SCO UNIX). The bug is fixed now. So I
- urge all SCO _UNIX_ users to upgrade to FAS 2.11 as soon as possible!
-
- For those who don't know FAS, yet, here is an excerpt from the fas(7)
- man page:
-
- FAS, which is an acronym for Final Async Solution, is a
- "dumb"-port character device driver for 286/386 based UNIX
- systems that adds several features that are often not pro-
- vided by vendors drivers.
-
- It supports
-
- - the NS16450 and um82450 UART chips.
- - the NS16550A and i82510 UART chips in FIFO mode.
- - up to 115200 bps with NS16550A.
- - built-in modem line sharing for dialin and dialout.
- - modem control on both dialin and dialout devices.
- - full and half duplex hardware flow control.
- - concurrent hardware and software (XON/XOFF) flow control.
- - shared interrupts.
- - multiplexed UART registers (HUB-6 card etc.).
- - any mix of up to 16 UARTs.
- - any I/O address, any IRQ.
- - VP/ix, the ISC DOS emulator.
-
- FAS was successfully tested under the following operating
- systems:
-
- ISC UNIX 2.0.2 and later
- SCO UNIX 3.2.2 and later
- SCO XENIX 286 2.3.2 and later
- SCO XENIX 386 2.3.2 and later
- Microport SVR3.0
- ESIX SVR3.2 Rev. C & D
- Bell Tech/Intel SVR3.2
- AT&T SVR3.2 V 2.1
- SVR4.0 (with tty compatibility drivers)
-
- Enjoy!
-
- Uwe Doering
-
- #!/bin/sh
- # This is a shell archive (produced by shar 3.49)
- # To extract the files from this archive, save it to a file, remove
- # everything above the "!/bin/sh" line above, and type "sh file_name".
- #
- # made 10/12/1993 14:34 UTC by fas@geminix.in-berlin.de
- # Source directory /u/src/private/fas/fas211/dist
- #
- # existing files will NOT be overwritten unless -c is specified
- # This format requires very little intelligence at unshar time.
- # "if test", "cat", "rm", "echo", "true", and "sed" may be needed.
- #
- # This is part 1 of a multipart archive
- # do not concatenate these parts, unpack them in order with /bin/sh
- #
- # This shar contains:
- # length mode name
- # ------ ---------- ------------------------------------------
- # 1573 -rw-r--r-- COPYING
- # 68 -rw-r--r-- DrivDesc
- # 20816 -rw-r--r-- INSTALLATION
- # 1895 -rw-r--r-- Makefile.ATT
- # 1906 -rw-r--r-- Makefile.BELL
- # 1895 -rw-r--r-- Makefile.ESIX
- # 1896 -rw-r--r-- Makefile.ISC2
- # 2023 -rw-r--r-- Makefile.ISC3
- # 1828 -rw-r--r-- Makefile.SCO
- # 1824 -rw-r--r-- Makefile.SVR40
- # 837 -rw-r--r-- Makefile.X286
- # 753 -rw-r--r-- Makefile.X386
- # 1222 -rw-r--r-- Makefile.uPort
- # 26 -rw-r--r-- PATCHLEVEL
- # 5212 -rw-r--r-- README
- # 46451 -rw-r--r-- RELEASENOTES
- # 255 -rw-r--r-- config-ast4c12
- # 257 -rw-r--r-- config-ast8c12
- # 255 -rw-r--r-- config-c123
- # 255 -rw-r--r-- config-gen8c12
- # 255 -rw-r--r-- config-hub6c12
- # 256 -rw-r--r-- config-use4c12
- # 54577 -rw-r--r-- fas.7
- # 68446 -rw-r--r-- fas.7.cat
- # 103106 -rw-r--r-- fas.c
- # 23728 -rw-r--r-- fas.h
- # 240 -rw-r--r-- i_fas-ast4c12
- # 400 -rw-r--r-- i_fas-ast8c12
- # 120 -rw-r--r-- i_fas-c123
- # 400 -rw-r--r-- i_fas-gen8c12
- # 320 -rw-r--r-- i_fas-hub6c12
- # 240 -rw-r--r-- i_fas-use4c12
- # 33 -rw-r--r-- m_fas
- # 204 -rw-r--r-- n_fas-ast4c12
- # 340 -rw-r--r-- n_fas-ast8c12
- # 102 -rw-r--r-- n_fas-c123
- # 340 -rw-r--r-- n_fas-gen8c12
- # 272 -rw-r--r-- n_fas-hub6c12
- # 204 -rw-r--r-- n_fas-use4c12
- # 4623 -rw-r--r-- optim_att.awk
- # 589 -rwxr-xr-x os_dep_update
- # 78 -rw-r--r-- s_fas-ast4c12
- # 104 -rw-r--r-- s_fas-ast8c12
- # 78 -rw-r--r-- s_fas-c123
- # 78 -rw-r--r-- s_fas-gen8c12
- # 78 -rw-r--r-- s_fas-hub6c12
- # 79 -rw-r--r-- s_fas-use4c12
- # 10354 -rw-r--r-- space-ast4c12
- # 10856 -rw-r--r-- space-ast8c12
- # 9996 -rw-r--r-- space-c123
- # 10826 -rw-r--r-- space-gen8c12
- # 10535 -rw-r--r-- space-hub6c12
- # 10357 -rw-r--r-- space-use4c12
- # 174 -rwxr-xr-x update_desc
- #
- if test -r _shar_seq_.tmp; then
- echo 'Must unpack archives in sequence!'
- echo Please unpack part `cat _shar_seq_.tmp` next
- exit 1
- fi
- # ============= COPYING ==============
- if test -f 'COPYING' -a X"$1" != X"-c"; then
- echo 'x - skipping COPYING (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting COPYING (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'COPYING' &&
- XFAS COPYRIGHT
- X-------------
- X
- XCopyright (C) 1990-1993 Uwe Doering
- X
- XAlthough FAS is frequently refered to as a public domain driver,
- XFAS was never released to the public domain (this is true for
- Xall releases of FAS). FAS is freeware, and the author has the
- Xfull copyright.
- X
- XHere are the conditions under which you may copy and distribute
- XFAS. The goal of these terms is to spread FAS as wide as possible
- Xand, on the other hand, to prevent anyone from making money out
- Xof it, and to prevent any restrictions of the availability of
- XFAS.
- X
- X1. You can freely copy FAS, and you may give copies of FAS to
- X everyone.
- X2. FAS has to be distributed as the complete package released
- X by its author.
- X3. Vendors may bundle FAS with their products as long as they
- X a) tell their customers (somewhere in the written documentation)
- X that FAS is freeware, wasn't developed by the vendor, and the
- X vendor doesn't have the copyright for FAS.
- X b) provide the complete original package in addition to their
- X customized version. Customization means modification of
- X the configuration files. No changes to the actual source
- X file (fas.c) are allowed.
- X c) tell their customers (somewhere in the written documentation)
- X where the original package is located on the distribution
- X media.
- X4. Changes to the sources are allowed
- X a) for private use.
- X b) to develop another freeware package with similar copyright
- X restrictions. This new package has to have a different name.
- X5. The author isn't liable for any damage or loss of data caused
- X by FAS.
- SHAR_EOF
- true || echo 'restore of COPYING failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= DrivDesc ==============
- if test -f 'DrivDesc' -a X"$1" != X"-c"; then
- echo 'x - skipping DrivDesc (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting DrivDesc (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'DrivDesc' &&
- XDRIVER=fas
- XCLASS=io
- XHARDWARE=TRUE
- XDESCRIPTION=FAS Serial I/O Driver
- SHAR_EOF
- true || echo 'restore of DrivDesc failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= INSTALLATION ==============
- if test -f 'INSTALLATION' -a X"$1" != X"-c"; then
- echo 'x - skipping INSTALLATION (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting INSTALLATION (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'INSTALLATION' &&
- XInstallation guide for the FAS driver
- X-------------------------------------
- X
- XTo install this driver you need the manual of your serial card,
- Xyour system manuals and a certain knowledge about what actually
- Xa serial driver is.
- X
- XNote that the sample config files for multiport cards all have COM1
- Xand COM2 additionally enabled. If you don't have COM1 and/or COM2
- Xand the IRQs associated with them are needed for another device driver
- Xall you have to do is to disable the respective interrupt so that the
- Xkernel build program stops complaining. How to do that is OS dependent
- Xand is described below. Apart from that, you don't need to change any
- Xother config file in case of an interrupt conflict. If COM1 and/or COM2
- Xaren't present in your system FAS automatically disables them.
- X
- XThere is an fas(7) man page that contains most of the informations
- Xabout FAS. File `fas.7' is the man page in NROFF source format while
- X`fas.7.cat' is the formatted version. As there is no automatic
- Xinstallation procedure in the makefiles you need to install the man
- Xpage by hand. This is not only because the layout of the man page
- Xdirectory tree differs between the various platforms but also because
- Xthis layout is frequently modified when there is an improved man program
- Xinstalled. So just copy one of the two files into the proper directory
- Xand, if necessary, notify your man porgram about the new man page.
- X
- XYou have to be user root to install the driver!
- X
- X
- XCOMPILATION
- X===========
- X
- XFirst of all you should copy the makefile that matches your system
- Xto the file `Makefile'. Make sure that the makefile contains the
- Xproper compiler switches, paths and file names for your system.
- XYou may also look at `fas.c' and `fas.h' to find out what defines
- Xare possible for conditional compilation. In particular, you should
- Xtake a closer look at the following OS dependent symbolic constants
- Xin `fas.h':
- X
- XNEED_PUT_GETCHAR
- X If you don't link in the original serial driver you need to
- X uncomment `NEED_PUT_GETCHAR' if the kernel linker complains
- X about the undefined symbols `(asy|sio)putchar' and
- X `(asy|sio)getchar'.
- XHAVE_VPIX
- X If your OS doesn't have VP/ix support or FAS doesn't compile
- X properly with VP/ix support you need to comment `HAVE_VPIX'
- X out to disable it.
- XTUNABLE_TTYHOG
- X Some UNIX flavors have a tunable `ttyhog' kernel variable
- X that is used by FAS. If the kernel linker complains about
- X this symbol being undefined you have to comment `TUNABLE_TTYHOG'
- X out so that FAS uses the `TTYHOG' symbolic constant (from
- X `sys/tty.h') instead.
- X
- XAfter that you choose one of the space-* configuration files
- Xthat matches your serial card and copy this to `space.c'. If you
- Xdon't find a matching space file you should copy the one that
- Xcomes closest to your card to `space.c'.
- X
- XIn any case you should check the entries in that file against your
- Xcard's manual and jumper settings. The space files contain explanations
- Xabout what data you have to enter.
- X
- XIf your `space.c' is filled in properly you simply type `make' to
- Xcompile the driver. If you don't get error messages you may begin
- Xwith the actual installation. Otherwise you have to find the cause of
- Xthe problem. Some error reasons may be missing include files, macros
- Xthat are defined in different include files or missing at all, or you
- Xdon't use the standard UNIX [34].X/386 AT&T C compiler. Don't use any
- Xother compiler because this may break things. An exception from this
- Xrule is the GNU C compiler which can also be used. But note that only
- Xnewer versions are capable of producing object files that are linkable
- Xwith the rest of the kernel. Gcc 1.40 or newer should be fine, though.
- XHowever, don't overestimate the performance gain of a gcc compiled FAS
- Xdriver. At least with gcc 1.42, gcc produces rather poor code for FAS,
- Xespecially when volatile inline assembler instructions are used (this
- Xfeature turns off some optimization stages).
- X
- XFor SCO Xenix you have to use the Microsoft C compiler because Xenix
- Xdoesn't have the AT&T compiler. You will need the ANSI C version of
- Xthe Microsoft compiler because the preprocessor of the original
- XXenix distribution doesn't understand `#if defined(...)' statements
- Xin 386 mode.
- X
- X
- XINSTALLATION
- X============
- X
- XIf you want to have both the original asy (or sio) and the new FAS
- Xdriver in the kernel the only restriction is that ports and interrupt
- Xvectors can't be shared between the two drivers. Each driver controls
- Xits own separate set of ports and IRQs.
- X
- XuPort: Copy one of the config-* files to `config'. Check out
- X whether the interrupt vectors in this file reflect the
- X jumper settings on your serial card. Note that an IRQ2 on
- X your card is an interrupt vector of 9. All other IRQ numbers
- X correspond to the vector number, though. If you want to
- X disable an interrupt vector just remove the respective number
- X from the `intvec' entry.
- X
- X Next you have to tell the config program to include the new
- X driver at kernel link time. This is done by a line in the file
- X /etc/atconf/systems/system.std. Look for the line containing
- X `asy' followed by an asterisk (`*') and a comment. Create a
- X similar line where `asy' is substituted with `fas'. Add a
- X proper comment. If you don't want to use any ports under the
- X DOS emulator you should insert an asterisk at the beginning
- X of the line that contains the word `asy'. This excludes the
- X asy driver from the kernel. But if you want to have it in the
- X kernel you have to configure it to only use the ports you
- X need under DOS. The remaining ports should be controlled by
- X the FAS driver.
- X
- X Now type `make install' and after that you are ready to link
- X a new kernel. Refer to your system manuals on how to do that.
- X
- X Before you reboot the new kernel make sure that you create
- X the proper tty device nodes in /dev. But first you should
- X remove all device nodes belonging to the original asy driver
- X that you don't need any more.
- X
- X Now create your own tty device nodes that fit your needs.
- X The default device name prefix for the FAS driver is `ttyF'.
- X That is, ttyF00, ttyF01 ... and ttyFM00, ttyFM01 ...
- X You may choose another prefix, but note that some utilities
- X like uustat depend on tty-devices beginning with `tty'!
- X
- X The default value for the major device number is 4, and
- X sane values for the minor device numbers are 80 + device #
- X for the dialout node and 208 + device # for the dialin (getty)
- X node. Device # counts from 0 and reflects the actual port number.
- X Refer to the fas(7) man page for a description of the possible
- X minor device numbers.
- X
- X Remember to change the inittab file to the new device names.
- X Other files that contain tty-names for some reason should be
- X updated, too (ttytype, Devices etc.).
- X
- X After you have booted the new kernel, provided your configuration
- X was correct, you should be able to use the serial devices. You
- X may also want to look at the `CABLING' and `MODEM SETUP' sections
- X in the fas(7) man page.
- X
- X
- XISC: Copy one of the s_fas-* files to `s_fas'. Make sure that
- X you have a separate line in it for each block of contiguous
- X port addresses assigned to the same interrupt vector (check
- X the jumper settings on your serial card). Each line contains
- X the number of ports bound to that interrupt, the start address
- X of the first (lowest or only) and the end address of the last
- X (highest or only) port on this interrupt line and other data.
- X Refer to your ISC manuals if you need to change this file. Note
- X that an IRQ2 on your card is an interrupt vector of 9. All other
- X IRQ numbers correspond to the vector number, though.
- X
- X If you want to change the interrupt vector assignment of the
- X various ports/cards you can do so by changing the 6th field
- X of the respective line. But make sure that each line has a
- X different value in the 6th field when you're finished with
- X the changes. If you want to disable an interrupt vector just
- X set the second field of the line to `N'. A `Y', on the other
- X hand, enables the vector. Due to a bug in some kernel build
- X programs you need to have all enabled lines (with `Y') in
- X front of the disabled lines (with `N') because the build
- X program stops scanning the file when it finds the first line
- X with an `N' in the second field. So just move all enabled lines
- X to the beginning of the file.
- X
- X Then you copy one of the n_fas-* files to `n_fas'. This
- X file contains data needed to automatically create tty device
- X nodes at installation time. Things you may want to change are
- X the tty node names and the minor device numbers (last field) for
- X these nodes. Make sure you have a node for every port on your
- X serial card in this file.
- X
- X Sane values for the minor device numbers are 80 + device #
- X for the dialout node and 208 + device # for the dialin (getty)
- X node. Device # counts from 0 and reflects the actual port number.
- X Refer to the fas(7) man page for a description of the possible
- X minor device numbers.
- X
- X Now copy one of the i_fas-* files to `i_fas'. This file
- X contains the getty lines for the inittab file which is rebuilt
- X every time a new kernel is installed. Make sure that you use the
- X same device names here as in the file `n_fas'. If there is a
- X file /etc/conf/init.d/fas already installed, note that `i_fas'
- X won't be copied over it so that customized lines in
- X /etc/conf/init.d/fas are preserved.
- X
- X Next you have to modify the file /etc/conf/sdevice.d/asy in a way
- X that only those devices are enabled that you want to be controlled
- X by the original `asy' driver. This is done with an `N' in the second
- X column of the corresponding line to disable the port and a `Y' to
- X enable it. But usually you don't need the original driver any more.
- X Therefore, all lines in /etc/conf/sdevice.d/asy should be set to `N'.
- X
- X To tell the kernel config program how to link in the FAS driver
- X you have to add the following line to the file /etc/conf/cf.d/mdevice:
- X
- X fas Iocrwi iHct fas 0 3 1 16 -1
- X
- X The 6th field contains the major device number of the driver. You
- X may change this if it collides with another driver. This is normal
- X as I can't know in advance what major device numbers all the UNIX
- X vendors will use for their drivers. You can, however, use the
- X major device number of the original asy driver if you completely
- X suspend the asy driver (see above), that is, drivers can have the
- X same major device number if not more than one of them is linked
- X into the kernel at the same time.
- X
- X The sample line above is contained in the file `m_fas' so you
- X don't need to type it in. All you have to do is to edit the file
- X (the 6th field if you want to change the major device number) and
- X to then append it once to /etc/conf/cf.d/mdevice.
- X
- X All this is in the ISC manuals. Read them carefully.
- X
- X Now type `make install' and after that you are ready to link
- X a new kernel. Refer to your system manuals on how to do that.
- X
- X You may have to change files that contain tty names to the new
- X device names (ttytype, Devices etc.). Take the names from `n_fas'.
- X
- X After you have booted the new kernel, provided your configuration
- X was correct, you should be able to use the serial devices. You
- X may also want to look at the `CABLING' and `MODEM SETUP' sections
- X in the fas(7) man page.
- X
- X
- XESIX: Follow the description for ISC UNIX.
- X
- X
- XBELL: Follow the description for ISC UNIX.
- X
- X
- XATT: Follow the description for ISC UNIX.
- X
- X
- XSCO: Do the same steps as for ISC UNIX. Here are some additional
- X hints:
- X
- X The original SCO serial driver is called `sio' instead of `asy'.
- X You need to disable it because it won't coexist peacefully with
- X FAS.
- X
- X According to reports from some beta test sites it isn't enough
- X to disable the `sio' driver by setting all lines in
- X `/etc/conf/sdevice.d/sio' to `N'. Additionally, you have to
- X delete the `sio' entry in `/etc/conf/cf.d/mdevice'. You may also
- X want to remove the file `/etc/conf/init.d/sio' in order to get
- X rid of the lines in `/etc/inittab' that refer to `sio' devices.
- X
- X For the device nodes you should use SCO's naming conventions because
- X there are some utilities that expect this tty name format. You need
- X to change the names in `i_fas' and `n_fas'. To prevent a collision
- X with the `sio' device node names you need to remove the file
- X `/etc/conf/node.d/sio'.
- X
- X In file `fas.h' you may need to uncomment the `NEED_PUT_GETCHAR'
- X define before you compile the sources.
- X
- X You have to compile FAS with the AT&T standard C compiler (rcc,
- X don't use the Microsoft compiler !) and with the `-DSCO'
- X compiler command line flag. The makefile for SCO takes
- X care of this, though.
- X
- X After you made all the changes you need to run the `configure'
- X utility to get all the dependencies right. To convince the
- X configure program that it has work to do you should change some
- X parameter and put in the original value afterwards. Be prepared
- X that there may be more tinkering needed to disable `sio' completely
- X because there seem to be SCO UNIX releases where the kernel config
- X and build programs are broken.
- X
- X By default, FAS' boot message doesn't contain informations about
- X the interrupt vector assignment. This is because FAS doesn't have,
- X and doesn't need to have any knowledge about interrupt vectors.
- X Only the generic kernel interrupt dispatcher knows about the
- X assignment. However, if you can't live without the interrupt infos
- X all you need to do to have them displayed is to enter the respective
- X numbers into the fas_vec[] array in `space.c'. But make sure that
- X these values correspond with the entries in `s_fas'.
- X
- X At least under some SCO UNIX versions there is a bug/feature in
- X getty. It writes the `login:' message to stdout and then flushes
- X the receiver buffers. This means that a fast automatic login
- X attempt (`uucico') may fail because it sends the login name
- X before getty has a chance to do the buffer flush. So the login
- X name is lost and the login fails.
- X
- X There are two workarouds: Either use a different getty program
- X or delay the sending of the login name for about two seconds
- X (to be on the safe side). The latter solution implies that you
- X have to tell every dialup user and poll site about the problem,
- X as the fix has to be implemented on the remote side.
- X
- X
- XXENIX: The installation procedure for Xenix is completely different
- X from the other UNIX flavors.
- X
- X In file `fas.h' you may need to uncomment the `NEED_PUT_GETCHAR'
- X define before you compile the sources. After compilation
- X the files `fas.o' and `space.o' have to be copied to the
- X directory `/usr/sys/io/fas'. Typing `make install' takes care
- X of this.
- X
- X As the `sio' driver won't coexist peacefully with FAS you have
- X to remove the `sio' line from the file `/usr/sys/conf/xenixconf'.
- X Create a new line for `fas' in this file.
- X
- X After this you have to modify the file `/usr/sys/conf/master'.
- X There is a line in it that looks like this:
- X
- X sio 4 0577 104 sio 0 0 5 1 7 3 4 33 34
- X
- X You have to comment this out with an asterisk (`*') at the beginning
- X of the line. Directly after this line you need to insert a new line
- X with the following contents (for two ports, one on IRQ3 and one on
- X IRQ4):
- X
- X fas 2 0537 104 fas 0 0 5 1 7 3 4 0 0
- X
- X The second column indicates how many interrupt vectors are used by
- X this driver (two vectors in this example). The last four columns
- X contain the corresponding IRQ numbers (in octal !). Unused vectors
- X are set to zero.
- X
- X Here is an example for three ports (on IRQ3, IRQ4 and IRQ5):
- X
- X fas 3 0537 104 fas 0 0 5 1 7 3 4 5 0
- X
- X And this is for four ports (IRQ3, IRQ4, IRQ5 and IRQ2/9):
- X
- X fas 4 0537 104 fas 0 0 5 1 7 3 4 5 31
- X
- X Note that the AT bus interrupts IRQ8 to IRQ15 are mapped to vector
- X 30 (octal) to 37 (octal). Therefore, IRQ9 (IRQ2 on the serial card) is
- X vector 31 (octal) in this example.
- X
- X Take care that you don't use interrupt vectors that are already
- X assigned to other drivers.
- X
- X For further details refer to the master(F) man page.
- X
- X By default, FAS' boot message doesn't contain informations about
- X the interrupt vector assignment. This is because FAS doesn't have,
- X and doesn't need to have any knowledge about interrupt vectors.
- X Only the generic kernel interrupt dispatcher knows about the
- X assignment. However, if you can't live without the interrupt infos
- X all you need to do to have them displayed is to enter the respective
- X numbers into the fas_vec[] array in `space.c'. But make sure that
- X these values correspond with the entries in `/usr/sys/conf/master'.
- X
- X Now you have to insert the following line in `/usr/sys/conf/link_xenix'
- X (before the lines with the system libs):
- X
- X ../io/fas/fas.o ../io/fas/space.o \
- X
- X After you made all the changes you might need to run the
- X `/usr/sys/conf/configure' utility to get all the dependencies right.
- X To convince the configure program that it has work to do you should
- X change some parameter and put in the original value afterwards.
- X
- X Go to the directory `/usr/sys/conf' and link the new kernel with
- X the `make' command. If all went well, copy the kernel to the
- X root directory.
- X
- X You need to create the FAS device nodes manually in the directory
- X `/dev' (with the command `mknod'). You should use SCO's naming
- X conventions because there are some utilities that expect this
- X tty name format. Here is an example how to make the device nodes:
- X
- X mknod tty1a c 5 80; mknod tty1A c 5 208
- X mknod tty1b c 5 81; mknod tty1B c 5 209
- X
- X Major device number is always `5' (that of the suspended `sio'
- X driver), the minor device numbers are calculated as described in
- X the fas(7) man page. For full duplex hardware flow control
- X tty1[a-z] gets the minor device number 80 + device# (device#
- X counted from 0) and tty1[A-Z] gets 208 + device#.
- X
- X The last thing you have to do before you reboot your system is
- X to check whether you need to make changes to the files that contain
- X the device names for your original `sio' driver (for programs like
- X `getty', `cu' and `uucico').
- X
- X After reboot you should remove all device nodes that belong
- X to the now suspended `sio' driver. You may want to look at the
- X `CABLING' and `MODEM SETUP' sections in the fas(7) man page.
- X
- X
- XSVR4.0: Do the same steps as for ISC UNIX. Here are some additional
- X hints:
- X
- X Currently, FAS is _not_ a STREAMS driver. Therefore, you need
- X the tty compatibility drivers in the kernel. They are named
- X `ttcompat', `clist', and maybe there are even more drivers
- X needed. These compatibility drivers don't provide some of the
- X features a genuine STREAMS driver would have. So FAS under SVR4.0
- X can't be used for SLIP, for instance. Please look into your SVR4.0
- X manuals for more informations.
- X
- X Neither VP/ix nor DosMerge are supported by FAS under this
- X operating system. You should comment `HAVE_VPIX' out in `fas.h'.
- X This will change when FAS is converted into a STREAMS driver.
- X
- X
- XOther flavors of UNIX
- X=====================
- X
- XCheck out if one of the above installation schemes is similar to the
- Xone you need for your system. Make the appropriate changes and try
- Xout if it works. If your system is entirely different you have to
- Xfind out from your manuals how to install device drivers. But if
- Xyou use a UNIX SYSV/386 [34].X you should get it to work eventually.
- X
- XGood luck.
- SHAR_EOF
- true || echo 'restore of INSTALLATION failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.ATT ==============
- if test -f 'Makefile.ATT' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.ATT (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.ATT (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.ATT' &&
- X# Makefile for AT&T SVR3.2
- X
- XSHELL = /bin/sh
- XINCLSYS = /usr/include/sys
- XLKDRVRDIR = /etc/conf/pack.d/fas
- XLKSCONFDIR = /etc/conf/sdevice.d
- XLKNCONFDIR = /etc/conf/node.d
- XLKICONFDIR = /etc/conf/init.d
- XLKKCONFDIR = /etc/conf/kconfig.d
- XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
- XDRVRNAME = Driver.o
- XCONFNAME = fas
- X
- XCC = cc
- XCFLAGS = -O -DINKERNEL $(LKDEFINES)
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS =
- X
- Xall: fas.o
- X
- Xfas.o: fas.s
- X# Comment out the next two lines if you're using GCC
- X awk -f optim_att.awk fas.s > fas.tmp
- X mv -f fas.tmp fas.s
- X $(CC) -c fas.s
- X
- Xfas.s: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -S fas.c
- X
- Xinstall: all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
- X fas.h
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
- X chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
- X cp space.c $(LKDRVRDIR)/space.c
- X chmod 644 $(LKDRVRDIR)/space.c
- X cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKSCONFDIR)/$(CONFNAME)
- X cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKNCONFDIR)/$(CONFNAME)
- X test -f $(LKICONFDIR)/$(CONFNAME) || \
- X cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
- X chmod 644 $(LKICONFDIR)/$(CONFNAME)
- X cp fas.h $(INCLSYS)/fas.h
- X chmod 444 $(INCLSYS)/fas.h
- X $(SHELL) update_desc $(LKKCONFDIR)/description
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- Xs_$(CONFNAME):
- X @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
- X @false
- X
- Xn_$(CONFNAME):
- X @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
- X @false
- X
- Xi_$(CONFNAME):
- X @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
- X @false
- X
- Xfas.h:
- X @echo "The file \`fas.h' is missing for some reason"
- X @false
- X
- Xclean:
- X rm -f fas.s fas.tmp fas.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.ATT failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.BELL ==============
- if test -f 'Makefile.BELL' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.BELL (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.BELL (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.BELL' &&
- X# Makefile for Bell Tech/Intel SVR3.2
- X
- XSHELL = /bin/sh
- XINCLSYS = /usr/include/sys
- XLKDRVRDIR = /etc/conf/pack.d/fas
- XLKSCONFDIR = /etc/conf/sdevice.d
- XLKNCONFDIR = /etc/conf/node.d
- XLKICONFDIR = /etc/conf/init.d
- XLKKCONFDIR = /etc/conf/kconfig.d
- XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
- XDRVRNAME = Driver.o
- XCONFNAME = fas
- X
- XCC = cc
- XCFLAGS = -O -DINKERNEL $(LKDEFINES)
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS =
- X
- Xall: fas.o
- X
- Xfas.o: fas.s
- X# Comment out the next two lines if you're using GCC
- X awk -f optim_att.awk fas.s > fas.tmp
- X mv -f fas.tmp fas.s
- X $(CC) -c fas.s
- X
- Xfas.s: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -S fas.c
- X
- Xinstall: all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
- X fas.h
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
- X chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
- X cp space.c $(LKDRVRDIR)/space.c
- X chmod 644 $(LKDRVRDIR)/space.c
- X cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKSCONFDIR)/$(CONFNAME)
- X cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKNCONFDIR)/$(CONFNAME)
- X test -f $(LKICONFDIR)/$(CONFNAME) || \
- X cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
- X chmod 644 $(LKICONFDIR)/$(CONFNAME)
- X cp fas.h $(INCLSYS)/fas.h
- X chmod 444 $(INCLSYS)/fas.h
- X $(SHELL) update_desc $(LKKCONFDIR)/description
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- Xs_$(CONFNAME):
- X @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
- X @false
- X
- Xn_$(CONFNAME):
- X @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
- X @false
- X
- Xi_$(CONFNAME):
- X @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
- X @false
- X
- Xfas.h:
- X @echo "The file \`fas.h' is missing for some reason"
- X @false
- X
- Xclean:
- X rm -f fas.s fas.tmp fas.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.BELL failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.ESIX ==============
- if test -f 'Makefile.ESIX' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.ESIX (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.ESIX (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.ESIX' &&
- X# Makefile for ESIX SVR3.2
- X
- XSHELL = /bin/sh
- XINCLSYS = /usr/include/sys
- XLKDRVRDIR = /etc/conf/pack.d/fas
- XLKSCONFDIR = /etc/conf/sdevice.d
- XLKNCONFDIR = /etc/conf/node.d
- XLKICONFDIR = /etc/conf/init.d
- XLKKCONFDIR = /etc/conf/kconfig.d
- XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
- XDRVRNAME = Driver.o
- XCONFNAME = fas
- X
- XCC = cc
- XCFLAGS = -O -DINKERNEL $(LKDEFINES)
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS =
- X
- Xall: fas.o
- X
- Xfas.o: fas.s
- X# Comment out the next two lines if you're using GCC
- X awk -f optim_att.awk fas.s > fas.tmp
- X mv -f fas.tmp fas.s
- X $(CC) -c fas.s
- X
- Xfas.s: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -S fas.c
- X
- Xinstall: all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
- X fas.h
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
- X chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
- X cp space.c $(LKDRVRDIR)/space.c
- X chmod 644 $(LKDRVRDIR)/space.c
- X cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKSCONFDIR)/$(CONFNAME)
- X cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKNCONFDIR)/$(CONFNAME)
- X test -f $(LKICONFDIR)/$(CONFNAME) || \
- X cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
- X chmod 644 $(LKICONFDIR)/$(CONFNAME)
- X cp fas.h $(INCLSYS)/fas.h
- X chmod 444 $(INCLSYS)/fas.h
- X $(SHELL) update_desc $(LKKCONFDIR)/description
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- Xs_$(CONFNAME):
- X @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
- X @false
- X
- Xn_$(CONFNAME):
- X @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
- X @false
- X
- Xi_$(CONFNAME):
- X @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
- X @false
- X
- Xfas.h:
- X @echo "The file \`fas.h' is missing for some reason"
- X @false
- X
- Xclean:
- X rm -f fas.s fas.tmp fas.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.ESIX failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.ISC2 ==============
- if test -f 'Makefile.ISC2' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.ISC2 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.ISC2 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.ISC2' &&
- X# Makefile for ISC UNIX 2.x
- X
- XSHELL = /bin/sh
- XINCLSYS = /usr/include/sys
- XLKDRVRDIR = /etc/conf/pack.d/fas
- XLKSCONFDIR = /etc/conf/sdevice.d
- XLKNCONFDIR = /etc/conf/node.d
- XLKICONFDIR = /etc/conf/init.d
- XLKKCONFDIR = /etc/conf/kconfig.d
- XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
- XDRVRNAME = Driver.o
- XCONFNAME = fas
- X
- XCC = cc
- XCFLAGS = -O -DINKERNEL $(LKDEFINES)
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS =
- X
- Xall: fas.o
- X
- Xfas.o: fas.s
- X# Comment out the next two lines if you're using GCC
- X awk -f optim_att.awk fas.s > fas.tmp
- X mv -f fas.tmp fas.s
- X $(CC) -c fas.s
- X
- Xfas.s: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -S fas.c
- X
- Xinstall: all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
- X fas.h
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
- X chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
- X cp space.c $(LKDRVRDIR)/space.c
- X chmod 644 $(LKDRVRDIR)/space.c
- X cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKSCONFDIR)/$(CONFNAME)
- X cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKNCONFDIR)/$(CONFNAME)
- X test -f $(LKICONFDIR)/$(CONFNAME) || \
- X cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
- X chmod 644 $(LKICONFDIR)/$(CONFNAME)
- X cp fas.h $(INCLSYS)/fas.h
- X chmod 444 $(INCLSYS)/fas.h
- X $(SHELL) update_desc $(LKKCONFDIR)/description
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- Xs_$(CONFNAME):
- X @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
- X @false
- X
- Xn_$(CONFNAME):
- X @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
- X @false
- X
- Xi_$(CONFNAME):
- X @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
- X @false
- X
- Xfas.h:
- X @echo "The file \`fas.h' is missing for some reason"
- X @false
- X
- Xclean:
- X rm -f fas.s fas.tmp fas.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.ISC2 failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.ISC3 ==============
- if test -f 'Makefile.ISC3' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.ISC3 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.ISC3 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.ISC3' &&
- X# Makefile for ISC UNIX 3.0 and later
- X
- XSHELL = /bin/sh
- XINCLSYS = /usr/include/sys
- XLKDRVRDIR = /etc/conf/pack.d/fas
- XLKSCONFDIR = /etc/conf/sdevice.d
- XLKNCONFDIR = /etc/conf/node.d
- XLKICONFDIR = /etc/conf/init.d
- XLKKCONFDIR = /etc/conf/kconfig.d
- XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
- XDRVRNAME = Driver.o
- XCONFNAME = fas
- X
- XCC = cc
- XCFLAGS = -O -DINKERNEL $(LKDEFINES)
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS = LOW_INT_LAT
- X
- Xall: fas.o
- X
- Xfas.o: fas.s
- X# Comment out the next two lines if you're using GCC
- X awk -f optim_att.awk fas.s > fas.tmp
- X mv -f fas.tmp fas.s
- X $(CC) -c fas.s
- X
- Xfas.s: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -S fas.c
- X
- Xinstall: all space.c DrivDesc s_$(CONFNAME) n_$(CONFNAME) \
- X i_$(CONFNAME) fas.h
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
- X chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
- X cp space.c $(LKDRVRDIR)/space.c
- X chmod 644 $(LKDRVRDIR)/space.c
- X cp DrivDesc $(LKDRVRDIR)/DrivDesc
- X chmod 644 $(LKDRVRDIR)/DrivDesc
- X cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKSCONFDIR)/$(CONFNAME)
- X cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKNCONFDIR)/$(CONFNAME)
- X test -f $(LKICONFDIR)/$(CONFNAME) || \
- X cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
- X chmod 644 $(LKICONFDIR)/$(CONFNAME)
- X cp fas.h $(INCLSYS)/fas.h
- X chmod 444 $(INCLSYS)/fas.h
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- XDrivDesc:
- X @echo "The file \`DrivDesc' is missing for some reason"
- X @false
- X
- Xs_$(CONFNAME):
- X @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
- X @false
- X
- Xn_$(CONFNAME):
- X @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
- X @false
- X
- Xi_$(CONFNAME):
- X @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
- X @false
- X
- Xfas.h:
- X @echo "The file \`fas.h' is missing for some reason"
- X @false
- X
- Xclean:
- X rm -f fas.s fas.tmp fas.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.ISC3 failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.SCO ==============
- if test -f 'Makefile.SCO' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.SCO (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.SCO (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.SCO' &&
- X# Makefile for SCO UNIX
- X
- XSHELL = /bin/sh
- XINCLSYS = /usr/include/sys
- XLKDRVRDIR = /etc/conf/pack.d/fas
- XLKSCONFDIR = /etc/conf/sdevice.d
- XLKNCONFDIR = /etc/conf/node.d
- XLKICONFDIR = /etc/conf/init.d
- XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
- XDRVRNAME = Driver.o
- XCONFNAME = fas
- X
- XCC = rcc
- XCFLAGS = -O -DINKERNEL -D_INKERNEL $(LKDEFINES)
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS = SCO
- X
- Xall: fas.o
- X
- Xfas.o: fas.s
- X# Comment out the next two lines if you're using GCC
- X awk -f optim_att.awk fas.s > fas.tmp
- X mv -f fas.tmp fas.s
- X $(CC) -c fas.s
- X
- Xfas.s: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -S fas.c
- X
- Xinstall: all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
- X fas.h
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
- X chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
- X cp space.c $(LKDRVRDIR)/space.c
- X chmod 644 $(LKDRVRDIR)/space.c
- X cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKSCONFDIR)/$(CONFNAME)
- X cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKNCONFDIR)/$(CONFNAME)
- X test -f $(LKICONFDIR)/$(CONFNAME) || \
- X cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
- X chmod 644 $(LKICONFDIR)/$(CONFNAME)
- X cp fas.h $(INCLSYS)/fas.h
- X chmod 444 $(INCLSYS)/fas.h
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- Xs_$(CONFNAME):
- X @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
- X @false
- X
- Xn_$(CONFNAME):
- X @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
- X @false
- X
- Xi_$(CONFNAME):
- X @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
- X @false
- X
- Xfas.h:
- X @echo "The file \`fas.h' is missing for some reason"
- X @false
- X
- Xclean:
- X rm -f fas.s fas.tmp fas.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.SCO failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.SVR40 ==============
- if test -f 'Makefile.SVR40' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.SVR40 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.SVR40 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.SVR40' &&
- X# Makefile for SVR4.0
- X
- XSHELL = /bin/sh
- XINCLSYS = /usr/include/sys
- XLKDRVRDIR = /etc/conf/pack.d/fas
- XLKSCONFDIR = /etc/conf/sdevice.d
- XLKNCONFDIR = /etc/conf/node.d
- XLKICONFDIR = /etc/conf/init.d
- XLKDEFINES = `test -r /etc/conf/cf.d/defines && cat /etc/conf/cf.d/defines; exit 0`
- XDRVRNAME = Driver.o
- XCONFNAME = fas
- X
- XCC = cc
- XCFLAGS = -O -DINKERNEL -D_KERNEL $(LKDEFINES)
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS = SVR4
- X
- Xall: fas.o
- X
- Xfas.o: fas.s
- X# Comment out the next two lines if you're using GCC
- X awk -f optim_att.awk fas.s > fas.tmp
- X mv -f fas.tmp fas.s
- X $(CC) -c fas.s
- X
- Xfas.s: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -S fas.c
- X
- Xinstall: all space.c s_$(CONFNAME) n_$(CONFNAME) i_$(CONFNAME) \
- X fas.h
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
- X chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
- X cp space.c $(LKDRVRDIR)/space.c
- X chmod 644 $(LKDRVRDIR)/space.c
- X cp s_$(CONFNAME) $(LKSCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKSCONFDIR)/$(CONFNAME)
- X cp n_$(CONFNAME) $(LKNCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKNCONFDIR)/$(CONFNAME)
- X test -f $(LKICONFDIR)/$(CONFNAME) || \
- X cp i_$(CONFNAME) $(LKICONFDIR)/$(CONFNAME)
- X chmod 644 $(LKICONFDIR)/$(CONFNAME)
- X cp fas.h $(INCLSYS)/fas.h
- X chmod 444 $(INCLSYS)/fas.h
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- Xs_$(CONFNAME):
- X @echo "You must copy the proper s_$(CONFNAME)-xxxxx file to \`s_$(CONFNAME)'"
- X @false
- X
- Xn_$(CONFNAME):
- X @echo "You must copy the proper n_$(CONFNAME)-xxxxx file to \`n_$(CONFNAME)'"
- X @false
- X
- Xi_$(CONFNAME):
- X @echo "You must copy the proper i_$(CONFNAME)-xxxxx file to \`i_$(CONFNAME)'"
- X @false
- X
- Xfas.h:
- X @echo "The file \`fas.h' is missing for some reason"
- X @false
- X
- Xclean:
- X rm -f fas.s fas.tmp fas.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.SVR40 failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.X286 ==============
- if test -f 'Makefile.X286' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.X286 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.X286 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.X286' &&
- X# Makefile for SCO Xenix 286
- X
- XSHELL = /bin/sh
- XLKDRVRDIR = /usr/sys/io/fas
- X
- XCC = cc
- XCFLAGS = -LARGE -O -K -M2em -DM_KERNEL -UM_I8086 -DSYSINFO
- XIOCFLAGS = -O -K -M2em -NT io_text -DM_KERNEL -UM_I8086
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS = XENIX
- X
- Xall: fas.o space.o
- X
- Xfas.o: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(IOCFLAGS) -c fas.c
- X
- Xspace.o: space.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -DLOCAL_INCLUDE -c space.c
- X
- Xinstall: all
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)
- X chmod 644 $(LKDRVRDIR)/fas.o
- X cp space.o $(LKDRVRDIR)
- X chmod 644 $(LKDRVRDIR)/space.o
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- Xclean:
- X rm -f fas.o space.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.X286 failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.X386 ==============
- if test -f 'Makefile.X386' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.X386 (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.X386 (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.X386' &&
- X# Makefile for SCO Xenix 386
- X
- XSHELL = /bin/sh
- XLKDRVRDIR = /usr/sys/io/fas
- X
- XCC = cc
- XCFLAGS = -O -DM_KERNEL -M3e -Zp4
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS = XENIX
- X
- Xall: fas.o space.o
- X
- Xfas.o: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -c fas.c
- X
- Xspace.o: space.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -DLOCAL_INCLUDE -c space.c
- X
- Xinstall: all
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)
- X chmod 644 $(LKDRVRDIR)/fas.o
- X cp space.o $(LKDRVRDIR)
- X chmod 644 $(LKDRVRDIR)/space.o
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- Xclean:
- X rm -f fas.o space.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.X386 failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= Makefile.uPort ==============
- if test -f 'Makefile.uPort' -a X"$1" != X"-c"; then
- echo 'x - skipping Makefile.uPort (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting Makefile.uPort (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'Makefile.uPort' &&
- X# Makefile for Microport SVR3.0
- X
- XSHELL = /bin/sh
- XINCLSYS = /usr/include/sys
- XLKDRVRDIR = /etc/atconf/modules/fas
- XLKCONFDIR = /etc/atconf/modules/fas
- XDRVRNAME = fas.o
- XCONFNAME = config
- X
- XCC = cc
- XCFLAGS = -O -DINKERNEL
- X
- X# Don't attach a `-D' to the OS dependent defines!
- XOS_DEP_DEFS = OPTIM
- X
- Xall: fas.o
- X
- Xfas.o: fas.s
- X# Comment out the next two lines if you're using GCC
- X awk -f optim_att.awk fas.s > fas.tmp
- X mv -f fas.tmp fas.s
- X $(CC) -c fas.s
- X
- Xfas.s: fas.c fas.h Makefile
- X $(SHELL) os_dep_update fas.h $(OS_DEP_DEFS)
- X $(CC) $(CFLAGS) -S fas.c
- X
- Xinstall: all space.c $(CONFNAME) fas.h
- X test -d $(LKDRVRDIR) || mkdir $(LKDRVRDIR)
- X chmod 755 $(LKDRVRDIR)
- X cp fas.o $(LKDRVRDIR)/$(DRVRNAME)
- X chmod 644 $(LKDRVRDIR)/$(DRVRNAME)
- X cp space.c $(LKDRVRDIR)/space.c
- X chmod 644 $(LKDRVRDIR)/space.c
- X cp $(CONFNAME) $(LKCONFDIR)/$(CONFNAME)
- X chmod 644 $(LKCONFDIR)/$(CONFNAME)
- X cp fas.h $(INCLSYS)/fas.h
- X chmod 444 $(INCLSYS)/fas.h
- X
- Xspace.c:
- X @echo "You must copy the proper space-xxxxx file to \`space.c'"
- X @false
- X
- X$(CONFNAME):
- X @echo "You must copy the proper $(CONFNAME)-xxxxx file to \`$(CONFNAME)'"
- X @false
- X
- Xfas.h:
- X @echo "The file \`fas.h' is missing for some reason"
- X @false
- X
- Xclean:
- X rm -f fas.s fas.tmp fas.o
- X
- Xclobber: clean
- X
- SHAR_EOF
- true || echo 'restore of Makefile.uPort failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= PATCHLEVEL ==============
- if test -f 'PATCHLEVEL' -a X"$1" != X"-c"; then
- echo 'x - skipping PATCHLEVEL (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting PATCHLEVEL (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'PATCHLEVEL' &&
- Xrelease 2.11 patchlevel 0
- SHAR_EOF
- true || echo 'restore of PATCHLEVEL failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= README ==============
- if test -f 'README' -a X"$1" != X"-c"; then
- echo 'x - skipping README (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting README (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'README' &&
- XREADME file for the FAS driver
- X------------------------------
- X
- XFAS, which is an acronym for "Final Async Solution", is a "dumb"-port
- Xcharacter device driver for 286/386 based UNIX systems that adds several
- Xfeatures that are often not provided by vendors drivers.
- X
- XFor further details please refer to the fas(7) man page (file `fas.7'
- Xor `fas.7.cat').
- X
- XFor informations about the FAS copyright please look at the file `COPYING'.
- X
- XThe installation of FAS is described in the file `INSTALLATION'.
- X
- X------------------------------------------------------------------------
- X
- XWhat's in this package:
- X
- XCOPYING Details about the FAS copyright.
- X
- XDrivDesc Driver description file for ISC UNIX 3.x systems.
- X
- XINSTALLATION A description about how to install the driver
- X on your system.
- X
- XMakefile.* These files are generic and should work for all
- X configurations of ports and interrupts.
- X
- X Makefile.ATT For AT&T SVR3.2 systems.
- X
- X Makefile.BELL For Bell Tech/Intel SVR3.2 systems.
- X
- X Makefile.ESIX For ESIX SVR3.2 systems.
- X
- X Makefile.ISC2 For ISC UNIX 2.x systems.
- X
- X Makefile.ISC3 For ISC UNIX 3.x systems.
- X
- X Makefile.SCO For SCO UNIX systems.
- X
- X Makefile.SVR40 For SVR4.0 systems.
- X
- X Makefile.X286 For SCO Xenix 286 systems.
- X
- X Makefile.X386 For SCO Xenix 386 systems.
- X
- X Makefile.uPort For Microport SVR3.0 systems.
- X
- XPATCHLEVEL Just a reference file for future updates.
- X
- XREADME This file.
- X
- XRELEASENOTES Notes about the various FAS releases.
- X
- Xconfig-* This is for Microport SVR3.0 only.
- X Kernel configuaration files. You should pick the one
- X that matches your configuration and copy it to `config'.
- X
- Xfas.7 The man page in NROFF source format.
- X
- Xfas.7.cat The formatted man page (for systems without NROFF).
- X
- Xfas.c The driver itself.
- X
- Xfas.h The header file for the driver.
- X
- Xi_fas-* This is for ISC, ESIX, Bell Tech/Intel, SCO, AT&T and
- X SVR4.0 UNIX.
- X Inittab getty lines files. You should pick the one
- X that matches your configuration and copy it to `i_fas'.
- X
- Xm_fas This is for ISC, ESIX, Bell Tech/Intel, SCO, AT&T and
- X SVR4.0 UNIX.
- X Kernel configuration file. It contains a sample entry
- X for the file `/etc/conf/cf.d/mdevice'.
- X
- Xn_fas-* This is for ISC, ESIX, Bell Tech/Intel, SCO, AT&T and
- X SVR4.0 UNIX.
- X Tty device nodes files. You should pick the one
- X that matches your configuration and copy it to `n_fas'.
- X
- Xoptim_att.awk AWK script that optimizes the AT&T assembler file
- X generated during compilation under some UNIX flavors.
- X
- Xos_dep_update Shell script for the update of OS dependent defines.
- X
- Xs_fas-* This is for ISC, ESIX, Bell Tech/Intel, SCO, AT&T and
- X SVR4.0 UNIX.
- X Kernel configuration files. You should pick the one
- X that matches your configuration and copy it to `s_fas'.
- X
- Xspace-* These are samples of what `space.c' must look
- X like. You can either copy one of these to
- X `space.c' or use it as a template to create your
- X own `space.c'.
- X
- Xupdate_desc Shell script for the update of the kernel description
- X file (necessary for some UNIX flavors).
- X
- X------------------------------------------------------------------------
- X
- XWhat you will need to use this package:
- X
- XYou will need one of the above mentioned UNIX systems with the
- Xkernel link kit and the software development package.
- X
- XOf course, you will also need one or more "dumb"-port serial cards.
- X
- XNote that FAS can be adapted to almost any kind of "dumb"-port serial
- Xcard by just putting the right informations into the config
- Xfiles. Changes to the actual source file shouldn't be necessary.
- X
- XThis means that the sample config files that are part of the FAS
- Xdistribution are there for convenience in case you have one of the
- Xmore common serial cards. If there are no sample files for your
- Xcard you can make your own config files. In this case the sample
- Xfiles are still useful for you as you can look at them to learn
- Xhow things are done for other cards.
- X
- XIf you know how your serial card works and the manual for it is
- Xdetailed enough it won't be that difficult to make your own config
- Xfiles. Just try it!
- X
- X------------------------------------------------------------------------
- X
- XThe original asy replacement driver for Microport UNIX/386 (FAS' predecessor)
- Xwas developed by
- X
- XJim Murray INET jjm%jjmhome@m2c.m2c.org
- X2 Mohawk Circle UUCP harvard!m2c!jjmhome!jjm
- XWestboro Mass 01581
- XUSA voice (508) 366-2813
- X
- XCredits to him for releasing this great driver to the Usenet community.
- XBut if you have problems with FAS please don't contact him because he
- Xwasn't involved in the developement of FAS.
- X
- XFAS was developed by
- X
- XUwe Doering <fas@geminix.in-berlin.de>
- XBillstedter Pfad 17 b
- X13591 Berlin
- XGermany
- X
- X ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
- XSend your questions and bug reports to this address.
- SHAR_EOF
- true || echo 'restore of README failed'
- rm -f _shar_wnt_.tmp
- fi
- # ============= RELEASENOTES ==============
- if test -f 'RELEASENOTES' -a X"$1" != X"-c"; then
- echo 'x - skipping RELEASENOTES (File already exists)'
- rm -f _shar_wnt_.tmp
- else
- > _shar_wnt_.tmp
- echo 'x - extracting RELEASENOTES (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'RELEASENOTES' &&
- Xrelease 1.1a Sat Nov 11, 1989
- X
- XThis is an unofficial release as I'm not the original author
- Xof this async driver.
- X
- XUwe Doering <fas@geminix.in-berlin.de>
- XBillstedter Pfad 17 b
- X13591 Berlin
- XGermany
- X
- XNew Features:
- X
- X Added a third minor tty device number for every physical
- X port. See description preceding the asyopen function in
- X asy.c. Changed the behavior of ttyxx, too.
- X
- X Added output hardware handshake support for DSR. Now you
- X can do handshake with CTS, DSR or both. Input hardware
- X handshake is on if you use at least one of the output
- X handshake signals.
- X
- X More flexible support of additional interrupt registers
- X on mux boards. This is fully configurable now.
- X
- X Added support for the CREAD flag. If not set, receiver
- X interrupts are still serviced, but the received characters
- X are simply thrown away. This is not as elegant as disabeling
- X the interrupts themselves, but with the already existing
- X driver it was the easiest way, and the most new-bugs-preventing,
- X too.
- X
- X Added a lot of comments to the source so that the curious
- X user can understand why and how things are done.
- X
- X
- XBug Fixes:
- X
- X The hang-up-on-last-close flag (HUPCL) was ignored. DTR
- X was asserted regardless of this flag.
- X
- X Made the detection of CTS and DCD more bullet-proof.
- X Especially because between a close and the next open of
- X a line, where interrupts are ignored, the software copys of
- X CTS and DCD must be set up propperly in the asyopen function
- X or the tty line would be blocked under certain circum-
- X stances. For similar reasons, there is also a setup in the
- X asyparam function.
- X
- X Rewrote the input character processing function to work
- X according to the TERMIO(7) man page.
- X
- X Changed the behavior of BREAK generation to let the
- X transmitter drain before TX is set to low.
- X
- X Changed line hangup procedure so that the closing
- X process returns immediately and doesn't sleep during
- X the hangup delay/time. Instead, if an other process tries
- X to open the line while hangup is still in progress, this
- X process will sleep until hangup is competed.
- X
- X With DOS Merge, on MicroPort V/386 3.0e the linker was
- X missing the function `init8250'. Reengineered this from
- X a disassembler listing of MicroPort's original driver and
- X modified it to work with the NS16550A 16-byte FIFO. This
- X funktion was added simply to be able to link the kernel.
- X DOS Merge's virtual COM ports are still unusable with this
- X release, though. To include this function, add a `-DMERGE'
- X to the CFLAGS line in your makefile.
- X
- X Made a lot of other corrections and enhancements in both
- X speed and functionallity. As a result of all my effords
- X I think this driver is slightly faster, more versatile
- X and much more stable than the original release.
- X
- X------------------------------------------------------------
- X
- Xrelease 1.1b Sat Nov 25, 1989
- X
- XNew Features:
- X
- X Changed the minor device number scheme again.
- X There are now two main groups: The unblocked open
- X and the blocked open. Every group has four sub-modes
- X and an additional hardware handshake flag. All this
- X is coded in the higher four bits of the minor device
- X number. Because of this, the maximum of 32 ports was
- X reduced to 16 ports so that the port number fits into
- X the remaining lower four bits of the minor device number.
- X 32 dumb ports in a single machine would have been overkill
- X anyway. For more details refer to the description in the
- X README file.
- X
- X------------------------------------------------------------
- X
- Xrelease 2.00 Mon Nov 27, 1989
- X
- XAs this release differs so much from the original version I got,
- XI now declare this as independant from the original author
- XJim Murray. This allows me to introduce new release levels
- Xwithout wondering whether they will collide with Jim's releases.
- XOf course many credits to Jim for writing this software in the
- Xfirst place. Without his driver as a base I never would have
- Xbeen able to do such kernel driver development.
- X
- XBug Fixes:
- X
- X If there were glitches on the hardware handshake lines
- X and the DCD line a getty on this port would sometimes
- X hang and become an immortal process. I think this was
- X because the output buffer wasn't flushed properly
- X on carrier loss. I hope I fixed this now. We'll see.
- X
- X------------------------------------------------------------
- X
- Xrelease 2.01 Tue Nov 28, 1989
- X
- XDid some cleanup in the source code.
- X
- XI splitted the driver into two parts: The driver itself and
- Xthe file `space.c'.
- X`space.c' contains all data structures necessary to configure
- Xthe driver and is compiled at kernel link time. Therefore, if you
- Xchange your serial card configuration you simply change `space.c'
- Xdirectly in the link kit directory and relink the kernel. No
- Xdriver recompilation or installation is necessary for this.
- XBut note that whenever you use `make install' your setup in
- Xthe link kit directory is overwritten by the original `space.c'
- Xfile. Therefore, you should copy your new `space.c' back to
- Xthe source directory when you are finished with the configuration.
- X
- XRenamed the package to `FAS Final Async Solution'. The following
- Xfiles have been renamed:
- X asy.c -> fas.c
- X asy.h -> fas.h
- X asy_conf-xxxxx -> space-xxxxx
- X
- XISC 386/ix is supported now. There are separate makefiles
- Xfor uPort and ISC to cope with the differences in link kit
- Xinstallation.
- X
- XBug Fixes:
- X
- X `getty' still hung sometimes on a line with hardware
- X handshake. Tried to fix it this time.
- X
- X------------------------------------------------------------
- X
- Xrelease 2.02 Thu Nov 30, 1989
- X
- XAbandoned the distinction between space-xxxxx files with
- Xand without hardware flow control because this is selected
- Xby the minor device number now.
- X
- XBug Fixes:
- X
- X Set the high and low water marks for hardware input flow
- X control to higher values than software flow control. This
- X gives precedence to software flow control if both methods
- X are used. These marks are self-adjusting and don't need to
- X be changed if some flavor of UNIX has a different buffer
- X size than the standard 256 characters. Before this change
- X concurrent use of both flow controls could cause trouble
- X with some high-speed modems. This is fixed now.
- X
- X A flush read or write buffer request now also clears the
- X receiver or transmitter FIFO, respectively. An ioctl
- X call with a TCSETA* command clears the FIFOs, too.
- X
- X------------------------------------------------------------
- X
- Xrelease 2.03 Fri Dec 01, 1989
- X
- XWrote an installation guide. The driver should be quite
- Xeasy to install now.
- X
- XAdded tty node configuration files for ISC.
- X
- XHardware input flow control is bound now to the level of the
- Xreceiver ring buffer instead of the UNIX input buffer. This
- Xhas the advantage that buffer size and trigger levels are
- Xdefined in the driver and therefore can be varied as needed.
- X
- XNew Features:
- X
- X Added a boot time status message that shows the init
- X state of each port. This tells you immediately what
- X ports are found and initted by the driver. Useful to
- X determine hardware configuration problems. Look at
- X the description in the README file. Thanks to
- X Kritt Gierlewsen (kritt@einoed.UUCP) for this proposal.
- X
- X------------------------------------------------------------
- X
- Xrelease 2.04 Thu Dec 07, 1989
- SHAR_EOF
- true || echo 'restore of RELEASENOTES failed'
- fi
- echo 'End of part 1'
- echo 'File RELEASENOTES is continued in part 2'
- echo 2 > _shar_seq_.tmp
- exit 0
-