COM3 & COM4 under SCO Xenix ?

Mark J. DeFilippis mark at promark.UUCP
Wed Mar 21 13:01:12 AEST 1990


In article <3347 at trantor.harris-atd.com>, wcurtiss at x102c.harris-atd.com (Curtiss WC 67625) writes:
> I am trying to install a serial card configured for COM3 and COM4 (INT 3 & 4,
> I/O Addr 3E8 & 2E8) in a machine which already has COM1 and COM2 (INT 3 & 4,
> I/O Addr 3F8 & 2F8).  SCO says it can't be done and I should get a multiport

I saved this last time I saw it around.  Hope it helps...

                         How to add comm3 and comm4

                                    under

                                  SCO Xenix



                                 Coert Vonk

                              October 22, 1989


The basement of the following text was extracted from a usenet message
in comp.unix.xenix.  It describes how to add additional IBM-Standard
COMM PORTS as comm3 and comm4 under SCO Xenix.


1.  what do we have?
~~~~~~~~~~~~~~~~~~~~

      IBM-Standard COMM PORTS may be characterized as:

                name        base        irq 
                           address
                ---------------------------
                comm1       0x3f8        4
                comm2       0x2f8        3
                comm3       0x3e8        5
                comm4       0x2e8        2
        
      If you think this looks to organized I can set you at ease.  At
      the time IBM released his PC-XT/AT machines, only comm1 and
      comm2 were defined.  Pushed by the demand of the market clone
      manufactures developed two other sio ports.  Due to the lack of
      concerted attention there exist almost more characteristics for
      these ports than manufactures.

      With the release of PS/2 machines IBM set the standard for the
      comm3 and comm4 ports as represented above.  Although all kinds
      of sio ports may be added, I focus to the standard address and
      irq of comm3.  By the way if you intend to your another irq,
      you could check if it's is currently in by the
      /usr/sys/conf/vectorsinuse command (or read the master file
      yourself, more about this later).
      

2.  edit sioconf.c
~~~~~~~~~~~~~~~~~~
      
      Add new a descriptor to /usr/sys/io/sioconf.c using an ordinary
      text editor (i.e.  vi,lyrix).  It should have the format as
      descripted in /usr/sys/io/sioconf.h :

           int b_num;     /* board number */
           int b_type;    /* each manufacturer gets a different one */
           int b_pcnt;    /* port count on the board */
           int b_vec;     /* interrupt vector */
           int b_dev;     /* minor dev base */
           sd  b_addr;    /* base address of board */
           int b_poll;    /* interrupt poll addr */
           int b_inc;     /* increment (spacing) of io ports on board */
           int b_outbits; /* value for OUT1/OUT2 bits in MCR */

      Doing so we get:
           {2,IBM_BOARD, 1,5,4,  (sd)0x3e8,0,  0,MCRBIT3},  /*ibm COM3*/

      Some remarks on this:
         -- the next available IBM_BOARD board number is 2 (3 for comm4)
         -- I use irq5 for the board (irq2 for comm4)
         -- the minor device base is 4 (could be 12 for comm4)
         -- the base address is 0x3e8 (0x2e8 for comm4)


3.  edited master
~~~~~~~~~~~~~~~~~
      
      The /usr/sys/conf/master file contains information about
      different devices including interrupt vectors used.  Serial
      (marked sio) devices used originally irqs 3,4,33 and 34.  The
      irq33 and irq34 were originally placed in the table because
      Xenix got confused by the comm3 or comm4 port, and took it for
      a 4-port.

             vec.cnt                              irqA irqB irqC irqD
         -------------------------------------------------------------
         sio    4    0577 104 sio 0  0  5  1  7     3   4    33   34
         pa     2    0133 004 pa  0  0  6  1  2     5   7    0    0

      When we correct this recognition problem we get:
         
         sio    2    0577 104 sio 0  0  5  1  7     3   4    0    0
         pa     2    0133 004 pa  0  0  6  1  2     5   7    0    0

      If we want to use irq5 for comm3, we have to steal if from
      parallel adapter.  This brings the vector count for pa down to
      1.
             
         sio    2    0577 104 sio 0  0  5  1  7     3   4    0    0
         pa     1    0133 004 pa  0  0  6  1  2     7   0    0    0
      
      By now it is time to introduce my new comm port.  Filling in
      it's irq vector of 5, increments the sio vector count by one.
      Yielding in:

         sio    3    0577 104 sio 0  0  5  1  7     3   4    5    0
         pa     1    0133 004 pa  0  0  6  1  2     7   0    0    0
      
      I think now the time has come to make the machine contribute
      his/her part ...


4.  make
~~~~~~~~
      
      I recompiled all modified sources with make (yes, you need
      development system to do this) and copied the just linked new
      kernel to the root directory (/xenix.comm3).


5.  reboot
~~~~~~~~~~

      I rebooted my system and to the boot-prompt I entered
      xenix.comm3 (name of the new untested kernel).  Everything
      worked fine, comm1, comm2, and comm3 were found.



Help save the world!  Communicate any problems and suggestions to me,
mcsun!hp4nl!neabbs!coertvnk (Coert Vonk).


____
By the way, I am interested in an internship at an American University.  Any
ideas ..., please e-mail them. 

    ____
   /                       / Uucp address:                Mailing address:
  /      ___   __   __  __/   mcsun!hp4nl!neabbs!coertvnk Eikstraat 17
 /      /  /  /_/  /    /    Telephone:                   4621 JL Bergen op Zoom
/___   /__/  /__  /    /__    + 31 1640 42366             The Netherlands


-- 
Mark J. DeFilippis
SA @ Department of Mathematics and Computer Science
Adelphi University, Garden City, NY 11530                   (516) 663-1170
UUCP:	 philabs!sbcs!bnlux0!adelphi!markd



More information about the Comp.unix.xenix mailing list