Initial checkin of documentation (latex/html source). Only the

kern reference is really ready for viewing, and that is still missing
the index.
This commit is contained in:
gdr 1997-11-24 05:07:28 +00:00
parent 1f1b3ada37
commit 71090e862f
8 changed files with 3724 additions and 0 deletions

192
doc/refs/Makefile Normal file
View File

@ -0,0 +1,192 @@
#
# This is the top level makefile for making GNO documentation. It can't
# be run under GNO itself yet, and probably never will be due to the
# dependancy on LaTeX.
#
# Devin Reade, 1997.
#
# $Id: Makefile,v 1.1 1997/11/24 05:07:26 gdr Exp $
#
# Set this to 'true' (without the quotes) for local links (used
# during editing).
DRAFT =
# This is the name and address that will be given as contact info
# at the bottom of each of the HTML pages. Do NOT use '<' or '>' in the
# address.
NAME = Devin Reade
ADDRESS = gdr@eddore.myrias.com
# Pathnames for various programs.
DVIPS = dvips
LATEX = latex
TEX2HTML = latex2html
MAKEINDEX = makeindex
# The names of the subdirs where we will collect html generated by
# latex(1), latex2html(1), and dvips(1).
DVID = dvid
HTMLD = htmld
PSD = psd
# The name of the manually-maintained index page in this directory
MINDEX = index.html
.IF $(DRAFT) == true
# This is the root of the html tree used in the generated sources.
HTML_ROOT = file:/home/gdr/src/gno/doc/refs/$(HTMLD)
# This is the directory where the remaining gifs may be found
GIFDIR = file:/home/gdr/graphics/
.ELSE
HTML_ROOT = http://trenco.myrias.com/~gno
GIFDIR = http://trenco.myrias.com/icons
.END
FTP_ROOT = ftp://trenco.myrias.com/pub/apple2/gno
# Where can the FAQ be located?
#FAQ = http://web.cs.ualberta.ca/~glyn/FAQ.csa2g
FAQ = http://trenco.myrias.com/~gno/FAQ.html
FAQLOG = http://trenco.myrias.com/~gno/FAQ-log
# Where can the old v2.0.4 docs be found?
#OLD_HTML = http://web.cs.ualberta.ca/~glyn/GNOv2.0.4Docs
OLD_HTML = http://trenco.myrias.com/~gno/docs.Aug96
#########################################################
# You should not have to modify anything below this line.
#########################################################
# Format of the comment block for each html page.
CONTACT1 = '$(NAME)\
<A HREF="mailto:$(ADDRESS)" TITLE="GNO Documentation Feedback">\
&lt;$(ADDRESS)&gt;</A><br>Last Updated: '
CONTACT2 = '<br>Document Version: '
# Some more programs and flags
GETDATE = ./getdate -date
GETVERS = ./getdate -version
DVIPS_FLAGS = -tletter
LATEX_FLAGS =
TEX2HTML_FLAGS = -info "" -local_icons -dir $(HTMLD) -up_url $(MINDEX)
TEXINPUTS = ':/usr/local/lib/latex2html'
DVI = kern.dvi # intro.dvi
PS = kern.ps # intro.ps
HTML = $(HTMLD)/kern.html # $(HTMLD)/intro.html
.PRECIOUS: $(DVI)
MANORG = ../../usr.man
MANHTML = $(HTMLD)/man
MKSO = $(MANORG)/mkso.data
# Scratch files to clean up
MANUAL_GARBAGE = top.html
TEX_GARBAGE = *.err *.aux *.log *.dvi *.toc *.idx *.ilg *.ind
DVIPS_GARBAGE = *.ps *.djc
UPLOADS = htmld.tar.gz \
kern.dvi.Z kern.ps.Z
#
# targets
#
all: h dvi ps
dvi: $(DVI)
ps: $(PS)
h: $(HTML) $(HTMLD)/index.html $(HTMLD)/unaval.html top.html cleanhtml
upload: man $(UPLOADS)
htmld.tar.gz: h
tar -cf - $(HTMLD) | gzip --best > $@
kern.dvi.Z: kern.dvi; compress -c $< > $@
kern.ps.Z: kern.ps; compress -c $< > $@
$(HTMLD)/index.html: $(MINDEX)
@echo "making $@"; \
[ -d $(HTMLD) ] || mkdir -p $(HTMLD); \
perl -p -e 's,%%HTML_ROOT%%,$(HTML_ROOT),g;' \
-e 's,%%FTP_ROOT%%,$(FTP_ROOT),g;' \
-e 's,%%FAQ%%,$(FAQ),g;' \
-e 's,%%FAQLOG%%,$(FAQLOG),g;' \
-e 's,%%OLD_HTML%%,$(OLD_HTML),g;' \
-e 's,%%GIFDIR%%,$(GIFDIR),g;' \
< $< > $@
$(HTMLD)/unaval.html: unaval.html
cp $< $@
cleanhtml:
@echo "cleaning guano from html files"; \
perl -pi \
-e 's/NOWRAP//g;' \
-e '(/<!--\s*cleantable-start\s*-->/) && ($$cts=1);' \
-e '(/<!--\s*cleantable-end\s*-->/) && ($$cts=0);' \
-e '($$cts == 1) && (s/(<BR>|<HR>)//g);' \
$(HTMLD)/*.html
# -e '($$cts == 1) && (s/^\s*<BR><HR>\s*$$//);'
top.html:
ln -s $(HTMLD)/index.html top.html
# This target creates the html versions of all the current man pages,
# plus the chapter index pages. Unfortunately, this target rebuilds
# _all_ of it's files, not just those that are out of date.
man:
@GNOROOT=../.. MANHTML=$(MANHTML) NAME="$(NAME)" \
ADDR="$(ADDRESS)" MKSO="$(MKSO)" HTMLROOT="$(HTML_ROOT)" \
./mkhtmlman
clean:
-rm -rf *~ $(TEX_GARBAGE) $(DVIPS_GARBAGE) $(UPLOADS)
clobber: clean
-rm -rf $(MANUAL_GARBAGE) $(HTMLD) $(PSD) $(DVID)
#
# default rules
#
$(HTMLD)/%.html: %.tex
@true; \
[ -d $(HTMLD) ] || mkdir $(HTMLD); \
$(TEX2HTML) \
-prefix "$*". -no_auto_link \
-address $(CONTACT1)"`$(GETDATE) <$<`"$(CONTACT2)"`$(GETVERS) <$<`" \
-up_title \
"`perl -n -e '(m,<title>(.*)</title>,) && printf("%s\n",$$1);'\
< $(MINDEX) `" \
$(TEX2HTML_FLAGS) $<
$(HTMLD)/%.gif: GIF/%.gif
ln $< $@
#$(PSD)/%.ps: %.ps
# @true; [ -d $(PSD) ] || mkdir $(PSD)
# rm -f $@
# ln $*.ps $@
#$(DVID)/%.dvi: %.dvi
# @true; [ -d $(DVID) ] || mkdir $(DVID)
# rm -f $@
# ln $< $@
%.ps: %.dvi
$(DVIPS) $(DVIPS_FLAGS) -o $@ $<
%.dvi: %.tex
@for i in 1 2 3; do \
echo "****** latex pass $$i"; \
TEXINPUTS=$(TEXINPUTS) $(LATEX) $(LATEX_FLAGS) $<; \
$(MAKEINDEX) $*; \
done; \
echo "****** latex passes done"

53
doc/refs/getdate Executable file
View File

@ -0,0 +1,53 @@
#! /usr/bin/perl -s
#
# Extract the date from the RCS Id string in a file.
#
# $Id: getdate,v 1.1 1997/11/24 05:07:27 gdr Exp $
#
push(@month,
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec" );
# for ($i=0; $i<12; $i++) {
# printf("month %d is %s\n", $i, $month[$i]);
# }
if (defined($date)) {
$printdate = 1;
}
if (defined($version)) {
$printversion = 1;
}
while(<>) {
if (/\$Id([^\$]*)\$/) {
$_ = $1;
if (/^:\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+/) {
$file=$1;
$version=$2;
$rawdate=$3;
$time=$4;
if ($rawdate =~ m,(\d+)/(\d+)/(\d+),) {
$year = $1;
$m = $2;
$day = $3;
$mon = @month[int($2) - 1];
$date = "$day $mon $year";
}
} else {
$date = "(unspecified date)";
}
if ($printdate) {
printf("%s\n", $date);
} elsif ($printversion) {
printf("%s\n", $version);
} else {
printf("getdate: bad invocation\n");
exit(1);
}
exit(0);
}
}
exit(1);

214
doc/refs/index.html Normal file
View File

@ -0,0 +1,214 @@
<html>
<head>
<title>GNO Master Documentation Page</title>
</head>
<body bgcolor=#ffffff>
<H1>The GNO Multitasking Environment</H1>
GNO is a UNIX-like software package for the Apple IIgs, which
runs on top of the native operating system, GS/OS.
<p>
This is master documentation site for GNO.
It consists of the following sections:
<ol>
<li><A HREF="#faq">Frequently Asked Questions</A>
<li><A HREF="#refs">Reference Manuals</A>
<li><A HREF="#man">Manual Pages</A>
<li><A HREF="#related">GNO-Related Web Links</A>
<li><A HREF="#old">Old Documentation (August 1996 Revision for GNO v2.0.4)</A>
</ol>
<p>
<b>Remember</b>:
<br>
If someone comes up to you on the street and offers you some
Windows&nbsp;(95,&nbsp;NT) ... <em>Just&nbsp;say&nbsp;GNO!</em>
<p>
<hr>
<A NAME="faq">
<H2>Frequently Asked Questions (and Answers)</H2>
</A>
The
<A HREF="%%FAQ%%">FAQ</A>
for the USENET newsgroup, comp.sys.apple2.gno may be found
<A HREF="%%FAQ%%">here</A>.
It is recommended reading and contains information that is not covered
in the manuals, or that supercedes the manuals. For a summary of the
most recent changes (since the last update), see the FAQ
<A HREF="%%FAQLOG%%">Change Log</A>.
<p>
<hr>
<A NAME="refs">
<H2>Reference Manuals</H2>
</A>
These are based on Procyon's August 1996 v2.0.4 documents, but have
been updated and enhanced.
<p>
<ul>
<!--
<li><A HREF="%%HTML_ROOT%%/intro.html">Overview</A> -->
<li><A HREF="%%HTML_ROOT%%/unaval.html">Overview</A>
<li><A HREF="%%HTML_ROOT%%/kern.html">Kernel Reference Manual</A>
<li><A HREF="%%HTML_ROOT%%/unaval.html">GNO Shell User's Manual</A>
</ul>
<hr>
<A NAME="man">
<H2>Manual Pages</H2>
</A>
This is the set of manual pages for the GNO base distribution. It does
not include manual pages for utilities and libraries that are considered
to be GNO "add-ons".
<em>Note that these are for GNO v2.0.6, are under active development, and
are subject to change.</em>
Some of the documented functions, programs, and files are not available
for GNO v2.0.4.
<p>
Each of the chapters has an introductory page, titled <b>intro</b>.
For a brief introduction to the manual pages in general, see the
<A HREF="%%HTML_ROOT%%/man/man1/intro.1.html">Introduction to Chapter 1</A>.
<p>
<ul>
<li><A HREF="%%HTML_ROOT%%/man/man1/00.index.html">Chapter 1</A>
Commands and Applications
<li><A HREF="%%HTML_ROOT%%/man/man2/00.index.html">Chapter 2</A> System Calls
<li><A HREF="%%HTML_ROOT%%/man/man3/00.index.html">Chapter 3</A>
Library Routines
<li><A HREF="%%HTML_ROOT%%/man/man4/00.index.html">Chapter 4</A> Devices
<li><A HREF="%%HTML_ROOT%%/man/man5/00.index.html">Chapter 5</A> File Formats
<li><A HREF="%%HTML_ROOT%%/man/man6/00.index.html">Chapter 6</A> Games
<li><A HREF="%%HTML_ROOT%%/man/man7/00.index.html">Chapter 7</A> Miscellaneous
<li><A HREF="%%HTML_ROOT%%/man/man8/00.index.html">Chapter 8</A>
System Administration
</ul>
<p>
<hr>
<A NAME="related">
<H2>GNO-Related Web Links</H2>
</A>
The following links are also likely to be of interest to GNO users
and programmers.
<ul>
<li><A HREF="http://www.hypermall.com/companies/procyon">
Procyon Enterprises Inc</A>
<li><A HREF="http://www.arrowweb.com/sbehrens/obugs.htm">
Soenke Behrens' ORCA/C Bug List</A>
<li><A HREF="http://www.arrowweb.com/sbehrens/describe.htm">
Soenke Behrens' online describe(1) database</A>
<li><A HREF="http://www.servtech.com/public/phoenix/computers/gno/index.html">
Leslie Barstow's GNO Utilities Page.</A>
(This is an sorted version of the <b>describe</b>(1) database.)
<li><A HREF="http://www.freebsd.org/handbook/handbook298.html">
FreeBSD ftp site list</A>
<li><A HREF="http://www.Geeks.ORG/~taubert/gstcp/index.html">
GS/TCP</A>
<li><A HREF="http://www.zip.com.au/~kashum/marinetti">
Marinetti</A>
<li><A HREF="http://www.members.home.com/sheppy/ToolboxGS">
Eric Shepherd's ToolBox Reference</A>
</ul>
<hr>
<A NAME="old">
<h2>Old Documentation</H2></A>
<H3>Reference Manuals (August 1996 Revision)</H3>
These are the reference manuals that shipped with GNO v2.0.4, translated
into html source.
<p>
<ul>
<li><A HREF="%%HTML_ROOT%%/docs.Aug96/install.html">
Introduction and Installation</A>
<li><A HREF="%%HTML_ROOT%%/docs.Aug96/kernel.html">
GNO Kernel Reference Manual</A>
<li>GNO Shell User's Manual, <A HREF="%%HTML_ROOT%%/docs.Aug96/gsh-12.html">
Chapters 1 and 2</A>
<li>GNO Shell User's Manual, <A HREF="%%HTML_ROOT%%/docs.Aug96/gsh-3.html">
Chapter 3</A>
<li>GNO Shell User's Manual, <A HREF="%%HTML_ROOT%%/docs.Aug96/gsh-4.html">
Chapter 4</A>
<li>GNO Shell User's Manual, <A HREF="%%HTML_ROOT%%/docs.Aug96/gsh-5.html">
Chapter 5 and Appendices</A>
</ul>
<p>
The original MS-Word versions of these documents are also available for
download via ftp:
<ul>
<li>Introduction and Installation:
<A HREF="%%FTP_ROOT%%/doc/refs/aug96/install.zip">
%%FTP_ROOT%%/doc/refs/aug96/install.zip</A>
<li>Kernel Reference Manual:
<A HREF="%%FTP_ROOT%%/doc/refs/aug96/kernel.zip">
%%FTP_ROOT%%/doc/refs/aug96/kernel.zip</A>
<li>GNO Shell Reference Manual:
<A HREF="%%FTP_ROOT%%/doc/refs/aug96/gsh.zip">
%%FTP_ROOT%%/doc/refs/aug96/gsh.zip</A>
</ul>
<H3>Manual Pages (August 1996 Revision)</H3>
There are also selected manual pages available. (Be sure to check the ones
installed on your system as well.) Unfortunately, this set of manual
pages is not divided along chapter boundries.
<p>
<ul>
<li><A HREF="%%HTML_ROOT%%/docs.Aug96/man1.html">Part 1</A>
Chapter 1: Commands and Applications
(<b>intro</b>(1) and <b>binprint</b>(1) to <b>sum</b>(1))
<li><A HREF="%%HTML_ROOT%%/docs.Aug96/man2.html">Part 2</A>
Chapter 1: Commands and Applications
(<b>sz</b>(1) to <b>tar</b>(1))
<li><A HREF="%%HTML_ROOT%%/docs.Aug96/man3.html">Part 3</A>
<ul>
<li>Chapter 1: Commands and Applications
(<b>tee</b>(1) to <b>yes</b>(1))
<li>Chapter 2: System Calls
(<b>alarm</b>(2) to <b>statfs</b>(2))
</ul>
<li><A HREF="%%HTML_ROOT%%/docs.Aug96/man4.html">Part 4</A>
<ul>
<li>Chapter 2: System Calls
(<b>truncate</b>(2) to <b>wait</b>(2))
<li>Chapter 3: Library Routines
<li>Chapter 4: Devices
</ul>
</ul>
<p>
The original MS-Word versions of these manual pages are also available for
download via ftp at
<A HREF="%%FTP_ROOT%%/doc/refs/aug96/manpages.zip">
%%FTP_ROOT%%/doc/refs/aug96/manpages.zip</A>
<hr>
Devin Reade
<A HREF="mailto:gdr@eddore.myrias.com">gdr@eddore.myrias.com</A>
<p>
<A HREF="http://www.visi.com/~nathan/a2/a2viewable.html">
<img alt="Apple II viewable page" height=31 width=88
src="%%GIFDIR%%/a2viewable.gif"></A>
<br>
</body>
</html>

321
doc/refs/intro.tex Normal file
View File

@ -0,0 +1,321 @@
%
% GNO Overview
%
% $Id: intro.tex,v 1.1 1997/11/24 05:07:27 gdr Exp $
%
\documentstyle{report}
\begin{document}
\title{GNO/ME Overview Version 2.0}
\author{Jawaid Bazyar \\ Tim Meekins}
\date{August 1996}
\maketitle
\parindent=0pt
\parskip=1pc
The GNO Multitasking Environment is Copyright 1991-1997 by
Procyon Enterprises Incorporated.
Documentation, second edition, August 1996.
The ORCA/C run-time libraries are Copyright 1987-1997 Byte Works, Inc.,
and distributed with permission.
This product includes software developed by the University of California,
Berkeley and its contributors.
GNO/ME 2.0 also includes several utilities and libraries produced by
outside authors and in the public domain. This software is included
solely as a convenience to users of GNO/ME, and is not considered part
of GNO/ME for copyright purposes.
GNO and GNO/ME are trademarks of Procyon Enterprises Incorporated.
Apple IIGS, APW, Finder, GS/OS, ProDOS, Macintosh, and HFS are registered
trademarks of Apple Computer, Inc.
AppleWorks GS is a trademark of Claris Corp.
UNIX is a registered trademark of AT\&T Bell Laboratories.
\bf
Important Notice:
\rm
This is a fully
copyrighted work and as such is protected under the copyright
laws of the United States of America. According to these laws,
consumers of copywritten material may make copies for their
personal use only. Duplication for any other purpose whatsoever
would constitute infringement of copyright laws and the offender
would be liable to civil damages of up to \$50,000 in addition to
actual damages, plus criminal penalties of up to one year
imprisonment and/or a \$10,000 fine.
Procyon Enterprises Inc.
MAKES NO
WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING THE ENCLOSED
COMPUTER SOFTWARE PACKAGE, ITS MERCHANTABILITY OR ITS FITNESS FOR
ANY PARTICULAR PURPOSE. THE EXCLUSION OF IMPLIED WARRANTIES IS
NOT PERMITTED IN SOME STATES. THE ABOVE EXCLUSION MAY NOT APPLY
TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL RIGHTS.
THERE MAY BE OTHER RIGHTS THAT YOU MAY HAVE WHICH VARY FROM STATE
TO STATE.
This product is sold for use on a
\em single computer
\rm at a
\em single location .
\rm For information on obtaining a site license for using multiple copies,
contact the publisher.
% \begin{verbatim}
\leftline{Procyon Enterprises, Inc.}
\leftline{P.O. Box 641}
\leftline{Englewood, CO 80151-0641 USA}
\leftline{(303) 781-3273}
% \end{verbatim}
\vfill
\chapter{Credits}
\begin{quote}
Always listen to experts. They'll tell you what can't be done, and why.
Then do it.
\em Lazarus Long \rm
\end{quote}
The {\bf GNO} {\bf M}ultitasking {\bf E}nvironment for the Apple IIgs.
Copyright 1991-1997, Procyon Enterprises Inc. and Tim Meekins.
Please direct all inquiries to:
\tt \begin{verbatim}
Procyon, Inc.
PO Box 641
Englewood, CO 80151-0641 USA
(303) 781-3273
\end{verbatim} \rm
For on-line technical assistance, contact:
\begin{tabbing}
America OnLine \=GNOJawaid, GNOTim2 \\
GEnie \>Procyon.Inc \\
Internet \>bazyar@hypermall.com \\
Delphi \>JAWAIDB \\
\end{tabbing}
\chapter{Miscellaneous}
\section{Reporting Bugs}
In any large piece of computer software
such as the GNO/ME system, bugs are sure to turn up, no matter
how much testing is performed on the software before it goes out
the door. If you discover a bug in GNO/ME, we'd like to hear
about it. There are several things we require, however, to make
bug reports useful to us.
First of all, we need a complete
description of your computer system; how much RAM, what cards, in
what slots, what type of disk storage, etc. This information is
very important in tracking down hardware-dependent bugs. Also, we
need to know the version numbers of the software involved; the
GNO Kernel, the GNO Shell, and any utilities.
Second, we need a step-by-step description
of how to duplicate the bug. If this requires writing down
individual keystrokes, then we need it. Only in this way can we
decide whether the bug is hardware dependent or global.
You can send bug reports to any of the
electronic mail addresses listed on the 'Credits' page, or by
mailing a disk containing a description of the problem and the
necessary software and files to the Procyon address.
\section{User Projects}
If you're working on a project which
utilizes GNO/ME in some way, we'd like to know about it. Just
contact us by mail, phone, or whatever is most convenient for
you, and tell us about your project. If possible, we'll
coordinate your efforts with those of other programmers. If we
really like your project and think it may be useful to others, we
may include it on the next GNO/ME distribution!
\section{Software Piracy}
If you have illegally copied computer software from someone
and are now reading this, take a moment to reflect on what you've done.
Many computer software applications are huge projects, consuming
many man-years of effort, huge amounts of money, and a lot of grief on the
part of the developers.
For example, the Byte Works' ORCA languages and development
environment (as of November 1997) consists of over 220,000 lines
of source code, \em not \rm including the libraries, tool
interface files, test programs, samples, or the 5 800k disks
of source in the courses for each language. This work represents
approximately 17 man-years of development, support, marketing,
and management.
Is it right that you're now benefiting from
developers' efforts without any just compensation to the authors?
Many programmers are born, bred, and raised in the spirit of
computing. They love to write software, and probably always
will. But if they cannot make enough money to make it
worthwhile to continue their work, then they won't; because by
worthwhile, we mean not only food on the table, but resources for
expansion and continued growth. In short,
support them and they'll support you.
Computer software is very inexpensive when you
consider what it allows you to do.
To all you who properly pay for the software you use:
Thank you.
\chapter{Preface}
Computers are tools. The flexibility of a
tool determines how useful it is. Early computers were much like
the one this software was written for: the Apple IIgs. They could
only run one program at a time, and their usefulness was limited
to what the particular program the user was executing offered. In
the late 1960's, a team of researchers at AT\&T began
developing the UNIX operating system. The UNIX design was
partially based on the premise that most programs are I/O bound,
that is, most of the time the program executes is spent waiting
for user input or other I/O operations. While one program is
waiting for I/O, why not allow another program to execute? This
is what they did, and the result was one of the most successful
computer operating systems ever created.
The Apple IIgs, like the Macintosh it is
modelled after, provides very limited multitasking abilities in
the form of desk accessories (NDAs). The programs in the NDA menu
are available in whatever application you use as long as it
follows Apple's guidelines. However, there are many graphics
based programs that don't support NDAs, and in addition there is
a wealth of software that has been developed for the Byte Works'
ORCA environment. This environment is mainly text-based, and thus
makes access to NDAs impossible. As if that wasn't enough, it's
very difficult to write an NDA to allow the application to keep
running concurrently. So the benefits are lost, and we're back at
ground zero.
Enter the GNO Multitasking Environment.
What was once just dreamed about is now a reality. GNO/ME
provides an environment that is almost entirely compatible with
software developed for the ORCA environment. But GNO/ME also
provides a wealth of new abilities, lots of new ground for
developers and users alike.
Before we begin describing, we'd like to
respond to those who say such a multitasking system isn't
possible on the Apple IIgs. Obviously it is: you hold it in your
hands. Some say the Apple IIgs isn't powerful enough to make
multitasking useful. We point out that the Apple IIgs is much
more powerful than the first computers UNIX was designed to run
on; they only had 64K of real memory, and were 16 bit machines.
Some ask why you'd ever need to run more than one program at
once. These are the same people who asked why we'd ever need more
than 64K of memory, or more than 140K of storage on disks (end
soapbox).
\chapter{Introduction}
The GNO Multitasking Environment provides
pre-emptive multitasking. Many programs can be executing at the
same time; each is called a 'process'. Each process is allowed to
run for a short period of time (1/20th of a second on average).
When its time runs out, the current process is set aside and
another one chosen to run next. This cycle continues until there
are no more processes left (i.e. when you exit GNO/ME). Starting
up processes to run 'in the background' is a simple matter of
adding a few characters to the shell commands.
GNO/ME provides a shell that takes full
advantage of the multitasking ability provided. The most
important feature of the shell is job control (starting,
terminating, and suspending processes). But the shell also
provides power never before seen on the Apple IIgs. The ability
to choose files by 'wildcard' has been around for a while, but
the GNO Shell takes this to a new level with 'regular
expressions', a very powerful yet simple programming language.
Other benefits of the GNO shell are too numerous to mention. (see
the \bf GNO Shell User's Manual \rm for details).
In addition to being compatible with the
ORCA system, GNO/ME is a very powerful programming environment.
Available to the programmer are all the calls needed to control
processes, support Inter-Process Communication, and other tools
needed in a multitasking environment.
GNO/ME also boasts the first completely
consistent method for accessing serial and console I/O. The IIgs
TextTools have been incredibly enhanced to provide a truly
all-encompassing interface for serial, console, and IPC
applications. Imagine being able to attach terminals to your GS,
and have a useful shell in each one. Multiuser BBSs, remote
dial-ups, UUCP or SLIP that doesn't take over your computer- the
applications are endless!
With all this talk of shell utilities, have
desktop users (users of programs like AppleWorks GS) been left
behind? Absolutely not. GNO/ME doesn't allow more than one
desktop program to run concurrently, but it DOES let you run a
desktop program with as many text applications as you like. In
other words, no functionality is lost from the IIgs by using
GNO/ME.
Finally, the GNO Multitasking Environment
comes with a large number of free utilities that bring some of
the power of a UNIX system to the Apple IIgs. Also, a number of
programming libraries are included that make it easy to port
programs from UNIX or MS-DOS systems to the Apple IIgs.
\chapter{The GNO/ME Package}
Included in your GNO/ME Version 2.0 package are:
\begin{itemize}
\item This GNO/ME overview.
\item The GNO Shell User's Manual.
\item The GNO Kernel Reference Manual.
\item A selection of utility and library documentation.
\item A reading list containing a wide selection of books
for both the user and the programmer
\item Three disks containing the GNO Kernel, GNO Shell, and
loads of utilities.
\end{itemize}
\chapter{Hardware Requirements}
GNO/ME will work on any Apple IIgs with at least 2 MegaBytes of
memory and a hard drive.
You should have at least 5 MegaBytes of hard disk space free.
We recommend 4 MegaBytes of Memory and an
accellerator card, especially if you will be using GNO with many
background processes. A modem and access to an on-line service
will greatly speed access to technical assistance and new
utilities as they are made available.
\parindent=20pt
\end{document}

2709
doc/refs/kern.tex Normal file

File diff suppressed because it is too large Load Diff

57
doc/refs/mkhtmlman Executable file
View File

@ -0,0 +1,57 @@
#! /bin/sh
#
# Devin Reade, November 1997.
#
# $Id: mkhtmlman,v 1.1 1997/11/24 05:07:27 gdr Exp $
man2html=/usr/local/bin/man2html
TMPDIR=${TMPDIR:-/tmp}
#
# Make sure we know where everything is going.
#
if [ -z "$GNOROOT" ]; then
echo "GNOROOT variable not set"
exit 1
fi
if [ -z "$MANHTML" ]; then
echo "MANHTML variable not set"
exit 1
fi
if [ -z "$NAME" ]; then
echo "NAME variable not set"
exit 1
fi
if [ -z "$ADDR" ]; then
echo "ADDR variable not set"
exit 1
fi
set +e
listfile=$TMPDIR/mkhtmlman.1.$$
trap "rm -f $listfile" 0 1 2 15
MANDIRS="$GNOROOT/usr.man $GNOROOT/*bin* $GNOROOT/*lib*"
for section in 1 2 3 4 5 6 7 8; do
dest=$MANHTML/man$section
[ -d $dest ] || mkdir -p $dest
for F in 00.DUMMY `find $MANDIRS -type f -name '*.'$section -print \
| grep -v libcurses/PSD.doc`; do
[ "$F" = 00.DUMMY ] && continue;
f=`basename $F`
echo "creating $dest/$f.html"
echo "$f" >> $listfile
nroff -man $F | $man2html -nodepage | \
perl -p -e \
's/<BODY>/<title>GNO: '"$f($section)"'<\/title><body bgcolor=\#ffffff>/;' \
> $dest/$f.html
done
sort $listfile | \
./mkmandex -s$section -name="$NAME" -addr="$ADDR" -mkso="$MKSO" \
-hroot="$HTMLROOT" > $dest/00.index.html
rm $listfile
done

163
doc/refs/mkmandex Executable file
View File

@ -0,0 +1,163 @@
#! /usr/bin/perl -s
#
# This creates an index page for the man pages of a given chapter.
# Usage:
# ls -1 file_list | mkmandex -sSection -name="maintainter name" \
# -address="maintainer email address"
#
# Devin Reade, November 1997.
#
# $Id: mkmandex,v 1.1 1997/11/24 05:07:27 gdr Exp $
#
# initialize and check usage
$sec='';
defined($s1) && ($num = '1') && ($sec = "Commands and Applications");
defined($s2) && ($num = '2') && ($sec = "System Calls");
defined($s3) && ($num = '3') && ($sec = "Library Routines");
defined($s3f) && ($num = '3f') && ($sec = "Fortran Routines");
defined($s4) && ($num = '4') && ($sec = "Devices");
defined($s5) && ($num = '5') && ($sec = "File Formats");
defined($s6) && ($num = '6') && ($sec = "Games");
defined($s7) && ($num = '7') && ($sec = "Miscellaneous");
defined($s8) && ($num = '8') && ($sec = "System Administration");
($sec eq '') && die("section number not specified");
defined($name) || die("-name flag not specified");
defined($addr) || die("-addr flag not specified");
defined($hroot) || die("-hroot flag not specified");
# $hdir = $hroot . '/man/man' . $num . '/';
$hdir = $hroot . '/man/';
# print out the head of the page
printf("<html>\n" .
"<head>\n" .
"<!-- This document autogenerated from mkmandex -->\n".
'<!-- $Id: mkmandex,v 1.1 1997/11/24 05:07:27 gdr Exp $ -->' . "\n" .
"<title>Chapter %s: %s</title>\n" .
"</head>\n" .
"<body bgcolor=\#ffffff>\n" .
"<h1>Chapter %s: %s</h1>\n" .
"<pre>\n",
$num, $sec, $num, $sec);
# get the list of files
$maxlen = 0;
while(<>) {
chop;
$pagename = $file = $_;
$pagename =~ s/\.\df?$//;
$filelist{$pagename} = "man$num/$file";
$len = length($pagename);
($len > $maxlen) && ($maxlen = $len);
}
# add in the appropriate .so links
if (defined($mkso)) {
open(infp, "< $mkso") || die("couldn't open $mkso");
while ($_ = <infp>) {
s/\#.*//;
(/^\s*$/) && next;
if (/^\s*(\S+)\s+(\S+)\s*$/) {
$real = $1;
$link = $2;
$link =~ s,.*/,,;
if ($link =~ /(\df?)$/) {
$suffix = $1;
if ($suffix eq $num) {
# if ($real =~ m,(.*)/,) {
# $prefix = $1;
# if ($prefix eq "man$num") {
# $real =~ s,.*/,,;
# }
# }
$pagename = $link;
$pagename =~ s/\.\df?$//;
$filelist{$pagename} = $real;
$len = length($pagename);
($len > $maxlen) && ($maxlen = $len);
}
} else {
printf(stderr "%s corrupt at line %d (1) real=%s\n",
$mkso, $., $real);
}
} else {
printf(stderr "%s corrupt at line %d (2)\n", $mkso, $.);
}
}
close(infp);
}
$pagewidth = 70;
$colwidth = $maxlen + 3;
$columns = int($pagewidth / $colwidth);
($columns == 0) && ($columns = 1);
# special-case the introduction page
$intro = 'intro';
if (defined($filelist{$intro})) {
printf("<A HREF=\"%s%s.html\">%s</A> (Chapter Introduction)\n\n",
$hdir, $filelist{$intro}, $intro);
undef($filelist{$intro});
}
@keylist = sort(keys(%filelist));
# put everything into neat columns
undef(@rows);
$maxrow = 0;
$entries = scalar(@keylist);
$maxrow = int($entries / $columns);
(($entries % $columns) == 0) || ($maxrow++);
while (scalar(@keylist) > 0) {
for ($i=0; ($i<$maxrow) && (scalar(@keylist) > 0); $i++) {
$k = shift(@keylist);
if ($k eq $intro) {
$i--;
next;
}
$padding = $colwidth - length($k);
$rows[$i] .= '<A HREF="' . $hdir . $filelist{$k} . '.html">'
. $k . '</A>';
for ($j = 0; $j < $padding; $j++) {
$rows[$i] .= ' ';
}
}
}
# print them out
for ($i=0; $i<$maxrow; $i++) {
printf("%s\n", $rows[$i]);
}
if (0) {
die('oh shit');
while (scalar(@keylist) > 0) {
for ($i=0; ($i<$columns) && (scalar(@keylist) > 0); $i++) {
$k = shift(@keylist);
$padding = $colwidth - length($k);
printf("<A HREF=\"%s\">%s</A>", $filelist{$k}, $k);
for ($j = 0; $j < $padding; $j++) {
print ' ';
}
}
printf("\n");
}
}
# printf("<A HREF=\"%s\">%s</A><br>\n", $_, $_);
# print out the tail of the page
printf("</pre>\n" .
"<hr>\n".
"%s\n" .
"<A HREF=\"mailto:%s\">&lt;%s&gt;</A>\n" .
"</body>\n".
"</html>\n",
$name, $addr, $addr);

15
doc/refs/unaval.html Normal file
View File

@ -0,0 +1,15 @@
<html>
<head>
<title>Unpublished Document</title>
</head>
<body bgcolor=#ffffff>
<H1>GNO Online Documentation</H1>
The document you requested has not yet been released. Please be
patient; updating the GNO documentation takes time.
<p>
<hr>
Devin Reade
<A HREF="mailto:gdr@eddore.myrias.com">&lt;gdr@eddore.myrias.com&gt;</A>.