🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: mod.computers.masscomp
1 messages
1 total messages Started by Stan Barber Mon, 29 Sep 1986 21:32
Top for the Masscomp part 1 of 3
#54
Author: Stan Barber
Date: Mon, 29 Sep 1986 21:32
282 lines
7940 bytes
Recently, my friend, Bill, released the latest version of his "top" program
to display the most active processes on a Vax, Pyramid or Sun computer. I
attempted to make it work on a Masscomp. Here is the results of that 
work. Please let me know about any fixes. I will forward them to Bill as
well.
Have fun.
Stan Barber



#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
#	boolean.h
#	layout.h
#	screen.h
#	top.h
#	top.local.h
#	masscomp.h
#	bzero.c
# This archive created: Mon Sep 29 16:14:10 1986
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'boolean.h'" '(125 characters)'
if test -f 'boolean.h'
then
	echo shar: "will not over-write existing file 'boolean.h'"
else
cat << \SHAR_EOF > 'boolean.h'
/* My favorite names for boolean values */
#define  No	0
#define  Yes	1
#define  Maybe	2		/* tri-state boolean, actually */

SHAR_EOF
fi
echo shar: "extracting 'layout.h'" '(845 characters)'
if test -f 'layout.h'
then
	echo shar: "will not over-write existing file 'layout.h'"
else
cat << \SHAR_EOF > 'layout.h'
/*
 *  Top - a top users display for Berkeley Unix
 *
 *  This file defines the locations on tne screen for various parts of the
 *  display.  These definitions are used by the routines in "display.c" for
 *  cursor addressing.
 */

#define  x_lastpid	10
#define  y_lastpid	0
#define  x_loadave	33
#define  y_loadave	0
#define  x_procstate	0
#define  y_procstate	1
#define  x_brkdn	14
#define  y_brkdn	1
#define  x_realmem	8
#define  x_virtmem	28
#define  x_free		53
#define  y_mem		3
#define  x_header	0
#define  y_header	5
#define  x_idlecursor	0
#define  y_idlecursor	4
#define  y_procs	6
#define  x_p_pid	0
#define  x_p_user	6
#define  x_p_pri	15
#define  x_p_nice	20
#define  x_p_size	25
#define  x_p_res	31
#define  x_p_state	37
#define  x_p_time	43
#define  x_p_wcpu	50
#define  x_p_cpu	57
#define  x_p_command	64

#define  y_cpustates	2
SHAR_EOF
fi
echo shar: "extracting 'screen.h'" '(874 characters)'
if test -f 'screen.h'
then
	echo shar: "will not over-write existing file 'screen.h'"
else
cat << \SHAR_EOF > 'screen.h'
/*
 *  top - a top users display for Unix 4.2
 *
 *  This file contains all the definitions necessary to use the hand-written
 *  screen package in "screen.c"
 */

#define TCputs(str)	tputs(str, 1, putstdout)
#define putcap(str)	((str) != NULL ? TCputs(str) : 0)
#define Move_to(x, y)	TCputs(tgoto(cursor_motion, x, y))

extern char ch_erase;		/* set to the user's erase character */
extern char ch_kill;		/* set to the user's kill  character */
extern char smart_terminal;     /* set if the terminal has sufficient termcap
				   capabilities for normal operation */

/* These aresome termcap strings for use outside of "screen.c" */
extern char *cursor_motion;
extern char *clear_line;

/* rows and columns on the screen according to termcap */
extern int  screen_length;
extern int  screen_width;

/* a function that puts a single character on stdout */
int putstdout();
SHAR_EOF
fi
echo shar: "extracting 'top.h'" '(794 characters)'
if test -f 'top.h'
then
	echo shar: "will not over-write existing file 'top.h'"
else
cat << \SHAR_EOF > 'top.h'
/*
 *  Top - a top users display for Berkeley Unix
 *
 *  General (global) definitions
 */

/* Number of lines of header information on the standard screen */
#define Header_lines	6

/* Number of columns needed for display */
#define Display_width	80

/* Log base 2 of 1024 is 10 (2^10 == 1024) */
#define LOG1024		10

/* Convert clicks (kernel pages) to kbytes ... */
/* If there is no PGSHIFT defined, assume it is 11 */
/* Is this needed for compatability with some old flavor of 4.2 or 4.1? */
#ifndef PGSHIFT
#define pagetok(size)	((size) << 1)
#else
#if PGSHIFT>10
#define pagetok(size)	((size) << (PGSHIFT - LOG1024))
#else
#define pagetok(size)	((size) >> (LOG1024 - PGSHIFT))
#endif
#endif

extern double logcpu;

double log();
double exp();

extern char (* screenbuf)[Display_width];
SHAR_EOF
fi
echo shar: "extracting 'top.local.h'" '(1261 characters)'
if test -f 'top.local.h'
then
	echo shar: "will not over-write existing file 'top.local.h'"
else
cat << \SHAR_EOF > 'top.local.h'
/*
 *  Top - a top users display for Berkeley Unix
 *
 *  Definitions for things that might vary between installations.
 */

/*
 *  "Table_size" defines the size of the hash tables used to map uid to
 *  username.  The number of users in /etc/passwd CANNOT be greater than
 *  this number.  If the error message "table overflow: too many users"
 *  is printed by top, then "Table_size" needs to be increased.  Things will
 *  work best if the number is a prime number that is about twice the number
 *  of lines in /etc/passwd.
 */
#ifndef Table_size
#define Table_size	421
#endif

/*
 *  "Nominal_TOPN" is used as the default TOPN when Default_TOPN is Infinity
 *  and the output is a dumb terminal.  If we didn't do this, then
 *  installations who use a default TOPN of Infinity will get every
 *  process in the system when running top on a dumb terminal (or redirected
 *  to a file).  Note that Nominal_TOPN is a default:  it can still be
 *  overridden on the command line, even with the value "infinity".
 */
#ifndef Nominal_TOPN
#define Nominal_TOPN	18
#endif

/*
 *  File name for the system image and the memory devices.
 */
#ifdef MASSCOMP
#define VMUNIX "/unix"
#else
#define VMUNIX	"/vmunix"
#endif
#define KMEM	"/dev/kmem"
#define MEM	"/dev/mem"
SHAR_EOF
fi
echo shar: "extracting 'masscomp.h'" '(407 characters)'
if test -f 'masscomp.h'
then
	echo shar: "will not over-write existing file 'masscomp.h'"
else
cat << \SHAR_EOF > 'masscomp.h'
/* include file to define a MASSCOMP */
/* by Stan Barber, Baylor College of Medicine */
#if defined(mc300) || defined(mc500) || defined(mc700)
#define MASSCOMP
#undef DIRSIZ
#define DIRSIZ 14
#define CPUSTATES 4
#define MAX_PROC 300	/* jack this up if you run more than 300 processes */
#include <sys/minmax.h>
#include <sys/pte.h>
#include <sys/cmap.h>
#include <sys/text.h>
#include <sys/cinfo.h>
#endif
SHAR_EOF
fi
echo shar: "extracting 'bzero.c'" '(789 characters)'
if test -f 'bzero.c'
then
	echo shar: "will not over-write existing file 'bzero.c'"
else
cat << \SHAR_EOF > 'bzero.c'
/*
 *  Fast, sleazy, and ugly zero function.
 *
 *  Note that this will only work on a VAX, but it is real easy to write a
 *  similar function for whatever machine you may need.  If nothing else,
 *  just a simple loop in C will suffice.
 *
 *  Dave Johnson, Rice University.
 *
 *  Enhanced by William LeFebvre of Rice University to handle zeroing more
 *  than 64K.
 */

# define   K	1024

/*
 *  bzero(memory, amount) - set "amount" bytes starting at "memory" to the
 *			    value 0.
 */

bzero(memory, amount)

char *memory;
int  amount;

{
    while (amount >= 64*K)
    {
	_bzero64(memory, 64*K-1);
	memory += 64*K-1;
	amount -= 64*K-1;
    }
    _bzero64(memory, amount);
}

_bzero64(memory, amount)

char *memory;
int  amount;

{
    asm("	movc5	$0, (sp), $0, 8(ap), *4(ap)");
}
SHAR_EOF
fi
exit 0
#	End of shell archive
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads