From: mhiroshi@tansei.cc.u-tokyo.ac.jp (H. Murakami)
Newsgroups: fj.sys.rs6000
Subject: aix-rs6000-faw: Quote
Date: 22 Aug 92 13:11:15 GMT
Distribution: fj
Organization: Hokkaido Univ. However I am subject to tansei for JUNET.

TO: fj.sys.rs6000
$B$b$&B?>/8E$$FbMF$@$1$l$I$b(J...  $BE>:\$7$^$9(J.
-------------------------------------------------------------------------------
                         $BJbJbJbJbJbJbJbJbJb(J              $BB<>e(J	$B90(J
PPPPPPPP                   $B3Q(J          $BHt(J
RNBQKBNR                 $B9a7K6d6b6L6b6d7K9a(J   mhiroshi@tansei.cc.u-tokyo.ac.jp

------ $BE>:\3+;O(J ---------
>From: bengsig@dk.oracle.com (Bjorn Engsig)
Archive-name: aix-rs6000-faq
Version: 9

Frequently Asked Questions to AIX 3.1 and IBM RS/6000
=====================================================

This posting contains frequently asked questions (and answers) about the
IBM RS/6000 computer and AIX version 3.  All input is very wellcome, 
please mail it to bengsig@oracle.com.

The list is now split in three articles.  As some may have noticed, I
have only been sending this list out whenever I have had time to modify it
and that has not been often enough.  In the future I will send it
approximately once every month even if it means sending out an unupdated
version.  Please let your input continue, I am most thankful for all of it.

The list is posted to comp.unix.aix, news.answers and bit.listserv.power-l.
The latter is gateway'ed to POWER-L on bitnet.

The posting is organized as a digest, so popular newsreader programs
should be able to easily look up each item - at least hitting ^G in rn
will get you the next one and rn is what I happen to use.  In nn, the
command 'G %' will get you to the next.

I added lines of underscores before each major Subject: line to make a more
legible paper print.  If you see a From: line it means that whatever follows
is mostly an unedited version of the input I have received, and that I have not
verified its contents.  If there is no From: line, I hopefully know what
I am talking about, and the entry is probably edited entries from various
sources.

All entries are numbered with major and minor subject number, e.g.  3.05, and
they have a Date: that does not necessary have any important information.
If the subject is preceded by an asterix, that entry has been changed or
added since the last time.

The comp.unix.aix group is really for AIX on the four platforms, RT, PS/2, 370
and RS/6000, but it has 90% or more of its traffic covering AIX 3.1 and the
RS/6000.  The newsgroups comp.sys.ibm.pc.rt and comp.sys.ibm.ps2.hardware
have postings on the PC/RT, mostly hardware and AOS 4.3, and on PS/2
hardware respectively.  There doesn't seem to be a group covering 370
hardware.

This article only covers AIX 3.1 and the RS/6000, except when specifically
noted.

If you post questions to comp.unix.aix, please be sure to indicate:

- Your machine type (not all questions are to the RS/6000)

- Your exact AIX version number, i.e. AIX 3.1 is NOT sufficient, whereas
  AIX 3.1.5 or AIX 3.1 with the 3005 update is.

All contributors are mentioned towards the end of this article.
_______________________________________________________________________________
Subject: Contents
Date: Tue, 10 Sep 91 12:37:58 GMT

Contents of this list, issue 7:

1.    The C Environment
1.01  I cannot make alloca work
1.02  How do I compile my BSD programs?
1.03  Isn't the linker different from what I am used to?
1.04  How do I link my program with a non-shared /lib/libc.a?
1.05  How do I make my own shared library?
1.06  Linking my program fails with strange error, why?
1.07 *What's with malloc()?
1.08  Why does xlc complain about 'extern char *strcpy()'
1.09  Why do I get 'Parameter list cannot contain fewer ....'
1.10  Why does xlc complain about '(sometype *)somepointer = something'
1.11  Some more common errors
1.12  Can the compiler generate assembler code.
1.13 *Curses
1.14  How do I speed up linking?
1.15  What is deadbeef?

2.    Fortran
2.01  I have problems mixing fortran and C code, why?
2.02  How do I statically bind fortran libraries and dynamically bind C
      libraries?
2.03  How do I check if a number is NaN?

3.    The AIX operating system - what is it?
3.01  I am used to Unix systems programming, why should I learn SMIT?
3.02  What is the Object Database.
3.03  How do I get rid of the verbose error messages?
3.04 *How do I make an informative prompt in the shell?
3.05  How do I import an /etc/passwd or /etc/group file from another box?
3.06 *How do I put my own text into InfoExplorer?
3.07  Who has a termcap/terminfo source for aixterm or the HFT console?
3.08  How do I put multiple backups on a single 8mm tape?
3.09  Which release of AIX do I have?
3.10 *Some known problems, telnet, accounting, who
3.11  Other hints, fsck of /, X-windows and alt-cntl-backspace
3.12  How do I shrink /usr?
3.13  How do I shrink the default paging space on hd6?
3.14  I know neither Unix nor AIX - where do I find more information?
3.15  How do I backup a multi-disk volume group?
3.16  How do I see/change system parameters like number of processes per
      user?
3.17  My /dev/null seems to have disappeared or become a plain file, why?
3.18  The swapper seems to use extreme amount of paging space, why?
3.19 *How much should I trust the ps memory reports?
3.20 *How do I do remote backup?

4.    Public Domain software.
4.00 *How do I find PD software?
4.01 *Are there any ftp sites?
4.02  GNU Emacs
4.03 *GNU C
4.04  Perl
4.05  X-Windows
4.06  Bash
4.07  Elm
4.08  General hints
4.09  Kermit
4.10  Gnu dbm
4.11  tcsh
4.12  Kyoto Common Lisp
4.13  TCL
4.14  Expect

5.    Third party hardware
5.01  Disk/Tape/SCSI
5.02  Disks.
5.03  Memory
5.04  Others
5.05  IBM List of third party products

6.    Third party hardware
6.01 *C++ compilers

7.    Miscellaneous other stuff.
7.01  Can I get support by email?
7.02  Some RS232 hints
7.03  VT100 keybindings for aixterm

8.    How do I get this by mailserver or ftp?
_______________________________________________________________________________
Subject:  1. The C Environment.
Date: Thu, 02 Jan 92 12:47:21 GMT

Contrary to many people's belief, the C environment on the RS/6000 is not very
special.  The C compiler has quite a number of options that can be used to
control how it works, which "dialect" of C it compiles, how it interprets
certain language constructs, etc.  InfoExplorer includes a Users' Guide and
a Reference Manual.

The compiler can be invoked with either xlc to invoke it in ANSI mode and cc
to invoke it in RT (i.e. IBM 6150 with AIX 2) compatible mode.  The default
options for each mode are set in the /etc/xlc.cfg file, and you can actually add
another stanza and create a link to the /bin/xlc executable.

The file /usr/lpp/xlc/bin/README.xlc has information about the C compiler, and
the file /usr/lpp/bos/bsdport contains useful information, in particular for
users used to BSD.

The file /etc/xlc.cfg also shows the symbol _IBMR2 that is predefined, and
therefore can be used for #ifdef'ing RS/6000 specific code.

Subject:  1.01 I cannot make alloca work
Date: Tue, 10 Sep 91 10:33:06 GMT

A famous routine, in particular in GNU context, is the allocation routine
alloca().  Alloca allocates memory in such a way that it is automatically
free'd when the block is exited.  Most implementations does this by adjusting
the stack pointer.  Since not all C environments can support it, its use
is discouraged, but it is included in the xlc compiler.  In order to make the
compiler aware that you intend to use alloca, you must put the line

#pragma alloca

before any other statements in the C source module(s) where alloca is
called.  If you don't do this, xlc will not recognize alloca as anything
special, and you will get errors during linking.

In earlier releases of the C compiler, alloca did not work well with the
optimizer turned on (-O flag), but this problem is solved now.  The fix
was probably in release 1.1.3 of xlc.obj, it is for sure in 1.1.5.

Subject:  1.02 How do I compile my BSD programs?
Date: Tue, 10 Sep 91 10:00:00 GMT

The file /usr/lpp/bos/bsdport contains information on how to port programs
written for BSD to AIX 3.1.  The contents of this file can actually be very
useful for others as well.

A quick cc command for most "standard" BSD programs is:
  
  $ cc -D_BSD -D_BSD_INCLUDES  -o [loadfile] [sourcefile.c] -lbsd

If your software has system calls predefined with no prototype parameters,
also use the -D_NO_PROTO flag.

Subject:  1.03 Isn't the linker different from what I am used to?
Date: Tue, 10 Sep 91 10:00:00 GMT

Yes.  It is not at all like what you are used to:

- The order of objects and libraries is normally _not_ important.  The linker
  reads _all_ objects including those from libraries into memory and does
  the actual linking in one go.  Even if you need to put a library of your
  own twice on the ld command line on other systems, it is not needed on the
  RS/6000 - doing so will even make your linking slower.

- One of the features of the linker is that it will replace an object in an
  executable with a new version of the same object:

  $ cc -o prog prog1.o prog2.o prog3.o		# make prog
  $ cc -c prog2.c				# recompile prog2.c
  $ cc -o prog.new prog2.o prog			# make prog.new from prog
						# by replacing prog2.o
  
- The standard C library /lib/libc.a is linked shared, which means that the
  actual code is not linked into your program, but is loaded only once and
  linked dynamically during loading of your program.

- The ld program actually calls the socalled binder in /usr/lib/bind, and you
  can give ld special options to get details about the invocation of the binder.
  These are found on the ld man page or in InfoExplorer.

- If your program normally links using a number of libraries (.a files), you
  can 'prelink' each of these into an object, which will make your final
  linking faster.  E.g. do:

  $ cc -c prog1.c prog2.c prog3.c
  $ ar cv libprog.a prog1.o prog2.o prog3.o
  $ ld -r -o libprog.o libprog.a
  $ cc -o someprog someprog.c libprog.o

  This will solve all internal references between prog1.o, prog2.o and prog3.o
  and save this in libprog.o  Then using libprog.o to link your program in
  stead of libprog.a will increase linking speed, and even if someprog.c
  only uses, say prog1.o and prog2.o, only those two modules will be in your
  final program.  This is also due to the fact that the binder can handle
  single objects inside one object module as noted above.

  If you are using an -lprog option (for libprog.a) above, and still want
  to be able to do so, you should name the prelinked object with a standard
  library name, e.g. libprogP.a (P identifying a prelinked object), that
  can be specified by -lprogP.  You cannot use the archiver (ar) on such
  an object.

You should also have a look at section 2.02 of this article, in particular if
you have mixed Fortran/C programs.

Subject:  1.04 How do I link my program with a non-shared /lib/libc.a?
Date: Tue, 10 Sep 91 10:00:00 GMT

  cc -o prog -bnoso -bI:/lib/syscalls.exp obj1.o obj2.o obj3.o

  will do that for a program consisting of the three objects obj1.o, etc.-

Subject:  1.05 How do I make my own shared library?
Date: Tue, 10 Sep 91 10:00:00 GMT

  To make your own shared object or library of shared objects, you should
  know that a shared object cannot have undefined symbols.  Thus, if your
  code uses any externals from /lib/libc.a, the latter MUST be linked with
  your code to make a shared object.  Likewise, you cannot split your code
  into more than one shared object if externals in one object refer to another
  one.

  Assume you have one file, sub1.c, containing a routine with no external
  references, and another one, sub2.c, calling stuff in /lib/libc.a.  You
  will also need two export files, sub1.exp, sub2.exp.  Read the example
  below together with the examples on the ld man page.

  ---- sub1.c ----------------------------------------------------------
    int addint(int a, int b)
    {
      return a + b;
    }
  ---- sub2.c ----------------------------------------------------------
    #include <stdio.h>

    void printint(int a)
    {
      printf("The integer is: %d\n", a);
    }
  ---- sub1.exp ----------------------------------------------------------
    #!
    addint
  ---- sub2.exp ----------------------------------------------------------
    #!
    printint
  ---- usesub.c ----------------------------------------------------------
    main()
    {
      printint( addint(5,8) );
    }
  ---------------------------------------------------------------

  The following commands will build your libshr.a, and compile/link the
  program usesub to use it.  Note that you need the ld option -lc for sub2shr.o
  since it calls printf from /lib/libc.a.

  $ cc  -c sub1.c
  $ ld -o sub1shr.o sub1.o -bE:sub1.exp -bM:SRE -T512 -H512 
  $ cc  -c sub2.c
  $ ld -o sub2shr.o sub2.o -bE:sub2.exp -bM:SRE -T512 -H512  -lc
  $ ar r libshr.a sub1shr.o sub2shr.o
  $ cc -o usesub usesub.c -L: libshr.a
  $ usesub
  The integer is: 13
  $

Subject:  1.06 Linking my program fails with strange errors.  Why?
Date: Fri, 27 Sep 91 13:57:43 GMT

Very simple, the linker (actually called the binder), cannot get the memory
it needs, either because your ulimits are too low or because you don't
have sufficient paging space.  Since the linker is quite different
from normal Unix linkers and actually does much more than these, it also uses
very much virtual memory.  It is not unusual that you need 10000 pages (of 4k)
or more to execute a fairly complex linking.

If you get 'BUMP error', either ulimits or paging is too low, if you get
'Binder killed by signal 9' your paging is too low.

First, check you memory and data ulimts; in korn shell 'ulimit -a' will show
all limits and 'ulimit -m 99999' and 'ulimit -d 99999' will increase the
maximum memory and data respectively to some high values.  If this was not
your problem, you don't have enough paging space.

If you will or can not increase your paging space, you could try this:

- Do you duplicate libraries on the ld command line?  That is never necessary.

- Do more users link simultaneously?  Try having only one linking going on at
  any time.

- Do a partwise linking, i.e. you link some objects/libraries with the -r option
  to allow the temporary output to have unresolved references, then link with
  the rest of your objects/libraries.  This can be split up as much as you want,
  and will make each step use less virtual memory.

  If you follow this scheme, only adding one object or archive at a time, you
  will actually emulate the behavior of other Unix linkers.

If you decide to add more paging space, you should consider to add a new
paging space on a second hard disk, as opposed to just increasing the existing
one.  Doing the latter could make you run out of free space on your first
harddisk, and it is difficult to shrink a paging space, but you can remove one.

Subject: *1.07 What's with malloc()?
Date: Tue, 17 Mar 92 15:30:33 GMT
        
malloc() uses a late allocation algorithm based on 4.3 BSD's
malloc() for speed.  This lets you allocate very large sparse
memory spaces, since the pages are not actually allocated until
they are touched for the first time.  Unfortunately, it doesn't die
gracefully in the face of loss of available memory.  See the "Paging Space
Overview" under InfoExplorer, and see the notes on the linker in this
document for an example of an ungraceful death.

If you want your program to get notified when running out of memory, you
should handle the SIGDANGER signal.  The default is to ignore it.  SIGDANGER
is sent to all processes when paging space gets low, and if paging space
gets even lower, processes with the highest paging space usage are sent the
SIGKILL signal.

Subject:  1.08 Why does xlc complain about 'extern char *strcpy()'
Date: Tue, 10 Sep 91 10:00:00 GMT

The header <string.h> has a strcpy macro that expands strcpy(x,y) to
__strcpy(x,y), and the latter is then used by the compiler to generate inline
code for strcpy.  Because of the macro, your extern declaration contains
an invalid macro expansion.  The real cure is to remove your extern declaration
but adding -U__STR__ to your xlc will also do the trick.

Subject:  1.09 Why do I get 'Parameter list cannot contain fewer ....'
Date: Tue, 10 Sep 91 10:00:00 GMT

This is the same as above.

Subject:  1.10 Why does xlc complain about '(sometype *)somepointer = something'
Date: Tue, 10 Sep 91 12:50:15 GMT

Software that is developed using GNUC may have this construct.  Standard C does
however not permit casts to be lvalues, so you will need to change the cast
and move it to the right side of the assignment.  If you compile using 'cc',
removing the cast completely will give you a warning, 'xlc' will give you
an error (provided somepointer and something are of different types - but
else, why would the cast be there in the first place?)

Subject:  1.11 Some more common errors
Date: Thu, 02 Jan 92 13:40:15 GMT

Here are a few other common errors with xlc:

      305 |     switch((((np)->navigation_type) ? (*((np)->navigation_type)) :
            ((void *)0)))
            .a...........
a - 1506-226: (S) The second and third operands of the conditional operator must
 be of the same type.

The reason for this is that xlc defines NULL as (void *)0, and it does
not allow two different types as the second and third operand of ?:.
The second argument above is not a pointer and the code used NULL incorrectly
as a scalar.  NULL is a nil pointer constant in ANSI C and in some tradi-
tional compilers.

You should change NULL in the third argument above to an integer 0.

Subject:  1.12 Can the compiler generate assembler code?
Date: Thu, 02 Jan 92 13:09:07 GMT

The traditional -S option is not supported by the XLC compiler, and there
is in fact no way to make the compiler generate machine readable assembler
code.  The option -qlist will generate a human readable one in the .lst
file.

Subject: *1.13 Curses
Date: Tue, 17 Mar 92 14:55:09 GMT

Curses based applications should be linked with -lcurses and _not_ with
-ltermlib.  It has also been reported that some problems with curses are
avoided if your application is compiled with -DNLS.

Peter Jeffe <peter@ski.austin.ibm.com> also notes:

>the escape sequences for cursor and function keys are *sometimes* treated
>as several characters: eg. the getch() - call does not return KEY_UP but
>'ESC [ C.'

You're correct in your analysis: this has to do with the timing of the
escape sequence as it arrives from the net.  There is an environment
variable called ESCDELAY that can change the fudge factor used to decide
when an escape is just an escape.  The default value is 500; boosting
this a bit should solve your problems.

Further on the matter of curses, I've received the comments below concerning
extended curses:

>From: Christopher Carlyle O'Callaghan <asdfjkl@wam.umd.edu>
Date: Wed, 12 Feb 92 15:00:48 -0500

1) The sample program in User Interface Programming Concepts, page 7-13 is
   WRONG!!!! Here is the correct use of panes and panels. (This is one of the
   IBM manuals that comes with the RS/6000)

#include <cur01.h>
#include <cur05.h>

main()
{
PANE *A, *B, *C, *D, *E, *F, *G, *H;
PANEL *P;

initscr();

A = ecbpns (24, 79, NULL, NULL, 0, 2500, Pdivszp, Pbordry, NULL, NULL);

D = ecbpns (24, 79, NULL, NULL, 0, 0,    Pdivszf, Pbordry, NULL, NULL);
E = ecbpns (24, 79, D,    NULL, 0, 0,    Pdivszf, Pbordry, NULL, NULL);

B = ecbpns (24, 79, A, D, Pdivtyh, 3000, Pdivszp, Pbordry, NULL, NULL);

F = ecbpns (24, 79, NULL, NULL, 0, 0,    Pdivszf, Pbordry, NULL, NULL);
G = ecbpns (24, 79, F,    NULL, 0, 5000, Pdivszp, Pbordry, NULL, NULL);
H = ecbpns (24, 79, G,    NULL, 0, 3000, Pdivszp, Pbordry, NULL, NULL);

C: = ecbpns (24, 79, B, F, Pdivtyh, 0, Pdivszf, Pbordry, NULL, NULL);

P = ecbpls (24, 79, 0, 0, "MAIN PANEL", Pdivtyv, Pbordry, A);

ecdvpl (P);
ecdfpl (P, FALSE);
ecshpl (P); 
ecrfpl (P);
endwin();
}

2) DO NOT!!!! include <curses.h> and any other <cur0x.h> file together...
   you will get a bunch of redefined statements.

3) There is a CURSES and EXTENDED CURSES stuff.. use ONLY! one or the other!!!
   If the manual says that they're backwards compatible or some other
   indication that you can use CURSES routines with EXTENDED.. don't believe
   it!!!!  To use CURSES you need to include <curses.h> and you can't 
   (see above).

4) If you use -lcur and -lcurses in the same link command, you will get
   Memory fault (core dump) error...  YOU CANNOT use both of them at the
   same time!!! -lcur is for extended curses, -lcurses is for regular
   curses.

5) When creating PANEs, when you supply a value (other than 0) for the 'ds'
   parameter and use Pdivszf value for the 'du' parameter, the 'ds' will
   be ignored (the sample program on page 7-13 in User Interface Programming
   Concepts is wrong!!!)  For reasons as yet undertermined, Pdivszc doesn't
   seem to work (or at least I can't figure out how to use it.)

6) If you're running into bugs and can't figure out what is happening, try
   the following:
   include -qextchk -g in your compile line
	-qextchk will check to make sure you're passing the right number of
  	 parameters to the procedures
	-g will allow you to use the inline debugger on Unix/AIX.
   to use the debugger after you compiled it, 
	type: dbx <fn>
	the command 'help' will give you all of the possible commands to
   	use in the debugger... have fun... :)

7) Do not use 80 as the number of columns if you're gonna use the whole
   screen!! The lower right corner will get erased.  Use 79 instead!

8) If you create a panel, you must create at least 1 pane, otherwise you
   will get a Memory fault (core dump).

9) When creating a panel, if you don't have a border around it, any title
   you want will not show up.

10) to make the screen scroll down:
    wmove (win, 0, 0);
    winsertln (win)

11) delwin(win) DOESN'T WORK IN EXTENDED WINDOWS!!!  Does anyone else
    besides me beginning to think that IBM is totally clueless when it
    comes to upgrading software?! Argh...

    Anyway.. to make it appear as if a window is deleted, you need to do
    the following:
    for every window that you want to appear on the screen
	touchwin(win)
	wrefresh(win)

    you must make sure that you do it in the exact same order as you put
    them on the screen (i.e., if you called newwin with A, then C, then B,
    then you must do the loop with A, then C, then B, otherwise you won't
    get the same screen back).  The best thing to do is to put them into
    an array and keep track the of last window index.

12) mvwin(win, line, col) implies that it is only used for viewports and
    subwindows... B.S.!!!!  It can be used for the actual windows themselves!

13) If you specify the attribute of a window using wcolorout(win),  any
    subsequent calls to chgat(numchars, mode) or any of it's relatives
    will not work. (or at least they get very picky...)


Subject:  1.14 How do I speed up linking
Date: Tue, 21 Jan 92 09:47:43 GMT

Please refer to sections 1.03 and 1.06 above.

Subject:  1.15 What is deadbeef?
Date: Tue, 21 Jan 92 09:48:03 GMT

When running the debugger (dbx), you may have wondered what the 'deadbeef'
is you occasionally see in registers.  Do note, that 0xdeadbeef is a hexa-
decimal number that also happens to be some kind of word (the RS/6000 was
built in Texas!), and this hexadecimal number is simply put into unused
registers at some time, probably during program startup.

_____________________________________________________________________________
Subject:  2.   Fortran
Date: Tue, 10 Sep 91 10:00:00 GMT

Not very much input to fortran.  There seem to have been some problems
with floating point handling, in particular floating exceptions, so
input is very wellcome.

Subject:  2.01 I have problems mixing fortran and C code, why?
Date: Tue, 10 Sep 91 10:00:00 GMT

A few routines (the most famous one is getenv) exist in both the fortran
and the C library but with different parameters.  You can therefore not
have a mixed program that call getenv from both C and fortran code.  When
linking a mixed program calling getenv from either, be sure to specify the
correct library first on your command line.  If your main program is fortran
and you call getenv from a C routine, you must therefore add -lc to the
xlf command line for linking.

If you want to call getenv from both C and fortran code in a mixed program,
you need to compile all the fortran code with the -qextname option. This
appends an underscore to all fortran external names and ensures that no
confusion occurs with default C libraries. Of course an underscore should be
added by hand in the C code to the name of all routines which are called
form fortran and to all calls to fortran routines. If you do that, fortran
will call something which appears to C as getenv_ and there will be no
confusion.

Subject:  2.02 How do I statically bind fortran libraries and dynamically
	 bind C libraries?
>From: amaranth@vela.acs.oakland.edu (Paul Amaranth)
Date: Tue, 10 Sep 91 10:00:00 GMT

[ 
  Editors note: Part of this is also discussed above under the C compiler
  discussions, but I felt it was so valuable that I have left it all in.  I've
  done some minor editing, mostly typographical.
]

Original-Subject: AIX 3.1 linker tricks (long)
Newsgroup: comp.unix.aix
Date: 15 Apr 91 20:47:19 GMT

The linker and binder are rather versatile programs, but it is not always
clear how to make them do what you want them to.  In particular, there are
times when you do not want to use shared libraries, but rather, staticly
bind the required routines into your object.  Or, you may need to use
two version of the same routine (eg, Fortran & C).  Here are the results of my
recent experiments.  I would like to thank Daniel Premer and Brad Hollowbush,
my SE, for hints.  Any mistakes or omissions are my own and I have tended to
interchange the terms "linker" and "binder".  These experiments were
performed on AIX 3.1.2.  I would expect most of this to be applicable
to 3.1.3 as well. [And to 3.1.5, ed.]

1)  I have some C programs, I want to bind in the runtime routines.  How
    do I do this? [Mentioned in section 1.04 of this article as well, ed.]

    You can put the -bnso binder command on the link line.  You should
    also include the -bI:/lib/syscalls.exp control argument:
      
      $ cc *.o -bnso -bI:/lib/syscalls.exp -o foo

    This will magically do everything you need.  Note that this will bind
    _all_ required routines in.  The -bI argument tells the linker that
    these entry points will be resolved dynamically at runtime (these are
    system calls).  If you omit this you will get lots of unresolved 
    reference messages.

2)  I want to staticly bind in the Fortran runtime so a) my customers do
    not need to buy it and b) I don't have to worry about the runtime
    changing on a new release.  Can I use the two binder arguments in
    1) to do this?

    You should be able to do so, but, at least under 3002, if you do
    you will get a linker error referencing getenv.  In addition, there
    are a number of potential conflicts between Fortran and C routines.
    The easy way just does not work.  See the section on
    2 stage linking for C and Fortran on how to do this.  The getenv
    problem is a mess, see the section on Comments & Caveats for more.

3)  I have a mixture of C and Fortran routines, how can I make sure
    that the C routines reference the C getenv, while the Fortran routines
    reference the Fortran getenv (which has different parameters and, if
    called mistakenly by a C routine results in a segmentation fault)?

    You can't.  Only one symbol definition is allowed, and it will be the
    _first_ definition on the _last_ link.  Here is the quote from the 
    ld info file:

       In this version of ld, the first definition of each symbol in
       the link takes precedence and is used even if the first reference
       follows the definition.

    The only way I can possibly think of to do this is extremely messy:
    Make the C and Fortran routines separate modules.  Staticly bind them
    with their libraries.  Have them dynamicly call each other.  ech.
    I haven't tried this, however.

    If you want to bind everything together, write yourself an interface
    in one language to use the other's routine.  I did this with getenv
    and it works tolerably well.

4)  I have C and Fortran routines.  I want to bind in the xlf library, while
    letting the rest of the libraries be shared.  How do I do this?

    You need to do a 2 stage link.  In the first stage, you bind in the
    xlf library routines, creating an intermediate object file.  The
    second stage resolves the remaining references to the shared libraries.

    This is a general technique that allows you to bind in specific system
    routines, while still referencing the standard shared libraries.

    Specifically, use this command to bind the xlf libraries to the Fortran
    objects:

       $ ld -bh:4 -T512 -H512 <your objects> -o intermediat.o \
         -bnso -bI:/lib/syscalls.exp -berok -lxlf -bexport:/usr/lib/libg.exp \
         -lg -bexport:<your export file>

    The argument -bexport:<your export file> specifies a file with the
    name of all entry points that are to be visible outside the intermediate 
    module.  Put one entrypoint name on a line.  The -bI:/lib/libg.exp line 
    is required for proper functioning of the program.  The -berok argument 
    tells the binder that it is ok to have unresolved references, at least 
    at this time (you would think -r would work here, but it doesn't seem to).  
    The -bnso argument causes the required modules to be imported
    into the object.  The -lxlf, of course, is the xlf library.

    Then, bind the intermediate object with the other shared libraries in
    the normal fashion:

       $ ld -bh:4 -T512 -H512 <C or other modules> intermediate.o \
         /lib/crt0.o -lm -lc

    Note the absence of -berok.  After this link, all references should
    be resolved (unless you're doing a multistage link and making another
    intermediate).

    NOTE THE ORDER OF MODULES.  This is extremely important if, for example,
    you had a subroutine named "load" in your Fortran stuff.  Putting the
    C libraries before the intermediate module would make the C "load"
    the operable definition, rather than the Fortran version EVEN THOUGH 
    THE FORTRAN MODULE HAS ALREADY BEEN THROUGH A LINK AND ALL REFERENCES 
    TO THE SYMBOL ARE CONTAINED IN THE FORTRAN MODULE.  This can
    be extremely difficult to find (trust me on this one :-)  Is this
    a bug, a feature, or what?
    
    [As mentioned in section 1.03 of this article, it is a feature that you
    can replace individual objects in linked files, ed.]

    The result will be a slightly larger object than normal.  (I say slightly
    because mine went up 5%, but then its a 2 MB object :-)


Comments & Caveats:

   From the documentation the -r argument to the linker should do what
   -berok does.  It does not.  Very strange results come from using the
   -r argument.  I have not been able to make -r work in a sensible manner
   (even for intermediate links which is what it is supposed to be for).
   Note: this is one of the things I gave up on.  I would like to hear
   from anyone with more info on this.

   When binding an intermediate module, use an export file to define the
   entry points you want visible in the later link.  If you don't do this,
   you'll get the dreaded "unresolved reference" error.  Import files name
   entry points that will be dynamically resolved (and possibly where).

   If you are in doubt about what parameters or libraries to link, use the
   -v arg when linking and modify the exec call that shows up into 
   an ld command.  Some thought about the libraries will usually yield an
   idea of when to use what.  If you don't know what an argument is for,
   leave it in.  It's there for a purpose (even if you don't understand it).

   Watch the order of external definitions (ie, libraries) when more than
   one version of a routine may show up, eg "load".  The first one defined
   on the ld command line is the winner.  

   The getenv (and system and signal) problem is a problem that started out
   minor, got somewhat worse in 3003 and, eventually will be correctly fixed.
   Basically, you should extract the 3002 version of these three routines
   from xlf.a before doing the update and save them away, then link these
   routines in if you use these Fortran system services.  


[ Input to this can be mailed to me, or to amaranth@vela.acs.oakland.edu, ed.]

Subject:  2.03 How do I check if a number is NaN?
Date: Tue, 01 Oct 91 11:15:02 GMT
>From: sdl@glasnost.austin.ibm.com (Stephen Linam)

NaN is "Not a Number".  It arises because the RISC System/6000 uses
IEEE floating point arithmetic.

To determine if a variable is a NaN you can make use of the property
that a NaN does not compare equal to anything, including itself.
Thus, for real variable X, use

	IF (X .NE. X) THEN	! this will be true if X is NaN

Floating point operations which cause exceptions (such as an overflow)
cause status bits to be set in the Floating Point Status and Control
Register (FPSCR).  There is a Fortran interface to query the FPSCR,
and it is described in the XLF Fortran manuals -- I don't have
the manuals right here, but look for FPGETS and FPSETS.

I don't know of any tutorials about IEEE Floating Point beyond the
standards themselves:  ANSI/IEEE STD 754-1985 (IEEE Standard for
Binary Floating-Point Arithmetic) and ANSI/IEEE STD 854-1987 (IEEE
Standard for Radix-Independent Floating-Point Arithmetic), both
available from IEEE.  The IBM manual "Risc System/6000 Hardware
Technical Reference - General Information" (SA23-2643) describes what
floating point exceptions can occur and which bits are set in the
FPSCR as a result of those exceptions.
_______________________________________________________________________________
Subject:  3.   The AIX operating system - what is it?
Date: Tue, 10 Sep 91 10:00:00 GMT

This is best answered by reading the text files in /usr/lpp/bos.  The README
file there contains general information and the bsdadm file contains useful
information if you know BSD and/or SystemV.

Subject:  3.01 I am used to Unix systems programming, why should I learn SMIT?
Date: Tue, 10 Sep 91 10:00:00 GMT

Using SMIT is probably very different from your normal way of doing system
administration, but doing it will prove very useful in the long run.  In some
areas, in particular TCP/IP, NFS, etc., you also have the possibility of
doing things the "normal" way, but it is unfortunately difficult to know
exactly when the "normal" way works.  Again, always using SMIT, is probably
your best way to go, even when you have to learn a new tool.

What SMIT actually does is to call a large number of specific tools for
each part of the system administration.  The commands called and the output
they produce are stored in the files smit.script and smit.log in your home
directory.  Looking in smit.script may teach you more about system administra-
tion.

Subject:  3.02 What is the Object Database.
Date: Tue, 10 Sep 91 10:00:00 GMT

The Object Database Manager, ODM, stored in /etc/objrepos, is AIX's way of
storing all the system management information.  Under most circumstances,
only SMIT or the commands SMIT call (see above) should be used to change
the ODM.

A harmless way to look at the ODM is to use odmget <Class> where <Class> is
one of the files in /etc/objrepos.

The very interested user can use the ODM editor to look in detail into the
ODM and even change the ODM.  This is, however, strongly discouraged.
  
Subject:  3.03 How do I get rid of the verbose error messages?
Date: Tue, 10 Sep 91 10:00:00 GMT

Many of the messages from the Unix commands are (will be) available in different
languages.  This is controlled by the LANG environment with the default En_US,
meaning English in the US.  All the default messages have a message number
associated with them, e.g.:

$ cat no-such-file
cat: 0652-050 Cannot open no-such-file.

If you prefer the more normal Unix-looking error message, set your environment
LANG to C, and you will get:

$ cat no-such-file
cat: Cannot open no-such-file.

Subject: *3.04 How do I make an informative prompt in the shell?
Date: Tue, 17 Mar 92 14:49:30 GMT

In the Korn Shell (ksh), the PS1 variable is expanded each time it is printed,
so you can use:

$ myhost=`hostname`
$ PS1='$LOGNAME@$myhost $PWD \$ '

to get, e.g. 

bengsig@ieibm1 /u/bengsig $

In the C-shell, use:

% set myhost=`hostname`
% alias cd 'chdir \!*' > /dev/null; set prompt="$LOGNAME@$myhost $cwd % "'
% cd

to get, e.g.

bengsig@dkunix9 /u/bengsig/aixfaq %

There is no easy solution in the Bourne Shell.  Use the Korn Shell instead.

Subject:  3.05 How do I import an /etc/passwd or /etc/group file from
	 another box?
Date: Tue, 10 Sep 91 10:00:00 GMT

Make sure that you run usrck and pwdck (/etc/passwd) and grpck (/etc/group)
to let AIX work its password/group magic.

Subject: *3.06 How do I put my own text into InfoExplorer?
Date: Mon, 30 Mar 92 09:17:40 GMT

With AIX 3.1, you cannot do it.  AIX 3.2 has a product called InfoCrafter that
allows you to do that.

Subject:  3.07 Who has a termcap/terminfo source for the HFT console?
Date: Tue, 10 Sep 91 10:00:00 GMT

The console used on the RISC System/6000, the PS/2 and the RT can be used
as a terminal on other system with the termcap below.  You can find this and
other termcaps in /lib/libtermcap/termcap.src, including IBM specific ones.
The terminfo sources are stored in /usr/lib/terminfo/*.ti.  This termcap can
also be used from an aixterm window.

hf|hft|hft-c|ibm8512|ibm8513|IBM_High_Function_Terminal:\
	:co#80:li#25:am:ht:\
	:cm=\E[%i%d;%dH:ti=\E[25;1H:te=\E[20h:\
	:nd=\E[C:up=\E[A:do=^J:ho=\E[H:\
	:bs:sf=\E[S:ec=\E[%dX:\
	:cl=\E[H\E[J:cd=\E[J:ce=\E[K:\
	:AL=\E[%dL:DL=\E[%dM:al=\E[L:dl=\E[M:\
	:im=\E[4h:ei=\E[4l:mi:\
	:dm=\E[4h:ed=\E[4l:\
	:so=\E[7m:se=\E[m:ul=\E[4m:ue=\E[m:\
	:md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:\
	:as=^N:ae=^O:sc=\E[s:rc=\E[u:\
	:kl=\E[D:kb=^H:kr=\E[C:ku=\E[A:kd=\E[B:kh=\E[H:\
	:kn#10:k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
	:k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:k0=\E[010q:\
	:is=\Eb\E[m^O\E[?7h:rs=\Eb\E[m^O\E[?7h\E[H\E[J:

Subject:  3.08 How do I put multiple backups on a single 8mm tape?
>From: kerm@mcnc.org (Cary E. Burnette)
Date: Tue, 10 Sep 91 10:00:00 GMT

There are two possible solutions to this, which both use the /dev/rmt0.1
device which is non-rewinding.

SOLUTION #1
-----------

To put multiple backups on a single tape, use /dev/rmt0.1, which is a
no-rewind device, using either rdump or backup (both by name & inode work).
     Using rdump or backup "byinode" both generate the message that
the tape is rewinding but actually do not. This is an example that
would work on my system:

# rsh remote1 -l root /etc/rdump host:/dev/rmt0.1 -Level -u /u
# rsh remote2 -l root /etc/rdump host:/dev/rmt0.1 -Level -u /u
# tctl -f /dev/rmt0.1 rewind       # rewinds the tape

where I am implementing the command from host.
To restore a table of contents of the first I would use 

# restore -f /dev/rmt0.1 -s1 -tv

where the -s1 flag tells restore to go to the first record it comes
across on the tape.
To get the second type in exactly the same once again.
Basically -s(Number) stands for - go to Number record from this spot.
It works pretty well.

If you have any questions or need any further information please let me know.

Mijan Huq
Fusion Research Center
University of Texas at Austin,
huq@hagar.ph.utexas.edu

SOLUTION #2
-----------

I use:
------------------- Dump.sh --------------------
CONTENTSFILE=`date |dd conv=lcase |sed -e 's/19//' |awk '{print $6 $2 $3}'`
set -x
LEVEL=$1
shift

backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /
backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /usr
backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /u
tctl -f /dev/rmt0 rewind

touch /usr/local/dumps/Contents.$CONTENTSFILE
echo "Dumping /" >>/usr/local/dumps/Contents.$CONTENTSFILE
restore -t -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
echo "Dumping /usr" >>/usr/local/dumps/Contents.$CONTENTSFILE
restore -t -q -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
echo "Dumping /u" >>/usr/local/dumps/Contents.$CONTENTSFILE
restore -t -q -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
tctl -f /dev/rmt0 rewind
-----------------------------------------------
I process the table-of-contents first  by a little program that does
common prefix encoding, and then compress.

This gives a able of contents file I can keep on-line until the tape
is reused.

Hope this helps.

	Steve Knodle
	Educational Resources Center
	Clarkson University


Subject:  3.09 Which release of AIX or other products do I have?
Date: Tue, 10 Sep 91 10:34:42 GMT

The command lslpp -h bos.obj will show all lines referring to the BOS, Basic
Operating System.  E.g.:

Option Name          State      Event      Date      Release         User Name

-------------------- ---------- ---------- --------- --------------- ----------
bos.obj              INACTIVE   COMMIT     02/03/90  03.01.0000.0000 root
                     INACTIVE   APPLY      06/25/90  03.01.0000.0001 root
                     INACTIVE   COMMIT     06/25/90  03.01.0000.0001 root
                     INACTIVE   APPLY      11/16/90  03.01.0002.0015 root
                     INACTIVE   COMMIT     11/16/90  03.01.0002.0015 root
		     ACTIVE     COMMIT     05/07/91  03.01.0005.0012 root

gives the history for the BOS lpp.  The last line, column four, tells that
this is release 3.1.5.  (Note that '3' in 3005 has nothing to do with '3' in
3.1.5 - we should stop calling the versions 3005, etc. and call it by its real
version number 3.1.5).

To see a listing of everything installed use lslpp -l '*', then use lslpp with
the -h option as above to get a history of a particular lpp.  Lpp, btw, means
Licensed Program Product.

Here is a description on IBM's release numbering scheme that was mailed to me
(PTF is an abbreviation for Program Temporary Fix):

>From: jswillia@nycvmic2.vnet.ibm.com

The output of lslpp -h bos.obj shows a release number similar to
03.01.0002.0003.

Contrary to your description and some other news items, this should be
referred to as 3.1.2 not 3002. The 3002 numbering is used to indicate
a PTF update tape. There are two types of PTF tapes 300x and 200x.
The 300x tapes are full PTF's to update all previous levels to 3.1.x level
The 200x tapes are incremental tapes and only apply to level 3.1.(x-1),
ie 2004 updates 3.1.3 to 3.1.4 and will not work with 3.1.2 at all,
whereas 3004 would update 3.1.0, 3.1.1, 3.1.2, and 3.1.3 upto level 3.1.4.
The release number is defined as follows, 03.01 is the major release number
shortened to 3.1 and the 0002 in the example is the minor release number.
Major releases are provided with full installable tapes, whereas minor
releases are obtained by applying a PTF update tape to a previous level
as indicated above. The fourth number is used by development and has no
validity(?) outside of developement ( note it may be of interest during
defect resolution ).

Subject: *3.10 Some known problems, telnet, accounting, who
Date: Tue, 17 Mar 92 15:17:16 GMT

There are known problems in telnetd in 3.1.2 and 3.1.3 (the RS/6000 may lock
when telnet'ing to it, use the 3001 telnetd or update to 3.1.5), accounting has
a number of problems, and 'who' often displays entries that do not correspond
to active sessions.

All this refers to release 3.1.2 and 3.1.3

The problem with telnetd seems to be solved in 3005, I do not know about
accounting, but the problem with who is known not to be solved.  The program
below can be used to fix up your /etc/utmp file:

--- cut here ---
#include <sys/types.h>
#include <utmp.h>
#include <fcntl.h>

main ()
{
	int	fd;
	struct	utmp	utmp;

	while (1) {
		if ((fd = open ("/etc/utmp", O_RDWR)) < 0)
			exit (1);

		while (read (fd, &utmp, sizeof utmp) == sizeof utmp) {
			if (utmp.ut_type == USER_PROCESS &&
					kill (utmp.ut_pid, 0) != 0) {
				lseek (fd, - (long) sizeof utmp, 1);
				utmp.ut_type = DEAD_PROCESS;
				write (fd, &utmp, sizeof utmp);
			}
		}
		close (fd);
		sleep (60);
	}
}
--- cut here ---

The program was posted by jfh@rpp386.cactus.org (John F. Haugh).  There
has also been a utmp program posted to comp.sources.unix, volume 25, issue
96 that also works on AIX 3.1.  It was posted by David W. Sanderson
(dws@cs.wisc.edu).

Subject:  3.11 Other hints, fsck of /, X-windows and alt-cntl-backspace
Date: Tue, 10 Sep 91 10:00:00 GMT

- Normally alt-cntl-backspace will kill the X session.  If you add the
  -T option when initializing X, this will not happen.

- You should never run fsck on mounted filesystems, so you need to be in
  maintenance mode to run fsck on the root filesystem:

  1. boot from diskette
  2. select maintenance mode
  3. type /etc/continue hdisk0 exit (replace hdisk0 with boot disk if not
     hdisk0)
  4. fsck /dev/hd4

Subject:  3.12 How do I shrink /usr?
Date: Tue, 10 Sep 91 10:36:10 GMT
>From: mike@bria.UUCP (Michael Stefanik)

[
  Editors note:

  I have not followed this procedure since I have not had the need.  Make 
  sure you backup everything affected, and use at your own risk.   /Bjorn.
]

To "shrink" the /usr filesystem back down to an optimum size,
which could be about 140,000 blocks (70M), take the following steps:

	1. go into maintenance mode using the "/etc/shutdown -Fm"
	   command; wait until the single user message is given
	   by INIT.

	2. backup all of the files in /usr, using the command:

		# find ./usr -print | backup -iqvf /dev/rmt0

	3. unmount the /usr filesystem using the "/etc/umount /usr"
	   command

	   The unmount may fail if you are using the korn or the bourne
	   shell (ksh or sh); if this is the case you can switch to the
	   C shell using the command "exec /bin/csh".  It could also
	   be /usr/lib/errdemon that causes the unmount to fail.

	4. remove the /usr filesystem using the command "rmfs /usr";
	   the filesystem MUST be unmounted in order to do this.
	   the "dspmsg" command will not be found; ignore this error.
	   edit /etc/filesystems, removing the /usr stanzas

        5. Remove the logical volume.

                # rmlv -f hd2

           We want to reuse hd2, since hd2 been hard coded in some scripts.


	6. Create a new hd2 logical volume and create a new filesystem on
	   it. (NNN below is the number of 4M partitions, e.g. 18 for approx
	   70 Mb).

                # mklv -yhd2 -a'e' rootvg NNN

                # crfs -v jfs -dhd2 -m'/usr' -Ayes -prw

	7. mount the new /usr filesystem using the "/etc/mount /usr"
	   command; check it using the "df -v" command.

	8. restore the file using "restore -xqvf /dev/rmt0"

	9. Sync and reboot the system; you now have a smaller /usr
	   filesystem

Subject:  3.13 How do I shrink the default paging space on hd6?
>From: jaime@austin.vnet.ibm.com (Jaime Vazquez)
Date: Tue, 10 Sep 91 10:00:00 GMT

[ Minh Tran-Le <tranle@intellicorp.com> sent me an updated version, ed.]

Procedure:
1. create a paging space to use temporarily
   mkps -a -n -s 20 rootvg  (this is a 20 partition - 80MB - swap space)
2. change characteristics of default paging space device hd6 so it
   is not used at next reboot
   chps -a n hd6
3. Edit /etc/rc.boot4 and change swapon /dev/hd6 to
        swapon /dev/paging00
4. remake the boot filesystem
	bosboot -a
5. shutdown and reboot
6. remove hd6 and create a new hd6 of smaller size
   rmps hd6
   mklv -y'hd6' -t'paging' rootvg 25   (It is IMPORTANT that you reuse the hd6.)
				       (A lot less headaches later on.)
7. Reedit /etc/rc.boot4 so swapon is back to /dev/hd6
8. change current paging device (paging00) so it is inactive
   at next boot
   chps -a n paging00
9. remake again the boot filesystem
	bosboot -a
10. shutdown, reboot, remove paging00
11. current paging space is now reduced

Subject:  3.14 I know neither Unix nor AIX - where do I find more information?
Date: Tue, 10 Sep 91 10:00:00 GMT

Quite a number of questions posted to comp.unix.aix show that AIX is people's
first experience with Unix.  If this is the case with you, you are advised
to look at the other newsgroups in the comp.unix hierarchy, in particular
comp.unix.questions (for basic questions) or comp.unix.wizards (for difficult
questions).  These two groups have a common FAQ posting as well.

If you need information about C programming, try comp.lang.c or comp.std.c,
the latter for Standard ANSI C issues.  comp.lang.c has a FAQ posting.

Subject:  3.15 How do I backup a multi-disk volume group?
Date: Tue, 10 Sep 91 10:00:00 GMT
>From: pack@acd.ucar.edu (Daniel Packman)

[
  Editors note: I have not verified this procedure.  I would actually
  recommend NOT to have one volume group span multiple disks unless you
  really need such big logical volumes.
]

  1. If you have a set of three or more disks in a volume group.
     (typically 3 for 5xx machines with three internal drives)
     (with only two, the procedures outlined here have to be modified
     to ignore the fact that you don't have a quorum in the volume group)

  2. If one drive has failed (usually only one fails at a time :-) )

It is possible to go through a service boot and (if we say the volume
group is called rootvg and one of the 2 good disks on it is called hdisk0):

  importvg -y rootvg hdisk0
  varyonvg -f -n -m1 rootvg

These commands will work, but give error messages.  If you wish to mount
a user filesystem, say /u, that corresponds to logical volume /dev/lv00, then

  mount -f /dev/lv00 /v

will work only if the jfslog, the journaled file system log device is not
on the damaged disk.  If it is, you must (and can in any case) mount the
filesystem read-only:

  mount -f -r /dev/lv00 /v

This crucial and rather obvious point baffled several level 3 support
personnel at Austin as well as myself for almost a week.
Once the file system(s) of interest are available, then they can be saved
to tape for restoration later.  Of course, one can expect only about two
thirds of a filesystem to be recoverable if it spans all 3 physical disks.
One other point to remember is that the standard boot procedure (to be
radically changed in 3.2 AIX I have been told) from floppy includes the
restore command but does not include the backup command.
*******************************************************************************
* If you do not have other RS6000 machines at your site is is imperative that *
* you either build a bootable tape which includes either restore or tar or    *
* cpio (a bootable floppy set will not have enough space) or at the very least*
* copy onto a spare floppy backup, cpio, or tar.  The floppy should be created*
* with backup -ivq so that its contents can be read into the memory resident  *
* system after booting.							      *
*******************************************************************************
All is not lost if tar, cpio or backup are available on an undamaged disk that
can be mounted.  Since tar and cpio are in /bin, they may both very well be
unavailable.

It is a very good idea for those who have tape devices to build a bootable
tape with their desired extra commands in it.  Follow the instructions from
IBM but add your desired commands to the following three files:

    /usr/lpp/bosinst/tape2
    /usr/lpp/bosinst/diskette/boot2
    /usr/lpp/bosinst/diskette/inslist

If you have anything other than a minimum memory configuration, you should
be able to add many commands.

Subject:  3.16 How do I see/change system parameters like number of
	 processes per user?
Date: Tue, 10 Sep 91 10:00:00 GMT

You can use SMIT as described below or simply use the lsattr/chdev pair.  The
former will list the current setting as in:

  # lsattr -E -l sys0 -a maxuproc
  maxuproc 40 Maximum # of processes allowed per user True

and you can then increase the maxuproc parameter:

  # chdev -l sys0 -a maxuproc=200
  sys0 changed

If you just type 'lsattr -E -l sys0' you will get a list of all parameters,
some of which can be changed - others not.

If you want to use smit, this procedure can be followed:

smit
  System Environments and Processes
    Change / Show Operating System Parameters
      - on this screen you can change by overtyping the following fields:
        - Maximum number of PROCESSES allowed per user
        - Maximum number of pages in block I/O BUFFER CACHE
        - Maximum Kbytes of real memory allowed for MBUFS
      - toggle fields exist for:
        - Automatically REBOOT system after a crash  (false/true)
        - Continuously maintain DISK I/O history (true/false)


Subject:  3.17 My /dev/null seems to have disappeared or become a plain
	 file, why?
Date: Tue, 10 Sep 91 10:45:15 GMT

The script /usr/etc/lsnfsexp has a bug in release 3.1.3.  Change line 100 from
  rm -rf ${TMP_FILE} >/dev/null 2>&1 /dev/null
to
  rm -rf ${TMP_FILE} >/dev/null 2>&1

and recreate /dev/null by:

  # mknod /dev/null c 2 2
  # chmod 666 /dev/null

This is fixed in AIX release 3.1.5.

Subject: 3.18 The swapper seems to use extreme amount of paging space, why?
Date: Tue, 05 Nov 91 18:32:58 GMT

When you run ps, you may see a line like:

USER   PID %CPU %MEM    SZ   RSS     TT STAT  TIME CMD
root     0 0.0%  14% 386528  8688      -    S 17:06 swapper

This is normal behavior, the swapper looks to ps like it has the entire
paging space plus real memory allocated.

Subject: *3.19 How much should I trust the ps memory reports?
>From: chukran@austin.VNET.IBM.COM
Date: Fri, 7 Feb 92 14:00:22 CST

Using "ps vg" gives a per process tally of memory usage for each
running process.  Several fields give memory usage in different units,
but these numbers do not tell the whole story on where all the memory goes.

First of all, the man page for ps does not give an accurate description of
the memory related fields.  Here is a better description:

RSS  -  This tells how much RAM resident memory is currently being
used for the text and data segments for a particular process in units
of kilobytes.  (this value will always be a multiple of 4 since
memory is allocated in 4kilobyte pages).

%MEM - This is the fraction of RSS divided by the total size of RAM for
a particular process.  Since RSS is some subset of the total resident
memory usage for a process, the %MEM value will also be lower than
actual.

TRS - This tells how much RAM resident memory is currently being
used for the text segment for a particular process in units
of kilobytes.  This will always be less than or equal to RSS.

SIZE - This tells how much paging space is allocated for this process for
the text and data segments in units of kilobytes.  If the executable file
is on a local filesystem, the page space usage for text is zero.
If the executable is on an NFS filesystem, the page space usage will be
nonzero.  This number may be greater than RSS, or it may not, depending on
how much of the process is paged in.  The reason RSS can be larger is that
RSS counts text whereas SIZE does not.

TSIZ - This field is absolutely bogus because it is not a multiple of
4 and does not correlate to any of the other fields.

These fields only report on a process text and data segments.  Segment
size which cannot be interrogated at this time are:

       Text portion of shared libraries (segment 13)

       Files that are in use. Open files are cached in memory as
       individual segments.  The traditional kernel cache buffer
       scheme is not used in AIX 3.

       Shared data segments created with shmat.

       Kernel segments such as kernel segment 0, kernel extension segments,
       and virtual memory management segments.

Speaking of kernel segments, the %MEM and RSS report for process zero are
totally bogus for AIX 3.1.  The reason why RSS is so big is that the
kernel segment zero is counted twice.  For AIX 3.2, this has been changed,
but the whole story is still not known.  The RSS value for process 0 will
report a very small number of the swapper private data segment.  It does not
report the size of the kernel segment 0, where the swapper code lives.

In summary, ps is not a very good tool to measure system memory usage.
It can give you some idea where some of the memory goes, but it
leaves too many questions unanswered about the total usage.

Subject: 3.20 *How do I do remote backup?
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ


____________________________________________________________________________
Subject:  4.   Public Domain software.
Date: Tue, 10 Sep 91 10:00:00 GMT

There is a lot of interest in PD software, and a number of people have
compiled some of this.  With the increasing interest in the RS/6000,
configuration files, etc. is often seen in PD software or can be obtained
from people who already ported it.

Subject: *4.00 How do I find sources?
Date: Tue, 17 Mar 92 14:49:03 GMT

[
 dick@ccnext.ucsf.edu (Dick Karpinski) asked me to include this 
 information, and he forwarded me an article from jik@MIT.Edu
 (Jonathan Kamens).  Ed.
]

There is a newsgroup devoted to posting about how to get a certain 
source.  It his however strongly urged to follow the guidelines in
the article How_to_find_sources(READ_THIS_BEFORE_POSTING), which you
can get via anonymous ftp from pit-manager.mit.edu (18.172.1.27):

/pub/usenet/comp.sources.wanted/H_t_f_s_(R_T_B_P)

Also available from mail-server@pit-manager.mit.edu by sending a mail message
containing:

send usenet/comp.sources.wanted/H_t_f_s_(R_T_B_P)

Send a message containing "help" to get general information about the
mail server.

If you don't find what you were looking for by following these guidelines,
you can post a message to comp.sources.wanted.

Subject: *4.01 Are there any ftp sites?
Date: Tue, 10 Sep 91 10:00:00 GMT

Here is a list of some sites that are supposed to have RS/6000 specific
software.  I haven't verified all the entries.

aixpdslib.seas.ucla.edu	128.97.2.211	pub
acd.ucar.edu		128.117.32.1 	pub/rs6000         
acsc.acsc.com   	143.127.0.2	pub
byron.u.washington.edu	128.95.48.32	pub/aix/RS6000
cs.utk.edu		128.169.201.1	pub/ibm_rs6000
merit.edu		35.1.1.42	pub/xntp
lightning.gatech.edu	128.61.10.8	pub/aix
tesla.ee.cornell.edu	128.84.253.11	pub
nic.funet.fi 		128.214.6.100	pub/unix/AIX/RS6000

The first one above is dedicated to software running on AIX.  It might
not always be the latest versions of the software, but it has always
been ported to AIX (normally AIX version 3 only).  Once connected,
you should retrieve the files README and pub/ls-lR.

Please note that the last one is in Finland, i.e. in EUROPE!  They are
having much too many people ftp'ing from the US which is hard on the
transatlantic link - further, most of the software it carries has been 
taken from US sites originally.  Therefore, please use this site ONLY
if you are in Europe, preferably only from the northern part of Europe.

Further, haedener@iacrs1.unibe.ch (Konrad Haedener) has an archive on
a system in Switzerland.  Here is his information about the archive:

As previously announced I have opened our machine for anonymous FTP.
I have a small but growing collection of RS/6000 software, i.e.
versions of popular software that should readily compile under AIX 3.1.5.

Contributions are always welcome (please consult the /README file).

This is host iacrs1.unibe.ch (130.92.11.3).

Do remember, that Switzerland is in Europe, i.e. keep the transatlantic
transfers on a minimum.
-- 

Subject:  4.02 GNU Emacs
Date: Tue, 10 Sep 91 10:36:42 GMT
>From: Bill Wohler <wohler@sap-ag.de>

The latest version of GNU Emacs (18.57) has RS/6000 support.  Here are a 
few hints: In the src directory, copy config.h-dist to config.h and make
the following changes:

	o change "s-bsd4-2.h" to "s-aix3-1.h"
	o change "m-vax.h" to "m-ibmrs6000.h"
	o define HAVE_X_WINDOWS
        o define X11
        o define PURESIZE 135000 (120000 is enough without X)
        o if you don't want to compile with debugging information, add:
          #define C_DEBUG_SWITCH
          #define C_OPTIMIZE_SWITCH -O

  Now, run "make" and ignore the sed problems while building
  xmakefile.  

  Emacs will core-dump if it is stripped, so don't strip when you install it.
  You can e.g. edit (a copy of the) Makefile in src replacing all 'install -s'
  with /usr/ucb/install.

Version 19 of emacs will have some more bug-fixes for the RS/6000.

Subject: *4.03 GNU C
Date: Tue, 17 Mar 92 15:16:54 GMT

GNU C version 2.0 supports the the RS/6000, and compiles straight out of
the box.  You may, however, experience that compiling it requires large
amounts of paging space.

Subject:  4.04 perl
Date: Tue, 10 Sep 91 10:41:28 GMT

A diff should have been posted here, but I haven't seen it.  If you use
bsdcc from the bsdport document, say no to use perl's builtin malloc(), and
edit config.H to '#define HAS_SYMLINK', you should be on your way.
Bill Wohler tells me that perl will run without editing config.H and with
cc as well.  So just say no to use perl's malloc().

Doug Sewell <DOUG@YSUB.YSU.EDU> adds:

In addition to not using the perl-provided malloc, when asked if you
want to edit config.sh, change 'cppstdin' from the wrapper-program
to '/lib/cpp'.

The perl wrapper name is compiled into perl, and requires that you keep
that file in the source directory, even if you blow away the rest of
the source.  /lib/cpp will do the job by itself.  I suspect this will
be fixed in perl 4.0pl11 Configure script.

Also, beware if you have gdbm installed per the instructions in the FAQ.
Gdbm is compiled with bsdcc; perl (as I installed it, anyway) was built
with cc, so I used the IBM-provided ndbm routines.

Subject:  4.05 X-Windows
Date: Tue, 10 Sep 91 10:31:00 GMT

Some people from IBM have released patches for the X11R4 distribution
tape available via anonymous FTP from export.lcs.mit.edu. Note that as
with the RT, there is no X11R4 server to build, just the libraries.

IBM will be releasing X11R4 and Motif 1.1 in the future.

Subject:  4.05 X11R5
Date: Tue, 10 Sep 91 10:29:04 GMT
>From: Frederick Staats <fritz@saturn.ucsc.edu>

In mit/config/ibm.cf
	Updated OSName (AIX 3.1.6)

In mit/config/site.def
	Changed ProjectRoot /usr/local/X11R5
	Added ManSuffix (to change suffix from n to 1)
	Added InstallXdmConfig YES and
	InstallXinitConfig YES
	Added HasXdmAuth YES (Copied mit/lib/Xdmcp/Wraphelp.c to source tree)
	Added InstallFSConfig YES

In mit
	nohup make BOOTSTRAPCFLAGS="-Daix" World &
	nohup make install &
	nohup make install.man &

Please note that there are known bugs in Xibm server of the X11R5
release that prevent "xdm" from being usable.  A simple patch (that
I'm not free to redistribute) should be out very soon through the
regular contrib channels.

Also note, that some files in mit/extensions/lib/PEX/c_binding are very
large and are told to require at least 150 Mb paging space to compile.

Apparently, only the Skyway adapter is supported for X11R5.

[the Skyway adapter is "IBM Color Graphics Display Adaptor" in IBM
documents, the "IBM High-Performance N-Bit 3D Color Graphics Processor"
is the Sabine. Ed.]


>From: pierce@claven.cambridge.ibm.com (Andrew Pierce)
Subject: Re: X11R5 & Motif
Date: 10 Sep 91 15:45:50 GMT

The following bugs have been reported with the R5 server and are fixed
(hopefully!), and the fixes have been sent to MIT for inclusion in the
first patch set:

BackingStore does not seem to work (twm menus blank and xman pulldown 
	menus only display once.
Problem in keyclick restoreation/bell
Problem with option parsing (-bs does not turn off backing store).
Problem with setting non-blocking I/O on X Connections 
	(resizing xcalc wedges the server).
xdm core dumps. 

There is also a problem in initializing the display adapter when the R5
	server is brought up from a poweroff condition on the RISC/6000.
	We are still investigating this problem. A temporary workaround is 
	to run the AIX product server first, which seems to do the right 
	thing in initializing the adapter, then run the R5 server.


As for whether the OSF/Motif window manager will work with the R5 server,
I don't know of any reasons why it shouldn't, and I've run it now and again, 
although tvtwm is my preferred wm.

Andy Pierce

Date: Wed, 8 Jan 92 10:47:05 -0700
>From: cary@jove.Colorado.EDU (John R. Cary)
Subject: X11 fonts on RS6000 running AIX3.1.5

There are (at least) three problems.
1)  The fonts as built with
the IBM (Greening) patches of X11R4 do not work with the AIX3.1.5 server
because (according to mleisher@NMSU.Edu) they likely have the wrong
byte order.
2)  The ibm fonts that come
with AIX3.1.5 must be converted to .pcf fonts to work with the X11R5 server.
3)  Info always looks for its fonts (in /usr/lpp/info/X11fonts) regardless
of which server you are using.  So if you use the X11R5 server, info loads
the AIX3.1x .snf fonts, which do not work with the X11R5 server.

Using the X11R5 server (my choice) means that you must fix problems 2 and 3.

My fix of 3:  was simply to rename the info fonts directory so that info
could not find it and load it.  Another fix (I am told) is to set one's
font path with  /usr/lpp/info/X11fonts last so that another fonts is
loaded first.   This did not work for me, perhaps because of differences in
my fonts.alias file.

My fix of 2: I first got snftobdf from the X11 contrib directory on
export.lcs.mit.edu and built it. I then made a directory:
mkdir /usr/local/X11R5/lib/X11/fonts/ibm
which I added to my font path with xset in my .xinitrc file.
Then I constructed the chosen .pcf fonts one at a time:
cd /usr/lib/X11/fonts
snftobdf Rom10.snf | bdftopcf >/usr/local/X11R5/lib/X11/fonts/ibm/Rom10.pcf
I actually did this with this script:

#!/bin/ksh
#  A script to convert desired AIX fonts to .pcf fonts for X11R5
for arg in 6x10 Bld14 Rom14 Rom6 6x12 Bld17 Rom16 Rom7 vtbold 6x13 Erg
14 Rom17 Rom8 vtdhbot 8x13 Itl14 Rom22 cursor vtdhtop 8x13B Rom10 Rom28 fixed vt
dwidth 9x15 Rom11 Rom29 Vtsingle
do

echo "snftobdf $arg.snf | bdftopcf >/usr/local/X11R5/lib/X11/fonts/ibm/$arg.pcf"
snftobdf $arg.snf | bdftopcf >/usr/local/X11R5/lib/X11/fonts/ibm/$arg.pcf

done
----- end of script


If you want to continue using the AIX3.1x server and you want to use the
X11R4 fonts, you must convert these fonts to the correct bit
order.
I did not do this, and so DO NOT KNOW the correct procedure.
I imagine that once the correct bit order is
determined, one can use snftobdf to convert fonts back tobdf format
then bdftosnf with correct AIX3.1. bit order to get things correct with
the aix3.1x server.

Subject:  4.06 bash
Date: Tue, 10 Sep 91 11:28:51 GMT

Bash is ported and has some patches on prep.ai.mit.edu.  If all you want
from bash is the vi or emacs history mechanism, you can just as well use
the Korn Shell, ksh.  Please note that this information is old.  I've heard
of one attempt to port bash 1.08, but I don't have any definate hints yet.

Subject:  4.07 Elm
Date: Fri, 27 Sep 91 13:52:48 GMT

Elm should be pretty straightforward, the only thing to remember is to
link with -lcurses as the only curses/termlib library.  You may also run
into the problem listed under point 1.09 above.

Subject:  4.08 General hints.
Date: Thu, 19 Sep 91 11:07:32 GMT

In general, curses based applications should be linked with -lcurses and
_not_ with -ltermlib.  It has also been reported that compiling with
-DNLS helps curses based progams.

Note that the RS/6000 has two install programs, one System V looking one
in the default PATH (/etc/install with links from /usr/bin and /usr/usg),
and one with BSD behavior in /usr/ucb/install.

Subject:  4.09 Kermit.
Date: Wed, 02 Oct 91 12:24:00 GMT
>From: ge@dutlru2.tudelft.nl (Ge van Geldorp)

The latest (dated Nov 7, 1991) is (alpha) version 5A174, available from
watsun.cc.columbia.edu [128.59.39.2] directory kermit/sw, in file
cku174.tar.Z.  Get it, uncompress, untar, and "make rs6000", and it works.

Subject:  4.10 Gnu dbm
>From: doug@cc.ysu.edu (Doug Sewell)
Date: 29 Sep 91 20:57:55 GMT

Here's the fixes for RS6000's: 

apply this to testgdbm.c:
158c158
<   char opt;
---
>   int opt;
166c166
<   while ((opt = getopt (argc, argv, "rn")) != -1)
---
>   while ((opt = getopt (argc, argv, "rn")) != EOF)

Apply this to systems.h:
111a112,114
> #ifdef RS6000
> #pragma alloca
> #else
112a116
> #endif

To compile, edit the Makefile.  Set CC to bsdcc (see /usr/lpp/bos/bsdport
if you don't have 'bsdcc' on your system) and set CFLAGS to -DRS6000 and
whatever options (-g, -O) you prefer.  Don't define SYSV.

Doug
-- 
Doug Sewell, Tech Support, Computer Center, Youngstown State University
doug@ysu.edu doug@cc.ysu.edu doug@ysub.bitnet uunet!ysu.edu!doug

Subject:  4.11 tcsh
>From: cordes@athos.cs.ua.edu (David Cordes)
Date: Wed, 11 Sep 91 09:42:24 -0500

tcsh : available from telsa.ee.cornell.edu  (pub/tcsh-6.00 directory)
	Compiles with no problems.  You must edit /etc/security/login.cfg
	to permit users to change to this shell (chsh), adding the path
	where the shell is installed (in my case, /usr/local/bin/tcsh).

Subject:  4.12 Kyoto Common Lisp
>From: cordes@athos.cs.ua.edu (David Cordes)
Date: Wed, 11 Sep 91 09:42:24 -0500

kcl : Kyoto Common Lisp.  The sources are available from "cli.com".
	The kcl package is the needed base, then also retrieve the latest
	akcl distribution.  akcl provides a front-end that "ports" the
	original kcl to a number of different platforms.  The port to the
	6000s worked with no problems.  However, you must be "root" for
	the make to work properly with some memory protection routines.

Subject:  4.13 TCL
>From: Doug Sewell <DOUG@YSUB.YSU.EDU>
Date: Wed, 02 Oct 91 12:19:03 EDT

   === building the tcl library ===

First, V3.3 compiled with BSDCC, but tclTest would core-dump.

I retrieved V4.0 from the alt.sources archives, but couldn't get it
to compile on an RS6000, using either the BSD or SYSV versions.

Finally, someone mentioned that Tcl5.0 was available.

I ftp'd sprite.berkeley.edu.  The only version of 'tcl' was 3.3.
The version 5 is a part of 'tk.tar.Z'.  You have to un-tar-Z that
and get tcl 5.0 out of there.

Next, I built it with 'bsdcc' (make "CC=bsdcc").  I had to replace
the provided stdlib.h with the AIX stdlib.h because of some conflicts.
I built tclTest, cd'd to 'tests', ran ../tclTest and entered 'source
all'.

I got an error in file.test when I ran the program as root.  When I
ran it as anyone else, it runs fine - it has something to do with
a file you shouldn't be able to get to, but because I wase root I
could anyway.

I copied tcl.a to /usr/lib/libtcl.a, and put tcl.h into /usr/include.
Your procedures for local libraries and includes may vary.  I also
put tclTest in a public executable directory, since it was a way to
putter with tcl intereactively.

NOTE: since libtcl.a was built with bsdcc, you'll probably have to
use bsdcc to write or support any tcl applications, including expect.

Subject:  4.14 Expect
>From: Doug Sewell <DOUG@YSUB.YSU.EDU>
Date: Wed, 02 Oct 91 12:20:02 EDT
   
To build the command-interpreter version, you must have the tcl
library built successfully.  The expect library doesn't require tcl.
Note: Expect and its library are are built with bsdcc, so applications
using the library probably also need to be developed with bsdcc.

I ftp'd expect from ftp.cme.nist.gov.

You need to change several lines in the makefile.  First you need
to customize source and target directories and files:
#
TCLHDIR = /usr/include
TCLLIB = -ltcl
MANDIR = /usr/man/manl               (local man-pages)
MANEXT = l
BINDIR = /u/local/bin
LIBDIR = /usr/lib
HDIR = /usr/include
...
Next set the compiler, switches, and configuration options:
#
CC = bsdcc
CFLAGS = -O
...
PTY_TYPE = bsd
...
INTERACT_TYPE = select
...
Then you need to make these changes about line 90 or so:
comment out CFLAGS = $(CLFLAGS)
un-comment these lines:
CFLAGS = $(CLFLAGS) $(CPPFLAGS)
LFLAGS = ($CLFLAGS)

Then run 'make'.

You can't run some of the examples without modification (host name,
etc).  I don't remember if I ran all of them or not, but I ran enough
that I was satisfied it worked.
_______________________________________________________________________________

Subject: *5.   Third party products
Date: Tue, 10 Sep 91 10:00:00 GMT

[
 Editors note: Since my company does not use third party hardware, the
 entries in this section are only edited for formatting and for the purpose
 of not being like advertising.					/Bjorn.
]

Some information in here seems rather outdated......

Subject:  5.01 Disk/Tape/SCSI
Date: Tue, 10 Sep 91 10:00:00 GMT
>From: anonymous

- Most SCSI disk drives work (IBM resells Maxtor, tested Wren 6&7 myself)

- Exabyte: Unfortunately only the ones IBM sells are working

- STK 3480 "Summit": Works with Microcode Version 5.2b

Subject:  5.02 Disks.
>From: bowman@uiatma.atmos.uiuc.edu
Date: Tue, 10 Sep 91 10:00:00 GMT

For third-party disks for the RS6000, I can recommend:  Ken Been at
National Peripherals, (708) 325-4151. 

Subject:  5.03 Memory
>From: blain@VM.UoGuelph.CA (Doug Blain)
Date: Tue, 10 Sep 91 10:00:00 GMT

I have received a FAX from Kingston Technologies on SIMM memory upgrades for
the RS6000 (model 320/520 only so far). They are complete replacements for the
installed SIMMs from IBM ( you get to keep the IBM SIMMs and perhaps use them
elsewhere). They have a 16, 32 and 64 MB range of kits. The quoted list prices
are:  16 MB SIMM Kit   $3995
      32 MB SIMM Kit   $8995
      64 MB SIMM Kit  $21,585
   One option they mention in their letter is to purchase an additional memory
card from IBM (type S1 or higher) and populate it with the new memory, since
the RS/6000 will support two memory cards. The list price for the IBM 16mb
SIMMs is $9520 (however our SE is hinting at price reductions of 25% soon).
   Kingston Technologies can be contacted at 714-435-2600. Standard disclaimers
apply...no association, benefits, etc.

Subject:  5.03 Memory
>From: dick@ccnext.ucsf.edu (Dick Karpinski)
Date: Tue, 10 Sep 91 10:00:00 GMT

Dick Verling at 415-381-2081 offers a 64MB upgrade for a bit over $5k.

Subject:  5.04 Others
>From: anonymous
Date: Tue, 10 Sep 91 10:00:00 GMT
       
IBM RISC System/6000 Interface Products

National Instruments Corporation announced April 13 a family of
instrumentation interface products for the IBM RISC System/6000 workstation
family.   The interface family consists of three products that give the RISC
System/6000 connectivity to the standards of VMEbus, VXIbus and GPIB.
For more information, contact National Instruments Corporation, 512-794-0100 or
1-800-433-3488.

Subject: 5.05 *IBM list of third party products
Date: Tue, 12 Nov 91 18:30:33 -0800
>From: marc@ibmpa.awdpa.ibm.com (Marc Pawliger)

[ This entry is not edited in any way.  Ed. ]

Folks-

Here is the November update for the catalog of third-party products for
the Risc System/6000 - disks, tape drives and memory sections.

The same disclaimers I posted the last time I posted this list are there
again - go down a few pages to see them in official-ese.  Also the author
requests that people only contact her via the email address listed here -
bbrett@canvm2.vnet.ibm.com or by fax (416) 941-6013 attn. B. Brett, and
not by phone.

--marc

+  Marc Pawliger    IBM Advanced Workstations Division    Palo Alto, CA   +
|   Internet  marc@ibminet.awdpa.ibm.com        UUCP  uunet!ibminet!marc  |
|    IBMinet  marc@ibmpa.awdpa.ibm.com         phone  (415) 855-3493      |
+       VNET  MARCP at AUSTIN              IBM phone  T/L 465-3493        +


----------


                       THIRD PARTY HARDWARE FOR THE IBM RISC SYSTEM/6000

                                                       November 4, 1991

                                                          Barbara Brett
                                     National Support Centre -- Central
                                                        IBM Canada Ltd.
                                                         CANVM2(BBRETT)
                                                           Internet ID:
                                             bbrett@canvm2.vnet.ibm.com


HOW TO GET THIS DOCUMENT; MAKING CHANGES TO IT
______________________________________________



    IBM CUSTOMERS: Please ask your IBM representative to obtain the latest
    version of this document for you.


    IBM STAFF:

    This document is on the AIXTOOLS disk as part of OEMHW PACKAGE.  To get
    the document on-line, key in

    TOOLS SENDTO YKTVMV TOOLS AIXTOOLS GET OEMHW PACKAGE

    To be sure of getting updates to this document, key in

    TOOLS SENDTO YKTVMV TOOLS AIXTOOLS SUBSCRIBE OEMHW PACKAGE



    COMMENTS, SUGGESTIONS, CORRECTIONS, ADDITIONS

    Your comments, suggestions, and corrections are  welcomed and appreciated.
    If you know of additional products or  dealers that  should be included in
    this document, please include the following information:

        o   Company name, mailing address, telephone and FAX numbers

        o   Product description and function

    Please send your comments, suggestions,  corrections, or additions to your
    choice of the following:

        o   the Internet id bbrett@canvm2.vnet.ibm.com

        o   FAX number  (416)  941-6013  (attention  "B.  Brett  7th
	    floor")

        o   the IBM internal id BBRETT at CANVM2

    or to the mailing address

        Barbara Brett
        IBM Canada 7th floor
        P.O. Box 15, TD Center
        Toronto, Canada M5K 1B1


    DISCLAIMER
    __________


    This document has been developed as a quick reference for non-IBM RISC
    System/6000  hardware   products.  The  material  here   is   based on
    information obtained from the  hardware provider.  No  effort has been
    made  to  independently  verify  the   accuracy  of  the  information,
    including  any  information  relating  to the functions, quality,  and
    performance of the provider's  products  or services  as  well  as the
    availability  date.    The  customer is  responsible  for  determining
    whether any particular provider's  products or  services  are suitable
    for its own needs.

    Prices,  specific hardware or software  requirements  and availability
    dates  may be  obtained   by calling  the  vendor.   (In addition, the
    support provided  may   vary  from vendor  to    vendor).   Individual
    suppliers should be  contacted regarding  such items as  installation,
    support,  education, documentation, maintenance,  and  any other terms
    and conditions.

    This  document     does  not   constitute  an   expressed  or  implied
    recommendation or endorsement by the industry or IBM of any particular
    product,  company  or  technology,    but  is  intended  simply as  an
    information guide that will give a better understanding of the options
    available to  you.  The fact  that a company  does  not appear in this
    book does not imply that it is inferior to those listed.

    IBM takes no responsibility whatsoever  with regard to  the selection,
    performance,  or  use    of   the  products   listed   herein.     All
    understandings,  agreements,  or warranties  must take  place directly
    between the product suppliers and prospective users.

    IBM MAKES NO  WARRANTIES OF ANY  KIND  WITH RESPECT TO THE CONTENTS OF
    THIS DOCUMENT,  THE  PRODUCTS  LISTED HEREIN,  OR THE  COMPLETENESS OR
    ACCURACY  OF  THIS   PUBLICATION.   IBM   SPECIFICALLY  DISCLAIMS  ALL
    WARRANTIES, EXPRESSED  OR IMPLIED, INCLUDING BUT  NOT LIMITED  TO, THE
    IMPLIED WARRANTIES OF  MERCHANTABILITY  AND FITNESS FOR  A  PARTICULAR
    PURPOSE.

    The following terms are trademarks of the IBM Corporation:

    AIX
    IBM
    Micro Channel
    PS/2
    RISC System/6000


DISK DRIVE CONTROLLER ADAPTER
_____________________________

    Please see also listings under "SCSI adapter" for additional
    disk drive controller adapter products.

    CORE INTERNATIONAL, INC.
    7171 North Federal Highway
    Boca Raton, Florida 33487
    Phone (407) 997-6055
    FAX   (407) 997-6009

    The  CNT-ARR  adapter  supports  the  CORE disk array.   The
    CNT-MCK adapter supports two ESDI disk drives and 2 diskette
    drives.


    INTELLIGENT INTERFACE INC.
    2832-C Walnut Avenue
    Tustin, California 92680
    Phone (714) 730-9625
    FAX   (714) 730-7176

    The IX4000 IPI-2 disk controller adapter can have up to 8 MB
    of on-board cache.  This adapter controls a string of up  to
    8  IPI-2  disk  drives,  and supports a maximum IPI transfer
    rate of 27 MB/sec and a maximum Micro Channel bus data  rate
    of 40 MB/sec.


DISK DRIVES
___________

    In  some  cases,  the  vendors  listed below supply only the
    drive itself and not the additional hardware items  required
    to  install the drive inside the RISC System/6000.  Normally
    these additional items are available from the  IBM  Customer
    Service  (hardware  repair)  organization.    An  example of
    additional IBM parts required is given for one of the  disks
    in the Seagate listing below;  the total cost of these parts
    is  usually under $100 US.  It is critical to determine from
    the disk vendor and from IBM Customer Service exactly  which
    additional parts (if any) will be needed.


    MAXTOR CORP.
    211 River Oaks Parkway
    San Jose, California 95134
    Phone (408) 432-1700
    FAX   (408) 432-4239

    In Canada:
    Livewire    Toronto     (416) 798-3410    FAX (416) 798-3391

    o   760 MB unformatted (670 MB formatted)

    STORAGE DIMENSIONS
    2145 Hamilton Avenue
    San Jose, California 95125
    Phone (408) 879-0300
    FAX   (408) 879-9330

    o   100MB and 200MB 3.5-inch drives, SCSI interface

    o   330MB and 665MB 5.25-inch drives, SCSI interface

    SEAGATE TECHNOLOGY
    920 Disk Drive
    Scotts Valley, California 95066
    Phone (408) 438-6550)
        or 1-800-468-3472 (USA only)
    FAX   (408) 438-7852

        Seagate distributor BSM Ltd
            Phone 1-800-888-3475 (USA only)
        Seagate distributor Arrow Electronics, Inc.
	    Headquarters:   Phone (516) 391-1762
	    Mid-America:    Phone 1-800-523-2278
	    Mid-Atlantic:   Phone 1-800-826-6295
	    New York state: Phone 1-800-237-2357
	    Southwest:      Phone 1-800-824-1404
	    S. California:  Phone 1-800-824-4366
	    N. California:  Phone 1-800-325-3329
	    Southeast:      Phone 1-800-241-5840
	    Northwest:      Phone 1-800-851-8880
	    Northeast:      Phone 1-800-382-5713
	    Massachusetts:  Phone 1-800-221-2490
	    Central Canada: Phone 1-800-387-3692
	    Eastern Canada: Phone 1-800-463-5562
	    Western Canada: Phone 1-800-665-7088 (in Vancouver, 421-2499)

	    Dilog       Toronto     (416) 790-0660   FAX  (416) 790-0712
	    		Montreal    (514) 333-7425
	    		Calgary     (403) 278-4550
	    		Ottawa      (613) 596-2790
	    Livewire    Toronto     (416) 798-3410        (416) 798-3391

    o   Seagate Wren VII 1.0 GB (configure as "other SCSI disk")

    o   Seagate Wren 670 MB

    o   Seagate 341.0 MB (12 ms access time)

    o   Seagate Elite ST42400N -- formatted capacity 2.1 GB

    o   Seagate Elite ST41600N -- formatted capacity 1.35 GB

    o   Required IBM parts for installation of Seagate Elite ST41600N:

	    IBM part name         Part number
	    ================      ===========
	    Mounting bracket      58F2847
	    Fan        G1128
	    Bolts (4)  38350
	    Mounting Screw        1621211


    HITACHI AMERICA LTD.
    2000 Sierra Point Parkway
    Brisbane, California 94005-1819
    Phone (415) 589-3900

    o   419 MB 3.5" drive

    o   330 MB, 670 MB 5.25" drives

    NATIONAL PERIPHERALS, INC.
    1111 Pasquinelli Drive, Suite 400
    Westmont, Illinois USA 60558-1272
    Phone (708) 325-4151
    FAX   (708) 325-4230

    National Peripherals Inc. Canada
    Toronto, Ontario
    Phone (416) 323-9781
    FAX   (416) 324-8499


    CAMBEX CORPORATION
    360 Second Avenue
    Waltham, Massachusetts 02154
    Phone (617) 890-6000
    or 1-800-325-5994 (USA only)
    FAX   (617) 890-2899

    Cambex Germany
    Konrad Adenauer Allee 59-61
    6085 Nauheim, Germany
    Phone +49-6152-6001
    FAX   +49-6152-6006

    Cambex  offers  various  disk sizes as part of its CERTAINTY
    disk subsystem line, ranging from 330 MB to 1.4 GB.   Cambex
    also offers RAID technology.


    FUJITSU
    3055 Orchard Drive
    San Jose, California 95134
    Phone 1-800-626-4686 (USA only)
    FAX   (408) 456-0639

        Datalink Corp.
        Minneapolis, Minnesota USA
        Phone (612) 944-3462 or 1-800-448-6314 (USA only)
        FAX   (612) 944-7869

        In Canada:   Phone FAX
        DynaTek     Toronto     (416) 636-3000   (416) 636-3011
        Livewire    Toronto     (416) 798-3410   (416) 798-3391
        Trimension  Toronto     (416) 626-2226
        Vancouver   (604) 594-7240
        Dilog       Toronto     (416) 790-0660   (416) 790-0712
        Montreal    (514) 333-7425
        Calgary     (403) 278-4550
        Ottawa      (613) 596-2790

    Fujitsu drives are available in 350 MB to 2.0 GB formats.


    MDB SYSTEMS, INC.
    1110 West Taft Avenue, Box 5508
    Orange, California 92613-5508
    Phone (714) 998-6900
        or 1-800-637-2028 (inside California)
        or 1-800-556-0222 (USA only)
    FAX   (714) 637-4060

        MDB Systems UK Ltd.
        Intec 2, Wade Road
        Studio 9
        Basingstoke, Hampshire
        RG24 ONE, United Kingdom
        Phone +44 256 464 767
        FAX   +44 256 58748

        MDB Systems, Europe
        17 Avenue Hoche
        2 eme etage cour
        75008 Paris FRANCE
        Phone +33 1 40 76 06 23
        FAX   +33 1 43 59 66 17

	Dilog
	4 Paget Road
	Brampton, Ontario Canada L6T 5G3
	Phone (416) 790-0660   Montreal 333-7425   Calgary 278-4550   Ottawa 596-2790
	FAX   (416) 790-0712

    MDB's  DataShuttle  family of removable, shock-isolated disk
    drives comes in single or dual-drive configurations  and  in
    various disk sizes.


    MICROPOLIS
    21211 Nordhoff Strett
    Chatsworth, California 91311
    Phone (818) 709-3300
    FAX   (818) 709-3396

    Micropolis  offers  disk  drives of varying sizes, including
    1.2 GB.


    MAXIMUM STRATEGY, INC.
    2185 Old Oakland Road
    San Jose, California 95131
    Phone (408) 456-8880
    or 1-800-456-8895 (USA only)
    FAX   (408) 456-8887

    Maximum offers RAID (Redundant Arrays of Inexpensive  Disks)
    storage server systems, including necessary software.  Up to
    43.2  GB  of data storage are spread over up to forty disks.
    Features include parity drives,  hot  standby  drives,  disk
    striping,  and individual power supplies in order to achieve
    fault tolerance.


    PARITY SYSTEMS
    504-A Vandell Way
    Campbell, California 95008
    Phone (408) 378-1000
    FAX   (408) 378-1022

    The  Parity  PS5900  Tower  disk  and  tape   subsystem   is
    expandable  from  4.8  to  39 GB of storage.   The Tower has
    self-contained slide-in drawers that can contain disk,  tape
    (4mm DAT, 8mm, or 1/4 inch streaming), or optical disk.


    TOTAL TEC SYSTEMS
    2 Gourmet Lane
    Edison, NJ 08837-2910 USA
    Phone (908) 906-6500
    FAX   (908) 906-0683


    DICKENS DATA SYSTEMS
    3850 Holcomb Bridge Road
    Suite 230
    Norcross, Georgia 30092
    Phone (404) 448-6177
    FAX   (404) 448-6878

	National Computer Products
	151 Carlingview Drive, Suite 5
	Toronto, Canada M9W 5S4
	Phone (416) 675-0125     Edmonton: 454-7400    Vancouver: 253-3400
	FAX   (416) 675-2519

    Dickens offers 396 MB, 793 MB, and 1.2 GB SCSI disks.


    INTEGRATED COMPUTER EQUIPMENT
    201 Elden Street, Suite #204
    Herndon, Virginia 22070
    Phone (703) 478-9478
    FAX   (703) 478-3361

    This  company  offers  Seagate  and Hewlett-Packard 330MB to
    1.6MB,  5.25-inch,  external  and   internal   drives,   and
    Hewlett-Packard  328MB  and 422MB, 3.5-inch internal drives.
    The   company   also   offers   optical   disks,   monitors,
    X-terminals,  and  various  types  of tape drives, including
    8mm, 3480  cartridge,  9-track,  1/4-inch,  and  DAT  (4mm).
    Availability varies.


    ZWI
    San Jose, California
    Phone (408) 441-0121
    FAX   (408) 441-7174

    ZWI  offers  a  unit  containing  three 1.2 GB drives, power
    supply, and SCSI cable.


    IBIS
    Suite 200, 131 Elden Street
    Herndon, Virginia 22070
    Phone (703) 478-0300
    FAX   (703) 471-5287

    IBIS offers disk tower configurations.


    IMPERIAL TECHNOLOGY, INC.
    831 S. Douglas Street
    El Segundo, California 90245
    Phone (213) 536-0018
    or 1-800-451-0666 (USA only)
    FAX   (213) 536-0124

    The  Mega-RAM SCSI is a solid-state external disk in a 5-1/4
    inch format.  The transfer rate is up to 5.0 MB/sec, and the
    access time is less than 0.12  milliseconds.    Up  to  four
    interface  controllers  allow  up  to four separate hosts to
    have simultaneous access to the data.   Battery  backup  and
    disk  backup  options  are  available.   The MegaRAM-SCSI is
    available in capacities ranging from 16 MB to 320 MB.


    STORAGE CONCEPTS, INC. (SCI)
    1622 Deere Avenue
    Irvine, California 92714
    Phone (714) 852-8511
    or 1-800-525-9217 (USA only)
    FAX   (714) 557-5064

	Storage Concepts Europe
	649 London Road
	High Wycombe, England HP11 162
	Phone +44-494-442-202

    Storage Concepts' Matrix Array RAID storage susbsystems come
    with IBM SCSI-1 or SCI's SCSI-2 Micro Channel  Host  adapter
    connections.  Up to 100 GB of data storage can be configured
    using  from  2  to  72 drives.   SCI's software is fully AIX
    file-system  compatible  with  block  mode  or  raw   device
    drivers.   SCI's product is offered in rackmount or deskside
    versions with  SCSI-2  interface  and  protocol.    Features
    include  safe  disk  (parity), "hot swap" drive replacement,
    and an optional fast data bus connection for high-speed disk
    to real-time applications.


    DYNATEK
    15 Tangiers Road
    Toronto, Canada
    Phone (416) 636-3000
    FAX   (416) 636-3011

    BOX HILL SYSTEMS CORPORATION
    !    161 Avenue of the Americas
    New York, NY 10013
    Phone (212) 989-4455
    or 1-800-727-3863 (USA only)
    FAX   (212) 989-6817
    Email: sales@boxhill.com

    The  FileBox jukebox is designed for unattended file storage
    and backup.  It can support up to 8 GB of SCSI disk  and  48
    GB  of auto-loading 4mm tape backup.  The FileBox includes a
    media changer, eliminating the  need  for  an  operator  for
    manual  daily  tape  changing,  and  software for unattended
    local and remote backups.


    RISQ TECHNOLOGY
    17526 B Von Karmen
    Irvine, California 92714
    Phone (714) 474-7060
    FAX   (714) 863-7022

    This company's high capacity storage subsystems include hard
    disk, optical disk, and 4mm tape.  Capacity ranges from  300
    MB to 8 GB.


    MESA TECHNOLOGY CORPORATION
    9720 Patuxent Woods Drive
    Columbia, Maryland 21046 USA
    Phone (301) 720-5000
    or 1-800-888-0567 (USA only)
    FAX   (301) 290-9172

    Mesa  is  a distributor of HP 3 1/2-inch and 5 1/4-inch disk
    drives  in  various  configurations,  including   removable,
    non-removable,  desktop,  zero  footprint,  rack  mount, and
    free-standing floor models.


    COMPUTER MARKETPLACE
    205 East 5th Street
    Corona, California
    Phone (714) 735-2102
    FAX   (714) 735-5717

    Computer Marketplace sells new and used memory, disk drives,
    parts, add-ons of various kinds, and maintenance  parts  for
    the RISC System/6000.  Availability varies.

    ANDATACO COMPUTER PERIPHERALS
    9550 Waples Street
    San Diego, California 92121
    Phone (619) 453-9191
    or 1-800-334-9191 (USA only)
    FAX   (619) 453-9294

    This  company  distributes workstations, disk, tape, memory,
    X-terminals,  terminal  servers,   serial   port   expansion
    systems,   and   modems.      Andataco  offers  support  and
    integration services, and represents Exabyte,  Maxtor,  NCD,
    RDI, Seiko, Telebit, Xylogics, and other vendors.


    COMPUTER UPGRADES CORPORATION
    9400 North Central Expressway, Glen Lakes Towers, Suite 220
    Dallas, Texas 75231
    Phone (214) 369-1495
    FAX   (214) 696-6543

    CUC provides peripheral products such as memory, disk, tape,
    and printers (including laser printers).



DISK DRIVES -- DEVICE DRIVERS FOR OTHER DISK DRIVES
___________________________________________________


    Chantal Systems Corporation
    6265 Greenwich Drive
    San Diego, CA 92122-3982 USA
    Phone (619)-452-0975
    FAX   (619)-452-1007

    Chantal  has  a  software  product,  "CornerStone," which is
    package of device drivers for tape drives (such  as  Exabyte
    8mm,  DAT,  1/4 inch, 1/2 inch, etc), disk drives (3.5 inch,
    5.25 half/full height, 8 inch, etc), optical drives  (Ricoh,
    Sony, Summus, MaxOptix, etc), and WORM drives (LMSI, Maxtor,
    Ricoh, etc).  Expected availability is fourth quarter 1991.



SCSI ADAPTER
____________


    CSM, INC.
    211 North El Camino Real
    Encinitas, California 92024
    Phone (619) 944-1228
    FAX   (619) 942-5447

    The  CSM105  is  a 16-bit adapter capable of up to 4 MB/sec.
    Up to 8 SCSI devices may be attached to one card.


    BUSTEK CORPORATION
    2255-G Martin Avenue
    Santa Clara, California 95050
    Phone (408) 492-9090
    FAX   (408) 492-1542

    The BT-640A is a 32-bit adapter supporting one SCSI diskette
    drive and two SCSI disks.



TAPE -- DEVICE DRIVERS
______________________


    CHANTAL SYSTEMS CORPORATION
    6265 Greenwich Drive
    San Diego, CA 92122-3982 USA
    Phone (619) 452-0975
    FAX   (619)-452-1007

    Chantal  has  a  software  product,  "CornerStone," which is
    package of device drivers for tape drives (such  as  Exabyte
    8mm,  DAT,  1/4 inch, 1/2 inch, etc), disk drives (3.5 inch,
    5.25 half/full height, 8 inch, etc), optical drives  (Ricoh,
    Sony, Summus, MaxOptix, etc), and WORM drives (LMSI, Maxtor,
    Ricoh, etc).  Expected availability is fourth quarter 1991.


    DICKENS DATA SYSTEMS
    3850 Holcomb Bridge Road
    Suite 230
    Norcross, Georgia 30092
    Phone (404) 448-6177
    FAX   (404) 448-6878

	National Computer Products
	151 Carlingview Drive, Suite 5
	Toronto, Canada M9W 5S4
	Phone (416) 675-0125     Edmonton: 454-7400    Vancouver: 253-3400
	FAX   (416) 675-2519

    Dickens  provide  individual device drivers for various tape
    products.


    INTEGRATED COMPUTER EQUIPMENT
    201 Elden Street, Suite 204
    Herndon, Virginia 22070
    Phone (703) 478-9478
    FAX   (703) 478-3361

    Integrated Computer Equipment  offers  "March",  backup  and
    archive  software  that  includes device drivers for various
    tape drives (8mm, 4mm DAT, 1/4-inch cartridge, 9-track).


    DATALINK CORPORATION
    7423 Washington Avenue South
    Minneapolis, Minnesota USA 55439
    Phone (612) 944-3462
    FAX   (612) 944-7869

    Datalink offers device drivers for various  models  of  8mm,
    4mm   DAT,   1/4-inch   cartridge,   and   1/2-inch  9-track
    reel-to-reel tape drives.


    ICE COMMUNICATIONS, INC.
    131 Elden Street, Suite 200
    Herndon, VA 22070 USA
    Phone (703) 478-0309
    FAX   (703) 471-5287

    ICE  Communications  offers  device drivers for various tape
    drive types, including  3480-compatible,  9-track  1/2-inch,
    8mm, and 4 mm DAT.


MEMORY
______


    In  some cases, the companies listed below offer only memory
    SIMMS and not the  entire  memory  card.    In  such  cases,
    customers  must  buy or already have an IBM RISC System/6000
    memory  card,  strip  off  the  IBM  SIMMS,  and  apply  the
    third-party SIMMS.

    KINGSTON TECHNOLOGY
    17600 Newhope St.
    Fountain Valley, Ca. 92708
    Phone (714) 435-2600
    or 1-800-835-2545 (USA only)
    Fax   (714) 435-2699

    Kingston memory can be purchased only through distributors such as:

	Distributor    Location         PhoneFAX
	------------   --------------   --------------  ----------------
	Sigma Data     New Hampshire    (603) 526-6909  (603) 526-6915
	or (800) 446-4525 (USA only)
	Impediment     Massachusetts    (617) 837-8877
	Ingram         USA   (800) 456-8000 ext 43 (USA only)
	SEI Connecticut      (203) 481-5562
	Sophisticated  Washington State (206) 485-7979  (206) 485-7172
	or (800) 827-4669 (USA only)
	Dynatek        Toronto, Canada  (416) 636-3000  (416) 636-3011
	Trimension     Toronto, Canada  (416) 629-2226
	Trimension     Vancouver, Can.  (604) 594-7240


    CASTLE ROCK INC. formerly Australasian Memory
    805 University Ave, Suite H
    Los Gatos, California 95030
    Phone (408) 883-1642
    Fax   (408) 883-1643


    CLEARPOINT
    35 Parkwood Drive
    Hopkinton, MA 01748 USA
    Phone (508) 435-2000
       or 1-800-253-2778 (USA only)
    FAX   (508) 435-7530
    
        Clearpoint Europe, B.V.
        Intexo Building, Hoeksteen 26
        2132 MS Hoofddorp, THE NETHERLANDS
        Phone +31-20-6540-250
        FAX   +31-20-6540-259
    
        Clearpoint House, Whittle Parkway
        Slough, Berkshire
        SL1 6DQ UNITED KINGDOM
        Phone +44-628-667-823
        FAX   +44-628-667-915
    
        Centre d'affaires AX-INNOV Clearpoint
        Immeuble Maradas, 1 Bd de l'oise
        95030 CERGY-PONTOISE Cedex   FRANCE
        Phone +33-1-34-22-30-30
        FAX   +33-1-34-69-60-27
    
        Clearpoint Research GmbH
        Bretonischer Ring 11
        8011 Grasbrunn Munich GERMANY
        Phone +49-89-460-1055
        FAX   +49-089-469-359
    
        Clearpoint
        65 Hapsiga Street
        Bayit V'Gan, Jerusalem, ISRAEL
        Phone +972-2-430-363
        FAX   +972-242-4025
    
        Clearpoint Japan KK
        ABS Building, 2-4-16 Kudan Minami
        Chiyoda-Ku, Tokyo, JAPAN 102
        Phone +813-3221-9726
        Phone +813-3221-9734
    
        North American Distributors:        Phone   FAX
          Dickens Data      Norcross, GA    (404) 448-6177     (404) 448-6878
          Peripheral Dev.   Medfield, MA    (508) 359-2423     (508) 359-2548
          Clearpoint        Toronto, Canada (416) 620-7242     (416) 620-7245
          Livewire          Toronto, Canada (416) 798-3410     (416) 798-3391
          Dilog  Toronto, Canada (416) 790-0660     (416) 790-0712
      Montreal 333-7425
      Calgary  278-4550
      Ottawa   596-2790
          Que Computer      Vancouver, BC   (604) 681-3157     (604) 669-6968
    
    
    DATARAM
    Phone (609) 799-0071
       or 1-800-822-0071 (USA only)
    FAX   (609) 799-6734
    
       Dataram U.K.
       Phone (0628) 474-815
       FAX   (0628) 473-033
    
       Canadian distributor: Trimension Systems
       Phone (416) 629-2226  Mississauga, Ontario
       Phone (604) 594-7240  Vancouver, B.C.
    
    Dataram's  DR-6000S  memory  boards  come  in 16 MB or 64 MB
    versions.
    
    
    CAMBEX CORPORATION
    360 Second Avenue
    Waltham, Massachusetts 02154
    Phone (617) 890-6000
       or 1-800-325-5994 (USA only)
    FAX   (617) 890-2899
    
       European Sales Office:
       Cambex Germany
       Konrad Adenauer Allee 59-61
       6085 Nauheim, Germany
       Phone +49-6152-6001
       FAX   +49-6152-6006
    
    Cambex  memory  upgrades are available in either 16 MB or 32
    MB versions, and include an  anti-static  wristband  and  an
    installation manual.
    
    
    CAMINTONN CORPORATION
    22 Morgan Street
    Irvine, California 92718
    Phone (714) 454-6500
       or 1-800-843-8336 (USA only)
    FAX   (714) 454-6599
    
    
    SYS-COM
    18720 Oxnard Street, #102
    Tarzana, California 91356
    Phone (818) 343-3066
    FAX   (818) 343-1436
    
    Sys-Com  distributes  memory  kits  manufactured  by Enhance
    Memory Products.  The kits are available in 16MB, 32MB,  and
    64MB versions.
    
    
    ADVANCED MICROCOMPUTER SYSTEMS, INC.
    1321 NW 65th Place
    Fort Lauderdale, Florida 33309
    Phone (305) 975-9515
       or 1-800-972-3722 (USA only)
    FAX   (305) 975-9698
    
    
    ANTEL
    625 Digital Drive, Suite 107
    Plano, Texas 75075
    Phone (214)-867-0000
       or 1-800-726-2683 (USA only)
    FAX   (214) 867-0897
    
    
    SOPHISTICATED CIRCUITS
    19017 120th Avenue N.E., Suite 106
    Bothel, Washington 98011
    Phone (206) 485-7979
       or 1-800-827-4669 (USA only)
    FAX   (206) 485-7172
    
    
    INTEGRATED COMPUTER EQUIPMENT
    201 Elden Street, Suite #204
    Herndon, Virginia 22070
    Phone (703) 478-9478
    FAX   (703) 478-3361
    
    This  company  offers  disk drive subsystems, optical disks,
    monitors, X-terminals, memory, and  various  types  of  tape
    drives including 8mm, 3480 cartridge, 9-track, 1/4-inch, and
    DAT (4mm).  Availability varies.
    
    
    COMPUTER MARKETPLACE
               205 East 5th Street
               Corona, California
               Phone (714) 735-2102
               FAX   (714) 735-5717
    
               Computer Marketplace sells new and used memory, disk drives,
               parts,  add-ons  of various kinds, and maintenance parts for
               the RISC System/6000.  Availability varies.
    
    
    ANDATACO COMPUTER PERIPHERALS
    9550 Waples Street
    San Diego, California 92121
    Phone (619) 453-9191
       or 1-800-334-9191 (USA only)
    FAX   (619) 453-9294
    
    This company distributes workstations, disk,  tape,  memory,
    X-terminals,   terminal   servers,   serial  port  expansion
    systems,  and  modems.     Andataco   offers   support   and
    integration  services,  and represents Exabyte, Maxtor, NCD,
    RDI, Seiko, Telebit, Xylogics, and other vendors.
    
    
    COMPUTER UPGRADES CORPORATION
    9400 North Central Expressway, Glen Lakes Towers, Suite 220
    Dallas, Texas 75231
    Phone (214) 369-1495
    FAX   (214) 696-6543
    CUC provides peripheral products such as memory, disk, tape,
    and printers (including laser printers).

       
_______________________________________________________________________________

Subject:  6.   Third party software
Date: Tue, 17 Mar 92 15:23:12 GMT

This is a new section.

Subject: *6.01 C++ compilers
Date: Tue, 17 Mar 92 15:23:31 GMT

There are two software vendors providing C++ compilers, Glockenspiel and
Greenhiils.  Further, IBM has announced its own C++ which will be available
in April.
_______________________________________________________________________________

Subject:  7.   Miscellaneous other stuff
Date: Tue, 01 Oct 91 11:08:23 GMT

Subject:  7.01 Can I get support by email?
Date: Tue, 01 Oct 91 11:11:18 GMT
>From: jerome%aixserv@uunet.UU.NET

  [ Note, this service is available to US domestic customers only.  Ed. ]

DATE: 5/10/91

SUBJECT: This note is to announce the general availability of AIXServ.

DESCRIPTION:
AIXServ is a project that allows users connected to the Internet and
Usenet to report AIX software defects to the AIX Support Center using
electronic mail.

AIXServ is one component of the Electronic AIX Support Environment (EASE).
AIXServ has been in beta test mode for over five months and the project
has received very favorable response from testers.

Currently, AIXServ users can submit a bug report to open a Problem
Record, update the Problem Record and request copies of their Problem
Records.

LIMITATIONS:
At this time, AIXServ is only available for use by U.S. domestic customers.

ADDITIONAL INFO:
To start using AIXServ, the user needs to get the "AIX Service Package".
This package is available free of charge to all U.S. domestic AIX users
with a valid customer number.  To request the package, just send a note
with a subject line of "package" to one of the following E-mail addresses.

              Internet:  aixbugs%aixserv@uunet.UU.NET
                Usenet:  ...!uunet!aixserv!aixbugs
 austin.ibm.com domain:  aixbugs@ease.austin.ibm.com

If more information is required, please contact Jerome Park, the
administrator for AIXServ at the signature section below.

*******************************************************************************
Jerome Park              | Austin  |   VNET:      PARK at AUSVMQ
IBM Corp.                | A I X   |   Usenet:    uunet!aixserv!jerome
11400 Burnet Rd Zip 2900 | Support |   Internet:  jerome%aixserv@uunet.UU.NET
Austin, TX 78758         | Center  |   Austin TR: jerome@logique.austin.ibm.com
*******************************************************************************

Subject:  7.02 Some RS232 hints.
>From: graeme@ccu1.aukuni.ac.nz
Date: Fri, 13 Sep 91 21:37:41 NZT

Q: How do you connect a terminal to the RS232 tty ports when not using the
   standard IBM cable & terminal transposer?
A: 1- Connect pins 2->3, 3->2, 7->7 on the DB25's
   2- On the computer side, loop pins 8->20 (DCD & DTR)

When booting from diskettes, the port speed is always 9600 baud. If you use
SMIT to set a higher speed (38400 is nice) for normal use, remember to
reset your terminal before booting.

Q: How do you connect a printer to the RS232 tty ports
A: 1- Connect pins 2->3, 3->2, 7->7 on the DB25's
   2- On the computer side, loop pins 4->5 (CTS & RTS)

Subject:  7.03 VT100 keybindings for aixterm
Date: 3 Oct 91 07:46:39 GMT
>From: haedener@iac.unibe.ch (Konrad Haedener)

Add this to your .Xdefaults file and start your VAX session with
'aixterm -v -name vt100 -e telnet MYVAXHOST'

-----
vt100.foreground: Wheat
vt100.background: MidnightBlue
vt100.font: Rom14.500
vt100.geometry: 80x25+0+0
vt100.vt102: true
vt100.fullcursor: false
vt100.pointerColor: coral
vt100.cursorColor: gray100
vt100.translations:    <Key>F1: string(0x1b) string("OP") \n\
                       <Key>F2: string(0x1b) string("OQ") \n\
                       <Key>F3: string(0x1b) string("OR") \n\
                       <Key>F4: string(0x1b) string("OS") \n\
                       <Key>KP_0: string(0x1b) string("Op") \n\
                       <Key>KP_1: string(0x1b) string("Oq") \n\
                       <Key>KP_2: string(0x1b) string("Or") \n\
                       <Key>KP_3: string(0x1b) string("Os") \n\
                       <Key>KP_4: string(0x1b) string("Ot") \n\
                       <Key>KP_5: string(0x1b) string("Ou") \n\
                       <Key>KP_6: string(0x1b) string("Ov") \n\
                       <Key>KP_7: string(0x1b) string("Ow") \n\
                       <Key>KP_8: string(0x1b) string("Ox") \n\
                       <Key>KP_9: string(0x1b) string("Oy") \n\
                       <Key>KP_Divide: string(0x1b) string("OQ") \n\
                       <Key>KP_Multiply: string(0x1b) string("OR") \n\
                       <Key>KP_Subtract: string(0x1b) string("OS") \n\
                       <Key>KP_Add: string(0x1b) string("Om") \n\
                       <Key>KP_Enter: string(0x1b) string("OM") \n\
                       <Key>KP_Decimal: string(0x1b) string("On") \n\
                       <Key>Next: string(0x1b) string("Ol") \n\
                       <Key>Left: string(0x1b) string("OD") \n\
                       <Key>Up: string(0x1b) string("OA") \n\
                       <Key>Right: string(0x1b) string("OC") \n\
                       <Key>BackSpace : string(0x7f) \n\
                       <Key>Down: string(0x1b) string("OB")

You should also add

XENVIRONMENT=$HOME/.Xdefaults
export XENVIRONMENT

to your .profile.

Subject: *8.   How do I get this by mailserver or ftp?
Date: Mon, 30 Mar 92 09:24:09 GMT

First, since the articles are crossposted to news.answers, any archive
carrying that newsgroup will also have these articles.

You may also try TECHNION.BITNET as described here:
 
The files are stored on  LISTSERV@TECHNION.BITNET. They can be retrieved
by the "traditional" LISTSERV way and by Anonymous FTP.
 
To get a  file, send a GET  filename filetype command to  the LISTSERV .
Assume one wants the file AIX-FAQ 07, then:
 
    On BITNET, one can send an interactive message, for example from
    a VM/CMS system:   TELL LISTSERV AT TECHNION GET AIX-FAQ 07
 
    Or send mail to LISTSERV@TECHNION with no subject and a command
    line:   GET AIX-FAQ 07
 
    "outside" BITNET, send mail to LISTSERV@TECHNION.TECHNION.AC.IL
     with the command:    GET AIX-FAQ 07
 
    If your mailer has trouble reaching that address, try sending the
    command to: LISTSERV%TECHNION@TAUNIVM.TAU.AC.IL
 
    If you can't manage with anything except "bang" addresses, try:
       ...!uunet!pucc.princeton.edu!technion!listserv
 
Notes:
 
LISTSERV commands are case insensitive, I  used upper case only in order
to emphasize the commands.
 
To see  the list of files,  one has to  send a different command  to the
same addresses as above: INDEX AIX-IL .  (I stored the files as a subset
of my low-volume AIX-IL - AIX in Israel list).
 
To  get  a file  using  anonymous  ftp, ftp  to  technion.technion.ac.il
(132.68.1.6), login as anonymous, then cd aix and now you are located at
the AIX-FAQ "area", ready to get files.




_______________________________________________________________________________
Subject: Contributors
Date: Tue, 10 Sep 91 10:32:08 GMT

The following persons have been contributing to this list.  If you want
to contribute anonymously, just let me know - but do tell me who you are.
Some of those mentioned below, are included since I have used parts of
their own postings to this newsgroup, i.e. they have not specifically mailed
comments to me.

Thank you all, this would definitely not be the same without _your_ input.

Rudy Chukran			<chukran@austin.VNET.IBM.COM>
Christopher Carlyle O'Callaghan	<asdfjkl@wam.umd.edu>
Poul-Henning Kamp		<phk@data.fls.dk>
Richard Wendland                <richard@praxis.co.uk>
Ge van Geldorp			<ge@dutlru2.tudelft.nl>
Chris Jacobsen			<jacobsen@sbhep2.phy.sunysb.edu>
Peter Jeffe			<peter@ski.austin.ibm.com>
Jean-Francois Panisset		<panisset@thunder.mcrcim.mcgill.edu>
John Cary			<cary@boulder.colorado.edu>
Vijay Debbad			<vijay@ingres.com>
Dick Karpinski			<dick@ccnext.ucsf.edu>
Konrad Haedener			<haedener@iac.unibe.ch>
Doug Sewell			<DOUG@YSUB.YSU.EDU>
David Cordes			<cordes@athos.cs.ua.edu>
Graeme Moffat			<g.moffat@aukuni.ac.nz>
Andrew Pierce			<pierce@claven.cambridge.ibm.com>
Stephen Linam			<sdl@glasnost.austin.ibm.com>
Jerome Park			<jerome%aixserv@uunet.UU.NET>
Konrad Haedener			<haedener@iacrs1.unibe.ch> 
Steve Roseman			<lusgr@chili.CC.Lehigh.Edu>
John Burton			<burton@asdsun.larc.nasa.gov>
Thierry Forveille		<FORVEILL@FRGAG51.BITNET>
Joubert Berger			<afc-tci!joubert>
Minh Tran-Le			<tranle@intellicorp.com>
Paul Amaranth			<amaranth@vela.acs.oakland.edu>
Mark Whetzel			<markw@airgun.wg.waii.com>
				<jswillia@nycvmic2.vnet.ibm.com>
Daniel Packman			<pack@acd.ucar.edu>
Ken Bowman			<bowman@uiatma.atmos.uiuc.edu>
Doug Blain			<blain@VM.UoGuelph.CA>
Cary E. Burnette		<kerm@mcnc.org>
Christophe Wolfhugel		<wolf@grasp1.univ-lyon1.fr>
Leonard B. Tropiano		<lenny@aixwiz.austin.ibm.com>
Bill Wohler			<wohler@sap-ag.de>
James Salter			<jsalter@ibmpa.awdpa.ibm.com>
Witold Jan Owoc			<witold@enme.ucalgary.ca>
Marc Kwiatkowski		<marc@ultra.com>
Ronald S. Woan			<woan@austin.vnet.ibm.com>
Mijan Huq			<huq@hagar.ph.utexas.edu>
Herbert van den Bergh		<hbergh@nl.oracle.com>
Michael Stefanik		<mike@bria.UUCP>
John F. Haugh			<jfh@rpp386.cactus.org>
Ed Kubaitis			<ejk@ux2.cso.uiuc.edu>
Jaime Vazquez			<jaime@austin.vnet.ibm.com>
Bjorn Engsig			<bengsig@oracle.com>

Subject: Epilogue
Date: Tue, 10 Sep 91 10:00:00 GMT

- If you have any comments to this list, please mail them to me, as I will not
  guarantee to pick up posted changes.  I do not have a predetermined update
  rate, but the expiration date is set about two months ahead.  When you mail
  stuff, please change the Subject: line so it doesn't just say "Re: Frequently
  ....".

- I hate non-domain addresses.  If I try to mail to joesmachine!joe and it
  bounces, I don't care, don't try any uucp path, and don't ask in posting
  "where is joe".  At least, I expect reliable From: or Reply-To: addresses.

- If you want me to mail a copy of this list, let me know, but please
  try the mailserver (or anonymous ftp) described in section 8 above.

- All input must be E-mailed to me at any of the addresses bengsig@oracle.com
  or bengsig@dk.oracle.com on the Internet.  If you insist on using a uucp
  address you can use uunet!oracle!bengsig.

- I do not have easy access to anonymous ftp.

- I am not working for IBM, and I am actually not paid to do this.  I am
  in particular not paid to answer questions that should be asked to IBM.
  If you have any problems, please ask IBM or post your questions to this
  newsgroup.  I might respond to the latter.

- I am working for Oracle, but I am actually not paid to do this:-)  I'm
  sorry, but I will not respond to any Oracle questions, neither to Oracle
  on the RS/6000 nor to Oracle in any other contexts.  I do occasionally
  respond to questions posted in comp.databases and comp.databases.oracle,
  but don't rely on this.

Subject: Trademarks etc.
Date: Tue, 10 Sep 91 10:00:00 GMT

IBM is a registered trademark and InfoExplorer, RISC System/6000, AIX, PS/2,
and RT are trademarks of International Business Machines Corporation.  RS/6000
is not an official abbreviation of RISC System/6000, but I have used it 
throughout.

NFS is a trademark of Sun Microsystems.
UNIX is a registered trademark of UNIX System Laboratories, Inc.
-- 
Bjorn Engsig    -    ORACLE Corporation.             | Editor of FAQ-list
Internet: bengsig@oracle.com, uunet!oracle!bengsig   | for comp.unix.aix
Private : bjorn@login.dkuug.dk.