summaryrefslogtreecommitdiffstats
path: root/share/doc
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2005-08-01 12:14:53 +0000
committerphk <phk@FreeBSD.org>2005-08-01 12:14:53 +0000
commit05cc0ffa4ec239c44179d406376baa6a0cf25aaf (patch)
treecb1b24b41868331170a50c131c304b64fa75a885 /share/doc
parent5820671281086c9e04f04d839e3bfa8ebeb7ecf1 (diff)
downloadFreeBSD-src-05cc0ffa4ec239c44179d406376baa6a0cf25aaf.zip
FreeBSD-src-05cc0ffa4ec239c44179d406376baa6a0cf25aaf.tar.gz
The Berkeley pascal implementation for the VAX 11/780 has only
historical relevance these days, stow it in the attic instead of on millions of FreeBSD computers.
Diffstat (limited to 'share/doc')
-rw-r--r--share/doc/papers/Makefile1
-rw-r--r--share/doc/papers/px/Makefile17
-rw-r--r--share/doc/papers/px/fig1.1.n71
-rw-r--r--share/doc/papers/px/fig1.2.n68
-rw-r--r--share/doc/papers/px/fig1.3.n60
-rw-r--r--share/doc/papers/px/fig2.3.raw103
-rw-r--r--share/doc/papers/px/fig2.4.n57
-rw-r--r--share/doc/papers/px/fig3.2.n57
-rw-r--r--share/doc/papers/px/fig3.3.n57
-rw-r--r--share/doc/papers/px/pxin0.n140
-rw-r--r--share/doc/papers/px/pxin1.n538
-rw-r--r--share/doc/papers/px/pxin2.n923
-rw-r--r--share/doc/papers/px/pxin3.n597
-rw-r--r--share/doc/papers/px/pxin4.n67
-rw-r--r--share/doc/papers/px/table2.1.n83
-rw-r--r--share/doc/papers/px/table2.2.n85
-rw-r--r--share/doc/papers/px/table2.3.n45
-rw-r--r--share/doc/papers/px/table3.1.n47
-rw-r--r--share/doc/papers/px/tmac.p113
19 files changed, 0 insertions, 3129 deletions
diff --git a/share/doc/papers/Makefile b/share/doc/papers/Makefile
index 40e6dc1..eeaf63f 100644
--- a/share/doc/papers/Makefile
+++ b/share/doc/papers/Makefile
@@ -12,7 +12,6 @@ SUBDIR= beyond4.3 \
kerntune \
malloc \
newvm \
- px \
relengr \
sysperf \
timecounter
diff --git a/share/doc/papers/px/Makefile b/share/doc/papers/px/Makefile
deleted file mode 100644
index aa31449..0000000
--- a/share/doc/papers/px/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-# From: @(#)Makefile 5.3 (Berkeley) 6/8/93
-# $FreeBSD$
-
-VOLUME= papers
-DOC= px
-SRCS= tmac.p pxin0.n pxin1.n pxin2.n pxin3.n pxin4.n
-EXTRA= fig1.1.n fig1.2.n fig1.3.n fig2.3.n fig2.4.n fig3.2.n \
- fig3.3.n table2.1.n table2.2.n table2.3.n table3.1.n
-MACROS= -ms
-USE_SOELIM=
-USE_TBL=
-CLEANFILES= fig2.3.n
-
-fig2.3.n: fig2.3.raw
- sort ${.ALLSRC} >${.TARGET}
-
-.include <bsd.doc.mk>
diff --git a/share/doc/papers/px/fig1.1.n b/share/doc/papers/px/fig1.1.n
deleted file mode 100644
index 290777e..0000000
--- a/share/doc/papers/px/fig1.1.n
+++ /dev/null
@@ -1,71 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)fig1.1.n 5.2 (Berkeley) 4/17/91
-.\"
-.KF
-.TS
-center;
-c l
-l l
-_ l
-| l |
-| cw(18) | aw(28)
-| _ | l
-| c | a.
-Base of stack frame
-
-
-
-Block mark Positive offsets
-.sp
- \(<- Display entry points here
-.sp
-Local
-variables
-.sp
-_ Negative offsets
-Temporary
-expression
-space
-.sp
-.T&
-| _ | l
-c l.
-
-.sp
-Top of stack frame
-.TE
-.sp
-.ce
-Figure 1.1 \- Structure of stack frame
-.sp
-.KE
diff --git a/share/doc/papers/px/fig1.2.n b/share/doc/papers/px/fig1.2.n
deleted file mode 100644
index 4f835b7..0000000
--- a/share/doc/papers/px/fig1.2.n
+++ /dev/null
@@ -1,68 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)fig1.2.n 5.2 (Berkeley) 4/17/91
-.\"
-.KF
-.TS
-center;
-l l
-| cw(22n) | aw(20n).
-_ \&
- Created by \s-2CALL\s0
-Saved lino
-.sp
-Saved lc
-.sp
-Saved dp
-.sp
-_ \&
- Created by \s-2BEG\s0
-Saved dp contents
-.sp
-Pointer to current
-entry line and
-section name
-.sp
-Current file name
-and buffer
-.sp
-Top of stack reference
-.sp
-.T&
-| _ | l.
-
-.TE
-.sp
-.ce
-Figure 1.2 \- Block mark structure
-.sp
-.KE
diff --git a/share/doc/papers/px/fig1.3.n b/share/doc/papers/px/fig1.3.n
deleted file mode 100644
index 934296f..0000000
--- a/share/doc/papers/px/fig1.3.n
+++ /dev/null
@@ -1,60 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)fig1.3.n 5.2 (Berkeley) 4/17/91
-.\"
-.TS
-center, allbox;
-lw(20).
-T{
-.nf
-.ce 1000
-Space for
-value returned
-from f
-.ce 0
-.fi
-T}
-T{
-.ce
-Value of a
-T}
-T{
-.sp
-.ce
-Block Mark
-.sp
-T}
-.TE
-.sp .1i
-.ce
-Figure 1.3 \- Stack structure on function call `f(a)'
-.sp .1i
diff --git a/share/doc/papers/px/fig2.3.raw b/share/doc/papers/px/fig2.3.raw
deleted file mode 100644
index 07feddf..0000000
--- a/share/doc/papers/px/fig2.3.raw
+++ /dev/null
@@ -1,103 +0,0 @@
-HALT 2.2 Produce control flow backtrace
-BEG s,W,w," 2.2,1.8 Write second part of block mark, enter block
-END 2.2,1.8 End block execution
-CALL l,A 2.2,1.8 Procedure or function call
-NODUMP s,W,w," 2.2 \s-2BEG\s0 main program, suppress dump
-PUSH s 2.2,1.9 Clear space (for function result)
-POP s 2.2,1.9 Pop (arguments) off stack
-LINO s 2.2 Set line number, count statements
-TRA a 2.2 Short control transfer (local branching)
-TRA4 A 2.2 Long control transfer
-GOTO l,A 2.2,1.8 Non-local goto statement
-IF a 2.3 Conditional transfer
-REL* r 2.3 Relational test yielding Boolean result
-AND 2.4 Boolean and
-OR 2.4 Boolean or
-NOT 2.4 Boolean not
-LRV* l,A 2.5 Right value (load) operators
-RV* l,a 2.5 Right value (load) operators
-CON* v 2.5 Load constant operators
-AS* 2.5 Assignment operators
-OFF s 2.5 Offset address, typically used for field reference
-INX* s,w,w 2.6 Subscripting (indexing) operator
-NIL 2.6 Assert non-nil pointer
-LLV l,W 2.6 Address of operator
-LV l,w 2.6 Address of operator
-IND* 2.6 Indirection operators
-ADD* 2.7 Addition
-SUB* 2.7 Subtraction
-MUL* 2.7 Multiplication
-SQR* 2.7 Squaring
-DIV* 2.7 Fixed division
-MOD* 2.7 Modulus
-ABS* 2.7 Absolute value
-NEG* 2.7 Negation
-DVD* 2.7 Floating division
-RANG* v 2.8 Subrange checking
-CASEOP* 2.9 Case statements
-FOR* a 2.12 For statements
-PXPBUF w 2.10 Initialize \fIpxp\fP count buffer
-TRACNT w,A 2.10 Count a procedure entry
-COUNT w 2.10 Count a statement count point
-CTTOT s,w,w 2.11 Construct set
-CARD s 2.11 Cardinality of set
-STOI 2.12 Convert short to long integer
-STOD 2.12 Convert short integer to real
-ITOD 2.12 Convert integer to real
-ITOS 2.12 Convert integer to short integer
-GET 3.7 Get next record from a file
-PUT 3.8 Output a record to a file
-MESSAGE 3.6 Write to terminal
-FNIL 3.7 Check file initialized, not eof, synced
-FLUSH 3.11 Flush a file
-BUFF 3.11 Specify buffering for file "output"
-EOF 3.10 Returns \fItrue\fR if end of file
-EOLN 3.10 Returns \fItrue\fR if end of line on input text file
-RESET 3.11 Open file for input
-REWRITE 3.11 Open file for output
-REMOVE 3.11 Remove a file
-UNIT* 3.10 Set active file
-READ* 3.7 Read a record from a file
-WRITEC 3.8 Character unformatted write
-WRITEF l 3.8 General formatted write
-WRITES l 3.8 String unformatted write
-WRITLN 3.8 Output a newline to a text file
-PAGE 3.8 Output a formfeed to a text file
-MIN s 3.8 Minimum of top of stack and \fIs\fR
-MAX s,w 3.8 Maximum of top of stack and \fIw\fR
-NAM A 3.8 Convert enumerated type value to print format
-FILE 3.9 Push descriptor for active file
-DEFNAME 3.11 Attach file name for \fBprogram\fR statement files
-PACK s,w,w,w 2.15 Convert and copy from unpacked to packed
-UNPACK s,w,w,w 2.15 Convert and copy from packed to unpacked
-LLIMIT 2.14 Set linelimit for output text file
-ARGC 2.14 Returns number of arguments to current process
-ARGV 2.14 Copy specified process argument into char array
-CLCK 2.14 Returns user time of program
-SCLCK 2.14 Returns system time of program
-WCLCK 2.14 Returns current time stamp
-DATE 2.14 Copy date into char array
-TIME 2.14 Copy time into char array
-SEED 2.13 Set random seed, return old seed
-RANDOM 2.13 Returns random number
-DISPOSE 2.15 Dispose of a heap allocation
-NEW s 2.15 Allocate a record on heap, set pointer to it
-EXPO 2.13 Returns machine representation of real exponent
-ATAN 2.13 Returns arctangent of argument
-EXP 2.13 Returns exponential of argument
-LN 2.13 Returns natural log of argument
-COS 2.13 Returns cos of argument
-SIN 2.13 Returns sin of argument
-SQRT 2.13 Returns square root of argument
-CHR* 2.15 Returns integer to ascii mapping of argument
-ODD* 2.15 Returns \fItrue\fR if argument is odd, \fIfalse\fR if even
-PRED* 2.7 Returns predecessor of argument
-STLIM 2.14 Set program statement limit
-SUCC* 2.7 Returns successor of argument
-ROUND 2.13 Returns \s-2TRUNC\s0(argument + 0.5)
-TRUNC 2.13 Returns integer part of argument
-UNDEF 2.15 Returns \fIfalse\fR
-SDUP 2.2 Duplicate top stack word
-ASRT 2.12 Assert \fItrue\fR to continue
-IN s,w,w 2.11 Set membership
-INCT 2.11 Membership in a constructed set
diff --git a/share/doc/papers/px/fig2.4.n b/share/doc/papers/px/fig2.4.n
deleted file mode 100644
index d752a0d..0000000
--- a/share/doc/papers/px/fig2.4.n
+++ /dev/null
@@ -1,57 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)fig2.4.n 5.2 (Berkeley) 4/17/91
-.\"
-.KF
-.TS
-center, box;
-cw(15).
-\s-2CASEOP\s0
-_
-No. of cases
-_
-.sp
-Case
-transfer
-table
-.sp
-_
-.sp
-Array of case
-label values
-.sp
-.TE
-.sp
-.ce
-Figure 2.4 \- Case data structure
-.sp
-.KE
diff --git a/share/doc/papers/px/fig3.2.n b/share/doc/papers/px/fig3.2.n
deleted file mode 100644
index e99f21b..0000000
--- a/share/doc/papers/px/fig3.2.n
+++ /dev/null
@@ -1,57 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)fig3.2.n 5.2 (Berkeley) 4/17/91
-.\" $FreeBSD$
-.\"
-.KF
-.TS
-center, box;
-cw(15).
-No. of cases
-_
-.sp
-offsets
-of element
-names
-.sp
-_
-.sp
-Array of
-null terminated
-element names
-.sp
-.TE
-.sp
-.ce
-Figure 3.2 \- Enumerated type conversion structure
-.sp
-.KE
diff --git a/share/doc/papers/px/fig3.3.n b/share/doc/papers/px/fig3.3.n
deleted file mode 100644
index bf42dab..0000000
--- a/share/doc/papers/px/fig3.3.n
+++ /dev/null
@@ -1,57 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)fig3.3.n 5.2 (Berkeley) 4/17/91
-.\"
-.KF
-.TS
-center;
-l l
-l | cw(15) |.
- _
-\fIbool\fP: 2
- _
- 6
- _
- 12
- _
- 17
- _
- "false"
- _
- "true"
- _
-.TE
-.sp
-.ce
-Figure 3.3 \- Boolean type conversion structure
-.sp
-.KE
diff --git a/share/doc/papers/px/pxin0.n b/share/doc/papers/px/pxin0.n
deleted file mode 100644
index ba020f3..0000000
--- a/share/doc/papers/px/pxin0.n
+++ /dev/null
@@ -1,140 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)pxin0.n 5.2 (Berkeley) 4/17/91
-.\" $FreeBSD$
-.\"
-.RP
-.TL
-Berkeley Pascal
-PX Implementation Notes
-.br
-Version 2.0 \- January, 1979
-.AU
-William N. Joy\*(Dg
-.AU
-M. Kirk McKusick\*(Dd
-.AI
-Computer Science Division
-Department of Electrical Engineering and Computer Science
-University of California, Berkeley
-Berkeley, California 94720
-.AB
-.PP
-Berkeley Pascal
-is designed for interactive instructional use and runs on the
-.SM "VAX 11/780" .
-The interpreter
-.I px
-executes the Pascal binaries generated by the Pascal translator
-.I pi .
-.PP
-The
-.I
-PX Implementation Notes
-.R
-describe the general organization of
-.I px ,
-detail the various operations of the interpreter,
-and describe the file input/output structure.
-Conclusions are given on the viability of an interpreter
-based approach to language implementation for an instructional environment.
-.AE
-.if n 'ND
-.SH
-Introduction
-.PP
-These
-.I
-PX Implementation Notes
-.R
-have been updated from the original
-.SM "PDP 11/70"
-implementation notes to reflect the interpreter that runs on the
-.SM "VAX 11/780" .
-These notes consist of four major parts.
-The first part outlines the general organization of
-.I px .
-Section 2 describes the operations (instructions) of the interpreter
-while section 3 focuses on input/output related activity.
-A final section gives conclusions about the viability of an interpreter
-based approach to language implementation for instruction.
-.SH
-Related Berkeley Pascal documents
-.PP
-The
-.I "PXP Implementation Notes"
-give details of the internals of the execution profiler
-.I pxp;
-parts of the interpreter related to
-.I pxp
-are discussed in section 2.10.
-A paper describing the syntactic error recovery mechanism used in
-.I pi
-was presented at the ACM Conference on Compiler Construction
-in Boulder Colorado in August, 1979.
-.SH
-Acknowledgements
-.PP
-This version of
-.I px
-is a
-.SM "PDP 11/70"
-to
-.SM "VAX 11/780"
-opcode mapping of the original
-.I px
-that was designed and implemented by Ken Thompson,
-with extensive modifications and additions
-by William Joy
-and Charles Haley.
-Without their work, this
-.UP
-system would never have existed.
-These notes were first written by William Joy for the
-.SM "PDP 11/70"
-implementation.
-We would also like to thank our faculty advisor Susan L. Graham
-for her encouragement,
-her helpful comments and suggestions
-relating to
-.UP
-and her excellent editorial assistance.
-.FS
-\*(dg\ The financial support of the National Science Foundation under grants
-MCS74-07644-A03 and MCS78-07291
-and of an \s-2IBM\s0 Graduate Fellowship are gratefully acknowledged.
-.FE
-.FS
-\*(dd\ The financial support of a Howard Hughes Graduate
-Fellowship is gratefully acknowledged.
-.FE
-.bp
diff --git a/share/doc/papers/px/pxin1.n b/share/doc/papers/px/pxin1.n
deleted file mode 100644
index c70f729..0000000
--- a/share/doc/papers/px/pxin1.n
+++ /dev/null
@@ -1,538 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)pxin1.n 5.2 (Berkeley) 4/17/91
-.\" $FreeBSD$
-.\"
-.tr _\(ru
-.nr H1 0
-.NH
-Organization
-.PP
-Most of
-.I px
-is written in the
-.SM "VAX 11/780"
-assembly language, using the
-.UX
-assembler
-.I as.
-Portions of
-.I px
-are also written in the
-.UX
-systems programming language C.
-.I Px
-consists of a main procedure that reads in the interpreter code,
-a main interpreter loop that transfers successively to various
-code segments implementing the abstract machine operations,
-built-in procedures and functions,
-and several routines that support the implementation of the
-Pascal input-output environment.
-.PP
-The interpreter runs at a fraction of the speed of equivalent
-compiled C code, with this fraction varying from 1/5 to 1/15.
-The interpreter occupies 18.5K bytes of instruction space, shared among
-all processes executing Pascal, and has 4.6K bytes of data space (constants,
-error messages, etc.) a copy of which is allocated to each executing process.
-.NH 2
-Format of the object file
-.PP
-.I Px
-normally interprets the code left in an object file by a run of the
-Pascal translator
-.I pi.
-The file where the translator puts the object originally, and the most
-commonly interpreted file, is called
-.I obj.
-In order that all persons using
-.I px
-share a common text image, this executable file is
-a small process that coordinates with the interpreter to start
-execution.
-The interpreter code is placed
-at the end of a special ``header'' file and the size of the initialized
-data area of this header file is expanded to include this code,
-so that during execution it is located at an
-easily determined address in its data space.
-When executed, the object process creates a
-.I pipe ,
-creates another process by doing a
-.I fork ,
-and arranges that the resulting parent process becomes an instance of
-.I px .
-The child process then writes the interpreter code through
-the pipe that it has to the
-interpreter process parent.
-When this process is complete, the child exits.
-.PP
-The real advantage of this approach is that it does not require modifications
-to the shell, and that the resultant objects are ``true objects'' not
-requiring special treatment.
-A simpler mechanism would be to determine the name of the file that was
-executed and pass this to the interpreter.
-However it is not possible to determine this name
-in all cases.\*(Dd
-.FS
-\*(dd\ For instance, if the
-.I pxref
-program is placed in the directory
-`/usr/bin'
-then when the user types
-``pxref program.p''
-the first argument to the program, nominally the programs name, is
-``pxref.''
-While it would be possible to search in the standard place,
-i.e. the current directory, and the system directories
-`/bin'
-and
-`/usr/bin'
-for a corresponding object file,
-this would be expensive and not guaranteed to succeed.
-Several shells exist that allow other directories to be searched
-for commands, and there is,
-in general,
-no way to determine what these directories are.
-.FE
-.NH 2
-General features of object code
-.PP
-Pascal object code is relocatable as all addressing references for
-control transfers within the code are relative.
-The code consists of instructions interspersed with inline data.
-All instructions have a length that is an even number of bytes.
-No variables are kept in the object code area.
-.PP
-The first byte of a Pascal interpreter instruction contains an operation
-code.
-This allows a total of 256 major operation codes, and 232 of these are
-in use in the current
-.I px.
-The second byte of each interpreter instruction is called the
-``sub-operation code'',
-or more commonly the
-.I sub-opcode.
-It contains a small integer that may, for example, be used as a
-block-structure level for the associated operation.
-If the instruction can take a longword constant,
-this constant is often packed into the sub-opcode
-if it fits into 8 bits and is not zero.
-A sub-opcode value of zero specifies that the constant would not
-fit and therefore follows in the next word.
-This is a space optimization, the value of zero for flagging
-the longer case being convenient because it is easy to test.
-.PP
-Other instruction formats are used.
-The branching
-instructions take an offset in the following word,
-operators that load constants onto the stack
-take arbitrarily long inline constant values,
-and many operations deal exclusively with data on the
-interpreter stack, requiring no inline data.
-.NH 2
-Stack structure of the interpreter
-.PP
-The interpreter emulates a stack-structured Pascal machine.
-The ``load'' instructions put values onto the stack, where all
-arithmetic operations take place.
-The ``store'' instructions take values off the stack
-and place them in an address that is also contained on the stack.
-The only way to move data or to compute in the machine is with the stack.
-.PP
-To make the interpreter operations more powerful
-and to thereby increase the interpreter speed,
-the arithmetic operations in the interpreter are ``typed''.
-That is, length conversion of arithmetic values occurs when they are
-used in an operation.
-This eliminates interpreter cycles for length conversion
-and the associated overhead.
-For example, when adding an integer that fits in one byte to one that
-requires four bytes to store, no ``conversion'' operators are required.
-The one byte integer is loaded onto the stack, followed by the four
-byte integer, and then an adding operator is used that has, implicit
-in its definition, the sizes of the arguments.
-.NH 2
-Data types in the interpreter
-.PP
-The interpreter deals with several different fundamental data types.
-In the memory of the machine, 1, 2, and 4 byte integers are supported,
-with only 2 and 4 byte integers being present on the stack.
-The interpreter always converts to 4 byte integers when there is a possibility
-of overflowing the shorter formats.
-This corresponds to the Pascal language definition of overflow in
-arithmetic operations that requires that the result be correct
-if all partial values lie within the bounds of the base integer type:
-4 byte integer values.
-.PP
-Character constants are treated similarly to 1 byte integers for
-most purposes, as are Boolean values.
-All enumerated types are treated as integer values of
-an appropriate length, usually 1 byte.
-The interpreter also has real numbers, occupying 8 bytes of storage,
-and sets and strings of varying length.
-The appropriate operations are included for each data type, such as
-set union and intersection and an operation to write a string.
-.PP
-No special
-.B packed
-data formats are supported by the interpreter.
-The smallest unit of storage occupied by any variable is one byte.
-The built-ins
-.I pack
-and
-.I unpack
-thus degenerate to simple memory to memory transfers with
-no special processing.
-.NH 2
-Runtime environment
-.PP
-The interpreter runtime environment uses a stack data area and a heap
-data area, that are kept at opposite ends of memory
-and grow towards each other.
-All global variables and variables local to procedures and functions
-are kept in the stack area.
-Dynamically allocated variables and buffers for input/output are
-allocated in the heap.
-.PP
-The addressing of block structured variables is done by using
-a fixed display
-that contains the address of its stack frame
-for each statically active block.\*(Dg
-.FS
-\*(dg\ Here ``block'' is being used to mean any
-.I procedure ,
-.I function
-or the main program.
-.FE
-This display is referenced by instructions that load and store
-variables and maintained by the operations for
-block entry and exit, and for non-local
-.B goto
-statements.
-.NH 2
-Dp, lc, loop
-.PP
-Three ``global'' variables in the interpreter, in addition to the
-``display'', are the
-.I dp,
-.I lc,
-and the
-.I loop.
-The
-.I dp
-is a pointer to the display entry for the current block;
-the
-.I lc
-is the abstract machine location counter;
-and the
-.I loop
-is a register that holds the address of the main interpreter
-loop so that returning to the loop to fetch the next instruction is
-a fast operation.
-.NH 2
-The stack frame structure
-.PP
-Each active block
-has a stack frame consisting of three parts:
-a block mark, local variables, and temporary storage for partially
-evaluated expressions.
-The stack in the interpreter grows from the high addresses in memory
-to the low addresses,
-so that those parts of the stack frame that are ``on the top''
-of the stack have the most negative offsets from the display
-entry for the block.
-The major parts of the stack frame are represented in Figure 1.1.
-.so fig1.1.n
-Note that the local variables of each block
-have negative offsets from the corresponding display entry,
-the ``first'' local variable having offset `\-2'.
-.NH 2
-The block mark
-.PP
-The block mark contains the saved information necessary
-to restore the environment when the current block exits.
-It consists of two parts.
-The first and top-most part is saved by the
-.SM CALL
-instruction in the interpreter.
-This information is not present for the main program
-as it is never ``called''.
-The second part of the block mark is created by the
-.SM BEG
-begin block operator that also allocates and clears the
-local variable storage.
-The format of these blocks is represented in Figure 1.2.
-.sp
-.so fig1.2.n
-.PP
-The data saved by the
-.SM CALL
-operator includes the line number
-.I lino
-of the point of call,
-that is printed if the program execution ends abnormally;
-the location counter
-.I lc
-giving the return address;
-and the current display entry address
-.I dp
-at the time of call.
-.PP
-The
-.SM BEG
-begin operator saves the previous display contents at the level
-of this block, so that the display can be restored on block exit.
-A pointer to the beginning line number and the
-name of this block is also saved.
-This information is stored in the interpreter object code in-line after the
-.SM BEG
-operator.
-It is used in printing a post-mortem backtrace.
-The saved file name and buffer reference are necessary because of
-the input/output structure
-(this is discussed in detail in
-sections 3.3 and 3.4).
-The top of stack reference gives the value the stack pointer should
-have when there are no expression temporaries on the stack.
-It is used for a consistency check in the
-.SM LINO
-line number operators in the interpreter, that occurs before
-each statement executed.
-This helps to catch bugs in the interpreter, that often manifest
-themselves by leaving the stack non-empty between statements.
-.PP
-Note that there is no explicit static link here.
-Thus to set up the display correctly after a non-local
-.B goto
-statement one must ``unwind''
-through all the block marks on the stack to rebuild the display.
-.NH 2
-Arguments and return values
-.PP
-A function returns its value into a space reserved by the calling
-block.
-Arguments to a
-.B function
-are placed on top of this return area.
-For both
-.B procedure
-and
-.B function
-calls, arguments are placed at the end of the expression evaluation area
-of the caller.
-When a
-.B function
-completes, expression evaluation can continue
-after popping the arguments to the
-.B function
-off the stack,
-exactly as if the function value had been ``loaded''.
-The arguments to a
-.B procedure
-are also popped off the stack by the caller
-after its execution ends.
-.KS
-.PP
-As a simple example consider the following stack structure
-for a call to a function
-.I f,
-of the form ``f(a)''.
-.so fig1.3.n
-.KE
-.PP
-If we suppose that
-.I f
-returns a
-.I real
-and that
-.I a
-is an integer,
-the calling sequence for this function would be:
-.DS
-.TS
-lp-2w(8) l.
-PUSH \-8
-RV4:\fIl a\fR
-CALL:\fIl f\fR
-POP 4
-.TE
-.DE
-.ZP
-Here we use the operator
-.SM PUSH
-to clear space for the return value,
-load
-.I a
-on the stack with a ``right value'' operator,
-call the function,
-pop off the argument
-.I a ,
-and can then complete evaluation of the containing expression.
-The operations used here will be explained in section 2.
-.PP
-If the function
-.I f
-were given by
-.LS
- 10 \*bfunction\fR f(i: integer): real;
- 11 \*bbegin\fR
- 12 f := i
- 13 \*bend\fR;
-.LE
-then
-.I f
-would have code sequence:
-.DS
-.TS
-lp-2w(8) l.
-BEG:2 0
- 11
- "f"
-LV:\fIl\fR 40
-RV4:\fIl\fR 32
-AS48
-END
-.TE
-.DE
-.ZP
-Here the
-.SM BEG
-operator takes 9 bytes of inline data.
-The first byte specifies the
-length of the function name.
-The second longword specifies the
-amount of local variable storage, here none.
-The succeeding two lines give the line number of the
-.B begin
-and the name of the block
-for error traceback.
-The
-.SM BEG
-operator places a name pointer in the block mark.
-The body of the
-.B function
-first takes an address of the
-.B function
-result variable
-.I f
-using the address of operator
-.SM LV
-.I a .
-The next operation in the interpretation of this function is the loading
-of the value of
-.I i .
-.I I
-is at the level of the
-.B function
-.I f ,
-here symbolically
-.I l,
-and the first variable in the local variable area.
-The
-.B function
-completes by assigning the 4 byte integer on the stack to the 8 byte
-return location, hence the
-.SM AS48
-assignment operator, and then uses the
-.SM END
-operator to exit the current block.
-.NH 2
-The main interpreter loop
-.PP
-The main interpreter loop is simply:
-.DS
-.mD
-iloop:
- \fBcaseb\fR (lc)+,$0,$255
- <table of opcode interpreter addresses>
-.DE
-.ZP
-The main opcode is extracted from the first byte of the instruction
-and used to index into the table of opcode interpreter addresses.
-Control is then transferred to the specified location.
-The sub-opcode may be used to index the display,
-as a small constant,
-or to specify one of several relational operators.
-In the cases where a constant is needed, but it
-is not small enough to fit in the byte sub-operator,
-a zero is placed there and the constant follows in the next word.
-Zero is easily tested for,
-as the instruction that fetches the
-sub-opcode sets the condition code flags.
-A construction like:
-.DS
-.mD
-_OPER:
- \fBcvtbl\fR (lc)+,r0
- \fBbneq\fR L1
- \fBcvtwl\fR (lc)+,r0
-L1: ...
-.DE
-is all that is needed to effect this packing of data.
-This technique saves space in the Pascal
-.I obj
-object code.
-.PP
-The address of the instruction at
-.I iloop
-is always contained in the register variable
-.I loop .
-Thus a return to the main interpreter is simply:
-.DS
- \fBjmp\fR (loop)
-.DE
-that is both quick and occupies little space.
-.NH 2
-Errors
-.PP
-Errors during interpretation fall into three classes:
-.DS
-1) Interpreter detected errors.
-2) Hardware detected errors.
-3) External events.
-.DE
-.PP
-Interpreter detected errors include I/O errors and
-built-in function errors.
-These errors cause a subroutine call to an error routine
-with a single parameter indicating the cause of the error.
-Hardware errors such as range errors and overflows are
-fielded by a special routine that determines the opcode
-that caused the error.
-It then calls the error routine with an appropriate error
-parameter.
-External events include interrupts and system limits such
-as available memory.
-They generate a call to the error routine with an
-appropriate error code.
-The error routine processes the error condition,
-printing an appropriate error message and usually
-a backtrace from the point of the error.
diff --git a/share/doc/papers/px/pxin2.n b/share/doc/papers/px/pxin2.n
deleted file mode 100644
index d0edf98..0000000
--- a/share/doc/papers/px/pxin2.n
+++ /dev/null
@@ -1,923 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)pxin2.n 5.2 (Berkeley) 4/17/91
-.\" $FreeBSD$
-.\"
-.nr H1 1
-.if n .ND
-.NH
-Operations
-.NH 2
-Naming conventions and operation summary
-.PP
-Table 2.1 outlines the opcode typing convention.
-The expression ``a above b'' means that `a' is on top
-of the stack with `b' below it.
-Table 2.3 describes each of the opcodes.
-The character `*' at the end of a name specifies that
-all operations with the root prefix
-before the `*'
-are summarized by one entry.
-Table 2.2 gives the codes used
-to describe the type inline data expected by each instruction.
-.sp 2
-.so table2.1.n
-.sp 2
-.so table2.2.n
-.bp
-.so table2.3.n
-.bp
-.NH 2
-Basic control operations
-.LP
-.SH
-HALT
-.IP
-Corresponds to the Pascal procedure
-.I halt ;
-causes execution to end with a post-mortem backtrace as if a run-time
-error had occurred.
-.SH
-BEG s,W,w,"
-.IP
-Causes the second part of the block mark to be created, and
-.I W
-bytes of local variable space to be allocated and cleared to zero.
-Stack overflow is detected here.
-.I w
-is the first line of the body of this section for error traceback,
-and the inline string (length s) the character representation of its name.
-.SH
-NODUMP s,W,w,"
-.IP
-Equivalent to
-.SM BEG ,
-and used to begin the main program when the ``p''
-option is disabled so that the post-mortem backtrace will be inhibited.
-.SH
-END
-.IP
-Complementary to the operators
-.SM CALL
-and
-.SM BEG ,
-exits the current block, calling the procedure
-.I pclose
-to flush buffers for and release any local files.
-Restores the environment of the caller from the block mark.
-If this is the end for the main program, all files are
-.I flushed,
-and the interpreter is exited.
-.SH
-CALL l,A
-.IP
-Saves the current line number, return address, and active display entry pointer
-.I dp
-in the first part of the block mark, then transfers to the entry point
-given by the relative address
-.I A ,
-that is the beginning of a
-.B procedure
-or
-.B function
-at level
-.I l.
-.SH
-PUSH s
-.IP
-Clears
-.I s
-bytes on the stack.
-Used to make space for the return value of a
-.B function
-just before calling it.
-.SH
-POP s
-.IP
-Pop
-.I s
-bytes off the stack.
-Used after a
-.B function
-or
-.B procedure
-returns to remove the arguments from the stack.
-.SH
-TRA a
-.IP
-Transfer control to relative address
-.I a
-as a local
-.B goto
-or part of a structured statement.
-.SH
-TRA4 A
-.IP
-Transfer control to an absolute address as part of a non-local
-.B goto
-or to branch over procedure bodies.
-.SH
-LINO s
-.IP
-Set current line number to
-.I s.
-For consistency, check that the expression stack is empty
-as it should be (as this is the start of a statement.)
-This consistency check will fail only if there is a bug in the
-interpreter or the interpreter code has somehow been damaged.
-Increment the statement count and if it exceeds the statement limit,
-generate a fault.
-.SH
-GOTO l,A
-.IP
-Transfer control to address
-.I A
-that is in the block at level
-.I l
-of the display.
-This is a non-local
-.B goto.
-Causes each block to be exited as if with
-.SM END ,
-flushing and freeing files with
-.I pclose,
-until the current display entry is at level
-.I l.
-.SH
-SDUP*
-.IP
-Duplicate the word or long on the top of
-the stack.
-This is used mostly for constructing sets.
-See section 2.11.
-.NH 2
-If and relational operators
-.SH
-IF a
-.IP
-The interpreter conditional transfers all take place using this operator
-that examines the Boolean value on the top of the stack.
-If the value is
-.I true ,
-the next code is executed,
-otherwise control transfers to the specified address.
-.SH
-REL* r
-.IP
-These take two arguments on the stack,
-and the sub-operation code specifies the relational operation to
-be done, coded as follows with `a' above `b' on the stack:
-.DS
-.mD
-.TS
-lb lb
-c a.
-Code Operation
-_
-0 a = b
-2 a <> b
-4 a < b
-6 a > b
-8 a <= b
-10 a >= b
-.TE
-.DE
-.IP
-Each operation does a test to set the condition code
-appropriately and then does an indexed branch based on the
-sub-operation code to a test of the condition here specified,
-pushing a Boolean value on the stack.
-.IP
-Consider the statement fragment:
-.DS
-.mD
-\*bif\fR a = b \*bthen\fR
-.DE
-.IP
-If
-.I a
-and
-.I b
-are integers this generates the following code:
-.DS
-.TS
-lp-2w(8) l.
-RV4:\fIl a\fR
-RV4:\fIl b\fR
-REL4 \&=
-IF \fIElse part offset\fR
-.sp
-.T&
-c s.
-\fI\&... Then part code ...\fR
-.TE
-.DE
-.NH 2
-Boolean operators
-.PP
-The Boolean operators
-.SM AND ,
-.SM OR ,
-and
-.SM NOT
-manipulate values on the top of the stack.
-All Boolean values are kept in single bytes in memory,
-or in single words on the stack.
-Zero represents a Boolean \fIfalse\fP, and one a Boolean \fItrue\fP.
-.NH 2
-Right value, constant, and assignment operators
-.SH
-LRV* l,A
-.br
-RV* l,a
-.IP
-The right value operators load values on the stack.
-They take a block number as a sub-opcode and load the appropriate
-number of bytes from that block at the offset specified
-in the following word onto the stack. As an example, consider
-.SM LRV4 :
-.DS
-.mD
-_LRV4:
- \fBcvtbl\fR (lc)+,r0 #r0 has display index
- \fBaddl3\fR _display(r0),(lc)+,r1 #r1 has variable address
- \fBpushl\fR (r1) #put value on the stack
- \fBjmp\fR (loop)
-.DE
-.IP
-Here the interpreter places the display level in r0.
-It then adds the appropriate display value to the inline offset and
-pushes the value at this location onto the stack.
-Control then returns to the main
-interpreter loop.
-The
-.SM RV*
-operators have short inline data that
-reduces the space required to address the first 32K of
-stack space in each stack frame.
-The operators
-.SM RV14
-and
-.SM RV24
-provide explicit conversion to long as the data
-is pushed.
-This saves the generation of
-.SM STOI
-to align arguments to
-.SM C
-subroutines.
-.SH
-CON* r
-.IP
-The constant operators load a value onto the stack from inline code.
-Small integer values are condensed and loaded by the
-.SM CON1
-operator, that is given by
-.DS
-.mD
-_CON1:
- \fBcvtbw\fR (lc)+,\-(sp)
- \fBjmp\fR (loop)
-.DE
-.IP
-Here note that little work was required as the required constant
-was available at (lc)+.
-For longer constants,
-.I lc
-must be incremented before moving the constant.
-The operator
-.SM CON
-takes a length specification in the sub-opcode and can be used to load
-strings and other variable length data onto the stack.
-The operators
-.SM CON14
-and
-.SM CON24
-provide explicit conversion to long as the constant is pushed.
-.SH
-AS*
-.IP
-The assignment operators are similar to arithmetic and relational operators
-in that they take two operands, both in the stack,
-but the lengths given for them specify
-first the length of the value on the stack and then the length
-of the target in memory.
-The target address in memory is under the value to be stored.
-Thus the statement
-.DS
-i := 1
-.DE
-.IP
-where
-.I i
-is a full-length, 4 byte, integer,
-will generate the code sequence
-.DS
-.TS
-lp-2w(8) l.
-LV:\fIl i\fP
-CON1:1
-AS24
-.TE
-.DE
-.IP
-Here
-.SM LV
-will load the address of
-.I i,
-that is really given as a block number in the sub-opcode and an
-offset in the following word,
-onto the stack, occupying a single word.
-.SM CON1 ,
-that is a single word instruction,
-then loads the constant 1,
-that is in its sub-opcode,
-onto the stack.
-Since there are not one byte constants on the stack,
-this becomes a 2 byte, single word integer.
-The interpreter then assigns a length 2 integer to a length 4 integer using
-.SM AS24 \&.
-The code sequence for
-.SM AS24
-is given by:
-.DS
-.mD
-_AS24:
- \fBincl\fR lc
- \fBcvtwl\fR (sp)+,*(sp)+
- \fBjmp\fR (loop)
-.DE
-.IP
-Thus the interpreter gets the single word off the stack,
-extends it to be a 4 byte integer
-gets the target address off the stack,
-and finally stores the value in the target.
-This is a typical use of the constant and assignment operators.
-.NH 2
-Addressing operations
-.SH
-LLV l,W
-.br
-LV l,w
-.IP
-The most common operation done by the interpreter
-is the ``left value'' or ``address of'' operation.
-It is given by:
-.DS
-.mD
-_LLV:
- \fBcvtbl\fR (lc)+,r0 #r0 has display index
- \fBaddl3\fR _display(r0),(lc)+,\-(sp) #push address onto the stack
- \fBjmp\fR (loop)
-.DE
-.IP
-It calculates an address in the block specified in the sub-opcode
-by adding the associated display entry to the
-offset that appears in the following word.
-The
-.SM LV
-operator has a short inline data that reduces the space
-required to address the first 32K of stack space in each call frame.
-.SH
-OFF s
-.IP
-The offset operator is used in field names.
-Thus to get the address of
-.LS
-p^.f1
-.LE
-.IP
-.I pi
-would generate the sequence
-.DS
-.mD
-.TS
-lp-2w(8) l.
-RV:\fIl p\fP
-OFF \fIf1\fP
-.TE
-.DE
-.IP
-where the
-.SM RV
-loads the value of
-.I p,
-given its block in the sub-opcode and offset in the following word,
-and the interpreter then adds the offset of the field
-.I f1
-in its record to get the correct address.
-.SM OFF
-takes its argument in the sub-opcode if it is small enough.
-.SH
-NIL
-.IP
-The example above is incomplete, lacking a check for a
-.B nil
-pointer.
-The code generated would be
-.DS
-.TS
-lp-2w(8) l.
-RV:\fIl p\fP
-NIL
-OFF \fIf1\fP
-.TE
-.DE
-.IP
-where the
-.SM NIL
-operation checks for a
-.I nil
-pointer and generates the appropriate runtime error if it is.
-.SH
-LVCON s,"
-.IP
-A pointer to the specified length inline data is pushed
-onto the stack.
-This is primarily used for
-.I printf
-type strings used by
-.SM WRITEF .
-(see sections 3.6 and 3.8)
-.SH
-INX* s,w,w
-.IP
-The operators
-.SM INX2
-and
-.SM INX4
-are used for subscripting.
-For example, the statement
-.DS
-a[i] := 2.0
-.DE
-.IP
-with
-.I i
-an integer and
-.I a
-an
-``array [1..1000] of real''
-would generate
-.DS
-.TS
-lp-2w(8) l.
-LV:\fIl a\fP
-RV4:\fIl i\fP
-INX4:8 1,999
-CON8 2.0
-AS8
-.TE
-.DE
-.IP
-Here the
-.SM LV
-operation takes the address of
-.I a
-and places it on the stack.
-The value of
-.I i
-is then placed on top of this on the stack.
-The array address is indexed by the
-length 4 index (a length 2 index would use
-.SM INX2 )
-where the individual elements have a size of 8 bytes.
-The code for
-.SM INX4
-is:
-.DS
-.mD
-_INX4:
- \fBcvtbl\fR (lc)+,r0
- \fBbneq\fR L1
- \fBcvtwl\fR (lc)+,r0 #r0 has size of records
-L1:
- \fBcvtwl\fR (lc)+,r1 #r1 has lower bound
- \fBmovzwl\fR (lc)+,r2 #r2 has upper-lower bound
- \fBsubl3\fR r1,(sp)+,r3 #r3 has base subscript
- \fBcmpl\fR r3,r2 #check for out of bounds
- \fBbgtru\fR esubscr
- \fBmull2\fR r0,r3 #calculate byte offset
- \fBaddl2\fR r3,(sp) #calculate actual address
- \fBjmp\fR (loop)
-esubscr:
- \fBmovw\fR $ESUBSCR,_perrno
- \fBjbr\fR error
-.DE
-.IP
-Here the lower bound is subtracted, and range checked against the
-upper minus lower bound.
-The offset is then scaled to a byte offset into the array
-and added to the base address on the stack.
-Multi-dimension subscripts are translated as a sequence of single subscriptings.
-.SH
-IND*
-.IP
-For indirect references through
-.B var
-parameters and pointers,
-the interpreter has a set of indirection operators that convert a pointer
-on the stack into a value on the stack from that address.
-different
-.SM IND
-operators are necessary because of the possibility of different
-length operands.
-The
-.SM IND14
-and
-.SM IND24
-operators do conversions to long
-as they push their data.
-.NH 2
-Arithmetic operators
-.PP
-The interpreter has many arithmetic operators.
-All operators produce results long enough to prevent overflow
-unless the bounds of the base type are exceeded.
-The basic operators available are
-.DS
-Addition: ADD*, SUCC*
-Subtraction: SUB*, PRED*
-Multiplication: MUL*, SQR*
-Division: DIV*, DVD*, MOD*
-Unary: NEG*, ABS*
-.DE
-.NH 2
-Range checking
-.PP
-The interpreter has several range checking operators.
-The important distinction among these operators is between values whose
-legal range begins at zero and those that do not begin at zero,
-for example
-a subrange variable whose values range from 45 to 70.
-For those that begin at zero, a simpler ``logical'' comparison against
-the upper bound suffices.
-For others, both the low and upper bounds must be checked independently,
-requiring two comparisons.
-On the
-.SM "VAX 11/780"
-both checks are done using a single index instruction
-so the only gain is in reducing the inline data.
-.NH 2
-Case operators
-.PP
-The interpreter includes three operators for
-.B case
-statements that are used depending on the width of the
-.B case
-label type.
-For each width, the structure of the case data is the same, and
-is represented in figure 2.4.
-.sp 1
-.so fig2.4.n
-.PP
-The
-.SM CASEOP
-case statement operators do a sequential search through the
-case label values.
-If they find the label value, they take the corresponding entry
-from the transfer table and cause the interpreter to branch to the
-specified statement.
-If the specified label is not found, an error results.
-.PP
-The
-.SM CASE
-operators take the number of cases as a sub-opcode
-if possible.
-Three different operators are needed to handle single byte,
-word, and long case transfer table values.
-For example, the
-.SM CASEOP1
-operator has the following code sequence:
-.DS
-.mD
-_CASEOP1:
- \fBcvtbl\fR (lc)+,r0
- \fBbneq\fR L1
- \fBcvtwl\fR (lc)+,r0 #r0 has length of case table
-L1:
- \fBmovaw\fR (lc)[r0],r2 #r2 has pointer to case labels
- \fBmovzwl\fR (sp)+,r3 #r3 has the element to find
- \fBlocc\fR r3,r0,(r2) #r0 has index of located element
- \fBbeql\fR caserr #element not found
- \fBmnegl\fR r0,r0 #calculate new lc
- \fBcvtwl\fR (r2)[r0],r1 #r1 has lc offset
- \fBaddl2\fR r1,lc
- \fBjmp\fR (loop)
-caserr:
- \fBmovw\fR $ECASE,_perrno
- \fBjbr\fR error
-.DE
-.PP
-Here the interpreter first computes the address of the beginning
-of the case label value area by adding twice the number of case label
-values to the address of the transfer table, since the transfer
-table entries are 2 byte address offsets.
-It then searches through the label values, and generates an ECASE
-error if the label is not found.
-If the label is found, the index of the corresponding entry
-in the transfer table is extracted and that offset is added
-to the interpreter location counter.
-.NH 2
-Operations supporting pxp
-.PP
-The following operations are defined to do execution profiling.
-.SH
-PXPBUF w
-.IP
-Causes the interpreter to allocate a count buffer
-with
-.I w
-four byte counters
-and to clear them to zero.
-The count buffer is placed within an image of the
-.I pmon.out
-file as described in the
-.I "PXP Implementation Notes."
-The contents of this buffer are written to the file
-.I pmon.out
-when the program ends.
-.SH
-COUNT w
-.IP
-Increments the counter specified by
-.I w .
-.SH
-TRACNT w,A
-.IP
-Used at the entry point to procedures and functions,
-combining a transfer to the entry point of the block with
-an incrementing of its entry count.
-.NH 2
-Set operations
-.PP
-The set operations:
-union
-.SM ADDT,
-intersection
-.SM MULT,
-element removal
-.SM SUBT,
-and the set relationals
-.SM RELT
-are straightforward.
-The following operations are more interesting.
-.SH
-CARD s
-.IP
-Takes the cardinality of a set of size
-.I s
-bytes on top of the stack, leaving a 2 byte integer count.
-.SM CARD
-uses the
-.B ffs
-opcode to successively count the number of set bits in the set.
-.SH
-CTTOT s,w,w
-.IP
-Constructs a set.
-This operation requires a non-trivial amount of work,
-checking bounds and setting individual bits or ranges of bits.
-This operation sequence is slow,
-and motivates the presence of the operator
-.SM INCT
-below.
-The arguments to
-.SM CTTOT
-include the number of elements
-.I s
-in the constructed set,
-the lower and upper bounds of the set,
-the two
-.I w
-values,
-and a pair of values on the stack for each range in the set, single
-elements in constructed sets being duplicated with
-.SM SDUP
-to form degenerate ranges.
-.SH
-IN s,w,w
-.IP
-The operator
-.B in
-for sets.
-The value
-.I s
-specifies the size of the set,
-the two
-.I w
-values the lower and upper bounds of the set.
-The value on the stack is checked to be in the set on the stack,
-and a Boolean value of
-.I true
-or
-.I false
-replaces the operands.
-.SH
-INCT
-.IP
-The operator
-.B in
-on a constructed set without constructing it.
-The left operand of
-.B in
-is on top of the stack followed by the number of pairs in the
-constructed set,
-and then the pairs themselves, all as single word integers.
-Pairs designate runs of values and single values are represented by
-a degenerate pair with both value equal.
-This operator is generated in grammatical constructs such as
-.LS
-\fBif\fR character \fBin\fR [`+', '\-', `*', `/']
-.LE
-.IP
-or
-.LS
-\fBif\fR character \fBin\fR [`a'..`z', `$', `_']
-.LE
-.IP
-These constructs are common in Pascal, and
-.SM INCT
-makes them run much faster in the interpreter,
-as if they were written as an efficient series of
-.B if
-statements.
-.NH 2
-Miscellaneous
-.PP
-Other miscellaneous operators that are present in the interpreter
-are
-.SM ASRT
-that causes the program to end if the Boolean value on the stack is not
-.I true,
-and
-.SM STOI ,
-.SM STOD ,
-.SM ITOD ,
-and
-.SM ITOS
-that convert between different length arithmetic operands for
-use in aligning the arguments in
-.B procedure
-and
-.B function
-calls, and with some untyped built-ins, such as
-.SM SIN
-and
-.SM COS \&.
-.PP
-Finally, if the program is run with the run-time testing disabled, there
-are special operators for
-.B for
-statements
-and special indexing operators for arrays
-that have individual element size that is a power of 2.
-The code can run significantly faster using these operators.
-.NH 2
-Mathematical Functions
-.PP
-The transcendental functions
-.SM SIN ,
-.SM COS ,
-.SM ATAN ,
-.SM EXP ,
-.SM LN ,
-.SM SQRT ,
-.SM SEED ,
-and
-.SM RANDOM
-are taken from the standard UNIX
-mathematical package.
-These functions take double precision floating point
-values and return the same.
-.PP
-The functions
-.SM EXPO ,
-.SM TRUNC ,
-and
-.SM ROUND
-take a double precision floating point number.
-.SM EXPO
-returns an integer representing the machine
-representation of its argument's exponent,
-.SM TRUNC
-returns the integer part of its argument, and
-.SM ROUND
-returns the rounded integer part of its argument.
-.NH 2
-System functions and procedures
-.SH
-LLIMIT
-.IP
-A line limit and a file pointer are passed on the stack.
-If the limit is non-negative the line limit is set to the
-specified value, otherwise it is set to unlimited.
-The default is unlimited.
-.SH
-STLIM
-.IP
-A statement limit is passed on the stack. The statement limit
-is set as specified.
-The default is 500,000.
-No limit is enforced when the ``p'' option is disabled.
-.SH
-CLCK
-.br
-SCLCK
-.IP
-.SM CLCK
-returns the number of milliseconds of user time used by the program;
-.SM SCLCK
-returns the number of milliseconds of system time used by the program.
-.SH
-WCLCK
-.IP
-The number of seconds since some predefined time is
-returned. Its primary usefulness is in determining
-elapsed time and in providing a unique time stamp.
-.sp
-.LP
-The other system time procedures are
-.SM DATE
-and
-.SM TIME
-that copy an appropriate text string into a pascal string array.
-The function
-.SM ARGC
-returns the number of command line arguments passed to the program.
-The procedure
-.SM ARGV
-takes an index on the stack and copies the specified
-command line argument into a pascal string array.
-.NH 2
-Pascal procedures and functions
-.SH
-PACK s,w,w,w
-.br
-UNPACK s,w,w,w
-.IP
-They function as a memory to memory move with several
-semantic checks.
-They do no ``unpacking'' or ``packing'' in the true sense as the
-interpreter supports no packed data types.
-.SH
-NEW s
-.br
-DISPOSE s
-.IP
-An
-.SM LV
-of a pointer is passed.
-.SM NEW
-allocates a record of a specified size and puts a pointer
-to it into the pointer variable.
-.SM DISPOSE
-deallocates the record pointed to by the pointer
-and sets the pointer to
-.SM NIL .
-.sp
-.LP
-The function
-.SM CHR*
-converts a suitably small integer into an ascii character.
-Its primary purpose is to do a range check.
-The function
-.SM ODD*
-returns
-.I true
-if its argument is odd and returns
-.I false
-if its argument is even.
-The function
-.SM UNDEF
-always returns the value
-.I false .
diff --git a/share/doc/papers/px/pxin3.n b/share/doc/papers/px/pxin3.n
deleted file mode 100644
index d0f78d5..0000000
--- a/share/doc/papers/px/pxin3.n
+++ /dev/null
@@ -1,597 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)pxin3.n 5.2 (Berkeley) 4/17/91
-.\" $FreeBSD$
-.\"
-.ta 8n 16n 24n
-.nr H1 2
-.if n .ND
-.NH
-Input/output
-.NH 2
-The files structure
-.PP
-Each file in the Pascal environment is represented by a pointer
-to a
-.I files
-structure in the heap.
-At the location addressed by the pointer is the element
-in the file's window variable.
-Behind this window variable is information about the file,
-at the following offsets:
-.so table3.1.n
-.PP
-Here
-.SM FBUF
-is a pointer to the system FILE block for the file.
-The standard system I/O library is
-used that provides block buffered input/output,
-with 1024 characters normally transferred at each read or write.
-.PP
-The files in the
-Pascal environment,
-are all linked together on a single file chain through the
-.SM FCHAIN
-links.
-For each file the
-.SM FLEV
-pointer gives its associated file variable.
-These are used to free files at block exit as described in section 3.3
-below.
-.PP
-The
-FNAME
-and
-PFNAME
-give the associated
-file name for the file and the name to be used when printing
-error diagnostics respectively.
-Although these names are usually the same,
-.I input
-and
-.I output
-usually have no associated
-file name so the distinction is necessary.
-.PP
-The
-FUNIT
-word contains
-a set of flags.
-whose representations are:
-.TS
-center;
-l l l.
-EOF 0x0100 At end-of-file
-EOLN 0x0200 At end-of-line (text files only)
-SYNC 0x0400 File window is out of sync
-TEMP 0x0800 File is temporary
-FREAD 0x1000 File is open for reading
-FWRITE 0x2000 File is open for writing
-FTEXT 0x4000 File is a text file; process EOLN
-FDEF 0x8000 File structure created, but file not opened
-.TE
-.PP
-The
-EOF
-and
-EOLN
-bits here reflect the associated built-in function values.
-TEMP
-specifies that the file has a generated temporary name and that
-it should therefore be removed when its block exits.
-FREAD
-and
-FWRITE
-specify that
-.I reset
-and
-.I rewrite
-respectively have been done on the file so that
-input or output operations can be done.
-FTEXT
-specifies the file is a text file so that
-EOLN
-processing should be done,
-with newline characters turned into blanks, etc.
-.PP
-The
-SYNC
-bit,
-when true,
-specifies that there is no usable image in the file buffer window.
-As discussed in the
-.I "Berkeley Pascal User's Manual,"
-the interactive environment necessitates having
-``input^'' undefined at the beginning
-of execution so that a program may print a prompt
-before the user is required to type input.
-The
-SYNC
-bit implements this.
-When it is set,
-it specifies that the element in the window
-must be updated before it can be used.
-This is never done until necessary.
-.NH 2
-Initialization of files
-.PP
-All the variables in the Pascal runtime environment are cleared to zero on
-block entry.
-This is necessary for simple processing of files.
-If a file is unused, its pointer will be
-.B nil.
-All references to an inactive file are thus references through a
-.B nil
-pointer.
-If the Pascal system did not clear storage to zero before execution
-it would not be possible to detect inactive files in this simple way;
-it would probably be necessary to generate (possibly complicated)
-code to initialize
-each file on block entry.
-.PP
-When a file is first mentioned in a
-.I reset
-or
-.I rewrite
-call,
-a buffer of the form described above is associated with it,
-and the necessary information about the file is placed in this
-buffer.
-The file is also linked into the active file chain.
-This chain is kept sorted by block mark address, the
-FLEV
-entries.
-.NH 2
-Block exit
-.PP
-When block exit occurs the interpreter must free the files that are in
-use in the block
-and their associated buffers.
-This is simple and efficient because the files in the active file chain are
-sorted by increasing block mark address.
-This means that the files for the current block will be at the front
-of the chain.
-For each file that is no longer accessible
-the interpreter first flushes the files buffer
-if it is an output file.
-The interpreter then returns the file buffer and the files structure and window
-to the free space in the heap and removes the file from the active file chain.
-.NH 2
-Flushing
-.PP
-Flushing all the file buffers at abnormal termination,
-or on a call to the procedure
-.I flush
-or
-.I message
-is done by flushing
-each file on the file chain that has the
-FWRITE
-bit set in its flags word.
-.NH 2
-The active file
-.PP
-For input-output,
-.I px
-maintains a notion of an active file.
-Each operation that references a file makes the file
-it will be using the active file and then does its operation.
-A subtle point here is that one may do a procedure call to
-.I write
-that involves a call to a function that references another file,
-thereby destroying the active file set up before the
-.I write.
-Thus the active file is saved at block entry
-in the block mark and restored at block exit.\*(Dg
-.FS
-\*(dg\ It would probably be better to dispense with the notion of
-active file and use another mechanism that did not involve extra
-overhead on each procedure and function call.
-.FE
-.NH 2
-File operations
-.PP
-Files in Pascal can be used in two distinct ways:
-as the object of
-.I read,
-.I write,
-.I get,
-and
-.I put
-calls, or indirectly as though they were pointers.
-The second use as pointers must be careful
-not to destroy the active file in a reference such as
-.LS
-write(output, input\(ua)
-.LE
-or the system would incorrectly write on the input device.
-.PP
-The fundamental operator related to the use of a file is
-.SM FNIL.
-This takes the file variable, as a pointer,
-insures that the pointer is not
-.B nil,
-and also that a usable image is in the file window,
-by forcing the
-.SM SYNC
-bit to be cleared.
-.PP
-A simple example that demonstrates the use of the file operators
-is given by
-.LS
-writeln(f)
-.LE
-that produces
-.DS
-.mD
-.TS
-lp-2w(8) l.
-RV:\fIl f\fP
-UNIT
-WRITLN
-.TE
-.DE
-.NH 2
-Read operations
-.SH
-GET
-.IP
-Advance the active file to the next input element.
-.SH
-FNIL
-.IP
-A file pointer is on the stack. Insure that the associated file is active
-and that the file is synced so that there is input available in the window.
-.SH
-READ*
-.IP
-If the file is a text file, read a block of text
-and convert it to the internal type of the specified
-operand. If the file is not a text file then
-do an unformatted read of the next record.
-The procedure
-.SM READLN
-reads upto and including the next end of line character.
-.SH
-READE A
-.IP
-The operator
-.SM READE
-reads a string name of an enumerated type and converts it
-to its internal value.
-.SM READE
-takes a pointer to a data structure as shown in figure 3.2.
-.so fig3.2.n
-See the description of
-.SM NAM
-in the next section for an example.
-.NH 2
-Write operations
-.SH
-PUT
-.IP
-Output the element in the active file window.
-.SH
-WRITEF s
-.IP
-The argument(s) on the stack are output
-by the
-.I fprintf
-standard
-.SM I/O
-library routine.
-The sub-opcode
-.I s
-specifies the number
-of longword arguments on the stack.
-.SH
-WRITEC
-.IP
-The character on the top of the stack is output
-without formatting. Formatted characters must be output with
-.SM WRITEF .
-.SH
-WRITES
-.IP
-The string specified by the pointer on the top of the stack is output
-by the
-.I fwrite
-standard
-.SM I/O
-library routine.
-All characters including nulls are printed.
-.SH
-WRITLN
-.IP
-A linefeed is output to the active file.
-The line-count for the file is
-incremented and checked against the line limit.
-.SH
-PAGE
-.IP
-A formfeed is output to the active file.
-.SH
-NAM A
-.IP
-The value on the top of the stack is converted to a pointer
-to an enumerated type string name.
-The address
-.SM A
-points to an enumerated type structure identical
-to that used by
-.SM READE .
-An error is raised if the value is out of range.
-The form of this structure for the predefined type
-.B boolean
-is shown in figure 3.3.
-.so fig3.3.n
-The code for
-.SM NAM
-is
-.DS
-.mD
-_NAM:
- \fBincl\fR lc
- \fBaddl3\fR (lc)+,ap,r6 #r6 points to scalar name list
- \fBmovl\fR (sp)+,r3 #r3 has data value
- \fBcmpw\fR r3,(r6)+ #check value out of bounds
- \fBbgequ\fR enamrng
- \fBmovzwl\fR (r6)[r3],r4 #r4 has string index
- \fBpushab\fR (r6)[r4] #push string pointer
- \fBjmp\fR (loop)
-enamrng:
- \fBmovw\fR $ENAMRNG,_perrno
- \fBjbr\fR error
-.DE
-The address of the table is calculated by adding the base address
-of the interpreter code,
-.I ap
-to the offset pointed to by
-.I lc .
-The first word of the table gives the number of records and
-provides a range check of the data to be output.
-The pointer is then calculated as
-.DS
-.mD
-tblbase = ap + A;
-size = *tblbase++;
-return(tblbase + tblbase[value]);
-.DE
-.SH
-MAX s,w
-.IP
-The sub-opcode
-.I s
-is subtracted from the integer on the top of the stack.
-The maximum of the result and the second argument,
-.I w ,
-replaces the value on the top of the stack.
-This function verifies that variable specified
-width arguments are non-negative, and meet certain minimum width
-requirements.
-.SH
-MIN s
-.IP
-The minimum of the value on the top of the stack
-and the sub-opcode replaces the value on the top
-of the stack.
-.sp 1
-.LP
-The uses of files and the file operations are summarized
-in an example which outputs a real variable (r) with a variable
-width field (i).
-.LS
-writeln('r =',r:i,' ',true);
-.LE
-that generates the code
-.DS
-.mD
-.TS
-lp-2w(8) l.
-UNITOUT
-FILE
-CON14:1
-CON14:3
-LVCON:4 "r ="
-WRITES
-RV8\fI:l r\fP
-RV4\fI:l i\fP
-MAX:8 1
-RV4\fI:l i\fP
-MAX:1 1
-LVCON:8 " %*.*E"
-FILE
-WRITEF:6
-CONC4 \' \'
-WRITEC
-CON14:1
-NAM \fIbool\fP
-LVCON:4 "%s"
-FILE
-WRITEF:3
-WRITLN
-.TE
-.DE
-.PP
-Here the operator
-.SM UNITOUT
-is an abbreviated form of the operator
-.SM UNIT
-that is used when the file to be made active is
-.I output .
-A file descriptor, record count, string size, and a pointer
-to the constant string ``r ='' are pushed
-and then output by
-.SM WRITES .
-Next the value of
-.I r
-is pushed on the stack
-and the precision size is calculated by taking
-seven less than the width, but not less than one.
-This is followed by the width that is reduced by
-one to leave space for the required leading blank.
-If the width is too narrow, it
-is expanded by
-.I fprintf .
-A pointer to the format string is pushed followed
-by a file descriptor and the operator
-.SM WRITEF
-that prints out
-.I r .
-The value of six on
-.SM WRITEF
-comes from two longs for
-.I r
-and a long each for the precision, width, format string pointer,
-and file descriptor.
-The operator
-.SM CONC4
-pushes the
-.I blank
-character onto a long on the stack that is then printed out by
-.SM WRITEC .
-The internal representation for
-.I true
-is pushed as a long onto the stack and is
-then replaced by a pointer to the string ``true''
-by the operator
-.SM NAM
-using the table
-.I bool
-for conversion.
-This string is output by the operator
-.SM WRITEF
-using the format string ``%s''.
-Finally the operator
-.SM WRITLN
-appends a newline to the file.
-.NH 2
-File activation and status operations
-.SH
-UNIT*
-.IP
-The file pointed to by the file pointer on the top
-of the stack is converted to be the active file.
-The opcodes
-.SM UNITINP
-and
-.SM UNITOUT
-imply standard input and output respectively
-instead of explicitly pushing their file pointers.
-.SH
-FILE
-.IP
-The standard
-.SM I/O
-library file descriptor associated with the active file
-is pushed onto the stack.
-.SH
-EOF
-.IP
-The file pointed to by the file pointer on the top
-of the stack is checked for end of file. A boolean
-is returned with
-.I true
-indicating the end of file condition.
-.SH
-EOLN
-.IP
-The file pointed to by the file pointer on the top
-of the stack is checked for end of line. A boolean
-is returned with
-.I true
-indicating the end of line condition.
-Note that only text files can check for end of line.
-.NH 2
-File housekeeping operations
-.SH
-DEFNAME
-.IP
-Four data items are passed on the stack;
-the size of the data type associated with the file,
-the maximum size of the file name,
-a pointer to the file name,
-and a pointer to the file variable.
-A file record is created with the specified window size
-and the file variable set to point to it.
-The file is marked as defined but not opened.
-This allows
-.B program
-statement association of file names with file variables
-before their use by a
-.SM RESET
-or a
-.SM REWRITE .
-.SH
-BUFF s
-.IP
-The sub-opcode is placed in the external variable
-.I _bufopt
-to specify the amount of I/O buffering that is desired.
-The current options are:
-.DS
-0 \- character at a time buffering
-1 \- line at a time buffering
-2 \- block buffering
-.DE
-The default value is 1.
-.SH
-RESET
-.br
-REWRITE
-.IP
-Four data items are passed on the stack;
-the size of the data type associated with the file,
-the maximum size of the name (possibly zero),
-a pointer to the file name (possibly null),
-and a pointer to the file variable.
-If the file has never existed it is created as in
-.SM DEFNAME .
-If no file name is specified and no previous name exists
-(for example one created by
-.SM DEFNAME
-) then a system temporary name is created.
-.SM RESET
-then opens the file for input, while
-.SM REWRITE
-opens the file for output.
-.sp 1
-.PP
-The three remaining file operations are
-.SM FLUSH
-that flushes the active file,
-.SM REMOVE
-that takes the pointer to a file name and removes the
-specified file, and
-.SM MESSAGE
-that flushes all the output files and sets the
-standard error file to be the active file.
diff --git a/share/doc/papers/px/pxin4.n b/share/doc/papers/px/pxin4.n
deleted file mode 100644
index 53d3a78..0000000
--- a/share/doc/papers/px/pxin4.n
+++ /dev/null
@@ -1,67 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)pxin4.n 5.2 (Berkeley) 4/17/91
-.\" $FreeBSD$
-.\"
-.nr H1 3
-.if n .ND
-.NH
-Conclusions
-.PP
-It is appropriate to consider,
-given the amount of time invested in rewriting the interpreter,
-whether the time was well spent, or whether a code-generator
-could have been written with an equivalent amount of effort.
-The Berkeley Pascal system is being modified to interface
-to the code generator of the portable C compiler with
-not much more work than was involved in rewritting
-.I px .
-However this compiler will probably not supercede the interpreter
-in an instructional environment as the
-necessary loading and assembly processes will slow the
-compilation process to a noticeable degree.
-This effect will be further exaggerated because
-student users spend more time in compilation than in execution.
-Measurements over the course of a quarter at Berkeley with a mixture
-of students from beginning programming to upper division compiler
-construction show that the amount of time in compilation exceeds the amount
-of time spent in the interpreter, the ratio being approximately 60/40.
-.PP
-A more promising approach might have been a throw-away code generator
-such as was done for the
-.SM
-WATFIV
-.NL
-system.
-However the addition of high-quality post-mortem and interactive
-debugging facilities become much more difficult to provide than
-in the interpreter environment.
diff --git a/share/doc/papers/px/table2.1.n b/share/doc/papers/px/table2.1.n
deleted file mode 100644
index 9f142d9..0000000
--- a/share/doc/papers/px/table2.1.n
+++ /dev/null
@@ -1,83 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)table2.1.n 5.2 (Berkeley) 4/17/91
-.\"
-.DS L
-.TS
-box center;
-c s s
-c s s
-c c c
-n ap-2 a.
-Table 2.1 \- Operator Suffixes
-=
-.sp
-Unary operator suffixes
-.sp .1i
-Suffix Example Argument type
-2 NEG2 Short integer (2 bytes)
-4 SQR4 Long integer (4 bytes)
-8 ABS8 Real (8 bytes)
-.sp
-_
-.sp
-.T&
-c s s
-c c c
-n ap-2 a.
-Binary operator suffixes
-.sp .1i
-Suffix Example Argument type
-2 ADD2 Two short integers
-24 MUL24 Short above long integer
-42 REL42 Long above short integer
-4 DIV4 Two long integers
-28 DVD28 Short integer above real
-48 REL48 Long integer above real
-82 SUB82 Real above short integer
-84 MUL84 Real above long integer
-8 ADD8 Two reals
-.sp
-_
-.sp
-.T&
-c s s
-c c c
-n ap-2 a.
-Other Suffixes
-.sp .1i
-Suffix Example Argument types
-T ADDT Sets
-G RELG Strings
-.sp
-.TE
-.DE
diff --git a/share/doc/papers/px/table2.2.n b/share/doc/papers/px/table2.2.n
deleted file mode 100644
index 9a3f1db..0000000
--- a/share/doc/papers/px/table2.2.n
+++ /dev/null
@@ -1,85 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)table2.2.n 5.2 (Berkeley) 4/17/91
-.\"
-.DS L
-.TS
-box center;
-c s
-c | c
-ci | aw(3.25i).
-Table 2.2 \- Inline data type codes
-_
-Code Description
-=
-a T{
-.fi
-An address offset is given in the word
-following the instruction.
-T}
-_
-A T{
-An address offset is given in the four bytes following the instruction.
-T}
-_
-l T{
-An index into the display
-is given in the sub-opcode.
-T}
-_
-r T{
-A relational operator is encoded in the sub-opcode. (see section 2.3)
-T}
-_
-s T{
-A small integer is
-placed in the sub-opcode, or in the next word
-if it is zero or too large.
-T}
-_
-v T{
-Variable length inline data.
-T}
-_
-w T{
-A word value in the following word.
-T}
-_
-W T{
-A long value in the following four bytes.
-T}
-_
-" T{
-An inline constant string.
-T}
-.TE
-.DE
diff --git a/share/doc/papers/px/table2.3.n b/share/doc/papers/px/table2.3.n
deleted file mode 100644
index 51796ae..0000000
--- a/share/doc/papers/px/table2.3.n
+++ /dev/null
@@ -1,45 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)table2.3.n 5.2 (Berkeley) 4/17/91
-.\"
-.TS H
-box center;
-c s s
-lw(14) | lw(12) | lw(40)
-lp-2 | a | l.
-Table 2.3 \- Machine operations
-_
-Mnemonic Reference Description
-=
-.TH
-.so fig2.3.n
-.TE
diff --git a/share/doc/papers/px/table3.1.n b/share/doc/papers/px/table3.1.n
deleted file mode 100644
index 26db82e..0000000
--- a/share/doc/papers/px/table3.1.n
+++ /dev/null
@@ -1,47 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)table3.1.n 5.2 (Berkeley) 4/17/91
-.\"
-.TS
-center;
-n l l.
-\-108 FNAME Text name of associated UNIX file
-\-30 LCOUNT Current count of lines output
-\-26 LLIMIT Maximum number of lines permitted
-\-22 FBUF UNIX FILE pointer
-\-18 FCHAIN Chain to next file
-\-14 FLEV Pointer to associated file variable
-\-10 PFNAME Pointer to name of file for error messages
-\-6 FUNIT File status flags
-\-4 FSIZE Size of elements in the file
-0 File window element
-.TE
diff --git a/share/doc/papers/px/tmac.p b/share/doc/papers/px/tmac.p
deleted file mode 100644
index 6d917be..0000000
--- a/share/doc/papers/px/tmac.p
+++ /dev/null
@@ -1,113 +0,0 @@
-.\" Copyright (c) 1979 The Regents of the University of California.
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)tmac.p 5.2 (Berkeley) 4/17/91
-.\" $FreeBSD$
-.\"
-.if n .nr FM 1.2i
-.if t .tr *\(**=\(eq/\(sl+\(pl
-.bd S B 3
-.de mD
-.ta 8n 17n 42n
-..
-.de SM
-.if "\\$1"" .ps -2
-.if !"\\$1"" \s-2\\$1\s0\\$2
-..
-.de LG
-.if "\\$1"" .ps +2
-.if !"\\$1"" \s+2\\$a\s0\\$2
-..
-.de HP
-.nr pd \\n(PD
-.nr PD 0
-.if \\n(.$=0 .IP
-.if \\n(.$=1 .IP "\\$1"
-.if \\n(.$>=2 .IP "\\$1" "\\$2"
-.nr PD \\n(pd
-..
-.de ZP
-.nr pd \\n(PD
-.nr PD 0
-.PP
-.nr PD \\n(pd
-..
-.de LS \"LS - Literal display; ASCII DS
-.if \\n(.$=0 .DS
-.if \\n(.$=1 \\$1
-.if \\n(.$>1 \\$1 "\\$2"
-.if t .tr '\'`\`^\(ua-\(mi
-.if t .tr _\(ul
-..
-.de LE \"LE - End literal display
-.DE
-.tr ''``__--^^
-..
-.de UP
-Berkeley Pascal\\$1
-..
-.de PD
-\s-2PDP\s0
-.if \\n(.$=0 11/70
-.if \\n(.$>0 11/\\$1
-..
-.de DK
-Digital Equipment Corporation\\$1
-..
-.de PI
-.I pi \\$1
-..
-.de Xp
-.I Pxp \\$1
-..
-.de XP
-.I pxp \\$1
-..
-.de IX
-.I pix \\$1
-..
-.de X
-.I px \\$1
-..
-.de PX
-.I px \\$1
-..
-.if n .ds dg +
-.if t .ds dg \(dg
-.if n .ds Dg \*(dg
-.if t .ds Dg \v'-0.3m'\s-2\*(dg\s0\v'0.3m'
-.if n .ds dd *
-.if t .ds dd \(dd
-.if n .ds Dd \*(dd
-.if t .ds Dd \v'-0.3m'\s-2\*(dd\s0\v'0.3m'
-.if n .ds b \\fI
-.if t .ds b \\fB
-.nr xx 1
OpenPOWER on IntegriCloud