diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 21:07:28 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 21:07:28 -0400 |
| commit | 711594636704defae873be1a355a292505585afd (patch) | |
| tree | 59ee13f863830d8beba6cfd02bbe813dd486c26f /static/v10/man9 | |
| parent | 3258a063c1f189d7b019e40e525b46bef9b9a7b1 (diff) | |
docs: Added UNIX V10 Manuals
Diffstat (limited to 'static/v10/man9')
64 files changed, 9099 insertions, 0 deletions
diff --git a/static/v10/man9/32ld.9 b/static/v10/man9/32ld.9 new file mode 100644 index 00000000..40ed492a --- /dev/null +++ b/static/v10/man9/32ld.9 @@ -0,0 +1,55 @@ +.TH 32LD 9.1 +.CT 1 lib_obj +.SH NAME +32ld \- bootstrap loader for 5620 +.SH SYNOPSIS +.B 32ld +[ +.I option ... +] +.I file +[ +.I argument ... +] +.SH DESCRIPTION +.I 32ld +loads the MAC-32 object +.I file +for execution in a 5620 connected to the standard output. +When loading into a +.IR mux (9.1) +layer, the +.I arguments +are passed to the program as in Unix. +The options are: +.TP +.B -d +Print on the standard error file the sizes of the text, data and bss +segments of +.I file. +The standard error must be +separated from the standard output to +avoid corrupting the down-load. +.TP +.B -p +Print down-loading protocol statistics on the diagnostic output +(for stand-alone loading only). +.TP +.B -z +Load the process but don't run it. +It may be started using +.IR 3pi ; +see +.IR pi (9.1). +This option works only under +.IR mux . +.PP +The environment variable +.B JPATH +is the analog of the shell's +.B PATH +variable to define a set of directories in which to search for +.IR file . +.SH SEE ALSO +.IR jx (9.1), +.IR mux (9.1) diff --git a/static/v10/man9/3cc.9 b/static/v10/man9/3cc.9 new file mode 100644 index 00000000..6f104393 --- /dev/null +++ b/static/v10/man9/3cc.9 @@ -0,0 +1,163 @@ +.TH 3CC 9.1 +.CT 1 prog_c +.SH NAME +3cc, 3as, 3ar, 3ld, 3nm, 3size, 3strip, cprs \- MAC-32 C compiler +.SH SYNOPSIS +.B 3cc +[ +.I option ... +] +.I file ... +.PP +.B cprs +.I infile outfile +.SH DESCRIPTION +.I 3cc +is the C compiler for the MAC-32 microprocessor in the +Teletype DMD-5620 terminal. +Its default action is to compile programs to run under the +.IR mux (9.1) +environment. +.PP +The behavior of +.I 3cc +is similar to +.IR cc (1). +Here are listed only options with special behavior for 5620s. +.TP +.B -J +Compile the named programs, and link them for running stand-alone +on a 5620 terminal. +.TP +.B -O +Invoke an object-code improver (not recommended). +.TP +.B -m +Compile the named programs for ordinary (non-jerq) environments. +.TP +.BI -D name = def +.br +.ns +.TP +.BI -D name +Define the +.I name +to the preprocessor, +as if by +.LR #define . +If no definition is given, the name is defined as +.LR 1 . +The symbol +.B MUX +is predefined unless +.B -J +or +.B -m +is set. +.TP +.BI -I dir +.L #include +files whose names do not begin with +.L / +are always sought first in the directory +of the +.I file +argument, then in directories named in +.B -I +options, +then in directories on a standard list, which includes +.FR /usr/jerq/include . +.PP +Associated object-code manipulating programs exist. +Their behavior is similar to the programs cited below. +The loader, assembler and archive program are System V +derivatives, and are slightly different in behavior; +see the System V manuals. +For typical uses, these differences are irrelevant. +The support programs include: +.TP +.I 3as +assembler, see +.IR as (1) +.PD 0 +.TP +.I 3ar +archive, see +.IR ar (1) +(there is no +.IR 3ranlib ) +.TP +.I 3ld +link editor, see +.IR ld (1) +.TP +.I 3nm +name list, see +.IR nm (1), +doesn't work on archives +.TP +.I 3size +object code size, see +.IR size (1) +.TP +.I 3strip +symbol table; see +.IR strip (1). +.RB ( -r +is mandatory for +.IR mux -runnable +binaries.) +.PD +.PP +.I 3strip +has no +.B -g +flag; but +.I cprs +removes redundant symbol table entries while +copying +.I infile +to +.IR outfile . +.SH FILES +.TF /usr/jerq/lib/m32/optim +.TP +.F a.out +loaded output +.TP +.F /tmp/ctm* +temporary +.TP +.F /lib/cpp +preprocessor +.TP +.F /usr/jerq/lib/m32/comp +compiler +.TP +.F /usr/jerq/lib/m32/optim +optimizer +.TP +.F /usr/jerq/lib/*.o +runtime startoff, etc. +.TP +.F /usr/jerq/lib/libc.a +standard library +.TP +.F /usr/jerq/lib/libj.a +stand-alone graphics library +.F /usr/jerq/lib/libmj.a +mux-runnable graphics library (default) +.TP +.F /usr/jerq/lib/muxmap +loader I-file +.TP +.F /usr/jerq/include +standard directory for +.L #include +files +.SH "SEE ALSO" +System V manuals for +.I 3ar, 3ld, 3as +and +.I cprs +documentation. diff --git a/static/v10/man9/Makefile b/static/v10/man9/Makefile new file mode 100644 index 00000000..740d316d --- /dev/null +++ b/static/v10/man9/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.9) + +include ../../mandoc.mk diff --git a/static/v10/man9/add.9 b/static/v10/man9/add.9 new file mode 100644 index 00000000..346df52d --- /dev/null +++ b/static/v10/man9/add.9 @@ -0,0 +1,138 @@ +.TH ADD 9.3 +.CT 2 math +.SH NAME +add, sub, mul, div, eqpt, eqrect, inset, muldiv, ptinrect, raddp, rsubp, rectXrect, rectclip \- arithmetic on points and rectangles +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B Point add(p, q) +.B Point p, q; +.PP +.B Point sub(p, q) +.B Point p, q; +.PP +.B Point mul(p, a) +.B Point p; int a; +.PP +.B Point div(p, a) +.B Point p; int a; +.PP +.B int eqpt(p, q) +.B Point p, q; +.PP +.B int eqrect(r, s) +.B Rectangle r, s; +.PP +.B Rectangle inset(r, n) +.B Rectangle r; int n; +.PP +.B int muldiv(a, b, c) +.B int a, b, c; +.PP +.B int ptinrect(p, r) +.B Point p; Rectangle r; +.PP +.B Rectangle raddp(r, p) +.B Rectangle r; Point p; +.PP +.B Rectangle rsubp(r, p) +.B Rectangle r; Point p; +.PP +.B int rectXrect(r, s) +.B Rectangle r, s; +.PP +.B int rectclip(rp, s) +.B Rectangle *rp, s; +.SH DESCRIPTION +.I Add +returns the Point +sum of its arguments: +.BI Pt( p .x+ q .x, +.IB p .y+ q .y). +.I Sub +returns the Point +difference of its arguments: +.BI Pt( p .x- q .x, +.IB p .y- q .y). +.I Mul +returns the Point +.BI Pt( p .x* a , +.IB p .y* a ). +.I Div +returns the Point +.BI Pt( p .x/ a , +.IB p .y/ a ). +.PP +.I Eqpt +and +.I eqrect +compare their arguments and return +0 if unequal, +1 if equal. +.PP +.I Inset +returns the Rectangle +.BI Rect( r .origin.x+ n , +.IB r .origin.y+ n , +.IB r .corner.x- n , +.IB r .corner.y- n ) . +The following code creates a clear rectangle +.B r +with a 2-pixel wide border inside +.BR r : +.IP +.EX +rectf(&display, r, F_OR); +rectf(&display, inset(r, 2), F_CLR); +.EE +.PP +.I Muldiv +is a macro that returns the 16-bit result +.BI ( a * b )/ c\fR, +with +.BI ( a * b ) +calculated to 32 bits, so +no precision is lost. +.PP +.I Ptinrect +returns 1 if +.I p +is a point within +.IR r , +and 0 otherwise. +.PP +.I Raddp +returns the Rectangle +.BI Rect(add( r .origin, +.IB p ), +.BI add( r .corner, +.IB p ))\fR; +.I rsubp +returns the Rectangle +.BI Rect(sub( r .origin, +.IB p ), +.BI sub( r .corner, +.IB p ))\fR. +.PP +.I RectXrect +returns 1 if +.I r +and +.I s +share any point; 0 otherwise. +.PP +.I Rectclip +clips in place +the Rectangle pointed to by +.I rp +so that it is completely contained within +.IR s . +The return value is 1 if any part of +.RI * rp +is within +.IR s . +Otherwise, the return value is 0 and +.RI * rp +is unchanged. +.SH SEE ALSO +.IR types (9.5) diff --git a/static/v10/man9/alloc.9 b/static/v10/man9/alloc.9 new file mode 100644 index 00000000..4a7374fc --- /dev/null +++ b/static/v10/man9/alloc.9 @@ -0,0 +1,93 @@ +.TH ALLOC 9.3 +.CT 2 mem_man +.SH NAME +alloc, free, balloc, bfree, gcalloc, gcfree \- allocate memory +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B char *alloc(nbytes) +.B unsigned nbytes; +.PP +.B void free(s) +.B char *s; +.PP +.B Bitmap *balloc(r) +.B Rectangle r; +.PP +.B void bfree(b) +.B Bitmap *b; +.PP +.B char *gcalloc(nbytes, where) +.B unsigned long nbytes; +.B char **where; +.PP +.B void gcfree(s) +.B char *s; +.SH DESCRIPTION +.I Alloc +corresponds to the standard C function +.IR calloc ; +see +.IR malloc (3). +It returns a pointer to a block of +.I nbytes +contiguous bytes of storage, or 0 +if unavailable. +The storage is aligned on 4-byte boundaries +and is cleared to zeros. +.I Free +frees storage allocated by +.IR alloc . +.PP +.I Balloc +returns a pointer to a Bitmap +large enough to contain +the Rectangle +.IR r , +or 0 +for failure. +The coordinate system inside the Bitmap is set by +.IR r : +the +.B origin +and +.B corner +of the Bitmap are those of +.IR r . +.I Bfree +frees the storage associated with a Bitmap allocated by +.IR balloc . +.PP +.I Gcalloc +provides a simple garbage-compacting allocator. +It returns a pointer to a block of +.I nbytes +contiguous bytes of storage, or +0 +if unavailable. +The storage is initialized to zeros. +.I Where +is a pointer to the user's data where the location of the +block is to be saved. +The return value of +.I gcalloc +is stored in +.BI * where +and will be updated after each compaction. +Therefore, a program using +.I gcalloc +should never store the location of memory obtained from +.I gcalloc +anywhere other than +.I where. +Typically, this location is contained in a structure, such as a +Bitmap +.RI ( balloc +uses +.IR gcalloc ). +.I Gcfree +frees the storage block at +.IR p . +.SH SEE ALSO +.IR types (9.5), +.IR malloc (3) diff --git a/static/v10/man9/bitblt.9 b/static/v10/man9/bitblt.9 new file mode 100644 index 00000000..28b4156c --- /dev/null +++ b/static/v10/man9/bitblt.9 @@ -0,0 +1,161 @@ +.TH BITBLT 9.3 +.CT 2 graphics +.SH NAME +Code, addr, bitblt, point, rectf, screenswap, segment, texture \- graphics functions +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B typedef int Code; +.br +.B "Code F_STORE, F_XOR, F_OR, F_CLR; +.PP +.B Word *addr(b, p) +.B "Bitmap *b; Point p; +.PP +.B void bitblt(sb, r, db, p, f) +.B "Bitmap *sb, *db; Rectangle r; Point p; Code f; +.PP +.B void point(b, p, f) +.B "Bitmap *b; Point p; Code f; +.PP +.B void rectf(b, r, f) +.B "Bitmap *b; Rectangle r; Code f; +.PP +.B void screenswap(b, r, s) +.B "Bitmap *b; Rectangle r, s; +.PP +.B void segment(b, p, q, f) +.B "Bitmap *b; Point p, q; Code f; +.PP +.B void texture(b, r, t, f) +.B "Bitmap *b; Rectangle r; Texture *t; Code f; +.SH DESCRIPTION +The type +.B Code +tells the graphics primitives what +operation perform. +The possible values are: +.nf +.IP +.de fx +\f5\&\\$1 \fI\\$2 \&\f5\\$3\fI \\$4 +.. +.ta \w'\f5F_STORE\ 'u +\w'\fItarget 'u +\w'\f5&=\fI 'u +.fx F_STORE target = source +.fx F_OR target |= source +.fx F_XOR target ^= source +.fx F_CLR target &= ~source +.fi +.DT +.PP +In other words, if a +Rectangle +is copied to another place with Code +.BR F_OR , +the result will be the bitwise +OR of the contents of the source +Rectangle +and the target area. +For operations with no explicit source, such as line drawing, +the source is taken to be an infinite bitmap with zeros everywhere +except on the object (e.g. line) generated by the operator, +with coordinates aligned with the destination bitmap. +.B F_STORE +is the same as +.B F_OR +for non-rectangular operations. +.PP +.I Addr +returns the address of the Word containing the bit +at Point +.I p +in the Bitmap +.IR b . +.PP +.I Bitblt +(bit-block transfer) +copies the data in Rectangle +.I r +in Bitmap +.I sb +to the congruent Rectangle with +.I origin +.I p +in Bitmap +.IR db . +The nature of the copy is specified by the Code +.IR f . +.PP +.I Point +draws the pixel at location +.I p +in the Bitmap +.I b +according to +.I Code +.IR f . +.PP +.I Screenswap +does an in-place exchange of the on-screen Rectangle +.I s +and the Rectangle +.I r +within the Bitmap +.IR b . +Its action is undefined if +.I r +and +.I s +are not congruent. +The Rectangle +.I s +is not +clipped to +the Bitmap +.IR b , +only to the screen. +.PP +.I Segment +draws a line segment in Bitmap +.I b +from Point +.I p +to +.IR q , +with Code +.IR f . +The segment is half-open: +.I p +is the first point of the segment and +.I q +is the first point beyond the segment, +so adjacent segments sharing endpoints abut. +Like all the other graphics operations, +.I segment +clips the line so that only the portion of the line intersecting the +bitmap is displayed. +.PP +.I Texture +draws, with function +.I f +in the Rectangle +.IR r +in Bitmap +.IR b , +the +Texture specified by +.IR t . +The texture is replicated to cover +.IR r . +.I Rectf +is equivalent to +.I texture +with +.I *t +set to all one's. +.PP +In the above definitions, the type Bitmap may +be replaced with Layer anywhere; see +.IR newlayer (9.2). +.SH SEE ALSO +.IR types (9.5) diff --git a/static/v10/man9/bitfile.9 b/static/v10/man9/bitfile.9 new file mode 100644 index 00000000..f31e2c9c --- /dev/null +++ b/static/v10/man9/bitfile.9 @@ -0,0 +1,74 @@ +.TH BITFILE 9.5 +.CT 1 comm_other +.SH NAME +bitfile \- format of bitmap file +.SH DESCRIPTION +Binary files produced by +.IR blitblt (9.1) +and other bitmap-generating programs +are formatted as follows: +.TP 12 +Byte no. +Description +.TP +0, 1: +Zero. +.TP +2, 3: +.IR x -coordinate +of the rectangle origin (low-order byte, high-order byte). +.TP +4, 5: +.IR Y -coordinate +of the rectangle origin (low-order byte, high-order byte). +.TP +6, 7: +.IR x -coordinate +of the rectangle corner (low-order byte, high-order byte). +.TP +8, 9: +.IR Y -coordinate +of the rectangle corner (low-order byte, high-order byte). +.TP +remainder: +Compressed raster data. +Each raster is exclusive-or'd +with the previous one, and +zero-extended (if necessary) to a 16-bit boundary. +It is then encoded into +byte sequences, each of which consists of a control byte followed by +two or more data bytes: +.TP 12 +Control +Data +.TP +.IR n " (< 127)" +.RI 2\(mu n +bytes of raster data, running from left to right. +.TP +.BI "0x80+" n +2 bytes of raster data, to be replicated from left to right +.I n +times. +.LP +There are also two +.SM ASCII +formats in current use. +Textures and 16\(mu16 icons, +as created by +.IR icon (9.1), +are encoded as a +.B Texture +declaration with initializer, +to be copied unchanged into C program source; see +.IR types (9.5). +Faces and other large icons +are without any surrounding C syntax. +In either case, each scan line of the +bitmap is a comma-separated list of C-style short +hexadecimal constants; scan lines are separated by newlines. +.SH "SEE ALSO" +.IR blitblt (9.1), +.IR icon (9.1), +.IR types (9.5), +.IR vismon (9.1) diff --git a/static/v10/man9/blitblt.9 b/static/v10/man9/blitblt.9 new file mode 100644 index 00000000..fd690e91 --- /dev/null +++ b/static/v10/man9/blitblt.9 @@ -0,0 +1,130 @@ +.TH BLITBLT 9.1 +.CT 1 comm_other +.SH NAME +blitblt, menudrop \- save or print a screen image +.SH SYNOPSIS +.B blitblt +[ +.B -p +.I command +] +.PP +.B menudrop +.SH DESCRIPTION +.I Blitblt +copies a selected area of a +.IR mux (9.1) +screen into a file +or to a program. +It is menu-driven off button 3 to select a +rectangular area and to treat it by flipping the +border from wide to narrow and back, inverting video, +saving the selcted area in a file, or sending +it to a program, usually for printing. +Details of certain menu items: +.nr xx \w'\f5sweep rectangle\f1'u+2n/1n +.TP \n(xx +.TP +.B choose layer +.br +.ns +.TP +.B layer rectangle +One gets the bits of a layer, obscured or not; the other +gets screen bits including superposed layers. +.TP +.B run/halt +Restart or stop the terminal +process in the selected layer. +.TP +.B write file +Write the selected area into a file or pipe in +.IR bitfile (9.5) +format. +The filename is typed +at the bottom of the +.I blitblt +layer. +A bare newline repeats the previous name. +If the first character is +.LR | , +the remainder of +the line is taken as a shell command to pipe into. +(A likely command is +.BR |lp +for hard copy.) +.TP +.BI | " command" +Pipe the selected area to the +.I command +specified by the +.B -p +option. +.PP +.I Menudrop +may be used with +.IR blitblt +to make images containing `menus' +as fraudulent overlaid layers. +The program is menu-driven off button 3: +.nr xx \w'\f5drop menu\f1'u+2n/1n +.TP \n(xx +.B drop menu +A +.RI non- mux +menu selected in another window will be drawn +and will remain on screen after +the button selecting the menu has been released. +Subsequent menu selections +will delete the previous menu layer and create a new one. +Once such a menu-bearing layer is present, the +.I menudrop +menu changes to allow cursor placement, highlighting of menu items, +lifting of the displayed menu, etc. +The functionality of the program using the menu is not affected. +.TP +.B mux menus +The next click of button 1 or 2 will drop the corresponding (non-functional) +.I mux +menu at the mouse position. +.TP +.B exit +.I Menudrop +will exit in a clean manner. +.SH EXAMPLES +.TP +.L blitlblt -p lp +.br +.ns +.TP +.L +blitblt -p "lp -p bpost" +Arrange for piping output to a laser printer: a good +way, and a surefire way. +.SH SEE ALSO +.IR mbits (6), +.IR bitfile (9.5) +.SH BUGS +Animated layers result in broken images. +Use the +.B halt +function. +.br +If a pipe request fails, the +.I blitblt +layer becomes unusable. +.br +The default +.I command +for +.L "write file" +is obsolete. +.br +Deleting a +.I menudrop +layer, rather than exiting through the menu, can crash the terminal. +.br +Programs that use private menu packages are unaffected by +.IR menudrop ; +using a debugger to stop a program in midmenu may +get the same effect. diff --git a/static/v10/man9/blitmap.9 b/static/v10/man9/blitmap.9 new file mode 100644 index 00000000..be776d44 --- /dev/null +++ b/static/v10/man9/blitmap.9 @@ -0,0 +1,191 @@ +.TH BLITMAP 9.7 seki +.CT 1 inst_info graphics +.SH NAME +blitmap \- road maps and path finding +.SH SYNOPSIS +.B blitmap +[ +.I option ... +] +.SH DESCRIPTION +.I Blitmap +displays road maps. +It relies on the mouse to select regions, functions, and to give +formats for typed commands. +The metropolitan N.Y.-N.J. area is the default map. +.IR Blitmap's +screen consists of two frames, +a large frame for plotting maps and printing messages to the user, and +a one-line command frame at the bottom. +.I Blitmap +recognizes two commands from the keyboard, +to designate a region and to scale or plot a route +from one point to another. +The commands, which may be typed at any time, follow. +Here +.I option +is as in the command line. +.HP +[ +.I option ... +] +.B radius +.I address +[ +.BI , " town or zip +] +Plot an area with the given radius in miles around the +.I address. +.TP +.B path +[ +.I option ... +] +.B from +.I address +.B to +.I address +[ +.BI , " town or zip +] +Trace a route on a map and print traveling +directions from point to point. +.PP +.I Address +may be a number and street or an intersection such as, +.L main and 10th +or +.LR "600 Mountain av,new providence" . +.LP +Button 3 Menu +.TF Zoom-out +.TP +.B Regions +Select which region to plot. +Available regions are San Francisco, New York City and North Jersey, +Washington, Los Angeles and Ann Arbor. +.TP +.B Zoom-in +Using button 3 and the box icon, enclose the area desired and +.I blitmap +will plot a map of that area +centered at the center of the drawn rectangle. +.TP +.B Zoom-out +Enclose an area with a rectangle and the map shown will be reduced to the +rectangle size and the rest of the map filled in. The center will be at the center +of the drawn rectangle. +.TP +.B Center +With button 3 point to new center. The radius will remain the same. +.TP +.B Prev. map +.I Blitmap +plots the previous frame. +.TP +.B To draw map +.TP +.B To find path +Tell about the keyboard commands +.TP +.B Quit +Confirm with button 3. +.PD +.PP +Button 2 controls map editing functions. +No editing is actually done, but +by using +the +.B -f +option, a file +of changes will be written, which may be added to the actual database. +.PP +The options specify the algorithm of the path search and plotting choices: +.TP +.B -2 +Two ended search (default). +.PD 0 +.TP +.B -1 +One way search. +.TP +.B -b +Breadth search. +.TP +.B -C +Cyclists \- ignore costs for turns. +.TP +.B -F +Stop at first route connect with breadth search. +.TP +.B -H +Hierarchical search. +(Give priority to major roads.) +.TP +.B -G +In breadth search, ignore ones whose cost + dist >4/3 total airline distance. +.TP +.B -J +Use precomputed routes. +(Available from 600 mountain av,New Providence.) +.TP +.B -V +Verbose directions (all intersections given). +.TP +.B -W +Walkers \- no cost for turns and ignore one-way streets. +.TP +.B -A +Print every possible label. +.TP +.B -B +Print business names. +.TP +.BI -MI x +Forces a detailed street plot for maps whose radius is greater than 10,000 ft. +.TP +.B \-b +Don't print boundaries. +.TP +.BI -i x +Plot only streets with importance +.RI > x ; +.IR x =0 +is default. +.TP +.B -j +Do sketch map only. +.TP +.B -l +Don't print labels. +.TP +.B -r +Don't print railroads. +.TP +.B -s +Don't print streets. +.TP +.B -w +Don't print waterways. +.PD +.SH FILES +.TF /n/seki/usr/rje/BLIT/term/term +.TP +.F /n/seki/usr/rje/BLIT/term/term +terminal support program +.TP +.F /n/seki/m?/map/* +map files +.SH BUGS +Since the data bases have not been checked and many streets are not connected, +some paths may be circuitous. +There are no connecting roads +from N.J into N.Y or from Middlesex county into Union. +The routing programs +will churn, trying to find a through street and will not give up. +.br +There are +no one-way tags on the streets. +.br +.I Blitmap +does not know if it has been reshaped. diff --git a/static/v10/man9/brfs.9 b/static/v10/man9/brfs.9 new file mode 100644 index 00000000..c1188486 --- /dev/null +++ b/static/v10/man9/brfs.9 @@ -0,0 +1,27 @@ +.TH BRFS 9.8 +.SH NAME +brfs \- browse file system +.SH SYNOPSIS +.B /etc/brfs +[ +.I filesystem +] +.SH DESCRIPTION +.I Brfs +examines a +.I filesystem +using a +.I pads (9.5) +interface, in the manner of +.IR pi (9.1). +It requires license +.BR T_NOCHK ; +see +.IR getplab (2). +.PP +The top level menu inspects the superblock and gives access to +other blocks by block number in the file system interpreted +as inode blocks, directory blocks, indirect blocks or ascii blocks. +.PP +.SH SEE ALSO +.IR filsys (5) diff --git a/static/v10/man9/brush.9 b/static/v10/man9/brush.9 new file mode 100644 index 00000000..06a9a4ac --- /dev/null +++ b/static/v10/man9/brush.9 @@ -0,0 +1,301 @@ +.TH BRUSH 9.1 +.CT 1 games +.SH NAME +brush \- painting program +.SH SYNOPSIS +.B brush +[ +.B -f +.I fontdir +] +[ +.B -p +.I picdir +] +[ +.B -t +.I texdir +] +.SH DESCRIPTION +.I Brush +paints images under mouse control. +Options are +.TP +.B -f +font directory +.RF ( /usr/jerq/font +by default) +.PD 0 +.TP +.B -p +the directory in which to keep pictures +(current directory by default) +.TP +.B -t +texture directory, where brushes and shades live +(current directory by default) +.PD +.PP +In general, button 1 draws, button 2 erases; +the cursor assumes the shape of the current brush. +Button 3 is used to select options, sweep out areas, +or cancel operations in progress. +.PP +The borders on either side of the drawing area contain menus of +available shades and brushes. +The current brush and shade are outlined by boxes. +To choose another, click button 3 at it. +.PP +The top border contains +a help area, +drawing options, +and certain commands. +Selections are made by pointing with button 3. +Some cycle through options; others bring up menus. +The items are: +.TP +help +Icons in three boxes indicate what buttons +1, 2, and 3 will do at any given time: +.PD +.IP +.nf +.ta \w'\f5square with arrow 'u +paintbrush draw with this button +pencil eraser erase with this button +menu with cursor menu on this button +thumbs down cancel or finish an operation +pointing hand indicate a point +square with arrow sweep a rectangle +circle with arrow sweep a circle +skull exit the program +.fi +.DT +.TP +smooth +Smooth the contours of magnified images. +.TP +align +Force circles, discs, text, and other images +to align with texture cell boundaries. +.TP +.B image +Manipulate the +`current image', +(box, ellipse, etc.)\& +selected from the drawing menu described below. +Button 3 makes the image disappear, reserved for future use. +The image menu contains: +.RS +.TF magnify +.TP +.B same +Bring back the current image. +.TP +.B magnify +Sweep a rectangle indicating the +size of the magnified image. +The numbers that appear are horizontal and vertical +magnification factors. +.TP +.B shrink +Shrink to 1/4 size. +Indicate whether image is shaded or black & white. +.TP +.B flip +Reflect left-right or top-bottom. +.TP +.B rotate +Rotate counterclockwise or clockwise 90 degrees. +.TP +.B slant +Drag the current image rectangle into a parallelogram. +.TP +.B outline +Replace the current image with its outline. +.TP +.B shadow +Draw a `shadow' behind the current image. +.TP +.B shadow +Draw a `shadow' behind the current image. +.TP +.B new +Make a new image by copying a rectangular portion of the screen. +.RE +.PD +.TF Smooth +.IP +To move an image on the screen, select +.B new +from the +.B image +menu. +Sweep the area to be moved, click button 2 to erase it, +move it, and click button 1 to draw it. +.PD +.TP +drawing style +Select continuous curves, dotted lines, +disconnected dots, or an `airbrush' effect when painting. +.PD 0 +.TP +constrain +Select freehand (wavy-line icon) or +horizontal-vertical drawing (angular icon). +.PD +.TP +reflect +Draw symmetric figures. +The icon shows the symmetries: +.B x=0 +(left-right), +.B y=0 +(top-bottom), +or +.BR both , +relative to the center of the screen. +.PD0 +.TP +draw mode +Set the drawing mode to one of +.BR or , +.BR xor , +.BR store , +.BR and , +.B copy +(preserves interior whitespace of images). +.TP +text style +Set the text style to one of +.BR normal , +.BR outline , +.BR bold , +.BR shadow , +.BR italic . +.TP +font name +Set the text font. +Menu selection +.B new +prompts for a font name +from the font directory. +.PD +.TP +.B i/o +Interact with host machine. +Menu items are: +.PD 0 +.RS +.TF recall +.TP +.B save +Copy screen, brushes, or shades to a file. +Prompts for a file name, starting with the default picture +directory (if any). +Backspace past this if you wish to save elsewhere; +hit return to quit. +Next sweep a rectangle to be saved. +Bitmaps are saved in +.IR bitfile (9.5) +format. +.TP +.B recall +Prompts for a file name. +The recalled picture becomes the +current image. +.TP +.B exit +Leave the program. +Confirm by +two clicks on button 3. +.PD +.RE +.PP +The menu on button 3 in the drawing area contains these selections: +.TF Smooth +.TP +.B lines +Indicate first point, then position cursor with rubber band line +for subsequent lines. +Button 1 draws, button 2 erases. +.PD +.TP +.B curves +Indicate first control point, then position cursor with rubber band line +for subsequent control points. +A curve (spline) will be drawn (erased) using these control points, +depending on whether the last button hit is button 1 (draw), or button 2 (erase). +.PD 0 +.TP +.B box +.TP +.B ellipse +.TP +.B disc +(A disc is a filled ellipse). +Sweep a rectangle; +numbers show the dimensions. +A single dot marks the center of an ellipse. +The image becomes the current image; +use buttons 1 and 2 to draw or erase with it. +.PD +.TP +.B string +Type in text. +The string becomes the current image. +.TP +.B texture +Sweep a rectangle. +The current image +becomes a rectangle of this size textured with current shade. +.TP +.B fill +Sweep a rectangle, then indicate interior seed points +using button 1, or button 3 to quit. +Enclosed regions will be filled with current shade. +Any button cancels the fill. +.PD 0 +.TP +.B clear +.TP +.B invert +Sweep a rectangle to be cleared or color-inverted. +.PD +.TP +.B fade +Sweep a rectangle. +Holding button 2 will fade this area, as if +erasing in +spray paint mode with +a random pattern instead of a shade. +.PD 0 +.TP +.B new brush +.TP +.B new shade +Menu select whether to edit or snarf from screen (with button 3). +If editing, +the current brush (shade) will appear magnified in upper left corner. +Edit with buttons 1 and 2, quit with 3. +Several `spare' brushes appear at the bottom of the brush menu. +.PD +.TP +.B details +Select an area with box cursor to be magnified for detailed editing. +.PD +.SH "SEE ALSO" +.IR paint (9.1), +.IR mbits (6), +.IR bitfile (9.5) +.SH BUGS +The smoothing operation fully smooths only +for magnification factors that are powers of two. +.br +Bitmaps moved off the top or bottom +of the physical screen can pick up noise. +.br +.B Copy +mode generates a mask the first time a given image is moved. +This can take a while for large images. +Be patient. diff --git a/static/v10/man9/button.9 b/static/v10/man9/button.9 new file mode 100644 index 00000000..3699192d --- /dev/null +++ b/static/v10/man9/button.9 @@ -0,0 +1,108 @@ +.TH BUTTON 9.2 +.CT 2 comm_term +.SH NAME +button123, mouse, cursallow, cursinhibit, cursset, cursswitch, getrect123 \- mouse control +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B extern struct Mouse { +.br +.B " Point xy; +.br +.B " short buttons; +.br +.B } mouse; +.PP +.B int button(n) +.B int n; +.br +.B int button1(), button2(), button3(); +.br +.B int button12(), button23(), button123(); +.PP +.B void cursinhibit(); +.br +.B void cursallow(); +.PP +.B void cursset(p); +.B Point p; +.PP +.B Texture *cursswitch(t); +.B Texture *t; +.PP +.B Rectangle getrect(n) +.B int n; +.br +.B Rectangle getrect1(), getrect2(), getrect3(); +.br +.B Rectangle getrect12(), getrect23(), getrect123(); +.SH DESCRIPTION +When the mouse is requested +(see +.IR request (9.2)), +the mouse state is updated asynchronously in the structure +.BR mouse . +The coordinates of the mouse are held in +.BR mouse.xy , +and the state of the buttons in +.BR mouse.buttons . +Each process's +.B mouse +structure is independent of the others, so that +(except for +.IR cursset ) +actions such as +changing the tracking cursor do not affect the mouse in +other processes. +.PP +The macro +.I button +and its counterparts return the state of the associated mouse button: +non-zero if the button is depressed, 0 otherwise. +The buttons are numbered 1 to 3 from left to right. +.I Button12 +and the other multi-button functions return the +OR +of their states: true if either button 1 or +button 2 is depressed. +.PP +.I Cursinhibit +turns off interrupt-time cursor tracking +(the drawing of the cursor on the screen), +although the mouse coordinates are still kept current +and available. +.I Cursallow +enables interrupt-time cursor tracking. +.I Cursallow +and +.I cursinhibit +stack: to enable cursor tracking after two calls to +.IR cursinhibit , +two calls to +.I cursallow +are required. +.PP +.I Cursset +moves the mouse cursor to the Point +.I p. +.PP +.I Cursswitch +changes the mouse cursor (a 16\(mu16 pixel image) to that specified by the +Texture +.BI * t. +If the argument is +.BR (Texture*)0 , +the cursor is restored to the default arrow. +.I Cursswitch +returns the previous value of the cursor: the argument of the previous +call to +.I cursswitch. +.PP +.I Getrect +prompts the user with a box cursor and waits for a +rectangle to be swept out with the named button, +identified as with the +.I button +primitives. +It returns the screen coordinates of the box swept. +The box may be partly or wholly outside the process's layer. diff --git a/static/v10/man9/cip.9 b/static/v10/man9/cip.9 new file mode 100644 index 00000000..c8e1109c --- /dev/null +++ b/static/v10/man9/cip.9 @@ -0,0 +1,58 @@ +.TH CIP 9.1 +.CT 1 writing_troff graphics +.SH NAME +cip \- draw pictures for typesetting +.SH SYNOPSIS +.B cip +.SH DESCRIPTION +.I Cip +prepares or modifies +.IR pic (1) +descriptions, which may subsequently be typeset. +It provides a palette of +shapes: box, circle, ellipse, line, arc, spline, and text. +Button 1 selects shapes from the palette or the screen. +Button 2 places or redraws +.RL ( edit , +.LR move ) +shapes. +Button 3 controls menus. +.PP +File names and text strings are entered from the keyboard. +Keyboard input always ends with a newline. +A current file name is remembered and offered for +file operations; backspace over it to substitute +a new name, or type newline to accept it. +.PP +The +.L define macro +menu item allows a box to be swept, collecting all contained shapes +into a group. +Groups are selected as whole. +When a group is selected, a special menu appears. +Item +.L separate +dissolves the group; +.L reflect x +reflects about a horizontal midline; after +.L copy +button 2 places copies at the cursor. +Item +.L edit +confines activity to the group. +Changes are reflected in all copies of the group. +To leave the group, click button 1 at +.LR "edit depth" . +.SH SEE ALSO +.IR pic (1), +.IR ped (9.1) +.br +Sally A. Browning, +`Cip User's Manual: One Picture is Worth a Thousand Words', +this manual, Volume\ 2 +.SH BUGS +.I Cip +cannot handle arbitrary +.I pic +programs, just programs in the style +that it produces. diff --git a/static/v10/man9/circle.9 b/static/v10/man9/circle.9 new file mode 100644 index 00000000..0ae1f68c --- /dev/null +++ b/static/v10/man9/circle.9 @@ -0,0 +1,78 @@ +.TH CIRCLE 9.3 +.CT 2 graphics +.SH NAME +circle, disc, arc, ellipse, eldisc, elarc \- circle-drawing functions +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B void circle(bp, p, r, f) +.B "Bitmap *bp; Point p; int r; Code f; +.PP +.B void disc(bp, p, r, f) +.B "Bitmap *bp; Point p; int r; Code f; +.PP +.B void arc(bp, p0, p1, p2, f) +.B "Bitmap *bp; Point p0, p1, p2; Code f; +.PP +.B void ellipse(bp, p, a, b, f) +.B "Bitmap *bp; Point p; int a, b; Code f; +.PP +.B void eldisc(bp, p, a, b, f) +.B "Bitmap *bp; Point p; int a, b; Code f; +.PP +.B "void elarc(bp, p0, a, b, p1, p2, f) +.B "Bitmap *bp; Point p0, p1, p2; int a, b; Code f; +.SH DESCRIPTION +.I Circle +draws the best approximate circle of radius +.I r +centered at Point +.I p +in the Bitmap +.I bp +with Code +.IR f . +The circle is guaranteed to be symmetrical about the horizontal, +vertical and diagonal axes. +.I Disc +draws the corresponding disc. +.PP +.I Arc +draws a circular arc centered on +.IR p0 , +traveling counter-clockwise +from +.I p1 +to the point on the circle closest to +.IR p2 . +.PP +.I Ellipse +draws an ellipse centered at +.I p +with horizontal semi-axis +.I a +and vertical semi-axis +.I b +in Bitmap +.I bp +with Code +.IR f . +.IR Eldisc +draws the corresponding elliptical disc. +.I Elarc +draws the corresponding elliptical arc, traveling +counter-clockwise from the ellipse point closest to +.I p1 +to the point closest to +.IR p2 . +(Beware the regrettable difference between the calling conventions for +.I arc +and +.IR elarc .) +.SH BUGS +When an endpoint of an arc lies near a tail of +an ellipse so thin that its ends degenerate into +straight lines, +.I elarc +does not try to distinguish which side of the tail the +point belongs on. diff --git a/static/v10/man9/cos.9 b/static/v10/man9/cos.9 new file mode 100644 index 00000000..060896d9 --- /dev/null +++ b/static/v10/man9/cos.9 @@ -0,0 +1,59 @@ +.TH COS 9.3 +.CT 2 math +.SH NAME +cos, sin, atan2, sqrt, norm \- integer math functions +.SH SYNOPSIS +.B int cos(d) +.B int d; +.PP +.B int sin(d) +.B int d; +.PP +.B int atan2(x, y) +.B int x, y; +.PP +.B int norm(x, y, z) +.B int x, y, z; +.PP +.B int sqrt(x) +.B long x; +.PP +.SH DESCRIPTION +.I Cos +and +.I sin +return scaled integer approximations to the trigonometric functions. +The argument values are in degrees. +The return values are scaled so that +.BR cos(0)==1024 . +Thus, to calculate the mathematical expression +.if t .IR x \|=\| a\^ cos( d ), +.if n .IR x = x0 *cos( d ), +the multiplication must be scaled: +.IP +.L +x = muldiv(x0, cos(d), 1024) +.PP +.I Atan2 +returns the approximate arc-tangent of +.IR y / x . +The return value is in integral degrees. +.PP +.I Sqrt +returns the 16-bit signed integer closest to the +square root of its 32-bit signed argument. +.PP +.I Norm +returns the Euclidean length of the three-vector +.RI ( x , +.IR y , +.IR z ). +.SH DIAGNOSTICS +.I Sqrt +returns 0 for negative arguments; and +.BR atan2(0,0)==0. +.IR Norm +does not protect against overflow. +.SH BUGS +.I Atan2 +may be off by as much as two degrees. diff --git a/static/v10/man9/crabs.9 b/static/v10/man9/crabs.9 new file mode 100644 index 00000000..edf2fc93 --- /dev/null +++ b/static/v10/man9/crabs.9 @@ -0,0 +1,52 @@ +.TH CRABS 9.6 +.CT 1 games +.SH NAME +crabs \- graphical marine adventure game +.SH SYNOPSIS +.B crabs +[ +.B -i +] +[ +.B -s +.I duration +] +[ +.B -v +.I velocity +] +[ +.I number +] +.SH DESCRIPTION +In +.IR crabs , +difficult situations are encountered in trying to kill or capture +crustaceans swarming in a murky sea. +You will have to work very +rapidly to keep your territory free of seabed intruders. +At first, +you may even find it hard to keep a clear view of your surroundings, but +later discoveries about the spirit of the game will suggest a solution. +.PP +There are several options. +.TP +.B -i +causes the intruders to play intelligently, allowing them to avoid detection. +.TP +.B -s +simplifies the game for the first +.I duration +time intervals. +Default is 0. +5-10 is recommended for beginners, although +you may want to forgo this option the first time, just to see how interesting +it can get. +.TP +.B -v +adjusts the velocity of the crabs, 1 being fastest. +Default is 5. +.PP +.I Number +specifies the number of intruders. +Default is 30. diff --git a/static/v10/man9/demo.9 b/static/v10/man9/demo.9 new file mode 100644 index 00000000..33071fec --- /dev/null +++ b/static/v10/man9/demo.9 @@ -0,0 +1,37 @@ +.TH DEMO 9.6 +.CT 1 games +.SH NAME +demo, swar, pacman \- graphic demonstrations and games +.SH SYNOPSIS +.B demo +[ +.I name +] +.SH DESCRIPTION +If a demo is named, +.I demo +runs it, otherwise +.I demo +produces a list of what's available. +.PP +Games that permit interaction are often controlled by the mouse; +experiment to find out what it does. +Some less obvious interactions are listed below. +.PP +.I Swar +is a two-player game. +One player uses the +.L asdwx +keys, +the other +.L 12350 +keys on the keypad. +.PP +.I Pacman +is controlled by the +.L hjkl +keys or the mouse. +.SH SEE ALSO +.IR crabs (9.6) +.SH BUGS +Some of the programs don't play fair. diff --git a/static/v10/man9/face.9 b/static/v10/man9/face.9 new file mode 100644 index 00000000..ea8ff139 --- /dev/null +++ b/static/v10/man9/face.9 @@ -0,0 +1,86 @@ +.TH FACE 9.7 +.CT 1 inst_info graphics +.SH NAME +face, mugs \- show faces, make face icons from pictures +.SH SYNOPSIS +.B face +.IB machine ! user +.I file ... +.PP +.B mugs +[ +.B -a +] +.SH DESCRIPTION +.I Face +displays the 48\(mu48 bit icons specified by its arguments. +If an argument contains an exclamation mark, +it is assumed to be a machine and user pair +and is looked up in the face file system, +.IR faced (9.5); +otherwise it is taken to be a file name. +If the file does not exist and contains no slashes, +it is looked up in +.FR /n/face/48x48x1 . +.PP +When +.IR face 's +layer is full, it waits for a character to be typed before continuing. +.PP +.I Mugs +interactively converts grey-scale images in +the form of +.IR picfile (5) +into 48\(mu48 icons for display by +.I face +and +.IR vismon (9.1). +It prompts for the name of a picture file, +displaying a large approximation to the original picture +and a matrix of 48\(mu48 icons of varying contrast and +brightness. Button 1 selects one of the 48\(mu48's. +Button 3 presents a menu with entries: +.TP +.B window +Select a square window in the large picture using button 3. +Touch down at +the top and center of the square and slide around to adjust its size. +Appropriately cropped 48\(mu48's will be displayed. +.TP +.B in +Zoom in on a smaller part of contrast-brightness space, displaying +an array of 48\(mu48's that look more-or-less like the selected one. +Repeated +.BR in s +will zoom in farther. +.TP +.B out +Opposite of +.BR in . +.TP +.B save +Type in the name of a file in which to save the currently selected 48\(mu48. +.TP +.B read +Type in the name of a picture file containing the next face to process. +.TP +.B exit +Confirm with button 3. +.PP +Option +.B -a +indicates that picture files have non-square pixels with +aspect ratio 1.25, as produced by the ITI frame-grabber attached +to kwee. +Normally pixels are assumed to be square. +.SH EXAMPLES +.TP +.L +face /n/face/coma/*/48x48x1 +All the users of coma. +.SH SEE ALSO +.IR faced (9.5), +.IR icon (9.1), +.IR vismon (9.1), +.IR imscan (1), +.IR picfile (5) diff --git a/static/v10/man9/faced.9 b/static/v10/man9/faced.9 new file mode 100644 index 00000000..5078be51 --- /dev/null +++ b/static/v10/man9/faced.9 @@ -0,0 +1,179 @@ +.TH FACED 9.5 +.CT 1 sa_auto +.SH NAME +faced \- network face server +.SH SYNOPSIS +.B /usr/net/face.go +.SH DESCRIPTION +The network face server provides a database of 48\(mu48 bit icons +and other facial representations. +It is implemented as a network file system similar to +.IR netfs (8). +.PP +The file system, conventionally mounted on +.BR /n/face , +has a fixed three-level hierarchy. +The first level is a machine name, +the second level a user name, +and the third level a resolution. +Thus the file +.F /n/face/kwee/pjw/48x48x1 +is the standard face icon (for user pjw) on machine kwee: +.LP +.ce 1000 +.nf +.ps 6 +.ft H +.tr x. +.tr - +.cs H 5 +.vs 8u +-------------------xxxxxx-x--------------------- +-----------------xxxxxxxxxxxxx------------------ +----------------xxxxxxx-xxxxxxxx---------------- +---------------xx-xxxxxxx-xxxxxxxx-------------- +---------------xxxx-xxxxxxxxx-x-xxx------------- +--------------x---------xxxxxxxxxxxxx----------- +--------------x----------xxxxxxxxxxxxxxxx------- +---------------------------xxxxx-xxxxxx--------- +------------xx-------------xxxxxxxxxxxxxxx------ +---------------------------x-x-xxxxxxxxxxx------ +----------xx---------------xxxxxxxxxxxxxxxxx---- +---------xxx----------------xxxxxxxxxxx-x-xx---- +--------xx-------------------xxxxxxxxxxxxxxxx--- +--------xxx------------------xxxxxxxxxxxxxx-x--- +-------xxxx-------------------xxxxxxxxxxxxxxx--- +------xxxx---------------------xxxxxxxxxxxxxx--- +------xxxxx--------------------xxxxxxxxxxxxxx--- +-----xxxxx----x-x---------------xxxxxxxxxxxx---- +----xxxxxxxxx-x-xxxxx-----xxxxxxx-xxxxxxxxxxx--- +----xxxxxxx------xxxxx---xx--xxxxxxxxxxxxxxxx--- +---xxxxxxxxx---xxxx-xxxxxxxxx--x-xxxxxxxxxxxx--- +---xxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--- +---xxxxxxxxx-x-xx-x--x--xxxxxxxxxxxxxxxxxxxxx--- +---xxxxxxx-x------x--x---xxxxxxxxxxxxxxxxxxx---- +----xxxxxxx-----x--------x---x-xxxxxxxxxxxxx---- +---xxxxxx-x---------x----xxx------xxxxxxxxxx---- +------xx--x--------------xx-----xx-xxxxxxxx----- +----x-xxx----------x------xx-------xxxxxx------- +-------xx------x-xx--------xxxxxxxxx-xxxx------- +--------x----x-x-x-------x-xx-x--x-xxxxx-------- +--------------------x-xxxxxxx-xxxxxxxxxx-------- +-------xx----------xxxxxxxx-x---xxx-xxx--------- +------xxx------------xxxxxxx--x-x-xxxxx--------- +-------xx-----x-------xxxx-x-x-xxxx-xxxxxx------ +--------x----------------xxx-x-x-xxxxxxxx------- +-------xxx-----xxx-x-x-xxx-xxx-x-x--xxxxx------- +--------xx-----x-x-x-xxxxxxxxxxxxxxxxxxxx------- +---------x----------------xxx--x-xxxxxxx-------- +---------xx--------------xx-x-xxxx--xxx--------- +-------------x-----xxxxxxxx-x-xx-xx------------- +---------------------xxxxxxxxxxxxxxxx----------- +--------------x------------x-x-xx-x------------- +-------------------------x-x-xxxxx-------------- +--------------x-----------xxxxxx-x-------------- +----------------x--------x--x-xxxx-------------- +--------------x-x-xxx-xxxxxxxxx-x--------------- +----------------x---xxxxxxxxx-xxxx-------------- +---------------x-xxxx-x-x-xxxxxxxx-------------- +.tr -- +.tr xx +.fi +.vs +.ps +.ce 0 +.ft +Many local users also have 512\(mu512 byte high-resolution faces, named +.BR 512x512x8 . +Other resolutions may also be present for a particular face. +One-bit images are stored in the format used by +.IR icon (9.1); +eight-bit images are arrays of bytes. +The directories for machines sharing a user community, such as those on +a Datakit node, are linked together and given a name appropriate to the +community. For example, +.B /n/face/kwee +is a link to +.BR /n/face/astro . +.PP +To access the face for a mail name +.IB machine ! uid +take the result of the first successful open from the following list of files: +.IP +.EX +/n/face/machine/uid/48x48x1 +/n/face/misc./uid/48x48x1 +/n/face/machine/unknown/48x48x1 +/n/face/misc./unknown/48x48x1 +.EE +.PP +The directory +.BR misc .\& +holds faces for generic users such as +.L root +and +.LR uucp . +The face server is made available on a machine by running +.B /usr/net/face.go +from +.IR rc (8). +.PP +The face server data is administered by a pair of +.SM ASCII +files that associate related +machines and faces. +The machine table +.L machine.tab +attaches machines to communities; in it the line +.IP +.B kwee=astro +.PP +puts machine +.L kwee +in community +.LR astro . +The people table +.L people.tab +associates a machine/user pair in the +face server with a file in one of the source directories +.F /n/kwee/usr/jerq/icon/face48 +or +.FR /n/kwee/t0/face/512x512x8 . +Thus +.IP +.B astro/pjw=pjweinberger +.PP +causes the images stored in source files named +.L pjweinberger +to be available in the face server in directory +.BR /n/face/astro/pjw . +As well, each disk file used by the face server is linked +(by its original name) into the directory +.B /n/face/48x48x1 +or +.B /n/face/512x512x8 +for easy access to all the images. +.SH FILES +.TF /n/kwee/usr/net/face/machine.tab +.TP +.F /n/kwee/usr/jerq/icon/face48 +directory of low resolution faces +.TP +.F /n/kwee/t0/face/512x512x8 +directory of high resolution faces +.TP +.F /n/kwee/usr/net/face/people.tab +people/file equivalences +.TP +.F /n/kwee/usr/net/face/machine.tab +machine/community equivalences +.SH SEE ALSO +.IR netfs (8), +.IR face (9.7), +.IR icon (9.1), +.IR vismon (9.1) +.SH BUGS +After updating the tables, an indeterminate time may pass before the +new faces are available. +.br +All face server files are unwritable. diff --git a/static/v10/man9/flickfile.9 b/static/v10/man9/flickfile.9 new file mode 100644 index 00000000..f8726fe5 --- /dev/null +++ b/static/v10/man9/flickfile.9 @@ -0,0 +1,86 @@ +.TH FLICKFILE 9.5 +.CT 1 comm_term +.SH NAME +movies \- graphics movie file formats +.SH DESCRIPTION +Movie files are generated by +.I preflicks +and used by +.IR fflicks ; +see +.IR flicks (9.1). +The format of a movie files is: +.IP +.EX +struct Header { + unsigned char version; + short header_length; + short nr_frames; + unsigned char nr_tables; + struct LOOKUP_TABLE { + short number_of_entries; + struct { + short count; + unsigned char value; + } table[256]; + } Table[nr_tables]; +}; +struct Frame { + short width, height; + short compacted_length; + unsigned char which_table; + unsigned char data[compacted_length]; +} Frame[nr_frames]; +.EE +Each +.B short +in the above structure is present as a two-byte number in the +file, most significant byte first. +Each +.B "unsigned char" +is a single byte. +.TP +.B version +software version number, to +ensure compatibility between producer and consumer +of the file. +.PD0 +.TP +.B header_length +total length in bytes of the lookup table(s) +used to encode the file plus three bytes (the next three that follow). +.TP +.B nr_frames +total number of movie frames in the file. +.TP +.B nr_tables +number of lookup tables. +.TP +.B nr_entries +number of entries in the lookup table (maximum 256). +.TP +.B count +.B value +pixel value and a count of +how many times that value is to be repeated. +.PD +.PP +Immediately following the lookup tables begin the frames +encoded in an indirect run-length code. +Each frame is described by +.BR width , +.BR height , +and the +.B compacted_length +of the frame in bytes. +The frame is coded in raster-scan order +as a sequence of indexes into +the table numbered +.BR which_table +(counting from 0). +.SH FILES +_movie +.SH "SEE ALSO" +.IR flicks (9.1), +.IR pico (1), +.IR rebecca (9.1) diff --git a/static/v10/man9/flicks.9 b/static/v10/man9/flicks.9 new file mode 100644 index 00000000..4b044770 --- /dev/null +++ b/static/v10/man9/flicks.9 @@ -0,0 +1,138 @@ +.TH FLICKS 9.1 +.CT 1 comm_term +.SH NAME +flicks, fflicks, preflicks, 2mux \- movie graphics for 5620 +.SH SYNOPSIS +.B flicks +[ +.B -fmte +] +.I file ... +.PP +.B preflicks +[ +.B -fmtvloics +] +.I file ... +.PP +.B fflicks +[ +.I flickfile +] +.SH DESCRIPTION +.I Flicks +interprets each of the +.I files +as a grey-scale frame in the form of +.IR picfile (5) +(or a square raster of unsigned bytes), +dithers them, and displays them on the terminal. +Once the frames have been downloaded the frames can be played +as a movie, controlled by a menu on button 3. +Most menu selections are self-explanatory. +.I Step +shows individual frames, +stepping forward with button 1, or backward with button 2. +Button 3 brings back the main menu. +.PP +The size of a frame is an option: +.TP +.B -f +full size: same size as the input (typically 512\(mu512) +.TP +.B -m +medium size: half the input size (typically 256\(mu256) default +.TP +.B -t +tiny size: quarter of the input size (typically 128\(mu128) +.PD +.PP +If only one image is processed, full size is the default. For more +than 11 pictures, tiny size is default. Anything in between is +medium size by default. +.PP +The frames are rendered with dithering by default, +and with error propagation if +.B -e +is specified. +.PP +.I Fflicks +downloads frames +that have been preprocessed by +.IR preflicks +into a +.I flickfile. +.I Fflicks +downloads much faster than +.I flicks. +.PP +The options for +.I preflicks +include +.BR -f , +.BR -m , +and +.B -t +as for +.I flicks, +plus +.TP +.B -l +Use logarithmic dither. +.TP +.B -v +Chatter on standard error. +.TP +.B -o +Write the flickfile onto standard output; +by default output goes into file +.BR _movie . +.TP +.B -i +Print a summary of the contents of +the flickfiles. +.TP +.B -c +Catenate named flickfiles onto the standard output. +.TP +.BI -s X , Y +the (one only) input file is assumed to be a sequence of +.IR X\(muY -byte +frames. +If +.I X +and +.I Y +may be omitted, 512\(mu512 is assumed. +.PP +.I Fflicks +display is controlled by a menu on button 3. +The selection `movie rate' tries to run the display at 24 frames/sec. +.PP +Frames prepared with +.I preflicks +are compacted. +Thus +.I fflicks +can play a longer sequence than +.IR flicks : +up to roughly 120 medium sized or 480 tiny frames (20 seconds of movie). +Still longer sequences (about twice as long) can be downloaded if +.I fflicks +is run within +.I 2mux +instead of +.I mux. +The price of compaction is speed. +Menu selections are available +for uncompacting some (even- or odd-numbered) frames. +.SH FILES +.B _movie +.br +.B /usr/jerq/lib/2term +.SH "SEE ALSO" +.IR pico (1), +.IR picfile (5), +.IR rebecca (9.1), +.IR flickfile (9.5), +.IR movie (9.1) diff --git a/static/v10/man9/font.9 b/static/v10/man9/font.9 new file mode 100644 index 00000000..e8733eaa --- /dev/null +++ b/static/v10/man9/font.9 @@ -0,0 +1,110 @@ +.TH FONT 9.5 +.CT 2 comm_term +.SH NAME +font \- jerq font layouts +.SH SYNOPSIS +.B #include <jerq.h> +.br +.B #include <font.h> +.PP +.B typedef struct Fontchar Fontchar; +.br +.B typedef struct Font Font; +.PP +.B extern Font defont; +.SH DESCRIPTION +A +.I Font +is a character set, stored as a single +Bitmap +with the characters +placed side-by-side. +It is described by the following data structures. +.IP +.EX +.ta +.5i +\w'unsigned char bottom; 'u +typedef struct Fontchar { + short x; /* left edge of bits */ + unsigned char top; /* first non-zero scan-line */ + unsigned char bottom; /* last non-zero scan-line */ + char left; /* offset of baseline */ + unsigned char width; /* width of baseline */ +} Fontchar; +typedef struct Font { + short n; /* number of chars in font */ + char height; /* height of bitmap */ + char ascent; /* top of bitmap to baseline */ + long unused; + Bitmap *bits; /* where the characters are */ + Fontchar info[n+1]; /* n+1 character descriptors */ +} Font; +.EE +.PP +Characters in +.L bits +abut exactly, so the displayed width of the character +.I c +is +.BI Font.info[ c +1].x\ -\ Font.info[ c ].x . +The first +.L left +columns of pixels in a character overlap the previous character. +The upper left corner of the nonempty columns appears at +.RB ( x, 0) +in the bitmap. +.L Width +is the distance to move horizontally after drawing a character. +The font bitmap has a fixed +.LR height ; +parameters +.L top +and +.L bottom +may speed up the copying of a character. +.PP +Characters are positioned by their upper left corners. +.PP +Fonts are stored on disk in binary with byte +order that of the terminal. +First in the file is the Font structure +with +.B bits +elided. +The data for the bitmap follows. +The header for the bitmap must be inferred from +.B Font.height +and +.BR Font.info[Font.n].x . +.SH EXAMPLES +.EX +Fontchar *i = f->info + c; +bitblt(f->bits, Rect(i->x, i->top, (i+1)->x, i->bottom), + &display, Pt(p.x+i->left, p.y+i->top), fc); +p.x += i->width; +.EE +.ns +.IP +Copy character +.I c +from font +.I f +to point +.I p +with Code +.B F_XOR +or +.BR F_OR . +.PP +For Code +.LR F_STORE , +use +.LR "Rect(i->x, 0, (i+1)->x, f->height)" . +.SH SEE ALSO +.IR jf (9.1), +.IR string (9.3), +.IR getfont (9.1) +.SH BUGS +The +.L unused +field is used, by +.IR getfont (9.1). diff --git a/static/v10/man9/gebaca.9 b/static/v10/man9/gebaca.9 new file mode 100644 index 00000000..2655d42e --- /dev/null +++ b/static/v10/man9/gebaca.9 @@ -0,0 +1,18 @@ +.TH GEBACA 9.6 +.CT 1 games +.SH NAME +gebaca, gebam \- get back at corporate america +.SH SYNOPSIS +.B /usr/games/gebaca +.PP +.B demo gebam +.SH DESCRIPTION +.I Gebaca +is an arcade-type shoot-em-down with familiar characters. +It runs on Teletype 5620 terminals in +native mode only. +Use the mouse to dodge and shoot. +.PP +.I Gebam +is a cheap ripoff that runs under +.IR mux (9.1). diff --git a/static/v10/man9/getfont.9 b/static/v10/man9/getfont.9 new file mode 100644 index 00000000..60c358ce --- /dev/null +++ b/static/v10/man9/getfont.9 @@ -0,0 +1,59 @@ +.TH GETFONT 9.1 +.CT 1 comm_term +.SH NAME +getfont \- replace terminal's default font +.SH SYNOPSIS +.B getfont +[ +.I option ... +] +[ +.I font +] +.SH DESCRIPTION +.I Getfont +reads font data from file +.I font. +The current layer and subsequently created layers use this font as +.IR defont ; +see +.IR string (9.3). +If +.I font +does not directly name a file, it is looked for in directory +.FR /usr/jerq/font . +.PP +The options are: +.TP +.B -m +The font change applies to the basic +.IR mux (9.1) +menu as well as to layers. +.TP +.B -l +The font change applies to the current layer only. +.TP +.B -d +Print debugging information about fonts before and after. +.PP +.I Getfont +discards inaccessible fonts. +To reclaim store without loading a font, +call it with no +.I font +argument. +.SH EXAMPLES +.TP +.L +getfont pelm.10 +Larger type for demos and eyesight problems. +.TP +.L +getfont defont +Restore the original font. +.SH FILES +.F /usr/jerq/font +.SH SEE ALSO +.IR string (9.3), +.IR font (9.5), +.IR font (6) diff --git a/static/v10/man9/graphdraw.9 b/static/v10/man9/graphdraw.9 new file mode 100644 index 00000000..aa02d921 --- /dev/null +++ b/static/v10/man9/graphdraw.9 @@ -0,0 +1,310 @@ +.TH GRAPHDRAW 9.1 +.CT 1 editor graphics +.SH NAME +graphdraw graphpic \- edit (combinatoric) graphs, convert to pic files +.SH SYNOPSIS +.B graphdraw +[ +.I file +] +.PP +.B graphpic +[ +.I option ... +] +.I file +.SH DESCRIPTION +.I Graphdraw +interactively edits and displays undirected graphs, and can also be used +to display real-time animation of algorithms. +If a +.I file +is mentioned, the graph stored in that file is edited. +.PP +Click button 1 in command line (at bottom of window) to type in commands: +.TP \w'\f5!\fI\ program\ file\ \ \fR'u +.BI r " file" +Read file and display graph. +.PD0 +.TP +.BI w " file" +Write current graph to file. +.TP +.BI cd " directory" +Change directory. +.TP +.BI ! " program file" +Execute animation +.I program +with +.I file +as input. +.TP +.B q +Quit. +.PD +.PP +Button 3 gets a menu of actions, which are +usually accomplished by pointing with button 1. +The parenthesized equivalents in the following list are explained +under `Algorithm animation'. +.TP 0 +.B create vertex +Vertex is placed where button 1 is clicked. +.RB ( vc +.IR "x y" ) +.PD 0 +.TP +.B delete +Delete selected vertex and associated edges. +.RB ( vd +.IR i ) +.TP +.B move +Selected vertex moves with mouse until button 1 is released. +.RB ( vm +.IR i ) +.TP +.B copy +Copy of selected vertex and associated edges moves with mouse. +.RB ( vc +.IR "i x y" ) +.TP +.B create/delete edge +Point to first endpoint and click button 1. +Point to second endpoint and click button 1. +Continue selecting second endpoints with button 1. +To unselect first endpoint, click button 2. +.RB ( ec +.IB "i j " / +.B ed +.IR "i j" ) +.TP +.B restart +Click button 1 to clear screen and discard current graph. +.RB ( pr ) +.TP +.B standard window +Restart and reshape window to standard size, +in which the drawing area is square and as large as possible. +.TP +.B small/large/no grid +Impose/remove visible grid to which all new coordinates will be rounded. +.TP +.B exit +Click button 1 to confirm. +.TP +.B labels menu +.RS +.TP +.B label vertex +Select vertex with button 1. +Current label appears on command line. +To accept it, click button 1. +Otherwise, type in new label and hit return. +.RB ( vl +.IR "i w" ) +.TP +.B number vertices +Vertex labels are set to the consecutive integers 1,2,...; +this is the default. +.RB ( vn ) +.TP +.B label edge +Default is +.LR 1 . +.RB ( el +.IR "i j w" ) +.HP +.B show/hide vertex labels +.RB ( vs , +.BR vh ) +.HP +.B show/hide edge labels +.RB ( es , +.BR eh ) +.TP +.B turn Euclidean edge labels on/off +Distances are measured in pixels. +.RB ( ee ) +.TP +.B show/hide sum of edges +.RE +.TP +.B graphics menu +.RS +.TP +.B light/heavy/empty/full/invisible vertex +Select style from menu with button 3; select vertices to change with button 1. +The default is +.LR light . +.RB ( vg +.IR "i c" ) +.HP +.B light/heavy edge +.RB ( eg +.IR "i j c" ) +.RE +.TP +.B macros menu +Arrange for sets of vertices to act together. +Actions on any vertex in the set apply to the whole set. +Copying duplicates edges internal to the set. +Creating an edge between vertexes in two different sets +creates edges from every vertex in one set to every +vertex in the other (bipartite subgraph). +.RS +.TF unselect\ set +.TP +.B select set +Sweep a rectangle around the set with button 1. +Dissociate conflicting sets. +.TP +.B unselect set +Dissociate set containing selected vertex. +.TP +.B shrink/expand set +Selected set is shrunk/expanded about its center. +.TP +.B reshape set +Selected set is redrawn in swept rectangle. +.TP +.B complete/disconnect subgraph +Create/delete edges between every pair of vertices in a set. +.RE +.PP +.I Graphpic +is a filter which, when applied to a file in graphdraw format, outputs +.I pic +code for the graph. +The options are: +.TP +.B -v +Print vertex labels. +.TP +.B -e +Print edge labels. +.TP +.B -i +Optimize for imagen printer (default is d202). +.PD +.SS File format +Graphs are stored as adjacency lists. +.PP +First line: +.I n m t, +where +.I n +is the number of vertices, +.I m +is the number of edges, and +.I t +is an optional graph type. +The only legal type is the default type +.B u +(undirected). +.PP +For each vertex, an initial line: +.I d w x y c, +where +.I d +is the degree of the vertex, +.I w +is its label, +.I x +and +.I y +are its coordinates in the window, and +.I c +is an optional graphics code, +.BR L =light +(default), +.BR H =heavy +(circled dot), +.BR F =full +(large bullet), +.BR E =empty +(empty circle), +.B I =invisible. +Window coordinates will be scaled to fit when graph is read in. +.PP +After the initial line follow +.I d +lines for the vertex's edges: +.I i w c, +where +.I i +is the index (1 to +.IR n) +of the other endpoint, +.I w +is the edge label, and +.I c +is an optional graphics code, +.B L +or +.BR H . +.PD +.SS Algorithm animation +The typed command +.BI ! "program file" +causes the standard output of +.I program +to be captured by the host and +interpreted as commands to +.I graphdraw. +The resulting movie +can be killed or temporarily halted from the the terminal +by clicking button 2 and choosing the desired option from the resulting menu. +.PP +Animation codes (defined parenthetically with menu items above) +appear one per line. +Their arguments are: +.I i, +index of a vertex (normally the +.IR i th +to be created); +.I x, y, +integer coordinates in the range 0 to +.BR maxcoord ; +.I w +a label; or +.I c, +a graphic code. +.PP +Other animation codes are +.PD0 +.TP \w'\f5pm\fI\ message\ \ \fR'u +.BI pw " n" +Change the value of +.B maxcoord to +.I n. +Default is 10,000. +.TP +.BI vl " i w" +Give vertex +.I i +the label +.I w. +.TP +.BI pd " t" +Delay program for +.I t +clicks of the 60Hz clock. +.TP +.B ps +Halt program until user clicks button 2 to continue. +.TP +.BI pm " message" +Print +.I message +on command line. +.PD +.SH SEE ALSO +.IR dag (1), +.IR pic (1) +.SH BUGS +It is impossible to move or reshape a +.I graphdraw +layer, except via +.LR "standard window" . diff --git a/static/v10/man9/icon.9 b/static/v10/man9/icon.9 new file mode 100644 index 00000000..cda22879 --- /dev/null +++ b/static/v10/man9/icon.9 @@ -0,0 +1,90 @@ +.TH ICON 9.1 +.CT 1 editor graphics +.SH NAME +icon \- icon editor +.SH SYNOPSIS +.B icon +.SH DESCRIPTION +.I Icon +is a pixel-level editor for textures and small bitmaps. +.I Icon +presents a magnified pixel grid and a true-size image. +Editing is done on the magnified grid. +Pixels can be turned black by pressing the button 1, +and white by pressing button 2. +.PP +Button 3 provides an iconic menu of editing commands. +Some commands require a rectangle to +be swept; this is done either by +the middle button (which supplies a fixed 16\(mu16 rectangle) or by the right +button (for rectangles of any size). +.PP +.TP \w'band-aid\ 'u +arrow +Move region (sweep rectangle +and click at destination). +.TP +overlapping regions +Copy region (sweep rectangle +and click at destination). +.TP +cross +Invert region (sweep rectangle). +.TP +eraser +Erase region (sweep rectangle). +.TP +horizontal (vertical) folded arrow +Reflect region horizontally (vertically) (sweep rectangle). +.TP +clockwise (counterclockwise) arrow +Rotate region deasil (withershins) (sweep rectangle). +.TP +horizontal (vertical) sheared lines +Shear a region horizontally (vertically) (sweep rectangle and point at destination +of nearest corner of rectangle). +.TP +scaled square +Scale a region (sweep rectangle and +sweep destination rectangle). +.TP +tweed pattern +Texture a region (sweep source rectangle and +a (bigger) destination rectangle to be tiled with copies of the source). +.TP +glasses +Read file (type file name and position the icon by clicking). +The subdirectories of +.F /usr/jerq/icon/ +are searched automatically +after the current directory. +.TP +grid +Switch on or off the background grids. +.TP +extend region +Change the size of the drawing area. +.TP +pen +Write file (sweep rectangle and type file name). +See +.IR bitfile (9.5) +for the format. +.TP +overlapping rectangles +Bitblt region (driven by submenus on the right button). +.TP +mouse +Pick up a 16\(mu16 rectangle and make it the current cursor +(click a button to pick up a 16\(mu16 region, and click again to +revert to normal). +.TP +help +Display help information (click a button to revert to normal). +.TP +band-aid +Undo last drawing operation. +.SH FILES +.F /usr/jerq/icon/*/* +.SH SEE ALSO +.IR bitfile (9.5) diff --git a/static/v10/man9/intro.9 b/static/v10/man9/intro.9 new file mode 100644 index 00000000..242c4876 --- /dev/null +++ b/static/v10/man9/intro.9 @@ -0,0 +1,128 @@ +.TH INTRO 9 +.SH NAME +intro \- introduction to 5620-related software +.SH SYNOPSIS +.BI PATH= stuff :/usr/jerq/bin +.SH DESCRIPTION +Section 9 of this manual lists software for running or supporting +Teletype DMD-5620 terminals. +Subsections 9.1-9.7 mirror the purposes of the preceding sections 1-7, +with 9.1 being commands, 9.6 being games, etc. +Command synopses assume that the shell search path includes +.FR /usr/jerq/bin . +.PP +Few commands deal with a 5620 in native mode. +.IR 32ld (9.1) +loads programs into the terminal and +.IR mux (9.1) +starts the characteristic `layer' or window system. +Almost all other commands in section 9 either run on +Unix or within +.I mux +layers. +.PP +A layer is technically a virtual terminal, +but is almost indistinguishable in software from a real terminal; +in particular, the interface described in +.IR ttyld (4) +applies to layers, except for the additional editing capabilities discussed in +.IR mux (9.1). +.PP +The commands in sections 9.1 and 9.6 run on Unix, +but most implicitly call +.I 32ld +to down-load a program that replaces the +default terminal process running in the layer. +To Unix the interface is still that of +a terminal; in particular +.F /dev/tty +(see +.IR fd (4)) +is always connected to the layer. +The default +.I mux +terminal program implements the teletype driver function itself. +When a program is down-loaded, +there is no teletype driver; +programs that desire one +must push the teletype line discipline on the stream, +and arrange to pop the line discipline +on exit; see +.IR stream (4) +and +.IR ttyld (4). +Some commands may simply +emulate other terminals by down-loading +a terminal program (see +.IR term (9.1); +others, such as the text editor +.IR sam (9.1), +are really two programs \(em one on Unix and one in the layer \(em +communicating using standard input/output on Unix +and +.BR sendchar() / rcvchar() +in the terminal; see +.IR request (9.2). +.PP +There is an identity between bitmaps and layers +in the graphics software. +Graphic objects are bitmaps. +The +.IR newlayer (9.2) +primitives that operate on layers are aliased to bitmap +primitives of (9.3), and the data structures are isomorphic. +When running under +.IR mux , +a programmer need not consider layers as graphical objects +at all; the operating system checks the arguments to the graphics +primitives and dispatches the appropriate operator depending +on the type of the argument. +Except in stand-alone software, layers are an invisible +implementation detail. +.SS Teletype 630 +.I Mux +and various programs that run in +.I mux +layers have been ported to Teletype DMD-630 terminals. +The ported software is not available on all machines and +is not specifically documented. +Look in +.F /usr/630/bin +to see what's there. +.SH FILES +.TF /usr/jerq/mbin +.TP +.F /usr/jerq/bin +jerq-related Unix object programs +.TP +.F /usr/jerq/mbin +terminal programs, usually down-loaded automatically +by programs in +.F /usr/jerq/bin +.TP +.F /usr/630/bin +630-related Unix object programs +.TP +.F /usr/630/lib +terminal programs +.SH SEE ALSO +.IR 32ld (9.1), +.IR mux (9.1), +.IR stream (4) +.SH BUGS +There are two mechanical-drawing programs, +.I cip +and +.I ped, +two `artistic' drawing programs, +.I paint +and +.I twid, +one `graphic' drawing program, +.I brush, +two pixel-level drawing programs, +.I icon +and +.I jf, +all for working on binary images. +None dominates. diff --git a/static/v10/man9/jf.9 b/static/v10/man9/jf.9 new file mode 100644 index 00000000..5db7690d --- /dev/null +++ b/static/v10/man9/jf.9 @@ -0,0 +1,117 @@ +.TH JF 9.1 +.CT 1 editor graphics +.SH NAME +jf \- font editor +.SH SYNOPSIS +.B jf +[ +.I file ... +] +.SH DESCRIPTION +.I Jf +edits jerq font files. +If +.I file +does not begin with a slash and is not a font file, +it is looked up in a standard font directory. +.PP +.I Jf +is mostly mouse- and +menu-driven, except when prompting for file names. +.I Jf +divides its layer into two types of areas: +Font displays +show all characters in a given font in actual size. +When characters are opened for editing, they appear magnified in +edit displays. +.PP +Button 1 +is the `do it' button. +Clicking button 1 inside a font display +opens a character for editing; inside an edit display +it sets a pixel. +It may have other functions selected via menus, in which case the function +is indicated by a special cursor. +.PP +Button 2 +is the `undo it' button. +Clicking button 2 closes a character or clears a +pixel, unless conditioned otherwise via menu selection. +.PP +Button 3 +is the `menu' button. +Clicking button 3 selects a menu, pops control +back to the top level, or (when the gunsight cursor shows) +picks a font or character to be affected. +Sometimes menu selection is the only (non-trivial) +option available, as indicated by a `menu' cursor. +.PP +A font is described by several parameters; these are either read from the +font file, or set by default by the +.B make new font +function: +.B max width +(default 16 pixels), +.B height +(16)\-measured from the top, +.B ascent +(16)\-the distance of the printing baseline from the top, and +.B range +(1)\-the highest-numbered character in the font. +(The first character is numbered 0.) +All may be changed under the +.B set sizes +menu. +.B Squeeze font, +in the +.B open/close font +menu, reduces max width as much as possible. +.PP +Each character has a width, which is shown by the length of the baseline +in the edit display. +The +.B char width +may be set under the +.B set sizes +menu; button 1 sets it to 0, button 2 sets it to a specified pixel +within the max width. +The quantity +.B char left +may be used for kerning. +If positive, it shifts a character right and causes +.B max width +to increase if necessary; if negative, the character will be shifted +left. +Otherwise +.I char left +is irrelevant to font editing. +.PP +The +.B bit function +menu controls copying among characters in any of the +.IR bitblt (9.3) +Codes: +.BR F_STORE , +.BR F_CLR , +.BR F_OR , +.BR F_XOR. +Press button 3 on the source character; hold it down while moving and +release it on the destination. +.PP +Several fonts may be open at once. +When editing a font, it is often convenient to open a second copy +for recovering botched characters. +.SH FILES +.TF /usr/jerq/include/font.h +.TP +.F /usr/jerq/font/* +jerq fonts +.TP +.F /usr/jerq/include/font.h +jerq font header file +.SH SEE ALSO +.IR font (9.5) +.SH DIAGNOSTICS +When out of memory or screen area, +.I jf +ignores the offending operation. diff --git a/static/v10/man9/jim.9 b/static/v10/man9/jim.9 new file mode 100644 index 00000000..eac05bb4 --- /dev/null +++ b/static/v10/man9/jim.9 @@ -0,0 +1,347 @@ +.TH JIM 9.1 +.SH NAME +jim, jim.recover \- text editor +.SH SYNOPSIS +.B jim +[ +.I file ... +] +.br +.B jim.recover +[ +.B -f +] +[ +.B -t +] +[ +.I file ... +] +.SH DESCRIPTION +.I Jim +is an old text editor for the jerq terminal. +It relies on the mouse to select text and commands. +It runs only under +.IR mux (9.1). +.IR Jim 's +screen consists of a number of +.IR frames , +a one-line command and diagnostic frame at the bottom +and zero or more larger file frames above it. +Except where indicated, these frames behave identically. +One of the frames is always the current frame, +to which typing and editing commands refer, +and one of the file frames is the working frame, +to which file commands such as pattern searching and IO refer. +.PP +A frame has at any time a selected region of text, +indicated by reverse video highlighting. +The selected region may be a null string between two characters, +indicated by a narrow vertical bar between the characters. +The editor has a single +`save buffer' +containing an arbitrary string. +The editing commands invoke transformers between the +selected region and the save buffer. +.PP +The mouse buttons are used for the most common operations. +Button 1 (left) is used for selection. +Clicking button 1 in a frame +which is not the current frame makes the indicated frame current. +Clicking button 1 in the current frame selects the null string closest +to the mouse cursor. +Making the same null selection twice (`double clicking') selects +(in decreasing precedence) the bracketed or quoted string, word or line +enclosing the selection. +By pushing and holding button 1, an arbitrary contiguous visible string +may be selected. +Button 2 provides a small menu of text manipulation functions, described below. +Button 3 provides control for inter-frame operations. +.PP +The button 2 menu entries are: +.TP .7i +.B cut +Copy the selected text to the save buffer and delete it from the frame. +If the selected text is null, the save buffer is unaffected. +.TP +.B paste +Replace the selected text by the contents of the save buffer. +.TP +.B snarf +Copy the selected text to the save buffer. +If the selected text is null, the save buffer is unaffected. +.TP +.B look +Search forward for the next occurrence of +the selected text or, if the selection is null, +to the next occurrence of the text in the save buffer. +.TP +.B <mux> +Exchange save buffers with +.IR mux . +.PP +Also stored on the button 2 menu are the last Unix command and last +search string typed (see below); these may be selected to repeat the action. +.PP +Typing +replaces the selected text with the typed text. +If the selected text is not null, +the first character typed forces an implicit +.BR cut . +Control characters are discarded, but +BS +.RB (control- H ), +ETB +.RB (control- W ) +and ESC have special meanings. +BS is the usual backspace character, which erases the character +before the selected text (which is a null string when it takes effect). +ETB erases back to the word boundary preceding the selected text. +There is no line kill character. +ESC selects the text typed since the last button hit or ESC. +If an ESC is typed immediately after a button hit or ESC, +it is identical to a +.BR cut . +ESC and +.B paste +provide the functionality for a simple undo feature. +.PP +The button 3 menu entries are: +.TP +.B new +Create a new frame, much as in +.IR mux . +.TP +.B reshape +Change the shape of the indicated frame, as in +.IR mux . +The frame is indicated by a button 3 hit after the selection. +.TP +.B close +Close the indicated frame and its associated file. +.TP +.B write +Write the indicated frame's contents to its associated file. +.PP +The rest of the menu is a list of file names available for editing. +To work in a different file, select the file from the menu. +If the file is not open on the screen, the cursor will switch to an +outline box to prompt for a rectangle to be swept out with button 3, +as in the New operator of +.IR mux . +(Unlike +.IR mux , +there is a shorthand: sweeping the empty rectangle creates the largest +possible rectangle.) +The file is not read until its frame is first opened. +If the file is already open, it will simply be made the workframe and +current frame (for typing). +The format of the lines in the menu is +.TP +- +possibly an apostrophe, indicating that the file has been modified since +last written, +.TP +- +possibly a period or asterisk, indicating the file is open (asterisk) or +the workframe (period), +.TP +- +a blank, +.TP +- +and the file name. +The file name may be abbreviated by compacting path components to keep +the menu manageable, but the last component will always be complete. +.PP +The work frame has a +`scroll bar'\(ema black vertical bar down the left edge. +A small tick in the bar indicates the relative position of the frame +within the file. +Pointing to the scroll bar and clicking a button controls scrolling +operations in the file: +.TP 1i +button 1 +Move the line at the top of the screen to the +.I y +position of the mouse. +.TP +button 2 +Move to the absolute position in the file indicated by the y position of the mouse. +.TP +button 3 +Move the line at the +.I y +position of the mouse to the top of the screen. +.PP +The bottom line frame is used for a few typed commands, modeled on +.IR ed (1), +which operate on the work frame. +When a carriage return is typed in the bottom line, +the line is interpreted as a command. +The bottom line scrolls, but only +when the first character of the next line is typed. +Thus, typically, after some message appears in the bottom line, +a command need only be typed; +the previous contents of the line will be automatically cleared. +The commands available are: +.TP +.BI e " file" +Edit the named +.IR file , +or use the current file name if none specified. +Note that each file frame has an associated file name. +.TP +.BI f " file" +Set the name of the +file associated with the work frame, if one is specified, +and display the result. +.TP +.BI g " file ..." +Enter the named +.I files +into the filename menu, without duplication, +and set the work frame to one of the named files. +If the new work frame's file is not open, the user is prompted to create its frame. +The arguments to +.B g +are passed through +.IR echo (1) +for shell metacharacter interpretation. +.TP +.BI w " file" +Write the named +.IR file , +or use the current file name if none specified. +The special command +.IR w \(aa +writes all modified files with file names. +.TP +.B q +Quit the editor. +.TP +.B = +Print the line number of the beginning of the selected text. +.TP +.B / +Search forward for the string matching the regular expression after the slash. +If found, the matching text is selected. +The regular expressions are exactly as in +.IR egrep (1), +with two additions: the character +.L @ +matches any character, including +newline, and the sequence +.L \en +specifies a newline, even in character classes. +The negation of a character class does not match a newline. +An empty regular expression (slash-newline) repeats the last regular expression. +.TP +.B ? +Search backwards for the expression after the query. +.TP +.B 94 +Select the text of line 94, as in +.IR ed . +.TP +.B cd +Set the working directory, as in the shell. +There is no +.B CDPATH +search. +.TP +.BI > command +Send the selected text to the standard input of the Unix +.IR command . +.TP +.B < command +Replace the selected text by the standard output of the Unix +.IR command . +.TP +.B | command +Replace the selected text by the standard output of the Unix +.IR command, +given the original selected text as standard input. +.PP +If any of +.B < > | +is preceded by an asterisk +.BR * , +the command is applied to the entire file, instead of just the selected text. +If the command for +.B < +or +.B | +exits with non-zero status, the original text +is not deleted; otherwise, the new text is selected. +Finally, the standard error output of the command, which is merged with the +standard output for +.BR > , +is saved in the file +.FR $HOME/jim.err . +If the file is non-empty when the command completes, the first line is +displayed in the diagnostic frame. +Therefore the command +.L >pwd +will report +.I jim 's +current directory. +.PP +Attempts to quit with modified files, or edit a new file +in a modified frame, are rejected. +A second +.L q +or +.L e +command will succeed. +The +.L Q +or +.L E +commands ignore modifications and work immediately. +Some consistency checks are performed for the +.L w +command. +.I Jim +will reject write requests which it considers dangerous +(such as writes which would change a file modified since +.I jim +read it into its memory). +A second +.L w +will always write the file. +.PP +If +.I jim +receives a hangup signal, it writes a file +.FR $HOME/jim.recover , +which is a shell command file that, when executed, will retrieve +the files that were modified when +.I jim +exited. +The +.B -t +option prints a table of contents, but does not unpack the files. +By default, +.I jim.recover +is interactive; the +.B -f +option suppresses the interaction. +If no files are named to +.FR jim.recover , +it will recover all the saved files. +.SH FILES +.F $HOME/jim.err +.br +.F $HOME/jim.recover +.SH BUGS +The regular expression matcher is non-deterministic, +and may be slow for spectacular expressions. +.br +When reshaped, the open frames must be re-opened manually. +.br +The +.B < +and +.B | +operators should snarf the original text. diff --git a/static/v10/man9/jioctl.9 b/static/v10/man9/jioctl.9 new file mode 100644 index 00000000..0fa341a7 --- /dev/null +++ b/static/v10/man9/jioctl.9 @@ -0,0 +1,74 @@ +.TH JIOCTL 9.4 +.CT 2 comm_term +.SH NAME +jioctl \- mux ioctl requests +.SH SYNOPSIS +.B +#include "/usr/jerq/include/jioctl.h" +.\" not <jioctl.h>: /usr/jerq/include is not in the cc include path +.PP +.B ioctl(fd, request, 0) +.PP +.B ioctl(fd, JWINSIZE, win) +.br +.B struct winsize *win; +.SH DESCRIPTION +.IR Mux (9.1) +supports several +.IR ioctl (2) +requests for Unix programs attached to layers. +The requests are: +.TF JBOOT +.TP +.B JMUX +returns 0 if file descriptor +.I fd +is connected to a +.I mux +layer, \-1 otherwise. +.PD +.TP +.B JTERM +resets the layer connected to +.I fd +to the default terminal program. +.TP +.B JBOOT +initiates the down-load protocol to replace the layer's terminal program. +Usually called by +.IR 32ld (9.1). +.TP +.B JZOMBOOT +is the same as +.IR JBOOT , +but disables execution of the program when the download is complete +(see the +.B -z +flag of +.IR 32ld ). +.TP +.B JWINSIZE +returns, in the location pointed to by the third argument, +a structure describing the size of the layer connected to +.IR fd , +with character +.L 0 +being the unit of size. +The structure is: +.IP +.EX +.ta 7n +7n +\w'bytesx, bytesy; 'u" +struct winsize { + char bytesx, bytesy; /* size in characters */ + short bitsx, bitsy; /* size in pixels */ +}; +.EE +.TP +.B JEXIT +causes +.I mux +to exit. +.SH SEE ALSO +.IR 32ld (9.1), +.IR mux (9.1), +.IR ioctl (2) diff --git a/static/v10/man9/jx.9 b/static/v10/man9/jx.9 new file mode 100644 index 00000000..15e93f32 --- /dev/null +++ b/static/v10/man9/jx.9 @@ -0,0 +1,112 @@ +.TH JX 9.1 +.CT 1 comm_term +.SH NAME +jx \- 5620 execution and stdio interpreter +.SH SYNOPSIS +.B jx +.I file +[ +.I argument ... +] +.SH DESCRIPTION +.I Jx +downloads the program in +.I file +to the terminal or layer on its controlling tty +and runs it there, simulating standard I/O functions of +.IR stdio (3). +.I Jx +works either stand-alone or in a layer. +.PP +The +.B stdout +and +.B stderr +streams, if directed to the controlling terminal, +will be squirreled away during +execution and copied to the terminal +after the down-loaded program exits. +.PP +Programs to be run by +.I jx +should include +.B <jerqio.h> +and call +.B exit() +upon termination in order to +restart the default terminal program. +Programs to be run stand-alone +should be compiled with +the +.B -J +option of +.IR 3cc (9.1). +No special options are required for running in a layer. +.PP +.IR Stdio (3) +functions available under +.I jx +are +.IP +.EX +.nr f \w'freopen ' +.ta +\nfu +\nfu +\nfu +\nfu +\nfu +getc putc fopen popen printf fread +getchar putchar freopen pclose sprintf fwrite +fgets puts fclose fprintf + fputs access + fflush +.EE +.PP +Unlike in +.IR stdio (3), +.I getc +and +.I putc +are functions, not macros. +.I Printf +has only +.BR %d , +.BR %s, +.BR %c, +.BR %o , +and +.BR %x. +.B %u +prints an unsigned decimal number. +.B %D +prints an unsigned long decimal number. +.PP +Since +.I jx +uses +.IR sendchar , +.IR sendnchars , +and +.IR rcvchar , +.I jx +programs should avoid these, +and use only the standard I/O routines. +.SH FILES +.TF /usr/jerq/include/blitio.h +.TP +.F /usr/jerq/include/jerqio.h +.TP +.F /usr/jerq/lib/sysint +standard I/O interpreter +.TP +.F $HOME/.jxout +saved standard output +.TP +.F $HOME/.jxerr +saved standard diagnostic output +.SH SEE ALSO +.IR request (9.2), +.IR stdio (3) +.SH BUGS +Keyboard standard input doesn't work; use +.IR kbdchar ; +see +.IR request (9.2). +.br +Stand-alone programs do not receive arguments. diff --git a/static/v10/man9/lens.9 b/static/v10/man9/lens.9 new file mode 100644 index 00000000..bdb6f53b --- /dev/null +++ b/static/v10/man9/lens.9 @@ -0,0 +1,108 @@ +.de m +.if t \{\ +.nr M \w'\|\|\\$1' +.nr N \w'\s24\|\|\\$1' +\h'-\w' \(br\|\\$1'u'\(br\|\\$1\|\(br\ +\\h'-\\nMu'\l'\\nMu\(rn'\\h'-\\nMu'\l'\\nMu\(ul'\ +\s24\v'1m'\(br\|\\$1\|\(br\ +\\h'-\\nNu'\l'\\nNu\(rn'\\h'-\\nNu'\l'\\nNu\(ul'\ +\v'-1m'\s0 \} +.if n \\$1 +.. +.TH LENS 9.1 +.CT 1 games comm_term +.SH NAME +lens \- bitmap magnifier +.m magnifier +.SH SYNOPSIS +.B lens +.SH DESCRIPTION +.I Lens +is an interactive screen bitmap magnifier. +When it +starts, it displays an enlarged image of a magnifying glass in +its layer, which becomes a setting sun when +.I lens +wants to confirm a command to exit. +.PP +The first item in the button 2 menu, +which rotates among +.BR go , +.BR peek , +and +.BR stop , +determines the activity of the magnifier. +Clicking button 1 serves as an abbreviation for selecting +.B go +or +.BR peek . +When the magnifier is going, +a crawling-bordered rectangle is drawn +around the source, and the +.I lens +window contains the magnified image. +The mouse controls +the position of the source rectangle. +.PP +During peeking, the rectangle last selected while +going is re-examined periodically, and the contents +are magnified, whether or not the +.I lens +window is currently selected. +.PP +When stopped, the +.I lens +window is inactive. +.PP +The button 2 menu also allows changing the magnification factor. +The magnification factors are chosen from the +Fibonacci numbers, and menu items for the next size smaller and larger +are presented as, e.g., +.L 3x +or +.LR 8x . +The current magnification factor is not displayed in the menu, only +the next factors larger and smaller. +The initial magnification factor is two. +.PP +Button 2 may also be used to select the intervals at which peeking +updates occur. +These intervals are selected, in ticks, from among the powers of two, where +a tick is one-sixtieth of a second. +These choices are presented as, e.g., +.L "32 ticks" +or +.LR "128 ticks" . +The initial interval between peeks is 64 ticks, approximately one second. +.PP +The image window may be controlled by the button 2 menu item which +toggles between +.B inset +and +.BR "full size" . +In inset mode, the image is displayed inside the image window of the +magnified lens icon. +In full size mode, the image is displayed in the entire +.I lens +window. +.PP +The final button 2 menu entry is +.I exit. +A setting sun is displayed, and button 3 must be clicked to confirm. +.SH BUGS +While going, the display is only refreshed when the mouse is moved. +.br +While peeking, it is assumed that the +.I lens +window contains an accurate magnification of what was on the screen +at the time of the last magnification. +If +.I lens +is used to examine its own image, strange things may occur. +.br +Due to the bitmap reshaping techniques employed by the magnification +algorithms, high magnification factors will not work with large image +windows. +Precisely, if the product of the vertical magnification factor and +the width of the destination rectangle overflows a signed +short integer, predictable but undesirable results will occur. diff --git a/static/v10/man9/libc.9 b/static/v10/man9/libc.9 new file mode 100644 index 00000000..fcad7a45 --- /dev/null +++ b/static/v10/man9/libc.9 @@ -0,0 +1,42 @@ +.TH LIBC 9.3 +.CT 1 lib_obj +.SH NAME +libc \- standard library functions +.SH DESCRIPTION +Various standard functions from +Section 3 are available in 5620 programs: +.LP +.2C +.ft 5 +abs +atoi +atol +chrtab +qsort +rand +srand +strcat +strchr +strrchr +strcmp +strcpy +strncat +strncmp +strncpy +strlen +.1C +.ft 1 +.LP +In addition, certain +.IR stdio (3) +programs are available under the +.IR jx (9.1) +emulator. +.SH SEE ALSO +.IR arith (3), +.IR atof (3), +.IR chrtab (3), +.IR libc (9.3), +.IR qsort (3), +.IR rand (3), +.IR string (3) diff --git a/static/v10/man9/lsh.9 b/static/v10/man9/lsh.9 new file mode 100644 index 00000000..6f72f88f --- /dev/null +++ b/static/v10/man9/lsh.9 @@ -0,0 +1,32 @@ +.TH LSH 9.9 +.SH NAME +lsh \- create layers and run shell commands +.SH SYNOPSIS +.B lsh +[<file] [>file] +.br +.SH DESCRIPTION +.I Lsh +runs under +.IR mpx (1) +and reproduces a specified setup of layers. +Each line of the standard input is of the form: +.IP +x0 y0 x1 y1 shell-command +.PP +For each line +.I Lsh +creates a layer whose diagonal spans the points +.RI ( x0,y0 ) +and +.RI ( x1, y1 ), +where (0,0) is the upper left corner of the screen and (800,1024) is the +lower right. +If a shell-command is given, it is executed in that layer. +.PP +The standard output gives the coordinates of each layer that already exists and +its downloaded object file, if any. +This provides coordinates for an input script to duplicate +a handmade setup. +.SH BUGS +Standard input cannot be the keyboard. diff --git a/static/v10/man9/mcc.9 b/static/v10/man9/mcc.9 new file mode 100644 index 00000000..115741bb --- /dev/null +++ b/static/v10/man9/mcc.9 @@ -0,0 +1,227 @@ +.TH MCC 9.1 +.SH NAME +mcc \- MC68000 C compiler +.SH SYNOPSIS +.B mcc +[ +.I option +] +... file ... +.SH DESCRIPTION +.I Mcc +is the C compiler for the Motorola 68000. +Its default action is to compile programs to run under the +.IR mpx (1) +environment on a Blit terminal. +.PP +.I Mcc +accepts several types of arguments: +.PP +Arguments whose names end with `.c' are taken to be +C source programs; they are compiled, and +each object program is left on the file +whose name is that of the source with `.o' substituted +for `.c'. +The `.o' file is normally deleted, however, if a single +C program is compiled and loaded all at one go. +.PP +In the same way, +arguments whose names end with `.s' are taken to be assembly source programs +and are assembled, producing a `.o' file. +.PP +Programs using floating-point must be compiled with the +.B \-lf +load-time option +to load the floating-point support package. +.PP +The following options are interpreted by +.IR mcc . +Load time options, described under +.IR mld (1), +are passed to +.I mld. +.TP 8 +.B \-c +Suppress the loading phase of the compilation; force +an object file to be produced even if only one program is compiled. +.TP +.B \-j +Compile the named programs, and load and link them for running stand-alone +on a Blit terminal. +.TP +.B \-m +Compile the named programs for ordinary (non-Blit) environments. +.TP +.B \-w +Suppress warning diagnostics. +.TP +.SM +.B \-O +Invoke an +object-code improver. +.TP +.SM +.B \-S +Compile the named C programs, and leave the +assembler-language output on corresponding files suffixed `.s'. +.TP +.SM +.B \-E +Run only the macro preprocessor +on the named C programs, and send the result to the +standard output. +.TP +.SM +.B \-C +prevent the macro preprocessor from eliding comments. +.TP +.BI \-o " output" +Name the final output file +.IR output . +If this option is used the file `a.out' will be left undisturbed. +.TP +.SM +.BI \-D name=def +.br +.ns +.TP +.SM +.BI \-D \*Sname +Define the +.I name +to the preprocessor, +as if by +`#define'. +If no definition is given, the name is defined as "1". +The symbol +.I mc68000 +is predefined. +.TP +.SM +.BI \-U \*Sname +Remove any initial definition of +.IR name . +.TP +.SM +.BI \-I \*Sdir +`#include' files +whose names do not begin with `/' are always +sought first in the directory +of the +.I file +argument, +then in directories named in +.B \-I +options, +then in directories on a standard list. +.TP +.SM +.BI \-B \*Sstring +Find substitute compiler passes in the files named +.I string +with the suffixes cpp, ccom and c2. +If +.I string +is empty, use a standard backup version. +.TP +.BR \-t [ p012 ] +Find only the designated compiler passes in the +files whose names are constructed by a +.B \-B +option. +In the absence of a +.B \-B +option, the +.I string +is taken to be `/usr/c/'. +.PP +Other arguments +are taken +to be either loader option arguments, or C-compatible +object programs, typically produced by an earlier +.I mcc +run, +or perhaps libraries of C-compatible routines. +These programs, together with the results of any +compilations specified, are loaded (in the order +given) to produce an executable program with name +.B a.out. +.SH FILES +.ta \w'/usr/jerq/lib/notsolow.o 'u +file.c input file +.br +file.o object file +.br +a.out loaded output +.br +/tmp/ctm? temporary +.br +/lib/cpp preprocessor +.br +/usr/jerq/lib/ccom compiler +.br +/usr/jerq/lib/occom backup compiler +.br +/usr/jerq/lib/mc2 optimizer +.br +/usr/jerq/lib/l.o runtime startoff for +.B \-j +.br +/usr/jerq/lib/notsolow.o runtime startoff for +.B \-m +.br +/usr/jerq/lib/libc.a standard library +.br +/usr/jerq/lib/libf.a floating-point library +.br +/usr/jerq/lib/libj.a graphics library (used in +.BR \-lj ). +.br +/usr/jerq/lib/libsys.a system and I/O library (used in +.BR \-lj ). +.br +/usr/jerq/include standard directory for `#include' files +.SH "OTHER PROGRAMS" +The usual array of associated object-code manipulating programs exists, +with specifications identical to the usual Unix programs, and with +names prefixed with an `m.' +These programs include: +.ta \w'mlorder 'u +.br +mas assembler, see +.IR as (1) +.br +mlorder order library, +.IR lorder (1) +(there is no mranlib) +.br +mnm name list, see +.IR nm (1) +.br +msize object code size, +.IR size (1) +.br +mstrip strip symbol table, +.IR strip (1) +.fi +.SH "SEE ALSO" +B. W. Kernighan and D. M. Ritchie, +.I The C Programming Language, +Prentice-Hall, +1978 +.br +B. W. Kernighan, +.I +Programming in C\(ema tutorial +.br +D. M. Ritchie, +.I +C Reference Manual +.br +.IR mld (1), +.IR cc (1) +.SH DIAGNOSTICS +The diagnostics produced by C itself are intended to be +self-explanatory. +Occasional messages may be produced by the assembler +or loader. diff --git a/static/v10/man9/menuhit.9 b/static/v10/man9/menuhit.9 new file mode 100644 index 00000000..3cde12a1 --- /dev/null +++ b/static/v10/man9/menuhit.9 @@ -0,0 +1,210 @@ +.TH MENUHIT 9.3 +.CT 2 comm_term +.SH NAME +menuhit, hmenuhit \- present user with menu and get selection +.SH SYNOPSIS +.nf +.B #include <jerq.h> +.PP +.B int menuhit(m, b) +.B Menu *m; +.PP +.B #include <menu.h> +.PP +.B NMitem *hmenuhit(m, b) +.B NMenu *m; +.fi +.SH DESCRIPTION +.I Menuhit +presents the user with a menu specified by the Menu pointer +.I m +and returns an integer indicating the selection made, +or +\-1 +for no selection. +The integer +.I b +specifies which button to use for the interaction: 1, 2 or 3. +.I Menuhit +assumes that the button is already depressed when it is called. +The user makes a selection by lifting the button when the cursor +points at the desired selection; +lifting the button outside the menu indicates no selection. +.PP +Menus can be built in two ways, either as an array of +strings or with a generator function: +.IP +.EX +typedef struct { + char **item; /* string array, ending with 0 */ + char *(*generator)(); /* used if item == 0 */ + short prevhit; /* offset from top of last select */ + short prevtop; /* topmost item displayed */ +} Menu; + +char *menutext[]={"Item 0", "Item 1", "Item 2", 0}; +Menu stringsmenu={ menutext }; +.EE +.LP +or +.IP +.EX +char *menugen(); +Menu genmenu={ (char **)0, menugen }; +.EE +.PP +The generator function is passed an integer parameter +.IR n , +and must return the string for the +.IR n th +menu entry, or 0 if +.I n +is beyond the number of entries in the menu. +The +.IR n 's +may come in any order but the result is only needed until the next call. +.PP +Regardless of the method of generation, characters with the +.B 0200 +bit set are regarded as fill characters. +For example, the string +.L +"\e240X" +will appear in the menu as a right-justified +.L X +.RL ( 040 +is the +.SM ASCII +space character). +Menu strings without fill characters are drawn centered in the menu. +.PP +The fields +.I prevhit +and +.I prevtop +are used to guide which items are displayed and which item +the mouse points to initially. +They should be nonnegative. +Both +.I menuhit +and +.I hmenuhit +may choose to ignore these fields. +.PP +.I Hmenuhit +supports hierarchical menus. +Submenus are denoted graphically by a right-pointing arrow. +Moving the cursor onto the arrow causes the submenu to appear. +Hierarchical menus are built of +.BR NMitem s +defined as +.IP +.EX +typedef struct NMenu { + char *text; + char *help; + struct NMenu *next; + void (*dfn)(), (*bfn)(), (*hfn)(); + long data; +} NMitem; +.EE +.PP +The +.B text +field is shown to the user; +characters with the +.B 0200 +bit set behave as above. +The contents of the +.B help +field are shown whenever the user holds down button 1 at the same time +as the button specified by the parameter +.IR b . +If +.I b +is 1, +you get help all the time. +The +.B next +field is the address of a submenu or +.B "(NMenu *)0" +if there is none. +The two functions +.B (*dfn)() +and +.B (*bfn)() +support dynamic submenus. +.I Dfn +is called just before the submenu is invoked. +Its argument is the current menu item. +Similarly, +.I bfn +is called with the current menu item just after the submenu has finished. +.I Hfn +is called only when a menu item is selected; +its argument is the current menu item. +The menu has been undrawn before +.I hfn +is called. +The return value from +.I hmenuhit +is the menu item selected or +.B "(NMenu *)0" +if none was selected. +To permit communication between menu functions and the calling program, +the +.I data +field is available for the user; +it is ignored by +.IR hmenuhit . +.PP +An +.BR NMenu , +like a +.BR Menu , +may be built by list or by generator. +An +.B NMenu +generator takes an integer parameter +.I n +and returns a pointer to an +.LR NMitem . +In either case, +the list of menu items is terminated by an item with a 0 +.B text +field. +.SH EXAMPLES +Simple code to use +.B stringsmenu +declared above: +.IP +.EX +.ta \w'case -1: 'u +switch(menuhit(&stringsmenu, 3)){ +case 0: item_0(); + break; +case 1: item_1(); + break; +case 2: item_2(); + break; +case -1: noselection(); + break; +} +.EE +.PP +To provide a submenu for item 1: +.IP +.DT +.EX +NMitem *gen(); +NMenu i1list = { 0, gen }; +void item_2(), item_3(); +NMitem imenu = { + { "item 1", "item 1 help", &i1list }, + { "item 2", "item 2 help", 0, 0, 0, item_2 }, + { "item 3", 0, 0, 0, 0, item_3 }, + { 0 } +}; +NMenu b3 = { imenu }; +(void)hmenuhit(&b3, 3); +.EE diff --git a/static/v10/man9/mld.9 b/static/v10/man9/mld.9 new file mode 100644 index 00000000..59ec8cc5 --- /dev/null +++ b/static/v10/man9/mld.9 @@ -0,0 +1,146 @@ +.TH MLD 9.1 +.SH NAME +mld \- MC68000 link editor (loader) +.SH SYNOPSIS +.B mld +[ option ] ... file ... +.SH DESCRIPTION +.I Mld +combines several Motorola 68000 +object programs into one, resolves external +references, and searches libraries. +In the simplest case several object +.I files +are given, and +.I mld +combines them, producing +an object module which can be either executed or +become the input for a further +.I mld +run. +(In the latter case, the +.B \-r +option must be given +to preserve the relocation bits.) +The output of +.I mld +is left on +.BR a.out . +This file is made executable +only if no errors occurred during the load. +.PP +The argument routines are concatenated in the order +specified. +The entry point of the output is the +beginning of the first routine. +.PP +A library is a collection of object modules gathered into +a file by +.I ar (1). +If any argument is a library, it is searched exactly once +at the point it is encountered in the argument list. +Only those routines defining an unresolved external +reference are loaded. +If a routine from a library +references another routine in the library, +the referenced routine must appear after the +referencing routine in the library. +Thus the order of programs within libraries +may be important. +.PP +The symbols `etext', `edata' and `end' +are reserved, and if referred to, +are set to the first location above the program, +the first location above initialized data, +and the first location above all data respectively. +It is erroneous to define these symbols. +.PP +.I Mld +understands several options. +Except for +.BR \-l , +they should appear before the file names. +.TP +.BI \-b +relocate the program so its +first instruction is at the absolute position indicated by the +decimal +.I address +after the +.B \-b +option. +.TP +.B \-B +Similar to +.BR \-b , +but only set the base address for the BSS segment. +This option is usually used in conjunction with +.B \-b +when loading programs to run from ROM. +.TP +.B \-d +Force definition of common storage +even if the +.B \-r +flag is present. +.TP +.BI \-l x +This +option is an abbreviation for the library name +.RI `/usr/lib/lib x .a', +where +.I x +is a string. +If that does not exist, +.I mld +tries +.RI `/usr/jerq/lib/lib x .a' +A library is searched when its name is encountered, +so the placement of a +.B \-l +is significant. +.TP +.B \-o +The +.I name +argument after +.B \-o +is used as the name of the +.I mld +output file, instead of +.BR a.out . +.TP +.B \-r +Generate relocation bits in the output file +so that it can be the subject of another +.I mld +run. +This flag also prevents final definitions from being +given to common symbols, +and suppresses the `undefined symbol' diagnostics. +.TP +.B \-s +Remove the symbol table and relocation symbols to +save space in the resulting binary. +.TP +.B \-R +Similar to +.BR \-r , +but flag an error if there are undefined symbols. +.TP +.B \-M +Set the resulting a.out's magic number to 0406, +to signify a binary runnable under +.IR mpx (1). +.TP +.B \-v +Generate copious debugging information on standard output. +.SH FILES +.ta \w'/usr/jerq/lib/lib*.a\ \ 'u +/usr/jerq/lib/lib*.a libraries +.br +/usr/lib/lib*.a more libraries +.br +a.out output file +.SH "SEE ALSO" +ld(1), mcc(1), ar(1) diff --git a/static/v10/man9/mouse.9 b/static/v10/man9/mouse.9 new file mode 100644 index 00000000..f037a192 --- /dev/null +++ b/static/v10/man9/mouse.9 @@ -0,0 +1,63 @@ +.TH MOUSE 9.4 +.CT 1 comm_term +.SH NAME +mouse \- jerq mouse user interface +.SH DESCRIPTION +Most jerq programs use the mouse for control, either by pointing at things +on the screen or by making selections from a menu. +The mouse buttons are different from keys on a keyboard in that +events are reported when a button is released (let `up') as well as +depressed (pressed `down'). +It therefore matters not only +.I where +and +.I when +a button is pressed, but for how long. +For example, menus are drawn when a button is depressed, and remain +displayed as long as the button is held down. +While the button is down, moving the cursor over the menu highlights +entries in the menu; the entry (possibly none) under the +cursor when the button is +.I released +is the selection returned to the program. +Large menus also present a +`scroll bar' +on the left side of the menu. +Moving the mouse inside the scroll bar chooses which subset of the +available entries are displayed and therefore selectable. +.PP +There is a convention about how the buttons are used. +The left button (button 1) is used to point: +selecting which layer to work in, which file inside the editor, +some text in the file, etc. +The middle button (button 2) produces +a menu of actions related to the selection: +remove the selected text, replace it, etc. +The right button (button 3) presents a menu of global, program-wide actions: +pick up a new file, rearrange the files on the screen, etc. +Programs follow this convention well enough that an unfamiliar program +can often be learned simply by trying it. +The main violators of the convention are drawing programs, +which use button 1 to draw things and button 2 to undraw them, +but this is also a consistent convention. +.PP +The mouse cursor is usually an arrow pointing at a pixel, but +programs often change the cursor to an iconic representation +of the program's state. +The most common cursors are: +.TP +arrow +standard cursor +.TP +coffee cup +Program will be busy for a while. +.TP +rectangle and arrow +Program expects a rectangle to be `swept out' by pressing +a button (usually 3) at one corner and releasing at the diagonally opposite corner. +.TP +gunsight +Program expects an object to be selected by pointing at it and pressing a button (usually 3). +.TP +upside-down mouse +Program is thinking; the mouse is inoperative. diff --git a/static/v10/man9/movie.9 b/static/v10/man9/movie.9 new file mode 100644 index 00000000..44735e11 --- /dev/null +++ b/static/v10/man9/movie.9 @@ -0,0 +1,172 @@ +.TH MOVIE 9.1 +.CT 1 graphics writing_troff +.SH NAME +movie, stills \- algorithm animation +.SH SYNOPSIS +.B movie +[ +.B -t +.I termprog +] +[ +.B -m +.I memory +] +[ +.I file +] +.PP +.B stills +[ +.I files ... +] +.SH DESCRIPTION +.I Movie +converts a `movie script' +into an internal representation, then displays it in a window on a +Teletype 5620, AT&T630, or X-11 system (depending on which version has been compiled). +If the filename is of the form +.IB file .s , +.I movie +creates the intermediate form in +.IB file .i , +which will be used in subsequent calls if it is more recent than +.IB file .s , +The options are: +.TP \w'\f5-t\ \fItermprog\ 'u +.BI -t " termprog +Load +.I termprog +instead of the default terminal program. +.br +.ns +.TP +.BI -m mem +Use +.I mem +bytes of terminal memory instead of the default. +.PP +In the terminal, button 1 stops and starts the movie; +button 2 adjusts view sizes and selects clicks; +button 3 sets various parameters. +.SS Movie scripts +A movie consists of multiple independent views, +each presented as a rectangular sub-window. +If no +.B view +statements appear, there is a single implicit view +.BR def.view . +Any text or geometrical object may be labeled with a name and colon. +Labels and coordinates are local to views. +A recurring label erases the previous +object with that label. +.PP +Comments follow #; blank lines are ignored. +.HP +.B text +.I options x y string +.br +Text is centered and medium size by default; options: one of +.B "center +.B ljust +.B rjust +.B above +.BR below , +and one of +.BR "small +.B medium +.B big +.BR bigbig . +A leading quote is stripped from +.IR string , +as is a trailing quote if a leading one is present. +.PD 0 +.HP +.BI line +.I "options x1 y1 x2 y2 +.br +Lines are solid by default; options: one of +.B "fat +.B fatfat +.B dotted +.B dashed +and one of +.B "-> +.B <- +.BR <-> . +.HP +.BI box +.I "options xmin ymin xmax ymax +.br +A box may be +.BR fill ed. +.HP +.BI circle +.I "options x1 y1 radius +.br +Radius is measured in the +.I x +dimension. +A circle may be +.BR fill ed. +.TP +.BI erase " label +Erase an object explicitly. +.TP +.B clear +Erase all objects currently in the current view. +.TP +.BI click " optional-name +Place a mark in the intermediate with this name; +clicks are used to control stepping in a movie or to define frames +for a set of stills. +.TP +.BI view " name +.br +Associate subsequent objects with this view, +until changed again. +.PD +.PP +.I Stills +converts selected frames of a movie into +commands for +.IR pic (1). +Commands for +.I stills +begin with +.B .begin stills +and end with +.B .end +.BR stills . +.SH FILES +All files are in +.BR /usr/lib/movie . +.TF stills.awk +.TP +.F develop +Shell script to control conversion from script language to internal form. +.TP +.F fdevelop +C program that does the work. +.TP +.F stills.awk +Awk program to process stills language into +.IR pic (1). +.TP +.F anim +Host end of the animation system. +.TP +.F animterm +terminal end. +.TP +.F newer +Test whether one file is newer than another. +.SH "SEE ALSO" +.IR flicks (9.1), +.IR pic (1) +.br +J. L. Bentley and B. W. Kernighan, +`A System for Algorithm Animation', +this manual, Volume 2 +.SH BUGS +The 630 can only handle 65000 bytes of memory. diff --git a/static/v10/man9/mux.9 b/static/v10/man9/mux.9 new file mode 100644 index 00000000..02fc3604 --- /dev/null +++ b/static/v10/man9/mux.9 @@ -0,0 +1,210 @@ +.TH MUX 9.1 +.CT 1 comm_term +.SH NAME +mux, ismux, invert \- layer multiplexer for 5620 +.SH SYNOPSIS +.B mux +[ +.B -l +.I command ... +] +.PP +.B mux exit +.PP +.B mux cd +.I directory +.PP +.B ismux +[ +.B - +] +.PP +.B invert +.SH DESCRIPTION +.I Mux +manages asynchronous windows, or layers. +Upon invocation, it loads the terminal with a +program +(default +.FR /usr/jerq/lib/muxterm , +settable by the environment variable +.BR MUXTERM ) +that is +the primary user interface. +Option +.B -l +also creates a layer and invokes the shell to run +.I commands +in it. +(See +.IR windows (9.1)). +.PP +The command +.L mux exit +leaves +.I mux, +destroying all layers; +.L mux cd +changes the directory of +.IR mux , +and hence of layers later created, +but not of the current layers. +.PP +Each layer is essentially a separate terminal. +Characters typed into the layer are sent to the standard input of +a Unix process bound to the layer, and characters written on the +standard output of that process appear in the layer. +When a layer is created, a separate shell +(the value of the +.B SHELL +environment variable, or +.I sh +by default) +is established, and bound to the layer. +.PP +Layers are created, deleted, and rearranged using the mouse. +Depressing mouse button 3 activates a menu of layer operations. +Releasing button 3 then selects an operation. +At this point, a gunsight or box cursor indicates that an operation is pending. +Hitting button 3 again activates the operation on the layer pointed to by the cursor. +.PP +The +.B New +operation, to create a layer, +requires a rectangle to be swept out, +across any diagonal, while button 3 is depressed. +A box outline cursor indicates that a rectangle is to be created. +The +.B Reshape +operation, to change the size and location of a layer on the screen, +requires first that a layer be indicated (gunsight cursor) and a new rectangle +be swept out (box cursor). +The other operations are self-explanatory. +.PP +In a non-current layer, +button 1 is a shorthand for +.B Top +and +.BR Current , +which pulls a layer to the front +of the screen and makes it the active layer for keyboard and mouse input. +Th current layer is indicated by a heavy border. +.PP +There is a point +in each layer, called the `Unix point', where +the next character from the host Unix system will be inserted. +The Unix point advances whenever characters +are received from the host, but not when echoing typed characters. +When a newline is typed after the Unix point, +characters between the Unix point and the newline, +inclusive, are sent to the host and the +Unix point advanced to after the newline. +This means that +shell prompts and other output will be inserted before +characters that have been typed ahead. +No other characters are sent to the host (but see the discussion of raw mode +below). +Therefore partially typed lines or text anywhere before the Unix +point may be edited. +.PP +The default terminal program allows any text on the screen to be edited, +much as in +.IR sam (9.1). +Text may be selected by sweeping it with button 1 depressed. +Typed characters replace selected text. +.PP +All layers share a common `snarf buffer' (distinct from +.IR sam 's). +The +.B cut +operation on button 2 deletes selected text and puts it +in the buffer; +.B snarf +copies selected text to the buffer; +.B paste +replaces selected text (which may be null) from the buffer; and +.B send +copies the snarf buffer to after the Unix point. +.PP +Normally the terminal doesn't scroll +as text is received, but a button 2 menu item selects scrolling. +.PP +A scroll bar indicates what portion of all the text stored +for a layer is on the screen. +(It measures characters, not lines.) +Releasing button 1 in the scroll bar brings the line at the top +of the screen to the cursor; +releasing button 3 takes the line at the cursor +to the top of the screen. +Button 2, treating the scroll bar as a ruler, brings the indicated +point in the whole stored text to the top of the screen. +Slide the cursor off either end of the scroll bar with button 2 +depressed to get right to an end of the file. +.PP +The +.SM NUM LOCK +key advances a half page. +.PP +.I Ismux +reports on its standard error whether its standard output is a +.I mux +layer, and also generates the appropriate exit status. +With option +.LR - , +no message is produced. +.PP +.I Invert +reverses the sense of video, from black on white to +white on black, or +.I vice +.IR versa . +.PP +Independent user-level programs can be loaded into layers, see +.IR 32ld (9.1). +.SM SHIFT-SETUP +freezes +.I mux +and complements the video of the layer of the running user-level terminal process. +Hitting button 2 in this state will attempt to kill the process; +1 or 3 will leave it running. +.PP +In raw mode or no-echo mode (see +.IR ttyld (4)) +the Unix point advances with each character +typed after it. +In 8bit mode, characters with octal codes 0200 and greater +print according to the ISO Latin1 alphabet; see +.IR ascii (6). +.SH FILES +.F /tmp/.mux* +temporary file used by +.B -l +option +.SH SEE ALSO +.IR 32ld (9.1), +.IR sam (9.1), +.IR jx (9.1), +.IR term (9.1), +.IR windows (9.1) +.br +R. Pike, +`Blit Download Protocols', +this manual, Vol. 2 +.SH DIAGNOSTICS +.I Mux +refuses to create a layer when there is not enough memory. +Space can be recovered by deleting a layer. +.br +Error messages from +.I mux +are written directly to the layer which caused them. +They are usually meaningful only to system administrators, +and indicate system difficulties. +.SH BUGS +Reshape only works properly for processes that arrange to see if they have +been reshaped, although most programs +make this arrangement. +.br +The behavior of raw mode prohibits editing +partially typed lines when running +.IR cu (1). diff --git a/static/v10/man9/muxstring.9 b/static/v10/man9/muxstring.9 new file mode 100644 index 00000000..738a4daa --- /dev/null +++ b/static/v10/man9/muxstring.9 @@ -0,0 +1,124 @@ +.TH MUXSTRING 9.3 +.CT 2 comm_term +.SH NAME +strinsure, strinsert, strdelete, strzero, setmuxbuf, getmuxbuf, movstring \- dynamic strings in mux +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B strinsure(s, n); String *s; +.PP +.B "strinsert(d, i, s); String *d, *s; +.PP +.B "strdelete(d, i, j); String *d; +.PP +.B strzero(d); String *d; +.PP +.B setmuxbuf(s); String *s; +.PP +.B getmuxbuf(d); String *d; +.PP +.B movstring(n, sp, dp); char *sp, *dp; +.SH DESCRIPTION +These functions manipulate strings represented +in the following form. +.IP +.EX +.ta \w'struct 'u +struct String { + char *s; + short n; + short size; +}; +.EE +.LP +The string proper occupies the first +.B n +characters of a data block of +.L size +characters pointed to by +.BR s . +Initially both +.B size +and +.B s +should be 0. +Strings are always counted, not terminated by +.BR \e0 . +The functions obtain space as needed from +.IR gcalloc ; +see +.IR alloc (9.3). +Thus a +.B String +structure should never be copied. +.PP +.I Strinsure +arranges that +.IB s ->size\(>= n. +It must be called before any operation that could +overflow the current size. +.PP +.I Strinsert +inserts a copy of source +.I s +into destination +.I d +beginning at character +.I i +(counted from 0), +adding +.IB s ->n +to +.IB d ->n . +.PP +.I Strdelete +removes characters +.I i +through +.IR j \-1 +from string +.I d, +subtracting +.IR j \- i, +which must be nonnegative, from +.IB d ->n . +.PP +.IB Strzero +frees the memory associated with +.I d +and sets both +.IB d ->n +and +.IB d ->size +to zero. +.PP +.I Setmuxbuf +copies string +.I s +into the snarf buffer maintained by +.IR mux (9.1); +.I getmuxbuf +copies from the snarf buffer into +.I d. +.PP +.I Movstr +copies a block of +.I n +characters beginning at +.I sp +to a block beginning at +.I dp. +If +.I n +is negative it copies +.RI \- n +characters ending at +.IR sp \- 1 +to a block ending at +.IR dp \-1. +Notice that +.I movstring +does not operate on +.BR String s. +.SH SEE ALSO +.IR libc (9.3) diff --git a/static/v10/man9/newlayer.9 b/static/v10/man9/newlayer.9 new file mode 100644 index 00000000..2d89e172 --- /dev/null +++ b/static/v10/man9/newlayer.9 @@ -0,0 +1,81 @@ +.TH NEWLAYER 9.2 +.CT 2 comm_term +.SH NAME +newlayer, dellayer, downback, lbitblt, lpoint, lrectf, lsegment, ltexture, upfront \- layer control and graphics +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B Layer *newlayer(r); +.B Rectangle r; +.PP +.B void dellayer(l) +.B Layer *l; +.PP +.B void lbitblt(sl, r, dl, p, f) +.B "Layer *sl, *dl; Rectangle r; Point p; Code f; +.PP +.B void lpoint(l, p, f) +.B "Layer *l; Point p; Code f; +.PP +.B void lrectf(l, r, f) +.B "Layer *l; Rectangle r; Code f; +.PP +.B void segment(l, p, q, f) +.B "Layer *l; Point p, q; Code f; +.PP +.B void ltexture(l, r, t, f) +.B "Layer *l; Rectangle r; Texture *t; Code f; +.PP +.B void upfront(l) +.B "Layer *l; +.PP +.B void downback(l) +.B "Layer *l; +.SH DESCRIPTION +.I Newlayer +creates a layer in Rectangle +.I r +in the physical display bitmap, and returns its address, +or 0 on failure. +.IR Newproc (9.2) +explains how to attach a process to a layer. +.PP +.I Dellayer +de-allocates a layer; the associated process must also +be freed (see +.IR newproc (9.2)). +.PP +.I Upfront +and +.I downback +are the subroutines corresponding to the +.IR mux (9.1) +menu items +.B Top +and +.BR Bottom . +.PP +The routines +.IR lbitblt , +.IR lpoint , +.I lsegment +and +.IR ltexture +are equivalent to their +.IR bitblt (9.3) +counterparts +except that they never inhibit the mouse cursor, +so they are mainly useful only for implementation +of efficient composite graphics operations such +as circle-drawing. +Because of the duality of Bitmaps and Layers, +arguments of either type may be passed freely +to any of the graphics primitives. +.SH SEE ALSO +.IR bitblt (9.3), +.IR newproc (9.2) +.br +Rob Pike, +.I +Graphics in Overlapping Bitmap Layers, +ACM Trans. on Graphics, April 1983. diff --git a/static/v10/man9/newproc.9 b/static/v10/man9/newproc.9 new file mode 100644 index 00000000..0a0c38b6 --- /dev/null +++ b/static/v10/man9/newproc.9 @@ -0,0 +1,193 @@ +.TH NEWPROC 9.2 +.CT 2 proc_man +.SH NAME +P, newproc, muxnewwind, newwindow, tolayer, debug, getproc, getproctab, putname, getname \- jerq process control +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B extern struct Proc *P; +.PP +.B struct Proc *newproc(f) +.B void (*f)(); +.PP +.B struct Proc *newwindow(f); +.B void (*f)(); +.PP +.B void tolayer(l) +.B Layer *l; +.PP +.B void debug(); +.PP +.B struct Proc *getproc(); +.PP +.B struct Proc *getproctab(); +.PP +.B int putname(string, data) +.B char *string; long data; +.PP +.B struct Nqueue *getname(string) +.B char *string; +.PP +.B #include <msgs.h> +.br +.B void muxnewwind(p, c) +.B struct Proc *p; int c; +.SH DESCRIPTION +Processes in the jerq consist of a coroutine-style process +structure and an associated layer +(see +.IR newlayer (9.2)), +allocated independently. +This section describes the process allocation and control +primitives. +They are direct links to the system's own +control structures, so given +.IR mux 's +open addressing, they should be used with care. +.PP +Each process has a global variable +.I P +that points to its process structure. +The only regular use of +.I P +is to check that the process has been moved or reshaped: +.IP +.EX +if(P->state & RESHAPED){ + do_reshape(); + P->state &= ~RESHAPED; +} +.EE +.PP +The definition of +.B struct Proc +is in the include file +.BR <jerqproc.h> , +which is included automatically by +.BR <jerq.h> . +.PP +.I Newproc +allocates a new process, returning a pointer to it, or 0 +if one cannot be allocated. +Argument +.I f +points to the program text to be executed. +The special case +.IR f =0 +creates a process running the default terminal program, +and is almost always how +.I newproc +should be called; use +.IR 32ld (9.1) +to run non-standard programs. +A process is disabled by setting +.I p->state +to zero. +After calling +.IR newproc, +the process must be bound to a layer and +Unix told of its presence, typically as: +.IP +.EX +struct Proc *p; +Rectangle r; +p = newproc((struct Proc *)0); +if(p == 0) + error(); +p->layer = newlayer(r); +if(p->layer == 0){ + p->state = 0; + error(); +} +p->rect = r; +muxnewwind(p, C_NEW); +.EE +.PP +The second argument to +.I muxnewwind +should be +.B C_RESHAPE +if an existing process is being given a new layer. +If the process is +.I not +running the default terminal program, its variables +.L display +and +.L Drect +must be set: +.IP +.EX +struct udata *u=((struct udata *)p->data); +u->Drect=p->rect; +u->Jdisplayp=p->layer; +.EE +This procedure works regardless of whether the process being manipulated is itself. +.PP +.I Newwindow +creates a process by the above procedure, going through the +standard user interface to select the rectangle for the process's +layer. +.PP +.I Tolayer +takes an argument +.I layer +pointer and makes the process in that layer the receiver of +mouse and keyboard events. +.PP +.I Getproc +presents the user with a gunsight cursor and returns the +address of the process whose layer is indicated with the mouse. +.I Getproctab +simply returns the address of the base of the process table array. +This is an array of +.B NPROC +process structures. +.B NPROC +is stored in the word immediately lower in address than the +process table. +.PP +.I Debug +announces to the system that the calling process is prepared +to handle exceptions by other processes. +.PP +.I Putname +and +.I getname +manage a bulletin board for interprocess communication. +Further communication may be arranged through shared memory. +.I Putname +associates +.I data +with +.I string, +returning nonzero normally, or 0 if the data could not be stored. +.I Getname +returns a pointer +to a structure which contains +.TP +.B struct Proc *proc +pointer to the process structure of the layer that +most recently announced the string +.TP +.B long data +the corresponding data +.LP +.I Getname +returns 0 if no such string has been announced. +A pointer returned by +.I getname +remains valid: a client may rendezvous with a server by +calling +.I getname +once and repeatedly testing +the associated +.B proc +pointer thereafter. +.SH BUGS +These primitives are awkward at best, and are +subject to change. +.br +Creating a process without a layer or +.I +vice versa +is dangerous. diff --git a/static/v10/man9/pads.9 b/static/v10/man9/pads.9 new file mode 100644 index 00000000..7173ecdc --- /dev/null +++ b/static/v10/man9/pads.9 @@ -0,0 +1,102 @@ +.TH PADS 9.5 +.CT 2 comm_term +.SH NAME +pads \- user interface package +.SH DESCRIPTION +.I Pads +is a mouse-based interface for browsing a network +of windows. +.PP +Button 1 points. +Pointing at a window makes it current, with a heavy border; +pointing at a line of text makes it current, inverts its video, +and scrolls it to the middle of the window. +A scroll bar at the left of each window shows how +much of the text of a window is visible; +pointing into the scroll region controls what text is displayed. +.PP +Button 2 has a menu of operations that apply to the current line. +Operations above the +.B ~~~~~ +separator are specific to each line; +operations below the separator are generic line operations: +.TF truncate +.TP +.B cut +Remove the line. +.PD +.TP +.B sever +Remove the line and all lines above it. +.TP +.B fold +If lines pass the right margin, continue them on following lines. +.TP +.B truncate +Truncate lines at the right margin. +.LP +Button 3 has a menu of window-level operations, and is in three parts. +Below the lower separator is a list of windows; +selecting one makes it current. +They appear in front-to-back screen order, current at the top. +Operations above the upper separator are specific to each window; +operations between the separators are generic window operations: +.TF truncate +.TP +.B reshape +.TP +.B move +.TP +.B close +Like +.BR reshape , +.BR move , +and +.B delete +in +.IR mux (9.1). +.PD +.TP +.B fold +.br +.ns +.TP +.B truncate +apply to all lines in the window. +.PP +Keyboard characters accumulate at the bottom of the layer. +If the current line accepts input, it flashes with each keystroke; +otherwise, if the current window accepts input, its border flashes. +Carriage return is ignored until a line or window +accepts the text, whereupon +the input line is sent to the line or window. +The ESC key substitutes the +.IR mux (9.1) +global snarf buffer. +.PP +If the first character of a line from the keyboard is +.B < +or +.B > +the remainder of the line is interpreted as a shell command. +For +.BR < , +each line of the command's standard output is sent to the line or window, +as though it had come from the keyboard. +For +.BR > , +the line or lines of the window become the command's standard input. +Each line or window that accepts keyboard input produces +some help in response to +.BR ? . +Special cursor icons occasionally appear: +.TP +arrow-dot-dot-dot +The host is completing an operation; the terminal is ready +asynchronously. +.TP +exclamation mark +Confirm a dangerous menu selection by pressing that menu's button again. +.SH SEE ALSO +T. A. Cargill, +.I Pads Programming Guide diff --git a/static/v10/man9/paint.9 b/static/v10/man9/paint.9 new file mode 100644 index 00000000..db8492eb --- /dev/null +++ b/static/v10/man9/paint.9 @@ -0,0 +1,218 @@ +.TH PAINT 9.1 +.CT 1 games +.SH NAME +paint \- draw pictures in a layer +.SH SYNOPSIS +.B paint +.SH DESCRIPTION +.PP +.I Paint +is a program for artistic interactive drawing. +Buttons 1 and 2 draw in different ways, +e.g. depositing and erasing paint. +Button 3 gets a menu. +Certain menu items contain arrows, which if touched call submenus. +Moving off the right of a submenu causes it to disappear. +Some items toggle a state on and off; a +.L * +appears in the abnormal state. +Pressing button 1 while holding button 3 gets a short help +message for the menu item. +The top-level menu contains: +.PP +.de fq +\f5\\$1\fR \\$2 \\$3 \\$4 \\$5 \\$6 +.. +.nf +.ta \w'\f5Line style\fP 'u +\w'\(-> 'u +.fq Style \(-> "Different kinds of brush strokes" +.fq Operation \(-> "Ways of putting paint on canvas" +.fq Texture \(-> "Things to do to the texture pattern" +.fq Brush \(-> "Things to do to the paintbrush" +.fq Canvas \(-> "Things to do to the whole picture" +.fq State \(-> "Change things saved in \fI.paintstate\fP" +.fq Fill "" "Fill an area of the picture" +.fq Green "" "Erase the entire picture" +.fq Mask "" "Display mask instead of image" +.fq Exit +.fi +.PP +The +.B Style +submenu: +.PP +.nf +.fq Paint "" "Multiple brush spots while holding button 1 or 2 +.fq Circles "" "Circles; press at center and release at circumference +.fq Lines "" "Rubber-band brush lines +.fq Curves "" "Continuous strokes while holding button 1 or 2 +.fq "Line Style" \(-> "Solid, dotted, dashed, etc. lines +.fi +.PP +Entries in the +.B Line Style +sub-submenu are strings of +.LR A s, +.LR B s +and dot that +describe dotted and dashed lines. +.L A +stands for the brush on the button pushed, +.L B +stands for the brush on the other button; +.L . +for +no brush at all. +The string is cycled through at successive points when drawing +Lines, Curves, or Circles. +Thus +.L A +means a solid line, +.L A... +means a 1 in 4 dotted +line, and +.L AAAA.... +means 4-pixel dashes. +.PP +The +.B Operation +submenu assigns a pair of operations for buttons 1 and 2. +A hidden `mask' plane describes the shape that has been painted; +black pixels in the mask are inside, green outside. +Likewise, the brush +consists of a pair of rectangular image and mask planes. +There are 11 effective operations to combine the part of the brush +inside its mask +with the part of the picture it sits on (see +the Porter/Duff paper for details); selected pairs can be assigned to the +buttons: +.PP +.nf +.ta \w'\f5Line style\fP \(-> 'u +.fq Above/Erase "Button 1 paints on top, Button 2 erases +.fq Below/Erase "Button 1 paints behind, Button 2 erases +.fq Above/Below "Button 1 paints on top, Button 2 behind +.fq Inside/Erase "Button 1 paints inside, Button 2 erases +.fq Brush/Clear "Special effects +.fq AoutB/AinB "Special effects +.fq BinA/BatopA "Special effects +.fq Xor/Above "Special effects +.fi +.PP +.B Above +paints on top of the picture, as in +`normal' paint programs. +.PP +.B Below +paints underneath\(emonly in places that were not +previously covered. +.PP +.B Inside +paints on top, but only inside the already-painted part. +.PP +The other 7 operations are best described as `special effects'. +Try them out +to see what they do, or look at the Porter/Duff paper. +.PP +Texture +facilities paint with a repeating 16\(mu16 pattern instead of copies of +a brush. +The +.B Texture +submenu contains: +.PP +.nf +.ta \w'\f5Line style\fP 'u +\w'\(-> 'u +.fq Texture "" "Turn texturing on or off +.fq Make "" "Pick a texture from the picture +.fq Negate "" "Reverse the texture's green and black +.fq Save "" "Name a texture and copy it into a file +.fq Library \(-> "List and and retrieve textures in library +.fq Get "" "Type a name and get a texture from a file +.fi +.PP +.B Make +gives a 16\(mu16 square cursor with which to pick +a texture. +.PP +The +.B Brush +submenu has the same items +for brushes. +.B Make +allows you to sweep out a region to use as a brush. +.PP +The +.B Canvas +submenu contains +.BR Negate , +.BR Save , +.BR Library , +and +.BR Get , +in this case pertaining to entire pictures. +A library picture +is saved in a file containing the image plane then the +mask plane in +.IR bitfile (9.5) +format. +.PP +The file +.B .paintstate +in the current directory remembers +the names of the current brush, texture, +and libraries between sessions. +The +.B State +submenu displays the library names at the bottom +of the layer, where they can be edited: +.PP +.nf +.ta \w'\f5Line style\fP \(-> 'u +.fq Brushes "" "Name the brush directory +.fq Pictures "" "Name the picture directory +.fq Textures "" "Name the texture directory +.fi +.PP +The +.B Fill +menu item gives an arrowhead cursor. +If you touch down with button 3 at a point not painted, +the rookwise-connected +region containing it will fill with black. +On completion, the +black will be replaced by the current texture. +While the region is filling, any button click aborts the operation. +.PP +The current selections from the +.BR "Brush Library" , +.BR Style , +.BR Operation , +.BR Texture , +and +.B "Line Style" +menus are marked with a +.LR * , +and are displayed in the information box +at the bottom of the layer. +.SH FILES +.TF /usr/jerq/lib/paint/brush +.TP +.F /usr/jerq/lib/paint/brush +the default brush library +.TP +.F /usr/jerq/lib/paint/tex +the default texture library +.TP +.F \&.paintstate +state of terminated program +.SH SEE ALSO +.IR mbits (6), +.IR bitfile (9.5), +.IR brush (9.1), +.IR cip (9.1), +.IR ped (9.1) +.br +Thomas Porter and Tom Duff, +`Compositing Digital Images,' +Siggraph '84 Proceedings diff --git a/static/v10/man9/ped.9 b/static/v10/man9/ped.9 new file mode 100644 index 00000000..becd4d41 --- /dev/null +++ b/static/v10/man9/ped.9 @@ -0,0 +1,318 @@ +.TH PED 9.1 +.CT 1 editor writing_troff graphics +.SH NAME +ped, tped \- picture editor +.SH SYNOPSIS +.B ped +[ +.B -f +] +[ +.I file ... +] +.PP +.B tped +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Ped +is an interactive drawing program for +5620 terminals. +A +.I file +argument is equivalent to +an +.L e +command as described below. +Most features of +.I ped +are menu-controlled and self-explanatory; further details +are in the reference. +.PP +Button 1 selects actions +from a permanent menu and to draw or pick up an object. +Button 3 terminates drawing actions or changes +the permanent menu. +Button 2 causes the permanent menu to revert to +.LR basic . +.PP +The operation of +.I ped +is split between host and terminal. +When a file is first read, it is kept on +the host; +.L bring in +gets it to the 5620. +.PP +Option +.B -f +causes +.I ped +to display all text in one size to save time and space. +.PP +Some of the actions on permanent menus (switched by button 3) +are described below. +The last action is usually remembered and may be +executed repeatedly +until another is selected. +Thus, for example, one can fill many polygons with +one button click per polygon. +Actions marked +.L (t) +in the menu toggle on and off. +.PP +.B basic +menu +.RS +.TF rotate +.TP +.B blitblt +Copy part of the screen to file +.FR BLITBLT , +see +.IR blitblt (9.1). +.TP +.B exit +Leave +.IR ped , +requires a confirming push of button 3. +.TP +.B markers +Make visible the defining points of objects; +these are the only points sensitive to selection by button 1. +.RE +.TP +.B type comm +Take input from the keyboard. +.RS +.TF rotate +.TP +.BI e " file" +Begin editing +.IR file, +remember its name, as in +.IR ed (1). +Commands +.B f +(file name), +.B r +(read), +.B w +(write), +behave similarly. +.TP +.B qq +Same as +.B exit +in +.B basic +menu; altered files will be saved in +.FR ped.save . +.TP +.B cd +Change working directory. +.TP +.B pwd +Print working directory. +.TP +newline +Reactivate mouse. +.TP +.BI u " string" +Remember +.I string +as a shell command for the selection +.L user oper +in menu +.LR refine. +.PD +.RE +.TP +.B ch size +.PD0 +.RS +.TF rotate +.TP +.B rotate +displays a vector from the center (of the bounding box) of an object to the +selected point. +The object is rotated and scaled to bring that point to +a second selected position. +.TP +.B h-elong +Change aspect ratio. +The inverse is +.BR v-elong . +.RE +.PD +.TP +.B move +Button 3 cancels a move or copy. +To help untangle overlapping objects, the cancellation +does not take place until returning to the basic menu. +.RS +.PD0 +.TF rotate +.TP +.B attach +Move an open polygon (a broken line) +and hook it to the end of another. +.TP +.B join +Connect the ends of two polygons with a new line. +.TP +.B link +Cause multiple polygons to move and be filled as one +(useful for making holes). +Linked polygons must all be open or all be closed. +.TP +.B match +Move objects to bring selected points together. +.TP +.B center +Move objects to bring their centers together. +.TP +.B family/pt +Select objects to be moved or deleted together. +.RE +.PD +.TP +.B draw +Button 1 fixes a point; +button 3 terminates an object. +.PD0 +.RS +.TF rotate +.TP +.B text +Type one or more lines terminated by an empty line. +.TP +.B grid +Snap points to locations on +a grid, which indexes through settings FMC (fine, medium, coarse, none). +.TP +.B fix sz +Set option +.BR -f . +.TP +.B family/bx +Sweep a box around objects to be moved or deleted together. +.RE +.PD +.TP +.B reshape +.RS +.TF rotate +.TP +.B formal +Adjust nearly rectangular lines to be perfectly so. +.TP +.B spline +A piecewise parabolic fit tangent to the midpoints of +a broken line. +.TP +.B corner +Make a guiding point of a spline to be multiple \- a corner +in an otherwise smooth curve. +.PD +.RE +.TP +.B refine +.RS +.TF rotate +.TP +.B adj t +Left-justify, right-justify, or center text. +.TP +.B edit text +Display text at the top, where button 1 selects a +position for inserting by typing or deleting by backspacing. +Button 3 concludes the editing. +.RE +.PD +.TP +.B shade +Assign textures for filling polygons, circles, or spline-bounded regions. +Curves are filled schematically on the 5620, but accurately on +the host. +.TP +.B color +Assign colors for display on other devices. +.TP +.B remote +Perform all editing on the host using the terminal +as a display device only. +.PP +.I Tped +converts files of graphic information produced by +.I ped +into typesetting requests for +.IR troff (1). +The options are: +.TP +.BI -T dev +Prepare output for particular devices known to +.IR troff : +.B -Taps +or +.BR -T202 . +.PD 0 +.TP +.B -b +Place a box around each picture. +.PD +.PP +The input may be straight +.I ped +output or may be arbitrary text files with +.I ped +output embedded between +pairs of delimiting lines: +.PD0 +.IP +.BI .GS " \fR[\fI size \fR]\fI" +ped file +\&. . . +.B .GE +.LP +or in another file: +.IP +.BI .GS " \fR[\fI size \fR]\fI pedfilename" +.PD +.PP +The optional size gives width or height: +.BI w= inches +or +.BI h= inches. +.SH FILES +.F .pederr +.br +.F ped.save +.SH SEE ALSO +.IR cip (9.1), +.IR paint (9.1), +.IR brush (9.1), +.IR graphdraw (9.1), +.IR pic (1), +.IR ideal (1), +.IR blitblt (9.1) +.br +T. Pavlidis, +`PED Users Manual', +this manual, Volume 2 +.SH DIAGNOSTICS +Error messages from the host +are placed in file +.BR .pederr . +.SH BUGS +Pictures may spill into the menu or message areas. +.br +Some experimentation with +.I tped +printout parameters +may be needed to +obtain satisfactory results. diff --git a/static/v10/man9/pengo.9 b/static/v10/man9/pengo.9 new file mode 100644 index 00000000..3d594795 --- /dev/null +++ b/static/v10/man9/pengo.9 @@ -0,0 +1,72 @@ +.TH PENGO 9.6 +.CT 1 games +.SH NAME +pengo \- squash the sno-bees +.SH SYNOPSIS +.B demo pengo +.PP +.SH DESCRIPTION +.I Pengo +plays the video game. +Any button replaces the penguin picture by the game. +.PP +The mouse +controls the movement of the penguin. +(The usual +.L hjkl +keys also move the penguin, with the +space bar stopping movement.) +.PP +.nf +Button 1: Stop the penguin at the next block boundary. +Button 2: Push (or break) a block, or splash the water boundary. +Button 3: Display a menu to control aspects of the game. +.fi +.PP +The penguin moves in one +direction at constant speed unless acted upon by an outside force: +moving the mouse or encountering a wall or border. +If button 2 is pressed when a block is encountered then the block is +pushed. +If another block (or a wall) is behind the first then the block +will shatter, scoring 30 points. +Similarly breaking +an egg scores 500. +An unobstructed block will +slide until it hits an obstacle, sweeping along any +sno-bees in its path and crushing them. +Getting one sno-bee with a block scores 400 points, two 1600, +three 3200, four 6400. +.PP +Lining up the three blocks that bear crosses +is worth 5000 points if they are lined against a wall, 10000 otherwise. +Bonus penguins are given out every so often. +.PP +Pushing on the border +causes ripples to propagate along it, stunning any sno-bees that +are touching it. +A penguin may crush a stunned +sno-bee underfoot for 100 points. +.PP +Button 3 gets a menu with entries +.BR Pause , +.BR Stats , +.BR "New Game" , +.BR Quit . +All require another click of button 3 to complete. +.B Stats +presents three sliders controlled by button 1: +.TP +.B C +Change +(% of time that the sno-bees change direction) +.TP +.B R +Random +(% of time that a random direction is chosen +when changing) +.TP +.B B +Break +% of time that a sno-bee will break a block +that is blocking its way). diff --git a/static/v10/man9/pi.9 b/static/v10/man9/pi.9 new file mode 100644 index 00000000..f67d3868 --- /dev/null +++ b/static/v10/man9/pi.9 @@ -0,0 +1,397 @@ +.TH PI 9.1 +.CT 1 debug_tune +.SH NAME +pi, 3pi \- process inspector +.SH SYNOPSIS +.B pi +[ +.B -t +.I corefile objectfile +] +.PP +.B 3pi +[ +.B -p +.I person +] +.SH DESCRIPTION +.I Pi +is a C debugger that +is bound dynamically to multiple subject processes or core dumps. +It works better for programs compiled +.I cc +.IR \-g . +.I Pi +uses the +.IR Pads (9.5) +multi-window user interface. +There are three types of windows: +debugger control windows, +which access the global state of the debugger; +process control windows (exactly one per process), +which start and stop processes and connect to process-specific functions; +and process inspection windows, +which include viewers for source text and memory, formatted various ways. +.PP +The most important debugger control window is the +.I pi +window itself. +Each line within the +.I pi +window refers to a specific process. +These lines may be introduced to the window by running +.IR ps (1) +from the button 3 menu; +by typing a file name, either a +.IR proc (4) +name, or the name of a core image followed by the name of the binary that created +the core; +or by typing a command, prefixed by an exclamation +.LR ! , +to be executed as a child of +.IR pi . +There are several ways to access a process (using the button 2 menu), +each of which generates a process control window: +.TF hang\ &\ take\ over +.TP +.B open process +Attach to a running process, often one started with +.IR hang (1). +.PD0 +.TP +.B open core +Attach to a core image. +.TP +.B open child +Attach to a process forked by a process being debugged by the current +.IR pi. +.TP +.B take over +Rebind an existing process window hierarchy (pointed to with the mouse) +to the named process, +which must be an instance of the identical program. +.TP +.B hang & open proc +Execute a command afresh, beginning it in the +stopped state, and redirecting IO to +.FR /dev/null . +.TP +.B hang & take over +Same, also binding to an existing process window. +.PD +.PP +The process window indicates the process's state, +shows the call stack traceback +and connects to windows that access source text, +local variables within a stack frame, +raw memory, and so on. +These windows are cross-connected, so, for example, +an instruction in a process's assembly language window can +be inspected in hexadecimal in the raw memory window. +Closing the process control window closes all the windows under it. +.PP +The following menu functions are provided by +the various window types in +.IR pi . +Initially there are these windows available: +.TP 0.5i +.B Help +Reminder of user interface mechanics. +.TP +.B Pi +Overall control of processes, core dumps and programs. +A process is identified by its pathname or command line. +Process symbols are found in the executable file from which the process was loaded, +but may be overridden. +Symbols for core dumps must be supplied explicitly, after the core filename. +\fBSynopsis\fP: +Identify and open process or core dump; +run a program as +.I Pi's +child; +take over a process with the debugging environment of a different one. +.TP +.B Pwd/cd +change the working directory of the debugger. +.SS Process Window +Selecting and opening a process from the Pi window creates a new +window with overall control of that process. +It shows the process state, and a traceback if the process is halted or dead. +States are: +.TF EVENT\ PENDING +.TP +.SM +.B ACTIVE +running normally +.TP +.SM +.B HALTED +halted asynchronously by a debugger +.TP +.SM +.B BREAKPOINT +halted on reaching breakpoint +.TP +.SM +.B STMT STEPPED +halted after executing C source statement(s) +.TP +.SM +.B INSTR STEPPED +halted after executing machine instruction(s) +.TP +.SM +.B EVENT PENDING +halted about to receive a signal being traced +.TP +.SM +.B ERROR STATE +the process has probably exited +.PD +.LP +The menu operations on the process are: +.TF EVENT\ PENDING +.TP +.B go +let the process run +.PD 0 +.TP +.B stop +stop the process +.TP +.B kill +send +.B SIGKILL +to the process; see +.IR signal (2) +.TP +.B src text +open source text window(s) +.TP +.B Signals +open window for sending and trapping signals +.TP +.B Globals +open window for evaluating expression in global scope +.TP +.B RawMemory +open window for editing uninterpreted memory +.TP +.B Assembler +open window for disassembler +.PD +.LP +Each line of the call stack traceback describes one function. +Each function in the traceback can open an expression evaluator window +or display its current source line. +.SS Globals and Stack Frame Windows +.PP +These windows evaluate expressions with respect to global scope, +and scope in a function, respectively. +A stack frame window is opened from a line in the call stack traceback or +from a line of source text. +A stack frame can find its active source line in a source window or the stack +frame window of its caller. +.LP +C expressions can be entered by the keyboard or mouse. +The unary operators +.I fabs +and +.I sizeof +are supported; the only assignment operator is +.LR = . +Functions from the user program may be called. +New expressions can be derived from old ones by the keyboard or mouse. +In menus and the keyboard, +.B $ +means the expression in the current line. +The VAX registers are called +.B $r0 +to +.BR $r15 ; +the address of a register is +the location at which it was saved. +The format in which values are displayed can be changed. +The raw memory editor may be entered using an expression's value as address. +.PP +An expression may be made a +.IR spy . +The value of a spy expression is evaluated and displayed +each time the debugger looks at the process. +If the value of a spy changes the process is halted +at the next instruction, statement or breakpoint. +.LP +The comma operator is useful in conditional breakpoints because the values +of its subexpressions are displayed. +E.g. x, y, x==y traces the values of x and y when the condition fails; +x, y, 0 just traces. +.LP +To cross scope boundaries, the environment (a function identifier) +in which an expression is to be evaluated may be specified as: +{ expr } function. +From the source directory window, file static variables can be promoted +to appear in the menu of global variables. +.SS Source Text Windows +The source file directory window lists all the source files, if there are +two or more. +A textual prefix, entered from the keyboard, points to a source directory, +without changing the working directory. +Each source file is in a separate window, opened when needed. +The source file's pathname as given to +.I cc +can be overridden from the keyboard. +If things go wrong, use +.B reopen +to open the file afresh. +\fBSynopsis\fP: +set/clear (conditional) breakpoint; +single-step source statements; +step into (rather than over) a function; +go the process; +show the statement for the current PC; +open a stack frame window for a source line's function; +evaluate expression; +disassemble first instruction of source statement; +context search for string. +.SS Breakpoints Window +Lists all the active source and assembler breakpoints and related errors. +\fBSynopsis\fP: +show source or assembler for a breakpoint; +clear breakpoint; +clear all breakpoints. +.SS Signals Window +Lists all signal types, showing which ones are traced. +\fBSynopsis\fP: +Change which signals are traced; +send a signal to the subject process; +clear pending signal; +stop process on +.I exec. +.SS Raw Memory Window +In this window +memory is a viewed as a sequence of 1-, 2-, 4- or 8-byte cells. +\fBSynopsis\fP: +set cell address; +change cell size; +change display format; +display cells above and below; +indirect to cell; +change cell value; +spy on memory cell; +disassemble instruction at cell. +.SS (Dis)assembler Window +In this window memory is viewed as a sequence of instructions. +\fBSynopsis\fP: +set instruction address; +display more instructions; +change display format; +display instruction as cell in raw memory window; +set/clear breakpoint on instruction; +open stack frame window for instruction's function; +display instruction at current PC; +single step instruction(s); +step over a function call instead of into the function. +.SS Exec and Fork +If a process controlled by +.I pi +does an +.IR exec () +and an exec break is set in the Signals window, +the process is suspended as if started by +.IR hang (1). +To debug the process after the +.IR exec , +close the original process window and re-open it. +When re-opened it will get the new symbol tables. +.PP +To debug a child process: (i) set a breakpoint in code that will be executed +in the child after the fork; (ii) execute the fork +.I at full speed +(the child inherits the parent's breakpoints, which aren't there if the +parent is stepped); +(iii) +.I before altering any breakpoints, +get a fresh +.I ps +in the Pi window and apply +.B open child +to the child. +The child should be stopped on the inherited breakpoint, but it and all other +breakpoints should have been cleared. +.SS Kernel +The state of kernel variables associated with a process may be examined +by giving their name or virtual address. +The +.B UNIX +environment variable specifies the file from which the system was +loaded; the default is +.IR /unix . +Kernel dumps may be examined by opening the +`kernel pi' window. +.SS Just A Traceback +With the +.B -t +option +.I pi +writes a traceback on its standard output and quits. +.SS 3pi +.I 3pi +is a variant of +.I pi +for debugging 5620 programs running under +.IR mux (9.1). +It creates two terminal processes: one for its access to terminal memory +and graphics and a second for its +.IR Pads (9.5) +interface. +.SS Remote Debugging +With the +.B -p +option +.I 3pi +loads its first process, but not +.IR Pads . +Instead, it mails a +.I 3pi +command to +.IR person , +to be executed on any host in the local network. +That +.I 3pi +command loads +.I Pads +on +.IR person 's +terminal, and connects to the originator's terminal. +If separate hosts are involved and the versions of critical files differ, +be careful with pathnames. +.SS 3pi Graphics +Points, rectangles, textures and bitmaps can be displayed graphically. +.SS 3pi - pi +Most differences come from obvious differences in the hardware and +software architectures. +Also, in +.I 3pi +function calls are executed by a debugger process on its own call stack. +.SH SEE ALSO +T. A. Cargill, +`The Feel of Pi', +this manual, Volume 2 +.br +.IR hang (1), +.IR proc (4), +.IR adb (1), +.IR cin (1), +.IR nm (1), +.IR pads (9.5) +.SH BUGS +In switch statements there is no boundary between the last case +and the branch code; the program +.I appears +to jump to the last case (but is really in the branch) +and then to the real case. +.br +A changed spy only stops the process at a breakpoint or while stepping. +An expression can be cast only by menu. +.br +Functions may only be called when the process is stopped and not in a system call. diff --git a/static/v10/man9/proof.9 b/static/v10/man9/proof.9 new file mode 100644 index 00000000..260171df --- /dev/null +++ b/static/v10/man9/proof.9 @@ -0,0 +1,124 @@ +.TH PROOF 9.1 +.CT 1 writing_output +.SH NAME +proof \- troff output interpreter for 5620 +.SH SYNOPSIS +.B proof +[ +.BI -f fonts +] +[ +.I file +] +.SH DESCRIPTION +.I Proof +reads +.IR troff (1) +intermediate language from +.I file +or standard input +and simulates the resulting pages on the screen. +If no file name is given and standard input is a terminal, +proof terminates immediately leaving a `proof layer'. +By invoking +.I proof +in a proof layer you can avoid download time. +.PP +Fonts are loaded as required. +The usual +.IR mux (9.1) +font, +.BR defont , +is used for unknown fonts. +Option +.B -f +preloads fonts. +Names are given relative to +.F /usr/jerq/font +and are separated by commas. +The most-used fonts are +.LR -fR.10,I.10,B.10,S.10 . +.PP +After a layer's worth of text is displayed, +.I proof +pauses for a command from keyboard or mouse button 3. +The typed versions of commands are: +.TP \w'newline\ 'u +newline +Go on to next portion of text. +(Button 3 equivalent: +.LR more .) +.TP +.B q +Quit, leaving a proof layer. +.TP +.B x +Exit and restart the regular terminal program. +(Equivalent to +.L q +followed by +.LR "term mux" ; +see +.IR term (9.1)). +.TP +.BI p n +Print page +.I n. +An out-of-bounds page number means the end nearer to that number; +a missing number means page 0; +a signed number means an offset to the current page. +.PP +Button 1 gets a scroll box, which represents a full page of text. +An interior rectangle shows what part of the page is now visible. +The interior rectangle moves with the mouse, causing the layer to +scroll both vertically and horizontally. +Button 2 gets a speedometer. +The bar of the speedometer moves with the mouse +to control the rate at which new information is displayed. +.SH EXAMPLES +.TP +.L +troff -ms memo | proof +Format a memo and display it. +.TP +.L +(eqn memo | troff -ms) 2>diags | proof +Display a memo with equations. +Avoid sending diagnostics to the screen; see +.SM BUGS. +.SH FILES +.TF /usr/jerq/font/.missing +.TP +.F /usr/jerq/font/* +fonts +.TP +.F /usr/jerq/font/.missing +list of referenced but unconverted fonts +.SH SEE ALSO +.IR lp (1), +.IR font (6), +.IR reader (9.7), +.IR psi (9.1) +.br +Brian W. Kernighan, +.I A Typesetter-independent Troff +.SH BUGS +.I Proof +breaks if other messages are directed to its layer. +In particular, unredirected +.I troff +diagnostics will break the pipeline +.LR "troff | proof" . +.br +Windowing can get confused if the +.I troff +output is not approximately +sorted in ascending +.IR y -order. +.br +A proof layer imitates +.LR "term 33" , +not +.IR mux . +Among other difficulties, it will not be reusable if downloaded +across the network. diff --git a/static/v10/man9/psi.9 b/static/v10/man9/psi.9 new file mode 100644 index 00000000..2887d009 --- /dev/null +++ b/static/v10/man9/psi.9 @@ -0,0 +1,142 @@ +.TH PSI 9.1 +.CT 1 writing_output +.SH NAME +psi \- postscript interpreter +.SH SYNOPSIS +.B psi +[ +.I option ... +] [ +.I file +] +.SH DESCRIPTION +.I Psi +reads Postscript input from +.I file +or from standard input +and simulates the resulting pages in a +.IR mux (9.1) +layer. +The program remains in the layer at exit; further invocations of +.I psi +in that layer avoid download time. +.PP +The options are +.TP +.BI -p n +Display page +.IR n , +where +.I n +is determined from the +.B %%Page +comments in the file. +If these are not present, page selection will not work. +.TP +.B -R +Pages in the file are in reverse order. This flag must be used on such files +for the +.I -p +option to work. +.TP +.B -r +Display the image at full scale, with the bottom left +corner positioned at the bottom left corner of the window. +(By default, the image is scaled to fit the window, maintaining +the aspect ratio of a printer.) +.HP +.B -a +.I x y +.br +Display the image at full scale with position +.I x,y +of the image placed at the bottom left corner of the window. +.PP +.I Psi +works on either a Teletype 5620, 630 or 730 terminal +as determined by the environment variable +.BR TERM . +.PP +Fonts are implemented with size-24 bitmap fonts. +Those available are +Symbol, Courier, Times-Roman, Times-Italic, Times-Bold, Times-BoldItalic, Helvetica, +Helvetica-Oblique, Helvetica-Bold, Helvetica-BoldOblique. +Fonts +Courier-Bold, +Courier-Oblique, +and +Courier-BoldOblique +are mapped to +Courier. +Other postscript fonts, including type1, may be used if +they are supplied before they're referenced. +.PP +When the `cherries' icon is displayed, use mouse button 3 +to move forward +.RB ( more ), +to a particular page +.RB ( page ), +or quit +.RB ( done ). +Button 2 exits the program completely. +.SH EXAMPLES +.TP +.L +troff -ms memo | lp -dstdout -H | psi +.br +.ns +.TP +.L +troff -ms memo | dpost | psi +Two equivalent ways to format a memo, convert it to PostScript, +and display it. +.PP +For best results with TeX documents, use +.B dvips +with the +.BR -Tjerq , +.BR -Tgnot , +or +.B "-D 100" +option to get fonts of the proper resolution and run +.I psi +with the +.I -r +or +.I -a +flag to prevent +.I psi +from scaling. +.SH FILES +.TF psi.err +.TP +.F psi.err +error messages +.SH SEE ALSO +.IR lp (1), +.IR dvips (1), +.IR postscript (8), +.IR proof (9.1), +.IR psifile (1), +.IR psix (1) +.SH DIAGNOSTICS +A `dead mouse' icon signals an error; +error comments are placed on file +.FR psi.err . +.PP +Symbols that lack bitmaps are replaced by `?' +and an error is reported. +.SH BUGS +A psi layer imitates +.LR "term 33" , +not +.IR mux . +Among other difficulties, it will not be reusable if downloaded +across the network. +.br +Unimplemented PostScript features are rotated images and +half tone screens. +Imagemasks may only be rotated by multiples of 90 degrees, not +by arbitrary angles. +.br +Skipping pages may cause operators to be undefined. diff --git a/static/v10/man9/reader.9 b/static/v10/man9/reader.9 new file mode 100644 index 00000000..f5216b28 --- /dev/null +++ b/static/v10/man9/reader.9 @@ -0,0 +1,72 @@ +.TH READER 9.7 +.CT 1 writing_output inst_info +.SH NAME +reader \- electronic retrieval of typeset documents +.SH SYNOPSIS +.B reader +.I name +.SH DESCRIPTION +.I Reader +presents the named paper on a 5620 terminal in a form designed +for readability, not for similarity to the printed version. +The +.I name +is a pathname for a manuscript in the +.IR papers (7) +database with +any final +.L .d +elided) or the name of a +.IR troff (1) +input file. +Mouse button 1 selects subheads; +button 3 moves forward (`more') or backward (`less'). +The program exits completely on button 2, or tentatively (to avoid +downloading upon reexecution) on button 3 (`done'). +.PP +When the text in a screen overlaps text in a previous screen, a tick mark +in the bar (not a scroll bar) at the left of the screen shows where +new material begins. +.PP +Fully installed papers in the database, which appear as directories suffixed +.LR .d , +have been preprocessed so that +.I reader +can present figures and complex equations. +In +.I troff +input, it understands straightforward text and +.IR eqn (1), +the macro packages +.IR ms (6), +.I mm, +and +.I me, +but cannot handle arbitrary motions such as appear in figures and +complex equations. +.SH FILES +.TF /n/bowell/pap/Titles +.TP +.F /n/bowell/pap/Titles +titles, authors and installation dates +.TP +.F /n/bowell/pap/*org +membership list +.TP +.BI /n/bowell/pap/ center / department / author\f5/\fIpapername\fR[\f5.d\fR] +.SH SEE ALSO +.IR troff (1), +.IR proof (9.1), +.IR docsubmit (1), +.IR papers (7) +.SH BUGS +Button 1 knows only already-read subheads unless the paper has been preprocessed. +.br +.I Reader +can only handle papers written in +.I troff +with standard +.RB ( -ms , +.BR -mm , +.BR -me ) +macro packages. diff --git a/static/v10/man9/rebecca.9 b/static/v10/man9/rebecca.9 new file mode 100644 index 00000000..8f2854b2 --- /dev/null +++ b/static/v10/man9/rebecca.9 @@ -0,0 +1,123 @@ +.TH REBECCA 9.1 +.CT 1 editor graphics +.SH NAME +rebecca \- graphics touch-up editor +.SH SYNOPSIS +.B rebecca +.I file +.SH DESCRIPTION +.I Rebecca +is an interactive retouching tool for digitized grey-scale images. +The +.I file +must be a headerless 512\(mu512 black-and-white digitized image. +Example (read only) files are +in directory +.FR /n/kwee/t0/face/512x512x8 . +.LP +`Floating instruments' for editing +can be dragged with button 2 to different locations. +.LP +.I Resolution. +The tick mark on the long bar +can be moved up or down with button 1. +Printed +to the right of the bar is the current resolution\(em +a power of 2 representing the number +of file pixels across the screen image. +.LP +.I Grid. +Click button 1 at the circular button to toggle the grid. +Turning on the grid is useful sometimes to see how +fast a screen update is proceeding: it eats away the grid. +.LP +.I Write. +Write the file on the host by clicking button 1 at the box labeled +.LR write . +The write box has a +.L * +if a change was made to +the file since it was last written. +.LP +.I Runlength encoding. +Clicking button 1 at this box toggles the mode of data transmission +between host and terminal. +.LP +.I Reopen. +This instrument cancels any changes made to the file +since the last time it was written. +.LP +.I Move/Pan. +Click button 1 at one of the 5 areas of the diamond. +The middle resets the display to a +full size picture. +Left, right, up, or down will move (pan) 1/4 screen in the +corresponding direction +(useful only on zoomed pictures). +.LP +.I Zoom/Unzoom. +Click button 1 at +.L Z +(zoom) or +.L U +(unzoom). +.L Z +prompts with a square box to be positioned on the area +of the picture to be inspected at full resolution. +If you click button 1 before you confirm, the sides +of the box are halved. +Clicking button 2 doubles them. +Any combination of two buttons cancels the zoom; +button 3 confirms it. +.LP +.I Paint. +Click button 1 at the box labeled +.LR "+ = -" . +Painting with +.L + +adds grey values to pixels; +.L = +assigns values; +.L "-" +subtracts values. +Click button 1 at a pixel location to apply the paint. +Click button 3 to sweep a rectangle to paint all pixels within it. +Pick a paint value (default is white) by +clicking button 2 at the grey scale at the bottom +or at any pixel in the image. +Click button 2 at the paint box to cancel the paint mode. +.LP +.I Smear. +Pointing at a pixel with both buttons +1 and 2 down averages it with its +8 neighbors (most useful when zoomed in to pixel level). +Typical usage: apply some white or black paint with the paint box, +then smear it. +.LP +.I Probe. +Click button 1 at the probe box +.LR P: . +Point at a pixel in the image. +The +.I x-y +coordinates and the greyscale value of the pixel will be printed. +.LP +.I Contrast. +Move the ends of the line under the +grey scale bar to expand or compress the grey scale. +.LP +.I Rubber Sheet. +The box named +.L sheet +prompts for a rectangle. +Sweep out the rectangle over an +area you want to manipulate, then reposition the corners +by dragging them to new locations with button 1. +Confirm the selection with button 3. +Other instruments +are usable while the update proceeds. +.SH "SEE ALSO" +.IR pico (1), +.IR flicks (9.1), +.IR picfile (5), +.IR flickfile (9.5) diff --git a/static/v10/man9/request.9 b/static/v10/man9/request.9 new file mode 100644 index 00000000..931eda28 --- /dev/null +++ b/static/v10/man9/request.9 @@ -0,0 +1,238 @@ +.TH REQUEST 9.2 +.CT 2 comm_term time_man proc_man +.SH NAME +request, own, wait, alarm, sleep, nap, kbdchar, rcvchar, realtime, sendchar, sendnchars, kill, exit \- 5620 input/output requests +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B void request(r) int r; +.PP +.B int own(r) int r; +.PP +.B int wait(r) int r; +.PP +.B void alarm(t) unsigned t; +.PP +.B void sleep(t) unsigned t; +.PP +.B void nap(t) unsigned t; +.PP +.B long realtime(); +.PP +.B int kbdchar(); +.PP +.B int rcvchar(); +.PP +.B void sendchar(c) int c; +.PP +.B "void sendnchars(n, cp) int n; char *cp;" +.PP +.B void kill(s) +.B int s; +.PP +.B void exit(); +.SH DESCRIPTION +.I Request +announces a program's intent to use I/O devices and resources, +and is usually called once early in a program. +The bit vector +.I r +indicates which resources are to be used by +OR'ing together one or more of the elements +.B KBD +(keyboard), +.BR MOUSE , +.B RCV +(characters received by terminal from Unix), +.B SEND +(characters sent from terminal to Unix) +and +.BR ALARM . +For example, +.B request(MOUSE|KBD) +indicates that the process +wants to use the mouse and keyboard. +If the keyboard is not requested, +characters typed will be sent to the standard input of the Unix process. +If the mouse is not requested, +mouse events in the process's layer will be interpreted by the +system rather than passed to the process. +.B SEND +and +.B CPU +(see +.B wait +below) are always implicitly +requested. +.I Request +sleeps for one clock tick to synchronize mouse control with the kernel. +.PP +.I Own +returns a bit vector +of which I/O resources have data available. +For example, +.BR own()&KBD +indicates +whether a character is available to be read by +.I kbdchar +(see below), +.B own()&MOUSE +tells if the process's +.B mouse +structure (see +.IR button (9.2)) +is current, and +.B own()&ALARM +indicates whether the alarm timer has fired. +.PP +.IR Wait 's +argument +.I r +is a bit vector composed as for +.IR request . +.I Wait +suspends the process, +enabling others, +until at least one of the requested resources is available. +The return value is a bit vector indicating which of the requested resources +are available \(em the same as +.BR own()&r . +.PP +Processes wishing to give up the processor to enable other processes to run +may call +.BR wait(CPU) ; +it will return as soon as all other active processes have had a chance to run. +.B CPU +is a fake resource which is always +requested. +The +.B SEND +pseudo-resource is unused; +.B wait(SEND) +always succeeds. +.PP +.I Alarm +starts a timer which will fire +.I t +ticks (60ths of a second) into the future. +A pseudo-resource +.B ALARM +can be used to check the status of the timer with +.I own +or +.IR wait . +Calling +.I alarm +implicitly requests the +.B ALARM +pseudo-resource. +.PP +.I Nap +busy loops for +.I t +ticks of the 60Hz internal clock. +To avoid beating with the display, programs drawing rapidly changing scenes +should +.I nap +for two ticks +between updates, to synchronize the display and memory. +.I Nap +busy loops until the time is up; +.I sleep +is identical except that it +gives up the processor for the interval. +Except when unwilling to give up +the mouse, a program should call +.I sleep +in preference to +.IR nap . +.I Sleep +does not interfere with +.IR alarm , +and vice versa. +.PP +.I Realtime +returns the number of 60Hz clock ticks since +.I mux +started. +.PP +.I Kbdchar +returns the next keyboard character typed to the process. +If no characters have been typed, or +.B KBD +has not been +.IR request ed, +.I kbdchar +returns +\-1. +.PP +.I Rcvchar +returns the next character received from the host, +typically written on the standard output of a Unix process. +If there are no characters available, or +.B RCV +has not been +.IR request ed, +.I rcvchar +returns +\-1. +.PP +.I Sendchar +sends a single byte to the host, +which will normally be read on the standard input of the Unix process. +.I Sendnchars +sends to the host +.I n +characters pointed to by +.IR p . +.PP +.I Kill +sends the associated Unix process the signal +.IR s ; +see +.IR signal (2). +.PP +.I Exit +terminates the process. +Unlike on Unix, +.I exit +does not return an exit status to a parent. +Calling +.I exit +replaces the running process by the default terminal program. +Any associated Unix process must arrange for its own demise; +.I exit +is a purely local function. +When a process calls +.IR exit , +all local resources: keyboard, mouse, storage, etc., +are deallocated automatically. +.PP +.I Realtime +returns the number of sixtieths of a second elapsed since +.IR mux (9.1) +was started. +.SH EXAMPLES +.EX +request(KBD|RCV); +for(;;){ + r=wait(KBD|RCV); + if(r&KBD) + keyboard(kbdchar()); + if(r&RCV) + receive(rcvchar()); +} +.EE +.PD0 +.IP +Take input from either the keyboard or the host. +.PD +.SH SEE ALSO +.IR button (9.2) +.SH BUGS +.B own()&MOUSE +does not guarantee that you own the mouse. +The correct test is +.EX + (own()&MOUSE) && ptinrect(mouse.xy, Drect) +.EE diff --git a/static/v10/man9/ruler.9 b/static/v10/man9/ruler.9 new file mode 100644 index 00000000..c0a49c01 --- /dev/null +++ b/static/v10/man9/ruler.9 @@ -0,0 +1,46 @@ +.TH RULER 9.1 +.CT 1 comm_term +.SH NAME +ruler \- measure things on the screen +.SH SYNOPSIS +.B ruler +.SH DESCRIPTION +.I Ruler +measures things on a +.IR mux (9.1) +screen. +Press button 1 to sweep out a rectangle anywhere on the screen. +For each rectangle swept, +.I ruler +displays the coordinates of the rectangle's corners (labeled +.B down +and +.BR up ), +the size +of the rectangle and length of its diagonal. +.LP +There is +a menu on button 3. +The +.B pixels +and +.B chars +items control whether the size and diagonal are measured +in units of pixels or characters; +.B stop +deactivates +.I ruler +without exiting; +.B measure +reactivates +.IR ruler . +.SH BUGS +Character units are arbitrarily defined as the width and height of a +.L 0 +in the +.I ruler +layer. +This may have nothing to do with character sizes in other layers. +.br +Ruler's menu must pop up in its own layer, perhaps far +away from the cursor. diff --git a/static/v10/man9/sam.9 b/static/v10/man9/sam.9 new file mode 100644 index 00000000..314a1250 --- /dev/null +++ b/static/v10/man9/sam.9 @@ -0,0 +1,888 @@ +.ds a \fR*\ \fP +.TH SAM 9.1 +.CT 1 editor +.SH NAME +sam \- screen editor with structural regular expressions +.SH SYNOPSIS +.B sam +[ +.I option ... +] [ +.I files +] +.PP +.I sam +.B -r +.I machine +.PP +.B sam.save +.SH DESCRIPTION +.I Sam +is a multi-file editor. +It modifies a local copy of a Unix file. +The copy is here called a +.IR file ; +a Unix file is distinguished by the trademarked +adjective. +The files are listed in a menu available through mouse button 3 +or the +.B n +command. +Each file has an associated name, usually the name of the +Unix file from which it was read, and a `modified' bit that indicates whether +the editor's file agrees with the Unix file. +The Unix file is not read into +the editor's file until it first becomes the current file\(emthat to +which editing commands apply\(emwhereupon its menu entry is printed. +The options are +.TP +.B -d +Do not download the terminal part of +.I sam. +Editing will be done with the command language only, as in +.IR ed (1). +.TP +.BI -r " machine +Run the host part remotely +on the specified machine, the terminal part locally. +This extends graphic editing to files on machines that +don't ordinarily support it or across +.RI non- nfs (8) +connections. +.SS Regular expressions +Regular expressions are as in +.IR egrep +(see +.IR gre (1)), +with the addition of +.B @ +and +.BR \en . +A regular expression may never contain a literal newline character. +The elements of regular expressions are: +.TP +.B . +Match any character except newline. +.TP +.B \en +Match newline. +.TP +.B \ex +For any character except +.B n +match the character (here +.BR x ). +.TP +.B @ +Match any character. +.TP +.B [abc] +Match any character in the square brackets. +.B \en +may be mentioned. +.TP +.B [^abc] +Match any character not in the square brackets, but never a newline. +Both these forms accept a range of +.SM ASCII +characters indicated by +a dash, as in +.BR a-z . +.TP +.B ^ +Match the null string immediately after a newline. +.TP +.B $ +Match the null string immediately before a newline. +.PP +Any other character except newline matches itself. +.PP +In the following, +.I r1 +and +.I r2 +are regular expressions. +.TP +.BI ( r1 ) +Match what +.I r1 +matches. +.TP +.IB r1 | r2 +Match what +.I r1 +or what +.IR r2 +matches. +.TP +.IB r1 * +Match zero or more adjacent matches +of +.IR r1 . +.TP +.IB r1 + +Match one or more adjacent matches of +.IR r1 . +.TP +.IB r1 ? +Match zero or one matches of +.IR r1 . +.PP +The operators +.BR * , +.B + +and +.B ? +are highest precedence, then catenation, then +.B | +is lowest. +The empty +regular expression stands for the last complete expression encountered. +A regular expression in +.I sam +matches the longest leftmost substring formally +matched by the expression. +Searching in the reverse direction is equivalent +to searching backwards with the catenation operations reversed in +the expression. +.SS Addresses +An address identifies a substring in a file. +In the following, `character +.IR n ' +means the null string +after the +.IR n -th +character in the file, with 1 the +first character in the file. +`Line +.IR n ' +means the +.IR n -th +match, +starting at the beginning of the file, of the regular expression +.L .*\en? . +(The peculiar properties of a last line without a newline are +temporarily undefined.) +All files always have a current substring, called dot, +that is the default address. +.SS Simple Addresses +.TP +.BI # n +The empty string after character +.IR n ; +.B #0 +is the beginning of the file. +.TP +.I n +Line +.IR n . +.TP +.BI / regexp / +.PD0 +.TP +.BI ? regexp ? +The substring that matches the regular expression, +found by looking toward the end +.RB ( / ) +or beginning +.RB ( ? ) +of the file, +and if necessary continuing the search from the other end to the +starting point of the search. +The matched substring may straddle +the starting point. +.PD +.TP +.B 0 +The string before the first full line. +This is not necessarily +the null string; see +.B + +and +.B - +below. +.TP +.B $ +The null string at the end of the file. +.TP +.B . +Dot. +.TP +.B \&' +The mark in the file (see the +.B k +command below). +.TP +\f(CW"\f2regexp\f(CW"\f1\f1 +Preceding a simple address (default +.BR . ), +refers to the address evaluated in the unique file whose menu line +matches the regular expression. +.SS Compound Addresses +In the following, +.I a1 +and +.I a2 +are addresses. +.TP +.IB a1 + a2 +The address +.I a2 +evaluated starting at the end of +.IR a1 . +.TP +.IB a1 - a2 +The address +.I a2 +evaluated looking in the reverse direction +starting at the beginning of +.IR a1 . +.TP +.IB a1 , a2 +The substring from the beginning of +.I a1 +to the end of +.IR a2 . +If +.I a1 +is missing, +.B 0 +is substituted +If +.I a2 +is missing, +.B $ +is substituted. +.TP +.IB a1 ; a2 +Like +.IB a1 , a2, +but with +.I a2 +evaluated at the end of, and dot set to, +.IR a1 . +.PP +The operators +.B + +and +.B - +are high precedence, while +.B , +and +.B ; +are low precedence. +.PP +In both +.B + +and +.B - +forms, if +.I a2 +is a line or character address with a missing +number, the number defaults to 1. +If +.I a1 +is missing, +.L . +is substituted. +If both +.I a1 +and +.I a2 +are present and distinguishable, +.B + +may be elided. +.I a2 +may be a regular +expression; if it is delimited by +.LR ? 's, +the effect of the +.B + +or +.B - +is reversed. +.PP +It is an error for a compound address to represent a malformed substring. +Some useful idioms: +.IB a1 +- +.RI ( a1 \&\f5-+\fP ) +selects the line containing +the end (beginning) of a1. +.BI 0/ regexp / +locates the first match of the expression in the file. +(The form +.B 0;// +sets dot unnecessarily.) +.BI ./ regexp /// +finds the second following occurrence of the expression, +and +.BI .,/ regexp / +extends dot. +.SS Commands +In the following, text demarcated by slashes represents text delimited +by any printable +.SM ASCII +character except alphanumerics. +Any number of +trailing delimiters may be elided, with multiple elisions then representing +null strings, but the first delimiter must always +be present. +In any delimited text, +newline may not appear literally; +.B \en +may be typed for newline; and +.B \e/ +quotes the delimiter, here +.LR / . +Backslash is otherwise interpreted literally, except in +.B s +commands. +.PP +Most commands may be prefixed by an address to indicate their range +of operation. +Those that may not are marked with a +.L * +below. +If a command takes +an address and none is supplied, dot is used. +The sole exception is +the +.B w +command, which defaults to +.BR 0,$ . +In the description, `range' is used +to represent whatever address is supplied. +Many commands set the +value of dot as a side effect. +If so, it is always set to the `result' +of the change: the empty string for a deletion, the new text for an +insertion, etc. (but see the +.B s +and +.B e +commands). +.br +.ne 1.2i +.SS Text commands +.PD0 +.TP +.BI a/ text / +.TP +or +.TP +.B a +.TP +.I lines of text +.TP +.B . +Insert the text into the file after the range. +Set dot. +.TP +.B c\fP +.br +.ns +.TP +.B i\fP +Same as +.BR a , +but +.B c +replaces the text, while +.B i +inserts +.I before +the range. +.TP +.B d +Delete the text in the range. +Set dot. +.TP +.BI s/ regexp / text / +Substitute +.I text +for the first match to the regular expression in the range. +Set dot to the modified range. +In +.I text +the character +.B & +stands for the string +that matched the expression. +Backslash behaves as usual unless followed by +a digit: +.BI \e d +stands for the string that matched the +subexpression begun by the +.IR d -th +left parenthesis. +If +.I s +is followed immediately by a +number +.IR n , +as in +.BR s2/x/y/ , +the +.IR n -th +match in the range is substituted. +If the +command is followed by a +.BR g , +as in +.BR s/x/y/g , +all matches in the range +are substituted. +.TP +.BI m " a1 +.br +.ns +.TP +.BI t " a1 +Move the range to after +.I a1 +.RB ( m ), +or copy it +.RB ( t ). +Set dot. +.SS Display commands +.TP +.B p +Print the text in the range. +Set dot. +.TP +.B = +Print the line address and character address of the range. +.TP +.B =# +Print just the character address of the range. +.SS File commands +In these commands a +.I file-list +may be expressed +.BI < Unix-command +in which case the file names are taken as words (in the shell sense) +generated by the Unix command. +.TP +.BI \*ab " file-list +Set the current file to the first file named in the list +that +.I sam +also has in its menu. +.TP +.BI \*aB " file-list +Same as +.BR b , +except that file names not in the menu are entered there, +and all file names in the list are examined. +.TP +.B \*an +Print a menu of files. +The format is: +.RS +.TP \w'\ \ or\ blank\ \'u +.BR ' " or blank +indicating the file is modified or clean, +.TP +.BR - " or \&" + +indicating the the file is unread or has been read +(in the terminal, +.B * +means more than one window is open), +.TP +.BR . " or blank +indicating the current file, +.TP +a blank, +.TP +and the file name. +.RE +.TP 0 +.BI \*aD " file-list +Delete the named files from the menu. +If no files are named, the current file is deleted. +It is an error to +.B D +a modified file, but a subsequent +.B D +will delete such a file. +.SS I/O Commands +.TP +.BI \*ae " filename +Replace the file by the contents of the named Unix file. +Set dot to the beginning of the file. +.TP +.BI r " filename +Replace the text in the range by the contents of the named Unix file. +Set dot. +.TP +.BI w " filename +Write the range (default +.BR 0,$ ) +to the named Unix file. +.TP +.BI \*af " filename +Set the file name and print the resulting menu entry. +.PP +If the file name is absent from any of these, the current file name is used. +.B e +always sets the file name, +.B r +and +.B w +do so if the file has no name. +.TP +.BI < " Unix-command +Replace the range by the standard output of the +Unix command. +.TP +.BI > " Unix-command +Sends the range to the standard input of the +Unix command. +.TP +.BI | " Unix-command +Send the range to the standard input, and replace it by +the standard output, of the +Unix command. +.TP +.BI \*a! " Unix-command +Run the +Unix command. +.TP +.BI \*acd " directory +Change working directory. +If no directory is specified, +.B $HOME +is used. +.PP +In any of +.BR < , +.BR > , +.B | +or +.BR ! , +if the +.I Unix command +is omitted the last +.I Unix command +(of any type) is substituted. +If +.I sam +is downloaded, +.B ! +sets standard input to +.FR /dev/null , +and otherwise +unassigned output +.RB ( stdout +for +.B ! +and +.BR > , +.B stderr +for all) is placed in +.F $HOME/sam.err +and the first few lines are printed. +.SS Loops and Conditionals +.TP +.BI x/ regexp / " command +For each match of the regular expression in the range, run the command +with dot set to the match. +Set dot to the last match. +If the regular +expression and its slashes are omitted, +.L /.*\en/ +is assumed. +Null string matches potentially occur before every character +of the range and at the end of the range. +.TP +.BI y/ regexp / " command +Like +.B x, +but run the command for each substring that lies before, between, +or after +the matches that would be generated by +.BR x . +There is no default behavior. +Null substrings potentially occur before every character +in the range. +.TP +.BI \*aX/ regexp / " command +For each file whose menu entry matches the regular expression, +run the command. +If the expression is omitted, the command is run +in every file. +.TP +.BI \*aY/ regexp / " command +Same as +.BR X , +but for files that do not match the regular expression, +and the expression is required. +.TP +.BI g/ regexp / " command +.br +.ns +.TP +.BI v/ regexp / " command +If the range contains +.RB ( g ) +or does not contain +.RB ( v ) +a match for the expression, +set dot to the range and run the command. +.PP +These may be nested arbitrarily deeply, but only one instance of either +.B X +or +.B Y +may appear in a \%single command. +An empty command in an +.B x +or +.B y +defaults to +.BR p ; +an empty command in +.B X +or +.B Y +defaults to +.BR f . +.B g +and +.B v +do not have defaults. +.SS Miscellany +.TP +.B k +Set the current file's mark to the range. Does not set dot. +.TP +.B \*aq +Quit. +It is an error to quit with modified files, but a second +.B q +will succeed. +.TP +.BI \*au " n +Undo the last +.I n +(default 1) +top-level commands that changed the contents or name of the +current file, and any other file whose most recent change was simultaneous +with the current file's change. +Successive +.BR u 's +move further back in time. +The only commands for which u is ineffective are +.BR cd , +.BR u , +.BR q , +.B w +and +.BR D . +.TP +(empty) +If the range is explicit, set dot to the range. +If +.I sam +is downloaded, the resulting dot is selected on the screen; +otherwise it is printed. +If no address is specified (the +command is a newline) dot is extended in either direction to +line boundaries and printed. +If dot is thereby unchanged, it is set to +.B .+1 +and printed. +.PD +.SS Grouping and multiple changes +Commands may be grouped by enclosing them in braces +.BR {} . +Commands within the braces must appear on separate lines (no backslashes are +required between commands). +Semantically, an opening brace is like a command: +it takes an (optional) address and sets dot for each sub-command. +Commands within the braces are executed sequentially, but changes made +by one command are not visible to other commands (see the next section +of this manual). +Braces may be nested arbitrarily. +.PP +When a command makes a number of changes to a file, as in +.BR x/re/c/text/ , +the addresses of all changes to the file are computed in the original file. +If the changes are in sequence, +they are applied to the file. +Successive insertions at the same address are catenated into a single +insertion composed of the several insertions in the order applied. +.SS The terminal +What follows refers to behavior of +.I sam +when downloaded, that is, when +operating as a display editor on a bitmap display. +This is the default +behavior; invoking +.I sam +with the +.B -d +(no download) option provides access +to the command language only. +.PP +Each file may have zero or more windows open. +Each window is equivalent +and is updated simultaneously with changes in other windows on the same file. +Each window has an independent value of dot, indicated by a highlighted +substring on the display. +Dot may be in a region not within +the window. +There is usually a `current window', +marked with a dark border, to which typed text and editing +commands apply. +Text may be typed and edited as in +.IR mux (9.1); +also the escape key (ESC) selects (sets dot to) text typed +since the last mouse button hit. +.PP +The button 3 menu controls window operations. +The top of the menu +provides the following operators, each of which prompts with one or +more +.IR mux -like +cursors to prompt for selection of a window or sweeping +of a rectangle. +`Sweeping' a null rectangle gets a large window, disjoint +from the command window or the whole screen, depending on +where the null rectangle is. +.TF reshape +.TP +.B new +Create a new, empty file. +.TP +.B xerox +Create a copy of an existing window. +.TP +.B reshape +As in +.I mux. +.TP +.B close +Delete the window. +In the last window of a file, +.B close +is equivalent to a +.B D +for the file. +.TP +.B write +Equivalent to a +.B w +for the file. +.PD +.PP +Below these operators is a list of available files, starting with +.BR ~~sam~~ , +the command window. +Selecting a file from the list makes the most recently +used window on that file current, unless it is already current, in which +case selections cycle through the open windows. +If no windows are open +on the file, the user is prompted to open one. +Files other than +.B ~~sam~~ +are marked with one of the characters +.B -+* +according as zero, one, or more windows +are open on the file. +A further mark +.L . +appears on the file in the current window and +a single quote, +.BR ' , +on a file modified since last write. +.PP +Nothing can be done without a command window, for which +.I sam +prompts initially. +The command window is an ordinary window except that text typed to it +is interpreted as commands for the editor rather than passive text, +and text printed by editor commands appears in it. +The behavior is like +.I mux, +with a `command point' that separates commands being typed from +previous output. +Commands typed in the command window apply to the +current open file\(emthe file in the most recently +current window. +.SS Manipulating text +Button 1 changes selection, much like +.I mux. +Pointing to a non-current window with button 1 makes it current; +within the current window, button 1 selects text, thus setting dot. +Double-clicking selects text to the boundaries of words, lines, +quoted strings or bracketed strings, depending on the text at the click. +.PP +Button 2 provides a menu of editing commands: +.PD0 +.TP +.B cut +Delete dot and save the deleted text in the snarf buffer. +.TP +.B paste +Replace the text in dot by the contents of the snarf buffer. +.TP +.B snarf +Save the text in dot in the snarf buffer. +.TP +.B look +Search forward for the next occurrence of the literal text in dot. +If dot is the null string, the text in the snarf buffer is +used. +The snarf buffer is unaffected. +.TP +.B <mux> +Exchange snarf buffers with +.IR mux. +.TP +.BI / regexp +Search forward for the next match of the last regular expression +typed in a command. +(Not in command window.) +.TP +.B send +Send the text in dot, or the snarf buffer if +dot is the null string, as if it were typed to the command window. +Saves the sent text in the snarf buffer. +(Command window only.) +.TP +.B scroll +.TP +.B noscroll +Select whether to reveal automatically text +that appears off the end of the command window. +(Command window only.) +.PD +.SS Abnormal termination +If +.I sam +terminates other than by a +.B q +command (by hangup, deleting its layer, etc.), modified +files are saved in an +executable file, +.FR $HOME/sam.save . +This program, when executed, asks whether to write +each file back to a Unix file. +The answer +.L y +causes writing; anything else skips the file. +.SH FILES +.F $HOME/sam.save +.br +.F $HOME/sam.err +.SH SEE ALSO +.IR ed (1), +.IR sed (1), +.IR vi (1), +.IR gre (1) +.SH BUGS +The +.B u +command undoes characters\(emand backspaces\(emtyped directly +into a file window in unpredictable increments. diff --git a/static/v10/man9/samuel.9 b/static/v10/man9/samuel.9 new file mode 100644 index 00000000..5129b631 --- /dev/null +++ b/static/v10/man9/samuel.9 @@ -0,0 +1,420 @@ +.TH SAMUEL 9.1 +.SH NAME +samuel \(mi text editor and C browser +.SH SYNOPSIS +.B samuel +[ +.I options +] [ files ] +.SH DESCRIPTION +.I Samuel +is the editor +.IR sam (9.1) +with additional features, including a browser for C and C++ programs. +Most new features +are available from the button 3 menu or commands typed in the +command window. +The new menu entries are +.BR unopen , +.BR smudge , +.BR advisor , +.BR browser , +and +.BR interpreter . +.SS Unopen +.B Unopen +closes a window or file without removing the file name from the +menu. +.SS Smudge +.B Smudge +associates a descriptive tag with a window and places the +tag in the +.B smudge +submenu. +The tag may be hit like a file name to switch to the window. +.SS Advisor +.B Advisor +gives information about the selected library function name or +C keyword. +.SS Browser +.PP +When +.B browser +is first hit, the browser's data base is initialized +for the currently active +files. +A submenu then shows browsing functions. +.TF definition +.TP +.B reference +Find all references to the selected C symbol. +`Selected' means either highlighted +with button 1 or contained in the snarf buffer. +.TP +.B definition +Find the definition of the selected function name, #define +symbol, structure, union, class or typedef name. +.TP +.B called\ by +Find all functions called by the selected function name. +.TP +.B calls\ to +Find all calls to the selected function name. +.TP +.B find +Find all instances of the selected pattern. +.TP +.B egrep +Find all instances of the selected pattern, interpreted as in +.IR egrep (1). +.TP +.B all\ defs +Find definitions of all functions. +.TP +.B files +List files currently in browser data base. +.TP +.B rebuild +Rebuild the data base with the current list of files. +.TP +.B exit +Exit the browser. +.TP +.B \~\~samuel\~\~ +Replace the contents of dot with the results of the last search. +.PD +.PP +Search results are placed in a +.B browser +submenu labeled with the search string. +Hitting an item in a +search submenu closes the currently active window +(unless that would lose data) and opens +a window of the same size for the file containing the item, with the +window positioned at the item. +.SS Interpreter +.PP +When +.B interpreter +is first hit, the interpreter is initialized for interactive use, and +a submenu then shows interpreting functions. +.TF interrupt +.TP +.B \~\~cin\~\~ +Toggle the use of the command window. The first hit allows the user to send information to +the interpreter from the command window. The second hit returns the command window to the +editor. This interface will change in the near future. +.TP +.B doit +Send the selected text to the interpreter. +`Selected' means either highlighted +with button 1 or contained in the snarf buffer. +.TP +.B load +Load a file into the interpreter. The user selects the window to load when the `bullseye' +prompt is presented. The +.B load +submenu provides functions to +.B load +a single file, +.B loadall +files in the editor, +or load the +.B function +that contains dot (the edit point). +.TP +.B view +Sets the current view. The +.B view +submenu provides functions to set the current +.BR view , +a list of all +.BR views , +describe +.B whatis +the selected identifier, and +.B where +the execution stopped in the interpreter. +.TP +.B return +Returns from a breakpoint. The +.B return +submenu provides functions to +.B return +from a breakpoint, set a +breakpoint +.RL ( break ), +and clear a breakpoint +.RL ( unbreak ). +.TP +.B interrupt +Interrupt the interpreter. +.TP +.B eof +Sends an EOF to the interpreter. Useful when the user program expects to see a +.BR <control-d> . +.TP +.B exit +Exit the interpreter. +.PD +.SS Other features +.I Help. +Press button 1 simultaneously with button 2 or 3 to see +a short description of the button 2 or 3 item. +In a search submenu, the information includes file name, +line number and, where appropriate, function name; +for a smudge submenu, the file name associated with the tag. +.PP +.I File menu. +When too many files appear in the button 3 menu, they are moved +to a submenu. +.PP +.I Font. +On the 630 MTG Terminal, the button 2 menu includes a +.L font +item with a submenu that lists fonts in the terminal's cache. +The font may be set independently in each window. +New windows and menus use the last font selected. +.SS Commands +.PD 0 +.TP .5i +.BI z +Make +.I samuel +menu items visible; see +.B \-v +below. +Start the browser unless +it is already running. +.TP +.BI z- +Make +.I samuel +menu items invisible. +.TP +.BI zF " dbfile +If +.I dbfile +is specified, start, or restart, the browser with +.I dbfile +as a read-only data base file; see options +.B -f +and +.B -F +below. +Otherwise display the current +database file. +.TP +.BI zA " advisordb +If +.I advisordb +is specified, set the +.B ADVISOR +environment variable. +Otherwise display the value of +.BR ADVISOR . +.TP +.BI za " keyword +Search for +.I keyword +in the advisor database. +.TP +.BI zu " file-list +Unopen the named files. If no files are named, the current file is unopened. It is an +error to +.B zu +a modified file, but a subsequent +.B zu +will unopen such a file. +.TP +.B zc +Delete dot and save the deleted text in the snarf buffer. +.TP +.B zp +Replace the text in dot by the contents of the snarf buffer. +.TP +.B zs +Save the text in dot in the snarf buffer. +.I keyword +in the advisor database. +.PD +.SS Options +.PD 0 +.TP .5i +.BI -f " file.db +Create the data base in the named file. +If the file +already exists and any files +have been modified since the last build, update the data base. +.TP +.BI -F " file.db +The data base already exists in the named +file. +The file is read-only; rebuilds are not allowed. +.TP +.BI -i " filenames +Use the named files in creating the data base. +.TP +.BI -I " includedir +Search directory +.I includedir +for included files. +This option may appear more than once. +.TP +.BI -s " sourcedir +Search directory +.I sourcedir +for referenced function definitions. +This option may appear more than once. +.TP +.BI -D name=def +.TP +.BI -D name +Define the +.I name +to +.I cin , +as if by +.BR #define . +If no definition is given, the name is defined as 1. +.TP +.BI -U name +Remove any initial definition of +.IR name . +.TP +.BI -l x +This option is an abbreviation for the library name +.BI /lib/lib x .a , +where +.I x +is a string. If that does not exist, +.I cin +tries +.BI /usr/lib/lib x .a . +A library is searched when its name is encountered, so the placement of a +.B -l +is significant. +.TP +.BI -u name +Enters +.I name +as undefined into +.IR cin 's +symbol table. This is useful for loading wholly from a library, since initially +the symbol table is empty and an unresolved reference is needed to force the loading +of the first routine. +.TP +.BI -V func:n +Declare function +.I func +to have a variable number of arguments, the first +.I n +of which are to be type checked. +.PD +.TP +.B -c +If the terminal is a 630 MTG, cache the terminal portion of +.IR samuel ; +later invocations will be executed from the cache without downloading. +.TP +.B -v +Make +.I samuel +behave like +.IR sam ; +use the +.L z +command to restore +.I samuel. +.PD +.SS Environment Variables +.TF SAMUEL +.TP +.B INCLUDEDIRS +Colon-separated list of directories to search for +.B #include +files. +.TP +.B SOURCEDIRS +Colon-separated list of directories to search for additional source files. +.TP +.B SAMUEL +Directory containing samuel utilities. +Overrides the default locations listed below. +.TP +.B TMPDIR +Directory used to create temporary files, +.F/tmp +by default. +.TP +.B ADVISOR +Colon-separated list of advisor data base files. +These are searched in +specified order followed by the standard samuel data base file. +.TP +.B DMD +Directory for standard dmd software, +.F /usr/jerq/lib +by default. +.PD +.SH FILES +.TF $DMD/samuel/samuel.ca.dat +.TP +.F $HOME/sam.err +saved diagnostic output from Unix commands +.TP +.F $HOME/sam.save +bundled files on unexpected exit +.TP +.F $DMD/samuel/samuel.m +terminal support program for samuel +.TP +.F $DMD/samuel/samuel.cs +C browser support program for samuel +.TP +.F $DMD/samuel/samuel.ca +C advisor support program +.TP +.F $DMD/samuel/samuel.ca.dat +C advisor data base +.TP +.F $DMD/samuel/samuel.st +samuel statistics gathering program +.TP +.F $TMPDIR/cscope*.0 +default data base file +.TP +.F $TMPDIR/cscope*.1 +results of last search +.TP +.F $TMPDIR/cscope*.2 +temporary +.SH SEE ALSO +sam(9.1) +.br +J. J. Puttress, +.I "The C Browser" +(11229-861017-19TMS). +.br +J. J. Puttress, +.I "The C Browser: Examples" +(11229-861014-18TMS). +.br +T. J. Kowalski, H. H. Goguen, J. J. Puttress, +.I "The C Interpreter: A Tutorial for Cin Version 0.18" +(11229-880606-07TMS). +.br +R. Pike, +.I "The Text Editor Sam" +(11271-870423-06TMS). +.br +R. Pike, +.I "A Tutorial for the SAM Command Language" +(11271-860924-07TMS). +.br +J. L. Steffen, Interactive Examination of a C Program with Cscope. +.IR "USENIX Winter Conference Proceedings Dallas 1985" , +170-175. +.SH BUGS +.I Samuel +will not correctly browse C source with syntax errors. diff --git a/static/v10/man9/string.9 b/static/v10/man9/string.9 new file mode 100644 index 00000000..4fbca467 --- /dev/null +++ b/static/v10/man9/string.9 @@ -0,0 +1,102 @@ +.TH STRING 9.3 +.CT 2 comm_term +.SH NAME +string, defont, strwidth, infont, outfont, getfont \- text and font operations +.SH SYNOPSIS +.B #include <jerq.h> +.br +.B #include <font.h> +.PP +.B Point string(ft, s, b, p, f) +.B "Font *ft; char *s; Bitmap *b; Point p; Code f; +.PP +.B extern Font defont; +.PP +.B "int strwidth(ft, s) Font *ft; char *s; +.PP +.B "Font *infont(inch) int (*inch)(); +.PP +.B "int outfont(ft, ouch) Font *ft; int (*ouch)(); +.PP +.B void ffree(ft) Font *ft; +.PP +.B #include <jerqio.h> +.PP +.B "Font *getfont(file) char *file; +.SH DESCRIPTION +.I String +draws the null-terminated string +.I s +using characters from font +.I ft +in Bitmap +.I b +at Point +.IR p , +with Code +.IR f . +The return value is the location of the first character +.I after +.IR s ; +passed to another call to +.IR string , +the two strings will be concatenated. +The characters are drawn such that the +.B origin +point of the bounding rectangle of a maximum height character +lies at +.IR p . +Therefore, a character drawn on the screen at (0,0) +will occupy the upper-leftmost character position on the screen. +.I String +draws characters as they are in the font. +No special action is taken for control characters such as tabs or newlines. +.PP +The global +.I defont +is the name of the standard font (not a pointer to it). +.PP +.I Strwidth +returns the width in pixels +of the null-terminated string +.IR s , +interpreted in the Font +.IR *ft . +The height of a character string is simply +.BI ft ->height. +.PP +.I Infont +creates a font by reading the byte-wise binary representation +returned by successive calls to +.IR inch . +It returns 0 +on error. +.I Inch +must return successive bytes of the Unix file representation of the font, +and \-1 +at end-of-file. +.I Outfont +calls the routine +.I ouch +to write successive bytes of the binary representation of font +.IR ft . +It returns +\-1 +on error, as must +.I ouch . +For programs running under +.IR jx , +.I getfont +returns a pointer to a font read from the named +.IR file , +essentially by calling +.I infont +with argument routine +.IR getc . +It returns 0 +on error. +.I Ffree +frees a font allocated by +.I infont +or +.IR getfont . diff --git a/static/v10/man9/term.9 b/static/v10/man9/term.9 new file mode 100644 index 00000000..c0420ed8 --- /dev/null +++ b/static/v10/man9/term.9 @@ -0,0 +1,50 @@ +.TH TERM 9.1 +.CT 1 comm_term +.SH NAME +term \- terminal emulators for mux +.SH SYNOPSIS +.B exec +.B term +.I termtype +.SH DESCRIPTION +.I Term +replaces the program in the layer on its standard output with +an emulator for the terminal type specified by +.IR termtype . +In the resulting layer, environment variable TERM is set appropriately. +Known types are +.TP +.B 2621 +Hewlett-Packard 2621 +.TP +.B 2621c +Same, with data compression between host and terminal; +useful at line speeds of 2400 baud and lower. +.TP +.B 4014 +Tektronix 4014 +.TP +.B 5620 +Teletype DMD 5620 stand-alone terminal. +.TP +.B 5620c +Same, with data compression. +.TP +.B 33 +Teletype Model 33 (actually closer to 35). +.PP +Also, +.I termtype +.B mux +restores and initializes a standard +.IR mux (9.1) +terminal program. +.SH BUGS +Nonstandard terminal emulators do not work across +.IR dcon, +but usually do across +.IR ndcon +connections; see +.IR dcon (1). +.br +Unexported shell parameters and functions are lost. diff --git a/static/v10/man9/thinkblt.9 b/static/v10/man9/thinkblt.9 new file mode 100644 index 00000000..e9e56296 --- /dev/null +++ b/static/v10/man9/thinkblt.9 @@ -0,0 +1,108 @@ +.TH THINKBLT 9.1 +.CT 1 comm_dev +.SH NAME +thinkblt, think \- print on thinkjet +.SH SYNOPSIS +.BI thinkblt +[ +.I stream +] +.LP +.B think +[ +.B -o +.I stream +] +[ +.I file ... +] +.LP +.B nroff +.B -Tthink +.I \&... +.B | think +[ +.B -o +.I stream +] +.SH DESCRIPTION +.I Thinkblt +downloads an interrupt driver for the +HP ThinkJet printer, provides a menu of +operations for printing various data residing in the terminal, and +sets up a +.I stream +.RF ( $HOME/.THINK +by default) on which +.I think +can print data from the host. +It is intended to be down-loaded +once per terminal session. +Most of the menu items are identical to +those of +.IR blitblt (9.1). +The remaining ones are: +.nr xx \w'\f5print mux buffer\f1'u+2n/1n +.TP \n(xx +.B print bitmap +Print whatever bitmap is currently selected, in analogy to +.IR blitblt (9.1). +The widest printable bitmap is 640 pixels across. +.TP +.B print mux buffer +Print the +.I mux +`snarf' buffer. +.TP +.B reset printer +Sends +.RB ESC- E . +.PP +While the printer is operating, a different menu +allows one to abort or pause the print operation. +The +printer has a fairly large internal buffer, so response may be +slow. +.PP +Files on the host may be printed by giving them as arguments or standard input to +.IR think . +When used with +.IR nroff , +names like +.B \e('e +may be used to access the special characters +provided by the hardware; the +.I nroff +terminal driving file has a complete list; see +.IR troff (1). +Both +.I nroff +and +.IR pr (1) +will paginate properly if top-of-form is set so that the paper tear is aligned +flush with the top of the metal clip which holds the absorber. +.SH FILES +.F $HOME/.THINK +.br +.F /usr/lib/term/tab.think +nroff descriptor file +.SH SEE ALSO +.IR troff (1), +.IR pr (1), +.IR blitblt (9.1) +.SH BUGS +The 5620 ROM program is unable to cope with interrupts from the printer; +it is therefore necessary to download +.IR mux (9.1) +before turning on the printer. +.br +.I Thinkblt +substitutes its own interrupt routine for the (trivial) one provided by +.IR mux (9.1). +The latter is restored upon exit, but havoc may result if the +.I thinkblt +layer is simply deleted. +.br +The special +.I nroff +character names are not currently supported by any other device. diff --git a/static/v10/man9/thinkclient.9 b/static/v10/man9/thinkclient.9 new file mode 100644 index 00000000..f75cf8c4 --- /dev/null +++ b/static/v10/man9/thinkclient.9 @@ -0,0 +1,46 @@ +.TH THINKCLIENT 9.3 +.CT 2 file_io +.SH NAME +thinkchar, thinknchars, thinkflush, thinkmap, thinkabort \- ThinkJet routines +.SH SYNOPSIS +.B #include <jerq.h> +.br +.B #include <thinkclient.h> +.PP +.B int thinkchar(c) +.B int c; +.PP +.B int thinknchars(n, p) +.B int n; char *p; +.PP +.B int thinkflush() +.PP +.B int thinkmap(b, r) +.B Bitmap *b; Rectangle r; +.PP +.B int thinkabort() +.SH DESCRIPTION +These macros provide access to the routines used internally by +.IR thinkblt (9.1). +.I Thinkchar +and +.I thinknchars +send characters to the printer; characters are buffered so that +.I thinkflush +must be called after the last transmission. +.I Thinkmap +sends all or part of a bitmap (it calls +.I thinkflush +automatically). +.I Thinkabort +stops transmission as quickly as possible, throwing away any characters +that may be queued up. +.SH "SEE ALSO" +.IR thinkblt (9.1), +.IR newproc (9.2), +.IR types (9.5) +.SH DIAGNOSTICS +The routines return zero on success, a positive value on failure, and a +negative value if +.IR thinkblt (9.1) +is not loaded. diff --git a/static/v10/man9/twid.9 b/static/v10/man9/twid.9 new file mode 100644 index 00000000..c1025856 --- /dev/null +++ b/static/v10/man9/twid.9 @@ -0,0 +1,90 @@ +.TH TWID 9.6 +.CT 1 games +.SH NAME +twid, pen \- doodle on the screen +.SH SYNOPSIS +.B twid +.PP +.B pen +.SH DESCRIPTION +.I Twid +is a beginner's `oil paint' program; serious artists will use +.IR paint (9.1). +Button 3 gets a palette (menus of paints +are unappetizing), and +buttons 1 and 2 apply paint. +.PP +The palette has a list of names of subpalettes. +After making a selection, depress button 3 again to display +the subpalette. +The palette names are: +.TF texture +.TP +.B style +Choose drawing style: +.B ink +(Rembrandt), +.B point +(Seurat), +.B line +(Mondrian), +.B curve +(Matisse) +and +.B disk +(Disney). +.PD +.TP +.B texture +selects a texture (paint) to be applied with the brush. +The default set of textures is sufficient for Lichtenstein. +Use the +.B <new> +button to create new ones: +use button 1 (2) to select the area under the +cursor (its bitwise complement), +and type a name for +.I twid +to call it. +.TP +.B brush +selects the brush size and shape. +Predefined brushes are square, for effects ranging +from Dali to Van Gogh; +to be more modern use +.B <new> +(again, you must name the new brush). +.TP +.B buttons +By default, button 1 puts paint down and button 2 +picks it up again. +This palette lets you change that behavior. +.TP +.B copy +provides commands for moving and rotating sections +of the picture. +.TP +.B unix +offers commands for reading and writing files, and exiting. +.PP +The current style, texture and brush are +indicated in their palettes by an asterisk +.LR * . +.PP +.I Pen +writes on the screen with smooth strokes. +It can scribble on layers or on +the background, even while other programs are running. +It can be used to make drawings, annotations, highlights, +or graffiti. +.PP +To write, hold button 1 while moving the mouse. +Button 3 gets +a menu to stop drawing and return to normal fettered activity, +resume drawing, +clean up, or exit the program. +.SH BUGS +If the pen layer where the ink is kept is too small, +furious writing can cause the pen to run dry. +When this happens, release +button 1 and press it again. diff --git a/static/v10/man9/types.9 b/static/v10/man9/types.9 new file mode 100644 index 00000000..9313c0ae --- /dev/null +++ b/static/v10/man9/types.9 @@ -0,0 +1,147 @@ +.TH TYPES 9.5 +.CT 2 graphics +.SH NAME +Word, Point, Rectangle, Bitmap, Texture, Pt, Rect, Rpt, display, Drect, Jrect \- graphics data types +.SH SYNOPSIS +.B #include <jerq.h> +.PP +.B typedef int Word; +.br +.B typedef struct Point Point; +.br +.B typedef struct Rectangle Rectangle; +.br +.B typedef struct Bitmap Bitmap; +.br +.B typedef struct Texture Texture; +.PP +.B extern Bitmap display; +.br +.B extern Rectangle Drect, Jrect; +.PP +.B Point Pt(x, y) +.B int x, y; +.PP +.B Rectangle Rect(x0, y0, x1, y1) +.B int x0, y0, x1, y1; +.PP +.B Rectangle Rpt() +.B Point p0, p1; +.SH DESCRIPTION +A +.B Word +is a 32-bit integer, and is the unit of storage used in the graphics software. +.PP +A +.B Point +is a location in a Bitmap +(see below), +such as the display, and is defined as: +.IP +.EX +typedef struct Point { + short x; + short y; +} Point; +.EE +.PP +The coordinate system has +.I x +increasing to the right and +.I y +increasing down. +All objects and operators in the graphics world live in the same coordinate space\(emthat of the display bitmap. +.PP +A +.B Rectangle +is a rectangular area in a Bitmap. +.EX +.IP +typedef struct Rectangle { + Point origin; /* upper left */ + Point corner; /* lower right */ +} Rectangle; +.EE +.PP +By definition, +.B origin.x <= corner.x +and +.BR "origin.y <= corner.y" . +By convention, the right (maximum +.IR x ) +and bottom (maximum +.IR y ) +edges are +excluded from the represented rectangle, so abutting rectangles have no +points in common. +Thus, +.B corner +contains the coordinates of the first point beyond the rectangle. +The image on the display is contained in the Rectangle +.BR "{0, 0, XMAX, YMAX}" , +where +.BR XMAX =800 +and +.BR YMAX =1024. +.PP +A +.B Bitmap +holds a rectangular image, stored in contiguous memory starting at +.IR base . +.EX +.IP +typedef struct Bitmap { + Word *base; /* pointer to start of data */ + unsigned width; /* width in Words of total data area */ + Rectangle rect; /* rectangle in data area, screen coords */ +} Bitmap; +.EE +.PP +Each +.B width +Words of memory form a scan-line of the image, and +.B rect +defines the coordinate system inside the +.BR Bitmap : +.B rect.origin +is the location in the Bitmap +of the upper-leftmost point in the image. +The coordinate system is arranged so +.I x +positions equal to 0 mod 32 +are in the leftmost bit of a Word. +.PP +A +.B Texture +is a 16\(mu16 dot bit pattern. +.IP +.EX +typedef struct { + Word bits[16]; +} Texture; +.EE +.PP +Textures +are aligned to absolute display positions, +so adjacent areas colored with the same Texture +mesh smoothly. +.PP +The functions +.IR Pt , +.I Rect +and +.I Rpt +construct geometrical data types from their components. +Since they are implemented as macros, they only work +in function argument lists. +.PP +The global +.I display +is a Bitmap +describing the display area of the process. +.I Drect +is a Rectangle defining, in screen coordinates, +the display area available to the program (inside the layer's border). +.I Jrect +is the Rectangle +.BR "{0, 0, XMAX, YMAX}" . diff --git a/static/v10/man9/vismon.9 b/static/v10/man9/vismon.9 new file mode 100644 index 00000000..7988cb9d --- /dev/null +++ b/static/v10/man9/vismon.9 @@ -0,0 +1,116 @@ +.TH VISMON 9.1 +.CT 1 sa_mortals comm_users +.SH NAME +vismon, sysmon, vwhois \- system statistics and mail notification +.SH SYNOPSIS +.B vismon +[ +.BI - n +] +[ +.B -m +] +[ +.I system ... +] +.PP +.B sysmon +[ +.BI - n +] +[ +.B -m +] +[ +.I system ... +] +.PP +.B vwhois +.I person +.SH DESCRIPTION +.I Vismon +monitors use of one or more Unix +.I systems. +It displays time of day, announcements, +and CPU usage statistics. +.PP +CPU usage is reported as a numerical load average (average number +of runnable processes) and its change in the last +minute, and a bar graph showing, left-to-right, the +proportion of CPU time spent in: default-priority user processes, +low priority (nice) processes, system kernel, stream I/O, and idle time. +.PP +Arrival of mail or communications via +.IR wall (8) +or +.IR write (1) +is announced. +Mail announcements include an icon of the sender. +Communications appear in a shell +.RI ( sh (1)) +layer superimposed on +.I vismon's +layer. +This layer may be used for reply. +.PP +The options are: +.TP +.BI - n +Update the bar graph every +.I n +seconds. +.RI ( n =5 +by default.) +.TP +.BI -m +Do not monitor CPU usage on other systems. +.PP +Button 2 selectively toggles the monitoring of other systems. +The list of systems is obtained from one of the following: +a file named in the VISMON enviroment variable, +.FR $HOME/lib/vismon , +or +.FR /usr/jerq/lib/vismon . +.PP +.I Sysmon +is the same as +.I vismon +without icons. +.PP +.I Vwhois +causes a dummy mail announcement from +.I person +to appear in +.I vismon +layers. +.SH FILES +.TF /usr/spool/mail/mail.log +.TP +.F /usr/jerq/mbin/sysmon.m +terminal program +.TP +.F /usr/jerq/lib/sysdaemon +remote monitoring program +.TP +.F /usr/jerq/lib/sysdaemon +responder for remote monitoring +.TP +.F /usr/spool/mail +.TP +.F /usr/spool/mail/mail.log +.TP +.F /n/face/* +vismon pictures +.TP +.F /usr/jerq/lib/vismon +.TP +.F $HOME/lib/vismon +menu of machines +.SH SEE ALSO +.IR face (9.7), +.IR faced (9.5) +.SH DIAGNOSTICS +`Can't open comm window' means a shell layer cannot be created. +To receive any further communications, delete some layer. +.SH BUGS +There's more to system performance than meets the eye. diff --git a/static/v10/man9/windows.9 b/static/v10/man9/windows.9 new file mode 100644 index 00000000..ff83e498 --- /dev/null +++ b/static/v10/man9/windows.9 @@ -0,0 +1,90 @@ +.TH WINDOWS 9.1 +.CT 1 comm_term +.SH NAME +windows, jps, reshape \- create and initialize windows +.SH SYNOPSIS +.B windows +[ +.I ox oy cx cy command ... +] +.PP +.B jps +.PP +.B reshape +[ +.B -r +] +.I x y +.SH DESCRIPTION +For each set of arguments, +.I windows +makes a +.IR mux (9.1) +layer with rectangle +.RI "Rect(" "ox, oy, cx, cy" ")" +(see +.IR types (9.5)), +then executes the +.I command +therein. +The +.I command +may be null (""). +Any number of layers may be specified; each +.I command +and its arguments must be given +as a single argument to +.I windows. +.PP +In windows that are not expected to be reused and do not need a +shell, it is good practice to invoke the +.I command +with +.BR exec ; +see +.IR sh (1). +.PP +.I Jps +prints the rectangle coordinates of each window and the arguments (if +any) with which it was down-loaded, +to help set up the +.IR windows +command. +.PP +.I Reshape +adjusts its layer so that the display +rectangle inside the border is +.I x +by +.I y +pixels. +Under option +.B -r +it adjusts the width/height ratio to +.I x/y, +with the new shape as large as will fit inside the old. +.SH SEE ALSO +.IR mux (9.1), +.IR ruler (9.1) +.SH DIAGNOSTICS +.I Windows +may adjust rectangles to a minimum size or to stay within +the usual layer bounds (8 pixels inside the screen edge). +.br +Layer creation can fail if there +are no process slots or memory left in the terminal. +.br +.I Reshape +clips a layer that is too big +and does nothing if the layer is too small +or if there is not enough memory. +.SH BUGS +.I Jps +reports what has been downloaded to the 5620; usually this +is not the same as the command that must be used in +.I windows +to cause the download. +.br +.I Reshape +destroys the contents of the +layer; it should work elsewhere. |
