[mod.computers.sun] SUN-Spots Digest, v5n6

Sun-Spots-Request@RICE.EDU.UUCP (03/24/87)

SUN-SPOTS DIGEST          Monday, 23 March 1987         Volume 5 : Issue 6

Today's Topics:
        hack for cleaning utmp and suntools leftovers (very long)
                            Hoops announcement
                          blinking disk blocks?
                 Drivers for Burr-Brown a/d, d/a boards?
            Wanted: Meeting Reminder Software (sun or c srcs)?
                        Sunview questions? (long)
                  Video cable extension on Sun III 160?
                            yp slave servers?
                 fast floating point code for 68008 cpu?
                Addressing Very Large Framestores on Sun?
                         Sun-2 ethernet problem?

------------------------------------------------------------------------
Date: Sat, 7 Mar 87 01:35:32 MST
From: hi!josh@hc.dspo.gov (Josh)
Subject: hack for cleaning utmp and suntools leftovers (very long)

The following is a overnight hack to clean out utmp
 entries that have been left behind by suntools.  It is
 dirty and ugly and should have been done MUCH better but
 at the time I was not as clean a programmer as I am now.. :-)

			--Josh Siegel

P.S.  Is their a account called scimitar their?  If so,
	give them a buzz....

----
#	This is a shell archive.
#	Remove everything above and including the cut line.
#	Then run the rest of the file through sh.
-----cut here-----cut here-----cut here-----cut here-----
#!/bin/sh
# shar:	Shell Archiver
#	Run the following text with /bin/sh to create:
#	rename
# This archive created: Sat Mar  7 01:33:29 1987
echo shar: creating directory rename
mkdir rename
chdir rename
echo shar: extracting Makefile '(173 characters)'
sed 's/^XX//' << \SHAR_EOF > Makefile
XXCC=cc -O -DUNSEC
XX
XXrename:rename.o getopt.o 
XX	${CC} -o rename rename.o  getopt.o
XX
XXgetopt.o:getopt.c
XX	${CC} -DVMUNIX -c getopt.c
XX
XXclean:
XX	@rm -f .B* *.o rename
XX	@echo cleaned
SHAR_EOF
if test 173 -ne "`wc -c Makefile`"
then
echo shar: error transmitting Makefile '(should have been 173 characters)'
fi
echo shar: extracting README '(1740 characters)'
sed 's/^XX//' << \SHAR_EOF > README
XX	RENAME version 1.0 
XX
XXRename is a program that is designed to let people changed the
XX/etc/utmp entries and values so that a person get rid of the suntool
XXturds left by shelltool when exiting from a window.
XX
XXCurrently there is only one compilation option and that is UNSEC.  If
XXyou compile rename.c with UNSEC defined it will take out most of the
XXsecurity checking and let the program do as much as anybody with half
XXand brain and can program can do.  With it defined you can change ANY
XXtty entry including ttys that are not being used.  This means that if
XXyou are on a Sun, you can change anything you want except for the idle
XXtimes.  To change the idle times you have to own the tty or be root due
XXto the fact I go out and change the actual /dev/tty?? driver.
XX
XXI have never tested this on anything other then a SUN so I cannot tell
XXyou anything about what it will do.  I make no claims... your taking
XXyour own life in using this at all.
XX
XXPlease note, while this program was designed to be helpful in clearing
XXup the problem with suntool turds, it can do things that some might
XXconsider good OR bad. It was developed by myself with comments from
XXother people here and has been in use (with UNSEC not defined) on many
XXof the Suns around campus for more then 6 months.  We have found EVERY
XXoption useful and one point or another.
XX
XXThe manual is written for having the UNSEC not defined and is not
XXin the order I would have wished but....
XX
XX> Please send me suggestions for how to make it better (including
XX the README and manual page)...
XX
XX
XXJosh Siegel, Research Asst.	|  ARPA:  josh@hi.uucp@hc.dspo.gov
XXElectrical and Computer Eng.	|  UUCP:       hc!hi!josh
XXUniversity of New Mexico	|   ucbvax!unmvax!hi!josh
XXAlbuquerque, New Mexico 87131	| 
XX
SHAR_EOF
if test 1740 -ne "`wc -c README`"
then
echo shar: error transmitting README '(should have been 1740 characters)'
fi
echo shar: extracting getopt.c '(1262 characters)'
sed 's/^XX//' << \SHAR_EOF > getopt.c
XX/*	getopt.c	1.1	85/05/30	*/
XX /*  getopt.c 1.1  10/26/79  11:50:14  */
XX#include	<stdio.h>
XX#ifdef VMUNIX
XX#define	strchr	index
XX#endif
XX#define ERR(s, c)	if(opterr){ fputs (argv[0], stderr); fputs (s, stderr); fputc (c, stderr); fputc ('\n', stderr); }
XX
XXint     opterr = 1;
XXint     optind = 1;
XXint     optopt;
XXchar   *optarg;
XXchar   *strchr ();
XX
XXint
XX        getopt (argc, argv, opts)
XXchar  **argv,
XX       *opts;
XX{
XX    static int  sp = 1;
XX    register    c;
XX    register char  *cp;
XX
XX    if (sp == 1)
XX	if (optind >= argc ||
XX		argv[optind][0] != '-' || argv[optind][1] == '\0')
XX	    return EOF;
XX	else
XX	    if (strcmp (argv[optind], "--") == NULL) {
XX		optind++;
XX		return EOF;
XX	    }
XX    optopt = c = argv[optind][sp];
XX    if (c == ':' || (cp = strchr (opts, c)) == NULL) {
XX	ERR (": illegal option -- ", c);
XX	if (argv[optind][++sp] == '\0') {
XX	    optind++;
XX	    sp = 1;
XX	}
XX	return '?';
XX    }
XX    if (*++cp == ':') {
XX	if (argv[optind][sp + 1] != '\0')
XX	    optarg = &argv[optind++][sp + 1];
XX	else
XX	    if (++optind >= argc) {
XX		ERR (": option requires an argument -- ", c);
XX		sp = 1;
XX		return '?';
XX	    }
XX	    else
XX		optarg = argv[optind++];
XX	sp = 1;
XX    }
XX    else {
XX	if (argv[optind][++sp] == '\0') {
XX	    sp = 1;
XX	    optind++;
XX	}
XX	optarg = NULL;
XX    }
XX    return c;
XX}
SHAR_EOF
if test 1262 -ne "`wc -c getopt.c`"
then
echo shar: error transmitting getopt.c '(should have been 1262 characters)'
fi
echo shar: extracting rename.c '(3956 characters)'
sed 's/^XX//' << \SHAR_EOF > rename.c
XX/*
XX * Rename 1.0 unmvax!crunch!josh 
XX */
XX#include <sys/types.h>
XX#include <stdio.h>
XX#include <pwd.h>
XX#include <utmp.h>
XX#include <sys/file.h>
XX#include <sys/stat.h>
XX#define USAGE "Usage: %s [-s tty ] [-t time ] [-h hostname] [-n name ] [-r tty ] [-u time] [-z] [-c]\n"
XXmain(argc, argv)
XX	int             argc;
XX	char          **argv;
XX{
XX
XX	int             t, errflg, c, f, used;
XX	extern int      optind;
XX	extern char    *optarg;
XX	struct utmp     utmp;
XX	time_t          timep[2];
XX	char            buffer[255];
XX
XX	errflg = 0;
XX	used = 0;
XX	if (argc == 1) {
XX		fprintf(stderr, USAGE, argv[0]);
XX		exit(1);
XX	}
XX	t = ttyslot();
XX	if (t > 0 && (f = open("/etc/utmp", O_RDONLY)) >= 0) {
XX		lseek(f, (long) (t * sizeof(utmp)), 0);
XX		read(f, (char *) &utmp, sizeof(utmp));
XX		close(f);
XX	} else {
XX		fprintf(stderr, "Cannot read /etc/utmp\n");
XX		exit(1);
XX	}
XX	sprintf(buffer, "/dev/%s", utmp.ut_line);
XX	while ((c = getopt(argc, argv, "r:t:s:n:h:?czu:")) != EOF)
XX		switch (c) {
XX		case 'u':
XX			sscanf(optarg, "%d", &used);
XX			timep[0] = time(0) - (used * 60);
XX			timep[1] = timep[0];
XX			if (utime(buffer, timep) == -1)
XX				fprintf(stderr, "I don't own the tty %s\n", buffer);
XX			used = 1;
XX			break;
XX		case 'z':
XX#ifndef UNSEC
XX			if (getuid() != 0) {
XX				fprintf(stderr, "You must be root to zap to utmp file.\n");
XX				exit(1);
XX			}
XX#endif UNSEC
XX			creat("/etc/utmp", 600);
XX			used = 1;
XX			break;
XX		case 'r':
XX			used++;
XX			strncpy(utmp.ut_line, optarg, 8);
XX			break;
XX		case 'n':
XX			used++;
XX			strncpy(utmp.ut_name, optarg, 8);
XX			break;
XX		case 'h':
XX			used++;
XX			if (strlen(optarg) != 1)
XX				strncpy(utmp.ut_host, optarg, 16);
XX			else if (optarg[0] == '0')
XX				utmp.ut_host[0] = '\0';
XX			break;
XX		case 's':
XX			if (!canichange(optarg)) {
XX				fprintf(stderr, "I cannot change %s because I don't own the tty.\n", optarg);
XX				exit(1);
XX			}
XX			sprintf(buffer, "/dev/%s", optarg);
XX			t = findtty(optarg);
XX			if (t > 0 && (f = open("/etc/utmp", O_RDONLY)) >= 0) {
XX				lseek(f, (long) (t * sizeof(utmp)), 0);
XX				read(f, (char *) &utmp, sizeof(utmp));
XX				close(f);
XX			} else {
XX				fprintf(stderr, "Cannot read /etc/utmp\n");
XX				exit(1);
XX			}
XX			strncpy(utmp.ut_line, optarg, 8);
XX			used++;
XX			break;
XX		case 'c':
XX			used++;
XX			bzero((char *) &utmp, sizeof(utmp));
XX			break;
XX		case 't':
XX			used++;
XX			sscanf(optarg, "%d", &utmp.ut_time);
XX			if (!utmp.ut_time)
XX				utmp.ut_time = time(0);
XX			break;
XX		case '?':
XX		default:
XX			errflg++;
XX			break;
XX		}
XX	if (!used)
XX		errflg++;
XX	if (errflg) {
XX		fprintf(stderr, USAGE, argv[0]);
XX		exit(1);
XX	}
XX	if ((f = open("/etc/utmp", O_WRONLY)) >= 0) {
XX		lseek(f, (long) (t * sizeof(utmp)), 0);
XX		write(f, (char *) &utmp, sizeof(utmp));
XX		close(f);
XX	} else {
XX		fprintf(stderr, "Cannot write /etc/utmp\n");
XX		exit(1);
XX	}
XX}
XXfindtty(string)
XX	char            string[];
XX{
XX	FILE           *fp, *fopen();
XX	char            buff[255];
XX	int             found, t;
XX
XX	found = 0;
XX	t = 0;
XX
XX	fp = fopen("/etc/ttys", "r");
XX	if (fp < 0) {
XX		fprintf(stderr, "Cannot access the tty file!\n");
XX		exit(1);
XX	}
XX	while (!found) {
XX		if (fgets(buff, 255, fp) == NULL)
XX			break;
XX		t++;
XX#ifdef BSD43
XX		if (!strncmp(string, buff , strlen(string)))
XX#else  BSD43
XX		if (!strncmp(string, buff + 2, strlen(string)))
XX#endif BSD43
XX			found = 1;
XX	}
XX	if (!found) {
XX		fprintf(stderr, "Cannot find requested tty!\n");
XX		exit(1);
XX	}
XX	return (t);
XX}
XXcanichange(path)
XX	char            path[];
XX{
XX#ifndef UNSEC
XX	struct stat    *buf;
XX	struct utmp     utmp;
XX	struct passwd  *getpwuid(), *password;
XX	int             t, f;
XX
XX	if (getuid() == 0)
XX		return (1);
XX	stat(path, buf);
XX	if (buf->st_uid == getuid())
XX		return (1);
XX	t = findtty(optarg);
XX	if (t > 0 && (f = open("/etc/utmp", O_RDONLY)) >= 0) {
XX		lseek(f, (long) (t * sizeof(utmp)), 0);
XX		read(f, (char *) &utmp, sizeof(utmp));
XX		close(f);
XX	} else {
XX		fprintf(stderr, "Cannot read /etc/utmp\n");
XX		exit(1);
XX	}
XX	password = getpwuid(getuid());
XX	if (!strcmp(utmp.ut_name, password->pw_name))
XX		return (1);
XX	else
XX		return (0);
XX#else UNSEC
XX	return (1);
XX#endif UNSEC
XX}
SHAR_EOF
if test 3956 -ne "`wc -c rename.c`"
then
echo shar: error transmitting rename.c '(should have been 3956 characters)'
fi
echo shar: extracting rename.man '(2942 characters)'
sed 's/^XX//' << \SHAR_EOF > rename.man
XX.TH RENAME L "Mar 25, 1986"
XX.SH NAME
XXrename \- A hack to let you change your utmp entrys.
XX.SH SYNOPSIS
XX.B rename
XX[-s tty] [-t time] [-h hostname] [-n name] [-r tty] [-u time] [-z] [-c]
XX.SH DESCRIPTION
XX.I Rename
XXis a program that lets you change your utmp entry in a whole
XXbunch of strange and evil ways.  
XX.SH RESTRICTIONS
XXThe commands must be used in the order above or it will have strange
XXresults (I did not put them in that order in the rest of the manual).
XXRename will fail if all of these are true: 1) you are not
XXroot.  2) you don't own the tty in question, or the tty entry in utmp is not
XXin your name.
XX.SH OPTIONS
XX.TP
XX-z
XX.PP
XXZap the utmp file.  This will clear EVERYBODY's entry except your own
XXout of the utmp file.
XX.TP
XX-u
XX.PP
XXLets you set the idle time for the tty in question.  For this you
XXmust own the tty or be the super-user.  The time is in minutes.
XX.TP
XX-r
XX.PP
XXThis lets you set the mapped tty of the user .  There
XXare real and mapped ttys.  Normally, the real and mapped ttys are the
XXsame.  If you put the wrong tty into the utmp file, it will map
XXyour tty to the wrong tty.  The effects of this are that if somebody
XXdoes "talk josh" , talk will go out to the utmp file and check to
XXsee what tty "josh" is on.  If the wrong tty is here... it will
XXwrite the page to the wrong place.  SO, if I had "console" in
XXmy tty entry, the person at the console would get paged.
XX.TP
XX-t
XX.PP
XXThis lets you set how long w(1) and who(1) think you have been logged in.
XX.TP
XX-h
XX.PP
XXThis lets you set the host name you logged in from.  Very strange
XXif a system person is trying to find where you came from (using who(1)) and
XXfinds a system that does not exist. If you put a zero here, it
XXwill clear the machine you logged in from and make it look like
XXyou started at this machine.
XX.TP
XX-n
XX.PP
XXThis lets you set your name.  It only pays attention to the first
XX8 characters. Note, this name propagates through out the whole
XXsystem.  Doing rwho from another machine shows the changes. For the
XXmost part the entire machine excepts you in this name.  One of
XXthe BIG exceptions is mail(1) which gets a little confused.
XX.TP
XX-c
XX.PP
XXThis lets you clear a tty.  This option was the reason 
XX.I rename
XXwas written in the first place.  If you use this option it
XXwill clear the tty entry from the /etc/utmp file.  I use
XXit for clearing old tty entrys that our suntools leaves behind.
XXRemember, the -c option MUST be last. If it is not
XXlast it might not clear the tty and it might leave something
XXstrange behind....
XX.TP
XX-s
XX.PP
XXThis lets you set the tty that
XX.I rename
XXis going to work on.  You can use this to create false utmp entrys.
XX
XX% rename -s console -n josh -h smallsville -t 0
XX
XXWill create a entry even if nobody is on the terminal. Fun eh?
XXIt defaults to your current tty.
XX.SH BUGS
XXI would like to make it less dependent on order but have not
XXgotten around to it.
XX.SH FILES
XX.PP
XX/etc/utmp
XX.PP
XX/etc/ttys
XX.SH AUTHOR
XXJosh Siegel(ucbvax!unmvax!crunch!josh)
SHAR_EOF
if test 2942 -ne "`wc -c rename.man`"
then
echo shar: error transmitting rename.man '(should have been 2942 characters)'
fi
echo shar: done with directory rename
chdir ..
#	End of shell archive
exit 0

------------------------------

Date: Mon, 9 Mar 87 21:10:26 EST
From: garry@tcgould.tn.cornell.edu (Garry Wiegand)
Subject: Hoops announcement

		** Graphics Product Announcement **

In keeping with network etiquette, I will try to make this as brief and to-the-
point as possible. Apologies in advance to anyone who may be offended (but I
hope no one is!)

What we have is a beast called "Hoops". Hoops is a large, 2-D/3-D, general-
purpose display-list graphics subroutine library. Hoops deals with such
things as lines, polygons, text, windows, colors, and cameras. It is
designed to run on on many machines and many displays, and its basic
purpose is to make your life easier when you sit down to write a graphics
application. We've put a lot of effort into: 1) a clean design, 2) speedy 
program execution, and 3) keeping it cheap! 

Software completed:
    
    C language binding
    Fortran language binding

    Support for X-Windows  (tested on Ultrix microVax/GPX's)
    Support for the microVax/GPX running VMS
    Support for the Parallax 1280 on microVax's running VMS
    Support for Postscript laser printers, including the Apple

In progress:

    Pascal language binding

    Support for the Silicon Graphics Iris workstation
    Support for the Sun 3 workstation
    Support for the IBM 5080 on IBM mainframes 
    Support for the Number Nine "Pro1280" on IBM PC/AT's
    Support for the Pixelworks "ClipperBoard" on IBM PC/AT's

Commercial licenses are moderately priced, with large discounts for volume
purchases. University licenses are generally priced at 25% of commercial
licenses; university license fees may, under some conditions, be waived
entirely. Source code is available; demo copies are available.

For further information, call:

    Gary Wayne
    Flying Moose Systems & Graphics
    (607) 273-3690 // The Clinton House // Ithaca, New York 14850

Or send your post-office address to me. Thanks for listening -

    Garry Wiegand   (c/o garry@oak.cadif.cornell.edu)

------------------------------

Date: Mon, 2 Mar 87 09:54:52 est
From: allegra!mp@seismo.CSS.GOV
Subject: blinking disk blocks?

In the past few months, 2 fileservers have exhibited some strange behavior:
a block of a file "blinks" between its correct value and
something else.

The first was on a Sun-2/150 running 3.0 with 1 Xylogics 450 driving 2 eagles.
We discovered one file that had a 512-byte block that alternated (every
few minutes or hours) between the correct data (a sequence of
instructions) and '\252' (alternating 1's and 0's).  Power-cycling the
machine didn't help, replacing the controller didn't help, so Sun
eventually just replaced the disk.  Although we didn't have a way to
tell which physical disk sector corresponded to that particular block
of the file (if you have a program to do such, please send it along),
the theory was that the sector had a flakey header that at times made
the system retrieve that sector and at other times made it retrieve a
sector from the bad block area.  The 0252 is probably a pattern that
diag wrote when the disk was formatted.

Well, it's just happened again, on a Sun-2/170 running 2.0 with 2
Xylogics 450's, each driving 1 eagle.  There's this one 163-byte-long
text file that is all NULs when you cat it, but has valid data
when you cat it a few minutes later.

In both cases the filesystems were exported to NFS clients; the
funny behavior can be seen either from the server or the clients.
The fileservers' consoles didn't show any error messages.  Any idea
what's going on?

	Mark Plotnick
	allegra!mp

------------------------------

Date: Mon, 02 Mar 87 15:09:56 EST
From: mckay@ee.ecn.purdue.edu (Dwight D McKay)
Subject: Drivers for Burr-Brown a/d, d/a boards?

Some researchers here are interested in a couple of a/d and d/a boards made
by Burr-Brown.  Namely the MPV952 and MPV954.

Does anyone have drivers for these boards?  How about some code using mmap()
to access them?

The people in this reseach group will be writing some code and I'd like to
given them a head start if someone has already done some work with these
boards.

Thanks.

--Dwight Mckay, ECN Text & Workstation Software Support
[arpanet: mckay@ee.ecn.purdue.edu, usenet: ...ihnp4!pur-ee!mckay]
[Compu-serve: 75776,1521, office: EE 348B, phone: (317) 494-3561]

------------------------------

Date: 4 Mar 87 05:19:48 GMT
From: billp@unet.UUCP (Bill Putney)
Subject: Wanted: Meeting Reminder Software (sun or c srcs)?

Intro: When I worked at Tymshare we had a program called "remind".
This was thing written in DEC 10 assy.  It took command lines
(I don't remember the format exactly);
	"remind design review meeting, every tuesday at 2:00 PM"
and a little while before 2 on tuesday it would send a message
reminding me to go to a meeting I would have otherwise completely
forgotten.  The parser was very good at making sense of what ever
a human would use as a date - time description.

Request:  Does anyone know where I can; a) find something like
remind that will grab the attention of a window user on a sun 
workstation, b) find the C sources to anything even remotely like 
remind.

I know about "leave" and "calendar", but they don't quite do it.

I you have something or know of something, please send me mail
and I'll get back to you.  No point in transmitting 35 copies of
the samething via net.

Thanks

------------------------------

Date: Thu, 5 Mar 87 12:08:18 -0200
From: Nancy Yavne <nancy%WISDOM.BITNET@wiscvm.wisc.edu>
Subject:  Sunview questions? (long)


      I have an application that runs as separate process and interacts with
      user independently of SunView. This application issues calls to
      routines which use SunView services , such as window_create, pw_write,
      pw_vector etc.

      I tryed to implement the program in following ways :

        1) C function called init_sunwindows is called from
           application to initialize the window environment.
           This function open relevant windows and then spawns son
           process who's only responsibility is  to call to
           process_main_loop control function of SunView.
           Afterwards init_sunwindows function returns control
           to application, which calls to various C functions
           to display specific items.

           Following errors are appearing:

           WIN ioctl number 20006703: Mount device busy
                        ( In application window ).
           Window display lock broken because process 1170 blocked.
                        ( In console window).

           When continuously drawing in the window, the following error msg
           appears:

           Window display lock broken after time limit exceeded by pid 536
                        ( In console window).
           You may see display garbage because of this action
                        ( In console window).


           When this window is closed to icon or hided behind
           other window and then opened or exposed it does not
           appear on the screen. It appears again only after
           Redisplay All command is performed (from suntools menu ).
           All drawings which are inside this window are not shown
           even after Redisplay all command.

        2) As alternative to usage of process_main_loop I tryed
           to use technique  described in Section 16.6 of
           SunView programmer's Guide and implicitly call to
           notify_dispatch procedure of SunView, this resulted
           however in very poor appearance of the window:

              1) No border was drawn ;
              2) Window was not cleared when open;
              3) No reaction (e.a. appearance of menu )
                 was committed to pressure of mouse buttons ;
              4) No reaction was performed after Redisplay All
                 command .


        Following is a sample of the actual code I used.

init_sunwindows()
{


        bold = pf_open("/usr/lib/fonts/fixedwidthfonts/gallant.r.19");
        if(bold == NULL) {
                printf("Bold Font not founded, aborting !\n");
                exit(-1);
        }
        frame = window_create(NULL, FRAME,
                WIN_ERROR_MSG,  "Cannot create frame",
                FRAME_LABEL,    " Simple Draw",
                FRAME_ICON,     &simple_demo_icon,
                WIN_FONT,       bold,
                WIN_HEIGHT,     700,
                WIN_WIDTH,      700,
                WIN_X,          500,
                WIN_Y,          -500,
                0);


        canvas = window_create(frame, CANVAS,
                                CANVAS_RETAINED, TRUE,
                                WIN_FONT,       bold,
                                0);

        pw = canvas_pixwin(canvas);

       /* Make the frame visible on screen */

        window_set(frame,WIN_SHOW,TRUE,0);
        window_set(canvas,WIN_SHOW,TRUE,0);

/*
        (void) notify_dispatch;
*/

        if((pid = fork())< 0 ) {
                perror("init_sunwindow: Can not fork !");
                return(-1);
         }

/* #define WINDOW_MAIN_LOOP 1  */

         if ( pid == 0 )  {     /* child */
#ifdef WINDOW_MAIN_LOOP
                window_main_loop(frame);
#else
                for(;;) {
                    sleep(1);
                    window_set(frame,WIN_SHOW,TRUE,0);
                    window_set(canvas,WIN_SHOW,TRUE,0);
                    (void) notify_dispatch;
                }
#endif
        }
}

      Does anyone have a clue as to what happening? Did anyone implement
      such application and has suggestions and/or solutions for me?


      Thanks

      Alex Polyak

      BITNET: nancy@wisdom
      ARPA:   nancy%wisdom.bitnet@wiscvm.wisc.edu
      UUCP:   .. !decvax!talcott!WISDOM!nancy

P.S.
    Please mail me personally, I promise to post summary of responces.
    Thanks.

------------------------------

Date: Thu, 5 Mar 87 11:27:21 EST
From: rennick@ragno.uucp
Subject: Video cable extension on Sun III 160?

We want to move our sun terminal more than Sun's maximun specified distance
of 50 feet from the processor.  We understand that some type of video
amplifier is required to achieve this feat.  Can anyone point us in the
right direction?
                                        Bob Rennick
                                        Systems Laboratory
                                        (613) 993-9262

------------------------------

Date: Thu, 5 Mar 87 11:02:55 EST
From: sundar@hermes.ai.mit.edu (Sundar Narasimhan)
Subject: yp slave servers?

I'd like to hear from anyone who has made yp slave servers work along
with master servers. We have had a configuration with just one master
server for a while now. Recently we added another slave server, and
things never seem to work right. We've even tried completely
reinitializing the world with one master server and one slave server.

The set up was done by : running ypinit -m on the master and adding to
it the name of the slave server. The ypservers file looks ok, on the
master. Then we ran "ypinit -s <master>" on the slave. The maps get
transferred ok, and since we also have ypxfr's set up to do the
transfers periodically the slave server's databases will hopefully be
upto date.  

The problem, however, is that when the master server goes down,
everything freezes up with the usual "server not available for domain
<domain> : still trying ..." messages. One would expect that since the
slave server is up and running that clients that boot off the slave
server ought to be ok. Is something wrong with what we did, or is it
that our understanding of slave servers is somehow mistaken??

Thanks,

-Sundar

------------------------------

Date: Thu, 5 Mar 87 14:57:49 PST
From: salem@sri-unix.ARPA (Bruce B. Salem)
Subject: fast floating point code for 68008 cpu?

	I am posting this message for Richard Fox (bioacces@sri-unix.ARPA)
soon to be (bioacces@unix.sri.com), please send replies to that account.

	Mr fox would like fast FP software to run on a 68008 cpu that will
run under real time applications. The speed of operation must exceed the
speed of the IEEE floating standard. The code would be desired as a C or
68K assembely language library. You can mail source to the account above
which can be reached by the same ARPANET or USENET path as my account.

Bruce Salem for Richard Fox.

------------------------------

Date: Thu, 5 Mar 87 18:18:45 est
From: berger%datacube.UUCP@CCA.CCA.COM (Bob Berger)
Subject: Addressing Very Large Framestores on Sun?

Sun  tech  support  can't  help  me,  maybe  someone on  the net can!

I want to map a very large chunk of physical memory (32  Meg of video
frame-store) into my user process's virtual address space.  

We have a Sun 3/75 connected to  an external  VME chassis  with a bus
repeater capable of repeating a full  A32 /  D32 bus  to the external
VME chassis.  

In this chassis we have a very large frame store that takes up 32 Meg
of physical memory.  

We have been told that the only way to map the physical memory of the
frame-store  into  a user  program is  to first  do a  valloc which I
presume reserves pages in the MMU for a chunk of memory,  and then an
mmap which maps the physical memory into the  reserved virtual memory
chunk.  This is how frame-store's are usually mapped in on the sun.  

The  problem  is  that  the valloc  actually allocates  the amount of
memory you are requesting.  If you don't have enough swap space free,
the valloc fails.  Thus not allowing you to get  a chance  to map the
physical to virtual address.  

They  say  that this  will be  changed in  version 4.0  of Sun OS....

There must be  a more  sane way  to tell  the operating  system / MMU
hardware to do an explicit mapping  today!   What good  is having A32
VME  bus addressing  if you  can't talk  to large  chunks of physical
memory?  I consider this a major failing if its  true that  a Sun can
not do this.  

				Bob Berger 

Datacube Inc. Systems / Software Group	4 Dearborn Rd. Peabody, Ma 01960
VOICE:	617-535-6644;	FAX: (617) 535-5643;  TWX: (710) 347-0125
UUCP:	ihnp4!datacube!berger
	{seismo,cbosgd,cuae2,mit-eddie}!mirror!datacube!berger

------------------------------

Date: 7 Mar 87 15:18:56 GMT
From: John Ioannidis <ioannidis@cs.columbia.edu>
Subject: Sun-2 ethernet problem?

I am posting this for a friend. You can answer to him directly, or to me.
We''ll summarize and post the replies.

We have a couple of diskful Sun2s and one diskless Sun2/50.  During
a thunderstorm almost all our Interlan NT10 Ethernet tranceivers failed!!
(Only one survived)

Instead of repairing them we decided to order new ones (the NT100s).
When the new tranceivers arrived I installed them and all the machines
worked perfectly EXCEPT for the diskless.
I kept getting "Ethernet cable problem" (which I suppose is the user
friendly version of "Ethernet jammed" found in the old PROMS.

I tried a few tranceivers but to no avail.  To make a long story short
the diskless worked only when (in desperation) I brought the surviving
NT10 and plugged it in.

Well, it worked!  The diskless booted from the net without any probs.

After confirming that the diskless worked I tried to make it work with
the NT100s (I fiddled a bit with the heartbeat and jabber-detect straps)
but again no luck.

Has anybody else encountered the same prob?  I suspect that this is
some weird incompatibility between the Sun Ethernet interface and the 

Vassilis Prevelakis (...!seismo!mcvax!ariadne!vp)
Institute of Computer Science
Research Center of Crete
Crete, GREECE.

----------------------------------------
#include <appropriate_disclaimers>

VOICE: 	+1 212 280 5510			ARPA: ioannidis@cs.columbia.EDU
USnail:	John Ioannidis			      ji@garfield.columbia.EDU
	450 Computer Science
	Columbia University,		USENET: ...{seismo|topaz}!
	New York, NY 10027			   columbia!garfield!ji

			... It's all Greek to me!

------------------------------

End of SUN-Spots Digest
***********************