From greg@vpbm Sat Aug  9 18:23:54 1986
From: Gregory Bond, Vertical Software, Melbourne

Some notes on installing ACSnet on a ridge:

1) Directories

	Neither tar nor make seem to be able to tell if the Bin 
	directory exists. All the directories that tar extracted
	were marked "not found" as they extracted, and make insisted
	on makeing the Bin directory every time....

	UPDATE: The ROS directory structure is slightly different to
	standard unix (an extra field, name longer...) Nor was a
	dirscan-type library provided. This requires a modification to
	the Include/ndir.h file to include the ROS sys/dir.h file and
	comment out the struct direct defined in Include/ndir.h. The
	new one is available if required.

2) Lib/crc.c

	In the file Lib/crc.c there is a comment like
		/*
		#ifdef SUN_68K
		**
	starting on line 246. This screws the ridge compiler because
	it still sees the #ifdef and clags because there is no endif.

3) Size of stack word.

	This is the most severe problem with the system. The stack word
	on the Ridge is 8 bytes, for ALL stack identities. This means 
	that the STACK_WORD #define should be double, but then ARGS_OFF_STACK
	fails rather badly. (i.e. an unwanted double->int conversion occurs).
	Defining STACK_WORD to be int [2] or char[8] doen't work either.

	The solution is to redefine ARGS_OFF_STACK to be a function thus:
		#define ARGS_OFF_STACK(p) stack_arg(&P)

		int
		stack_arg(p)
		register int **p;
		{
			register int s = *((int *)*p); 
			*p += sizeof(stack_word) / sizeof(int);
			return s;
		}
	
	I put this routine in the end of the concat.c file in the Lib 
	directory, mainly because that is where the problem surfaced.

4) REGEX LIBRARY ROUTINES

	There is a serious bug in the regular expression code in the
	Ridge libc.a. This causes the call programs to fail in random
	ways, as the regex library fault is intermittent. The fix is to
	force inclusion of the ACSnet regex routines (by judicious use
	of the LIBRARIES makefile parameter.

5) WHOISARGS

	There is a bug in the Makefiles/Sites file if arguments are defined
	to the whois program. The old version read (line 167):
		if [ x"$WHOISARGS" != x ] ; then
		echo "#define	WHOISARGS	\"$WHOISARGS\""
	whisch is wrong, as WHOISARGS is usually something like "-i" 
	and may be multiple args. Change it by deleting the \"'s from
	the last line.

6) MAIL PROGRAMS

	Ridge have moved and renamed the standard mail programs. /bin/mail
	is the fancy front end (i.e. /usr/bin/mail) and /bin/mail is called
	/bin/binmail. Thus the supplied sendmail.cf (which calls /bin/mail
	to do the deliveries) calls itself recusivly as /bin/mail calls
	sendmail to do the address resolving. This gives (eventually...) 
	random and not-very-useful error messages. This is fixed by modifying
	sendmail.cf to call /bin/binmail not /bin/mail.

7) MODEM CONNECTION

	ROS (the Ridge operating system), is not really Unix, but has Unix
	ported on top of it (similar to the Elxsi I guess). Thus there is
	no init process, and the inittab file is scanned once at boot time.
	It is thus impossible to disable logins from a line and use it for
	dial-out, then enable logins again. The inittab file has run-level
	entries that are ignored. It is impossible to use the one modem for 
	dial-in and dial-out.

8) PID SIZES

	ROS assigned PIDs starting at 64K for system processes and (about)
	700K for user processes. This may or may not be a problem for ACSnet.


Eventually the port was abandoned due to point 7, and shifted to another
machine on the network (an IRIS graphics workstation).
However, the port did seem to run (although had not been thoroughly tested).
