diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..1bf03d5
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,302 @@
+I believe that the following copyrights and licence terms apply to the
+games distributed in bsd-games and bsd-games-non-free. (The copyright
+years given below are those that appear on any of the files so
+licensed.)
+
+Most games are under the standard BSD terms:
+
+ Copyright (c) 1980, 1982, 1983, 1985-1994
+ 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.
+
+The files `backgammon/backgammon/backlocal.h', `countmail/countmail'
+and `robots/auto.c' have a similar licence, but copyright is held by
+the NetBSD Foundation:
+
+ Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc.
+ 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 NetBSD
+ Foundation, Inc. and its contributors.
+ 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
+
+In the case of `adventure/extern.h' the copyright is held by Christos
+Zoulas:
+
+ Copyright (c) 1997 Christos Zoulas. 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 Christos Zoulas.
+ 4. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+In the case of `countmail/countmail.6' the copyright is held by
+Matthew R. Green:
+
+ Copyright (c) 1997 Matthew R. Green
+ 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. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+In the case of `wargames/wargames.6', the copyright is held by Joey
+Hess:
+
+ Copyright (c) 1998 Joey Hess
+ 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. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+The game `atc' bears additional notices in the name of Ed James:
+
+ Copyright (c) 1987 by Ed James, UC Berkeley. All rights reserved.
+
+ Copy permission is hereby granted provided that this notice is
+ retained on all partial or complete copies.
+
+ For more info on this and all of my stuff, mail edjames@berkeley.edu.
+
+The game `boggle' used to bear a copyright notice in the name of Barry
+Brachman, but he confirmed that he had assigned his copyright to the
+University of California and the continued inclusion of the old
+copyright notice was an omission on their part.
+
+The game `hunt' appears to be copyrighted by its authors and the
+University of California:
+
+ Copyright (c) 1985 Conrad C. Huang, Gregory S. Couch, Kenneth C.R.C. Arnold
+ San Francisco, California
+
+ Copyright (c) 1983, 1985 Regents of the University of California.
+ All rights reserved. The Berkeley software License Agreement
+ specifies the terms and conditions for redistribution.
+
+ Hunt is part of the user-contributed software distributed by
+ Berkeley in 4BSD. The sources are copyrighted by the authors
+ and the University of California. You may redistribute freely
+ as long as the copyright notices are retained.
+
+These terms also apply to `hunt/Makeconfig', which is derived from the
+hunt `Makefile.inc' distributed by NetBSD.
+
+The game `phantasia' is not copyright (except for
+`phantasia/pathnames.h.in' to which the BSD copyright and licence
+apply); the notice in `phantasia/COPYRIGHT' applies to it.
+
+The game `rogue' (in bsd-games-non-free) bears the standard BSD
+notices, and then the following:
+
+ This source herein may be modified and/or distributed by anybody who
+ so desires, with the following restrictions:
+ 1.) No portion of this notice shall be removed.
+ 2.) Credit shall not be taken for the creation of this source.
+ 3.) This code is not to be traded, sold, or used for personal
+ gain or profit.
+
+The game `wtf' is also not copyright, and bears the notice
+
+ Public domain
+
+Auxilliary and data files, distributed with the games in NetBSD, but
+not bearing copyright notices, probably fall under the terms of the
+UCB or NetBSD copyrights and licences. The file `fortune/Notes'
+contains a warning in regard to the fortune databases.
+
+Some files, beyond those present in NetBSD, have been added to the
+Linux bsd-games collection. The following terms apply to the files in
+the `include' and `lib' directories (relevant to binary distributions
+insofar as they get compiled into the games; note that the include
+files are probably irrelevant for this purpose as it is unlikely they
+are significant enough to make any binary a derived work).
+
+ Copyright (c) 1997, 1998, 1999 Joseph Samuel Myers.
+ 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. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+The above terms also apply to the scripts, makefile fragments and
+documentation added to the Linux bsd-games collection which are not
+significantly derived from bsd-games 1.3 by Curt Olson and Andy Tefft;
+this is all of them except for the files mentioned below to which the
+similar terms given below are expected to apply. This includes the
+testsuite scripts; the testsuite input and output for caesar
+(`tests/caesar.constin' and `tests/caesar.constout') are from the US
+Constitution, so not copyright; I believe the other testsuite expected
+outputs are too trivial, or translations of inputs too trivial, to
+qualify for copyright; but if not, then the terms given above apply
+(and, of course, running the test command gives an identical output
+file to which you could apply your own copyright).
+
+The files `bsd-games.lsm', `ChangeLog.0', `THANKS', `INSTALL',
+`README', `TODO', `boggle/README.linux', `fortune/README.linux', and
+`hunt/README.linux' are still significantly derived from files in the
+original bsd-games package for Linux by Curt Olson and Andy Tefft. It
+is expected that the following terms will apply to these files, and to
+the compilation copyright on the package as a whole; ***this has yet
+to be confirmed with Andy Tefft***:
+
+ Copyright (c) 1993 Curt Olson, Andy Tefft.
+ Copyright (c) 1997, 1998, 1999 Joseph Samuel Myers.
+ 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. The name of the authors may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``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 AUTHORS 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.
+
+
+
+Local Variables:
+mode: text
+End:
diff --git a/atc/atc.6.in b/atc/atc.6.in
new file mode 100644
index 0000000..c94d9bd
--- /dev/null
+++ b/atc/atc.6.in
@@ -0,0 +1,489 @@
+.\" $NetBSD: atc.6,v 1.6 1999/07/17 19:48:40 hubertf Exp $
+.\"
+.\" Copyright (c) 1990, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" This code is derived from software contributed to Berkeley by
+.\" Ed James.
+.\"
+.\" 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.
+.\"
+.\" @(#)atc.6 8.1 (Berkeley) 5/31/93
+.\"
+.\" Copyright (c) 1986 Ed James. All rights reserved.
+.\"
+.Dd May 31, 1993
+.Dt ATC 6
+.Os BSD 4.3
+.Sh NAME
+.Nm atc
+.Nd air traffic controller game
+.Sh SYNOPSIS
+.Nm atc
+.Op Fl u?lstp
+.Op Fl gf Ar "game name"
+.Op Fl r Ar "random seed"
+.Sh DESCRIPTION
+.Nm Atc
+lets you try your hand at the nerve wracking duties of the air traffic
+controller without endangering the lives of millions of
+travelers each year.
+Your responsibilities require you to direct the flight of jets
+and prop planes into and out of the flight arena and airports.
+The speed (update time) and frequency of the planes depend on the
+difficulty of the chosen arena.
+.Sh OPTIONS
+.Bl -tag -width flag
+.It Fl u
+Print the usage line and exit.
+.It Fl ?
+Same as
+.Fl u.
+.It Fl l
+Print a list of available games and exit.
+The first game name printed is the default game.
+.It Fl s
+Print the score list (formerly the Top Ten list).
+.It Fl t
+Same as
+.Fl s.
+.It Fl p
+Print the path to the special directory where
+.Nm atc
+expects to find its private files. This is used during the
+installation of the program.
+.It Fl g Ar game
+Play the named game. If the game listed is not one of the
+ones printed from the
+.Fl l
+option, the default game is played.
+.It Fl f Ar game
+Same as
+.Fl g.
+.It Fl r Ar seed
+Set the random seed. The purpose of this flag is questionable.
+.El
+.Sh GOALS
+Your goal in
+.Nm atc
+is to keep the game going as long as possible.
+There is no winning state, except to beat the times of other players.
+You will need to: launch planes at airports (by instructing them to
+increase their altitude); land planes at airports (by instructing them to
+go to altitude zero when exactly over the airport); and maneuver planes
+out of exit points.
+.Pp
+Several things will cause the end of the game.
+Each plane has a destination (see information area), and
+sending a plane to the wrong destination is an error.
+Planes can run out of fuel, or can collide. Collision is defined as
+adjacency in all three dimensions. A plane leaving the arena
+in any other way than through its destination exit is an error as well.
+.Pp
+Scores are sorted in order of the number of planes safe. The other
+statistics are provided merely for fun. There is no penalty for
+taking longer than another player (except in the case of ties).
+.Pp
+Suspending a game is not permitted. If you get a talk message, tough.
+When was the last time an Air Traffic Controller got called away to
+the phone?
+.Sh "THE DISPLAY"
+.Pp
+Depending on the terminal you run
+.Nm atc
+on, the screen will be divided into 4 areas.
+It should be stressed that the terminal driver portion of the
+game was designed to be reconfigurable, so the display format can vary
+depending the version you are playing. The descriptions here are based
+on the ascii version
+of the game. The game rules and input format, however,
+should remain consistent.
+Control-L redraws the screen, should it become muddled.
+.Ss RADAR
+The first screen area is the radar display, showing the relative locations
+of the planes, airports, standard entry/exit points, radar
+beacons, and ``lines'' which simply serve to aid you in guiding
+the planes.
+.Pp
+Planes are shown as a single letter with an altitude. If
+the numerical altitude is a single digit, then it represents
+thousands of feet.
+Some distinction is made between the prop
+planes and the jets. On ascii terminals, prop planes are
+represented by a upper case letter, jets by a lower case letter.
+.Pp
+Airports are shown as a number and some indication of the direction
+planes must be going to land at the airport.
+On ascii terminals, this is one of `^', `>', `<', and `v', to indicate
+north (0 degrees), east (90), west (270) and south (180), respectively.
+The planes will also
+take off in this direction.
+.Pp
+Beacons are represented as circles or asterisks and a number.
+Their purpose is to offer a place of easy reference to the plane pilots.
+See ``the delay command'' under the input section of this manual.
+.Pp
+Entry/exit points are displayed as numbers along the border of the
+radar screen. Planes will enter the arena from these points without
+warning. These points have a direction associated with them, and
+planes will always enter the arena from this direction. On the
+ascii version of
+.Nm atc,
+this direction is not displayed. It will become apparent
+what this direction is as the game progresses.
+.Pp
+Incoming planes will always enter at the same altitude: 7000 feet.
+For a plane to successfully depart through an entry/exit point,
+it must be flying at 9000 feet.
+It is not necessary for the planes to be flying in any particular
+direction when they leave the arena (yet).
+.Ss "INFORMATION AREA"
+The second area of the display is the information area, which lists
+the time (number of updates since start), and the number of planes you
+have directed safely out of the arena.
+Below this is a list of planes currently in the air, followed by a
+blank line, and then a list of planes on the ground (at airports).
+Each line lists the plane name and its current altitude,
+an optional asterisk indicating low fuel, the plane's destination,
+and the plane's current command. Changing altitude is not considered
+to be a command and is therefore not displayed. The following are
+some possible information lines:
+.Pp
+.Bd -literal -unfilled -offset indent
+B4*A0: Circle @ b1
+g7 E4: 225
+.Ed
+.Pp
+The first example shows a prop plane named `B' that is flying at 4000
+feet. It is low on fuel (note the `*'). Its destination is
+Airport #0.
+The next command it expects
+to do is circle when it reaches Beacon #1.
+The second example shows a jet named `g' at 7000 feet, destined for
+Exit #4. It is just now executing a turn to 225 degrees (South-West).
+.Ss "INPUT AREA"
+The third area of the display is the input area. It is here that
+your input is reflected. See the INPUT heading of this manual
+for more details.
+.Ss "AUTHOR AREA"
+This area is used simply to give credit where credit is due. :-)
+.Sh INPUT
+A command completion interface is built into
+the game. At any time, typing `?' will list possible input characters.
+Typing a backspace (your erase character) backs up, erasing the last part
+of the command. When a command is complete, a return enters it, and
+any semantic checking is done at that time. If no errors are detected,
+the command is sent to the appropriate plane. If an error is discovered
+during the check, the offending statement will be underscored and a
+(hopefully) descriptive message will be printed under it.
+.Pp
+The command syntax is broken into two parts:
+.Em "Immediate Only"
+and
+.Em Delayable
+commands.
+.Em "Immediate Only"
+commands happen on the next
+update.
+.Em Delayable
+commands also happen on the next update unless they
+are followed by an optional predicate called the
+.Em Delay
+command.
+.Pp
+In the following tables, the syntax
+.Em [0\-9]
+means any single digit, and
+.Em
+refers to a direction, given by the keys around the `s' key: ``wedcxzaq''.
+In absolute references, `q' refers to North-West or 315 degrees, and `w'
+refers to North, or 0 degrees.
+In relative references, `q' refers to -45 degrees or 45 degrees left, and `w'
+refers to 0 degrees, or no change in direction.
+.Pp
+All commands start with a plane letter. This indicates the recipient
+of the command. Case is ignored.
+.Ss "IMMEDIATE ONLY COMMANDS"
+.Bl -tag -width "aaaa"
+.It "a [ cd+- ]" Em number
+Altitude: Change a plane's altitude, possibly requesting takeoff.
+`+' and `-' are the same as `c' and `d'.
+.Bl -tag -width "aaaaaaaaaa" -compact
+.It a Em number
+Climb or descend to the given altitude (in thousands of feet).
+.It ac Em number
+Climb: relative altitude change.
+.It ad Em number
+Descend: relative altitude change.
+.El
+.It m
+Mark: Display in highlighted mode. Plane and command information
+is displayed normally.
+.It i
+Ignore: Do not display highlighted. Command is displayed as a
+line of dashes if there is no command.
+.It u
+Unmark: Same as ignore, but if a delayed command is processed,
+the plane will become marked. This is useful if you want
+to forget about a plane during part, but not all, of its
+journey.
+.El
+.Ss "DELAYABLE COMMANDS"
+.Bl -tag -width "aaaa"
+.It "c [ lr ]"
+Circle: Have the plane circle.
+.Bl -tag -width "aaaaaaaaaa" -compact
+.It cl
+Left: Circle counterclockwise.
+.It cr
+Right: Circle clockwise (default).
+.El
+.It "t [ l-r+LR ] [ dir ] or tt [ abe* ]" Em number
+Turn: Change direction.
+.Bl -tag -width "aaaaaaaaaa" -compact
+.It "t"
+Turn to direction: Turn to the absolute compass heading given.
+The shortest turn will be taken.
+.It "tl [ dir ]"
+Left: Turn counterclockwise: 45 degrees by default, or the amount
+specified in (not
+.Em to
+.) `w' (0 degrees) is no turn. `e' is 45 degrees; `q' gives -45
+degrees counterclockwise, that is, 45 degrees clockwise.
+.It "t- [ dir ]"
+Same as left.
+.It "tr [ dir ]"
+Right: Turn clockwise, 45 degrees by default, or the amount specified
+in .
+.It "t+ [ dir ]"
+Same as right.
+.It tL
+Hard left: Turn counterclockwise 90 degrees.
+.It tR
+Hard right: Turn clockwise 90 degrees.
+.It "tt [abe*]"
+Towards: Turn towards a beacon, airport or exit. The turn is
+just an estimate.
+.It "tta" Em number
+Turn towards the given airport.
+.It "ttb" Em number
+Turn towards the specified beacon.
+.It "tte" Em number
+Turn towards an exit.
+.It "tt*" Em number
+Same as ttb.
+.El
+.El
+.Ss THE DELAY COMMAND
+The
+.Em Delay
+(a/@)
+command may be appended to any
+.Em Delayable
+command. It allows the controller to instruct a plane to do an action
+when the plane reaches a particular beacon (or other objects in future
+versions).
+.Bl -tag -width "aaaa"
+.It ab Em number
+Do the delayable command when the plane reaches the specified
+beacon. The `b' for ``beacon'' is redundant to allow for expansion.
+`@' can be used instead of `a'.
+.El
+.Ss "MARKING, UNMARKING AND IGNORING"
+Planes are
+.Em marked
+by default when they enter the arena. This means they are displayed
+in highlighted mode on the radar display. A plane may also be either
+.Em unmarked
+or
+.Em ignored.
+An
+.Em unmarked
+plane is drawn in unhighlighted mode, and a line of dashes is displayed in
+the command field of the information area. The plane will remain this
+way until a mark command has been issued. Any other command will be issued,
+but the command line will return to a line of dashes when the command
+is completed.
+.Pp
+An
+.Em ignored
+plane is treated the same as an unmarked plane, except that it will
+automatically switch to
+.Em marked
+status when a delayed command has been processed. This is useful if
+you want to forget about a plane for a while, but its flight path has
+not yet been completely set.
+.Pp
+As with all of the commands, marking, unmarking and ignoring will take effect
+at the beginning of the next update. Do not be surprised if the plane does
+not immediately switch to unhighlighted mode.
+.Ss EXAMPLES
+.Bl -tag -width gtte4ab2 -offset indent
+.It atlab1
+Plane A: turn left at beacon #1
+.It cc
+Plane C: circle
+.It gtte4ab2
+Plane G: turn towards exit #4 at beacon #2
+.It ma+2
+Plane M: altitude: climb 2000 feet
+.It stq
+Plane S: turn to 315
+.It xi
+Plane X: ignore
+.El
+.Sh "OTHER INFORMATION"
+.Bl -bullet
+.It
+Jets move every update; prop planes move every other update.
+.It
+All planes turn a most 90 degrees per movement.
+.It
+Planes enter at 7000 feet and leave at 9000 feet.
+.It
+Planes flying at an altitude of 0 crash if they are not over an airport.
+.It
+Planes waiting at airports can only be told to take off (climb in altitude).
+.El
+.Sh "NEW GAMES"
+The
+.Pa Game_List
+file lists the currently available play fields. New field description
+file names must be placed in this file to be playable. If a player
+specifies a game not in this file, his score will not be logged.
+.Pp
+The game field description files are broken into two parts. The first
+part is the definition section. Here, the four tunable game parameters
+must be set. These variables are set with the syntax:
+.Pp
+.Dl "variable = number;"
+.Pp
+Variable may be one of:
+.Li update,
+indicating the number of seconds between forced updates;
+.Li newplane,
+indicating (about) the number of updates between new plane entries;
+.Li width,
+indicating the width of the play field; or
+.Li height,
+indicating the height of the play field.
+.Pp
+The second part of the field description files describes the locations
+of the exits, the beacons, the airports and the lines.
+The syntax is as follows:
+.Pp
+.Bd -literal -offset indent
+.Bl -tag -width airport: -compact
+.It beacon:
+(x y) ... ;
+.It airport:
+(x y direction) ... ;
+.It exit:
+(x y direction) ... ;
+.It line:
+[ (x1 y1) (x2 y2) ] ... ;
+.El
+.Ed
+.Pp
+For beacons, a simple x, y coordinate pair is used (enclosed in
+parenthesis). Airports and exits require a third value, which is one
+of the directions
+.Em wedcxzaq.
+For airports, this is the direction that planes must be going to take
+off and land, and for exits, this is the direction that planes will going
+when they
+.Em enter
+the arena. This may not seem intuitive, but as there is no restriction on
+direction of exit, this is appropriate.
+Lines are slightly different, since they need two coordinate pairs to
+specify the line endpoints. These endpoints must be enclosed in
+square brackets.
+.Pp
+All statements are semi-colon (;) terminated. Multiple item statements
+accumulate. Each definition must occur exactly once, before any
+item statements. Comments begin with a hash (#) symbol
+and terminate with a newline.
+The coordinates are between zero and width-1 and height-1
+inclusive. All of the exit coordinates must lie on the borders, and
+all of the beacons and airports must lie inside of the borders.
+Line endpoints may be anywhere within the field, so long as
+the lines are horizontal, vertical or
+.Em exactly
+diagonal.
+.Ss "FIELD FILE EXAMPLE"
+.Bd -literal -unfilled
+# This is the default game.
+
+update = 5;
+newplane = 5;
+width = 30;
+height = 21;
+
+exit: ( 12 0 x ) ( 29 0 z ) ( 29 7 a ) ( 29 17 a )
+ ( 9 20 e ) ( 0 13 d ) ( 0 7 d ) ( 0 0 c ) ;
+
+beacon: ( 12 7 ) ( 12 17 ) ;
+
+airport: ( 20 15 w ) ( 20 18 d ) ;
+
+line: [ ( 1 1 ) ( 6 6 ) ]
+ [ ( 12 1 ) ( 12 6 ) ]
+ [ ( 13 7 ) ( 28 7 ) ]
+ [ ( 28 1 ) ( 13 16 ) ]
+ [ ( 1 13 ) ( 11 13 ) ]
+ [ ( 12 8 ) ( 12 16 ) ]
+ [ ( 11 18 ) ( 10 19 ) ]
+ [ ( 13 17 ) ( 28 17 ) ]
+ [ ( 1 7 ) ( 11 7 ) ] ;
+
+.Ed
+.Sh FILES
+Files are kept in a special directory. See the OPTIONS for a way to
+print this path out. It is normally
+.Pa @atc_dir@.
+.Pp
+This directory contains the file
+.Pa Game_List,
+which holds the list of playable games, as well as the games
+themselves.
+.Pp
+The scores are kept in
+.Pa @atc_scorefile@.
+.Sh AUTHOR
+Ed James, UC Berkeley: edjames@ucbvax.berkeley.edu, ucbvax!edjames
+.Pp
+This game is based on someone's description of the overall flavor
+of a game written for some unknown PC many years ago, maybe.
+.Sh BUGS
+The screen sometimes refreshes after you have quit.
+.Pp
+Yet Another Curses Bug was discovered during the development of this game.
+If your curses library clrtobot.o is version 5.1 or earlier,
+you will have erase problems with the backspace operator in the input
+window.
diff --git a/fortune/datfiles/limerick b/fortune/datfiles/limerick
new file mode 100644
index 0000000..0dccb1f
--- /dev/null
+++ b/fortune/datfiles/limerick
@@ -0,0 +1,44 @@
+A computer called Illiac4
+Had a rather tough bug in its core.
+ It chewed up its cards
+ And spewed yards and yards
+Of illegible tape on the floor.
+%
+A computer, to print out a fact,
+Will divide, multiply, and subtract.
+ But this output can be
+ No more than debris,
+If the input was short of exact.
+ -- Gigo
+%
+A dreary young bank clerk named Fennis
+Wished to foster an aura of menace;
+ To make people afraid
+ He wore gloves of grey suede
+And white footgear intended for tennis.
+ -- Edward Gorey
+%
+A hacker who screwed a mag tape
+Was caught and convicted of rape.
+ To jail he did go,
+ From which, to his woe
+He couldn't get out with ESC.
+%
+A linguist thought it a farce
+That memory space was so sparse.
+ One day they increased it.
+ Said he as he seized it:
+"At last! Enough core for the parse".
+%
+A progressive professor named Winners
+Held classes each evening for sinners.
+ They were graded and spaced
+ So the vile and debased
+Would not be held back by beginners.
+%
+A very intelligent turtle
+Found programming UNIX a hurdle
+ The system, you see,
+ Ran as slow as did he,
+And that's not saying much for the turtle.
+%
diff --git a/fortune/datfiles/limerick-o.fake b/fortune/datfiles/limerick-o.fake
new file mode 100644
index 0000000..3b3f5a3
--- /dev/null
+++ b/fortune/datfiles/limerick-o.fake
@@ -0,0 +1,2 @@
+There are no potentially offensive fortunes installed on this
+system. For further details, contact your system administrator.
diff --git a/fortune/datfiles/limerick-o.real b/fortune/datfiles/limerick-o.real
new file mode 100644
index 0000000..1798d23
--- /dev/null
+++ b/fortune/datfiles/limerick-o.real
@@ -0,0 +1,5325 @@
+A bad little girl in Madrid,
+A most reprehensible kid,
+ Told her Tante Louise
+ That her cunt smelled like cheese,
+And the worst of it was that it did!
+%
+A bather whose clothing was strewed
+By breezes that left her quite nude,
+ Saw a man come along
+ And, unless I'm quite wrong,
+You expected this line to be lewd.
+%
+A beat schizophrenic said, "Me?
+I am not I, I'm a tree."
+ But another, more sane,
+ Shouted, "I'm a Great Dane!"
+And covered his pants leg with pee.
+%
+A beautiful belle of Del Norte
+Is reckoned disdainful and haughrty
+ Because during the day
+ She says: "Boys, keep away!"
+But she fucks in the gloaming like forty.
+%
+A beautiful lady named Psyche
+Is loved by a fellow named Ikey.
+ One thing about Ike
+ The lady can't like
+Is his prick, which is dreadfully spikey.
+%
+A beetling young woman named Pridgets
+Had a violent abhorrence of midgets;
+ Off the end of a wharf
+ She once pushed a dwarf
+Whose truncation reduced her to fidgets.
+ -- Edward Gorey
+%
+A big-bosomed Bunny named Gression
+Sold cigars at a key-club concession.
+ When she swiveled about
+ Even strong men cried out,
+For her costume did not keep her flesh in.
+%
+A bobby of Nottingham Junction
+Whose organ had long ceased to function
+ Deceived his good wife
+ For the rest of her life
+With the aid of his constable's truncheon.
+%
+A broken-down harlot named Tupps
+Was heard to confess in her cups:
+ "The height of my folly
+ Was diddling a collie-
+But I got a nice price for the pups."
+%
+A broken-down harlot named Tupps
+Was heard to confess in her cups:
+ "The height of my folly
+ Was fucking a collie --
+But I got a nice price for the pups."
+%
+A burleyque dancer, a pip
+Named Virginia, could peel in a zip;
+ But she read science fiction
+ And died of constriction
+Attempting a Moebius strip.
+ -- Cyril Kornbluth, "The Unfortunate Topology"
+%
+A busy young lady named Gloria
+Was had by Sir Gerald du Maurier
+ And then by six men,
+ Sir Gerald again,
+And the band at the Waldorf-Astoria.
+%
+A cabin boy on an old clipper
+Grew steadily flipper and flipper.
+ He plugged up his ass
+ With fragments of glass
+And thus circumcised his old skipper.
+%
+A cautious young fellow named Lodge
+Had seatbelts installed in his Dodge.
+ When his date was strapped in,
+ He committed a sin,
+Without even leaving his grodge.
+%
+A cautious young fellow named Lodge,
+Had seatbelts installed in his Dodge.
+ With his date all strapped in
+ He committed a sin
+Without even leaving the garage.
+ -- "A Boy and His Dog"
+%
+A cautious young fellow named Tunney
+Had a whang that was worth any money.
+ When eased in half-way,
+ The girl's sigh made him say,
+"Why the sigh?" "For the rest of it, honey."
+%
+A certain young man, it was noted,
+Went about in the heat thickly-coated;
+ He said, "You may scoff,
+ But I shan't take it off;
+Underneath I am horribly bloated."
+ -- Edward Gorey
+%
+A certain young person of Ghent,
+Uncertain if lady or gent,
+ Shows his organs at large
+ For a small handling charge
+To assist him in paying the rent.
+%
+A certain young sheik of Algiers
+Said to his harem, "My dears,
+ Though you may think it odd of me,
+ I'm tired of just sodomy
+Let's try straight fucking." (loud cheers!)
+%
+A chap down in Oklahoma
+Had a cock that could sing La Paloma,
+ But the sweetness of pitch
+ Couldn't put off the hitch
+Of impotence, size and aroma.
+%
+A charmer from old Amarillo,
+Sick of finding strange heads on her pillow,
+ Decided one day
+ That to keep men away
+She would stuff up her crevice with Brillo.
+%
+A chippy who worked in Black Bluff
+Had a pussy as large as a muff.
+ It had room for both hands
+ And some intimate glands,
+And was soft as a little duck's fluff.
+%
+A clerical student named Pryne
+Through pain sought to reach the divine:
+ He wore a hair shirt,
+ Quite often ate dirt,
+And bathed every Friday in brine.
+ -- Edward Gorey
+%
+A clever young man named Eugene
+Invented a jack-off machine.
+ On the twenty-third stroke
+ The fuckin' thing broke
+And beat both his balls to a creame.
+%
+A clever young man named Eugene
+Invented a jack-off machine.
+ On the twenty-third stroke
+ The goddam thing broke
+And beat both his balls to a creame.
+%
+A cocksucking steno named Beeman
+Remarked as she swallowed my semen :
+ "On my minuscule salary
+ I must watch every calorie,
+So I get `ahead' eating you he-men!"
+%
+A contortionist hailing from Lynch
+Used to rent out his tool by the inch.
+ A foot cost a quid --
+ He could and he did
+Stretch it to three in a pinch.
+%
+A corpulent maiden named Kroll
+Had a notion exceedingly droll:
+ At a masquerade ball,
+ Dressed in nothing at all,
+She backed in as a Parker House roll.
+%
+A couple was fishing near Clombe
+When the maid began looking quite glum,
+ And said, "Bother the fish!
+ I'd rather coish!"
+Which they did -- which was why they had come.
+%
+A cowhand way out in Seattle
+Had a dooflicker flat as a paddle.
+ He said, "No, I can't fuck
+ A lamb or a duck,
+But golly! it just fits the cattle."
+%
+A crusader's wife slipped from the garrison
+And had an affair with a Saracen.
+ She was not oversexed,
+ Or jealous or vexed,
+She just wanted to make a comparison.
+%
+A CS student named Lin
+Had a prick the size of a pin
+ It was no good for girls
+ But just great for squirrels
+Who squealed with delight with it in.
+%
+A cute little twerp from Samoa
+Had a cock of one inch and no moa.
+ It was good for keyholes
+ And debutantes' peeholes
+But not worth a damn on a whoa.
+%
+A daredevil skater named Lowe,
+Leaps barrels arranged in the snow,
+ But is proudest of doing,
+ Some incredible screwing,
+Since he's jumped thirteen girls in a row!
+%
+A deep-throated virgin named Netty
+Was sucking a cock on the jetty.
+ She said, "It tastes nice,
+ Much better than rice,
+Though not quite as good as spaghetti."
+%
+A delighted, incredulous bride
+Remarked to her groom at her side :
+ "I never could quite
+ Believe till tonight
+Our anatomies would coincide."
+%
+A dentist, young doctor Malone,
+Got a charming girl patient alone,
+ And, in his depravity,
+ Filled the wrong cavity.
+God, how his practice has grown.
+%
+A despairing old landlord named Fyfe,
+With a frigid and quarrelsome wife,
+ Let his third-story front,
+ To a willing young cunt,
+Who supplied him a new lease on life!
+%
+A desperate spinster from Clare
+Once knelt in the moonlight all bare,
+ And prayed to her God
+ For a romp on the sod--
+'Twas a passerby answered her prayer.
+%
+A distinguished professor from Swarthmore
+Got along with a sexy young sophomore.
+ As quick as a glance
+ He stripped off his pants,
+But he found that the sophomore'd got off more.
+%
+A doctoral student from Buckingham
+Wrote his thesis on cunts and on fucking'em.
+ But a dropout from paree
+ Taught him Gamahuchee
+- so he added a footnote on sucking 'em.
+%
+A doctoral student from Buckingham
+Wrote his thesis on cunts and on fucking'em.
+ But a dropout from paree
+ Taught him Gamahuchee
+So he added a footnote on sucking 'em.
+%
+A do-it-yourselfer named Alice,
+Used a dynamite stick for a phallus.
+ She blew her vagina
+ To South Carolina,
+And her tits landed somewhere in Dallas.
+
+A cute friend of hers, Fanny Hill,
+Used two dynamite sticks for a dil.
+ They found her vagina,
+ In South Carolina,
+And part of her ass in Brazil.
+%
+A dolly in Dallas named Alice,
+Whose overworked sex is all callous,
+ Wore the foreskin away
+ On uncircumcised Ray,
+Through exuberance, tightness, and malice.
+%
+A dulcet-voiced callgirl named Shedd,
+Who's cultured, well-spoken, well-bred,
+ Had achieved some reknown
+ For her tone going down--
+There's a nice civil tongue in her head.
+%
+A fair-haired young damsel named Grace
+Thought it very, very foolish to place
+ Her hand on your cock
+ When it turned hard as rock,
+For fear it would explode in your face.
+%
+A farmer I know named O'Doole
+Had a long and incredible tool.
+ He can use it to plow,
+ Or to diddle a cow,
+Or just as a cue-stick at pool.
+%
+A fellatrix's healthful condition
+Proved the value of spunk as nutrition.
+ Her remarkable diet
+ (I suggest that you try it)
+Was only her clients' emission.
+%
+A fellow whose surname was Hunt
+Trained his cock to perform a slick stunt:
+ This versatile spout
+ Could be turned inside out,
+Like a glove, and be used as a cunt.
+%
+A fisherman off of Cape Cod
+Said, "I'll bugger that tuna, by God!"
+ But the high-minded fish
+ Resented his wish,
+And nimbly swam off with his rod.
+%
+A foolish geologist from Kissen
+Just didn't know what he was missin',
+ By studying rock
+ And neglecting his cock,
+And using it merely for pissin'.
+%
+A Frenchman who lived in Alsace
+Had sex with a virgin named Grace.
+ When he popped her cherry,
+ She made things hairy
+By bleeding all over his face.
+%
+A frustrated lady named Alice
+Used a dynamite stick for a phallus.
+ They found her vagina
+ In North Carolina
+And bits of her tits were in Dallas.
+%
+A gay young prince from Morocco
+Made love in a manner rococco.
+ He painted his penis
+ To resemble a venus
+And flavored his semen with cocoa.
+%
+A geneticist living in Delft
+Scientifically played with himself,
+ And when he was done
+ He labled it: son,
+And filed him away on a shelf.
+%
+A geneticist living in Delft
+Scientifically played with himself,
+ And when he was done
+ He labled it: son,
+And filed him away on a shelf.
+A gentleman, otherwise meek,
+Detested with passion the leek;
+ When offered one out
+ He dealt such a clout
+To the maid, she was down for a week.
+ -- Edward Gorey
+%
+A gentleman, otherwise meek,
+Detested with passion the leek;
+ When offered one out
+ He dealt such a clout
+To the maid, she was down for a week.
+ -- Edward Gorey
+%
+A german composer named Bruckner
+Remarked to a lady while fuckener :
+ "Less lento, my dear,
+ With your cute little rear;
+I like a hot presto when muckener!"
+%
+A gift was delivered to Laura
+From a cousin who lived in Gomorrah;
+ Wrapped in tissue and crepe,
+ It was peeled, like a grape,
+And emitted a pale, greenish aura.
+ -- Edward Gorey
+%
+A gifted young fellow from Sparta
+Was widely renowned as a farta'.
+ He could fart anything
+ From "Of Thee I Sing,"
+To Beethoven's "Moonlight Sonata."
+%
+A girl camper once had an affair
+With a fellow all covered with hair.
+ When she gave him his hat
+ She realized that
+She'd been had by Smokey the Bear.
+%
+A girl of the Enterprise crew
+Refused every offer to screw.
+ But a Vulcan named Spock
+ Crawled under her smock,
+And now she is eating for two.
+%
+A girl of uncertain nativity
+Had an ass of extreme sensitivity
+ While she sat on the lap
+ Of a German or Jap,
+She could sense Fifth Column activity.
+%
+A graduate student named Zac
+Was said to be great in the sack.
+ An inch of his boner
+ Put girls in a coma
+And two gave them epileptic attacks.
+%
+A graduate student named Zac
+Was said to be great in the sack.
+ An inch of his boner
+ Put girls in a coma
+And two gave them epileptic attacks.
+%
+A greedy young lady from Sidney
+Liked it in up to her kidney,
+ Till a man from Quebec
+ Shoved it up to her neck--
+He really diddled her, didn' he?
+%
+A green-thumbed young farmer from Leeds
+Once swallowed a package of seeds.
+ In a month, his ass
+ Was covered with grass
+And his balls were grown over with weeds.
+%
+A guest in a household quite charmless
+Was informed its eccentric was harmless:
+ "If you're caught unawares
+ At the head of the stairs,
+Just remember, he's eyeless and armless."
+ -- Edward Gorey
+%
+A habit depraved and unsavory
+Held the bishop of Bingham in slavery
+ Midst screeches and howls
+ He deflowered young owls
+Which he kept in an underground aviary
+%
+A habit obscene and bizarre,
+Has taken a-hold of papa.
+ He brings home young camels
+ And other odd mammals,
+And gives them a go at mama.
+%
+A habit obscene and unsavory,
+Holds a CS professor in slavery.
+ With maniacal howls,
+ He deflowers young owls,
+That he keeps in an underground aviary.
+%
+A hacker-turned-pervert named Fisk
+Made love to the drive of his disk.
+ The thing circumsized him,
+ Which rather suprised him.
+He wasn't aware of *that* risk.
+%
+A handsome young rodent named Gratian
+As a lifeguard became a sensation.
+ All the lady mice waved
+ And screamed to be saved
+By his mouse-to-mouse resuscitation.
+%
+A happy old hooker named Grace
+Once sponsored a cunt-lapping race.
+ It was hard for beginners
+ To tell who were winners :
+There were cunt hairs all over the place.
+%
+A hardware debugger named Court
+Shoved his tool in an Ethernet port.
+ But its buffer array
+ Only handled 1K,
+So the port's driver cut it off short.
+%
+A haughty young wench of Del Norte
+Would fuck only men over forty.
+ Said she, "It's too quick
+ With a young fellow's prick;
+I like it to last, and be warty."
+%
+A headstrong young woman in Ealing
+Threw her two weeks' old child at the ceiling;
+ When quizzed why she did,
+ She replied, "To be rid
+Of a strange, overpowering feeling."
+ -- Edward Gorey
+%
+A hearty young fellow named Yost
+Once had an affair with a ghost.
+ At the height of the spasm
+ The poor ectoplasm
+Cried, "Goodie, I feel it ... almost."
+%
+A hearty young fellow named Yost
+Once had an affair with a ghost.
+ At the height of the spasm
+ The poor ectoplasm
+Cried, "Goodie, I feel it... almost."
+%
+A hidebound young virgin named Carrie
+Would say, when the fellows got hairy :
+ "Keep your prick in your pants
+ Till the end of this dance--"
+Which is why Carrie still has her cherry.
+%
+A highly aesthetic young Jew
+Had eyes of a heavenly blue;
+ The end of his dillie
+ Was shaped like a lilly,
+And his balls were too utterly two!
+%
+A highway patrol buff named Claire,
+Once screwed half a troop on a dare,
+ And her parts grew so hot,
+ There was steam on her twat,
+So they nicknamed her Smokey the Bare!
+%
+A horny young fellow named Reg,
+Was jerking off under a hedge.
+ The gardener drew near
+ With a huge pruning shear,
+And trimmed off the edge of his wedge.
+%
+A huge-organed female in Dallas,
+Named Alice, who yearned for a phallus,
+ Was virgo intacto,
+ Because, ipso facto,
+No phallus in Dallas fit Alice.
+%
+A joker who haunts Monticello
+Is really a terrible fellow.
+ In the midst of caresses
+ He fills ladies dresses
+With garter snakes, ice cubes, and jello.
+%
+A lacklustre lady of Brougham
+Weaveth all night at her loom.
+ Anon she doth blench
+ When her lord and his wench
+Pull a chain in the neighbouring room.
+%
+A lad, at his first copulation,
+Cried, "What a sensation! Inflation,
+ Gyration, elation
+ Throughout the duration,
+I guess I'll give up masturbation."
+%
+A lad from far-off Transvaal
+Was lustful, but tactful withal.
+ He'd say, just for luck,
+ "Mam'selle, do you fuck?"
+But he'd bow till he almost would crawl.
+%
+A lad of the brainier kind
+Had erogenous zones in his mind.
+ He got his sensations,
+ By solving equations,
+(Of course, in the end, he went blind.)
+%
+A lady born under a curse
+Used to drive forth each day in a hearse;
+ From the back she would wail
+ Through a thickness of veil:
+"Things do not get better, but worse."
+ -- Edward Gorey
+%
+A lady both callous and brash
+Met a man with a vast black moustache;
+ She cried, "Shave it, O do!
+ And I'll put it with glue
+On my hat as a sort of panache."
+ -- Edward Gorey
+%
+A lady from Kalamazoo
+Once found she had nothing to do,
+ So she sat on the stairs
+ And she counted her hairs:
+4,302.
+%
+A lady from Old Little Rock
+In fidelity took little stock,
+ And deserted her man
+ In the streets of Japan
+For a boy with a prehensile cock.
+%
+A lady removing her scanties,
+Heard them crackle electrical chanties.
+ Said her beau, "Have no fear,
+ For the reason is clear:
+You simply have amps in your panties.
+%
+A lady stockholder quite hetera
+Decided her fortune to bettera:
+ On the floor, quite unclad,
+ She successively had
+Merrill Lynch, Pierce, Fenner, et cetera...
+%
+A lady was seized with intent
+To revise her existence misspent.
+ So she climbed up the dome
+ Of St. Peter's in Rome,
+Where she stayed through the following Lent.
+ -- Edward Gorey
+%
+A lady while dining at Crewe
+Found an elephant's whang in her stew.
+ Said the waiter, "Don't shout,
+ And don't wave it about,
+Or the others will all want one too."
+%
+A lady, while dining in Crewe,
+Found an elephant's whang in her stew.
+ Said the waiter, "Don't shout
+ Or wave it about
+Or the others will ask for one, too."
+%
+A lady who signs herself "Vexed"
+Writes to say she believes she's been hexed:
+ "I don't mind my shins
+ Being stuck full of pins,
+But I fear I am coming unsexed."
+ -- Edward Gorey
+%
+A lady with features cherubic
+Was famed for her area pubic.
+ When they asked her its size
+ She replied in surprise,
+"Are you speaking of square feet, or cubic?"
+%
+A lass at the foot of her class
+Asked a brainier chick how to pass.
+ She replied, "With no fuss
+ You can get a B-plus,
+By letting the prof pat your ass."
+%
+A lecherous barkeep named Dale,
+After fucking his favorite female,
+ Mixed Drambuie and scotch
+ With the cream in her crotch
+For a lustier, Rusty-er Nail.
+%
+A licentious old justice of Salem
+Used to catch all the harlots and jail 'em.
+ But instead of a fine
+ He would stand them in line,
+With his common-law tool to impale 'em.
+%
+A limerick packs laughs anatomical
+Into space that is quite economical.
+ But the good ones I've seen
+ So seldom are clean,
+And the clean ones so seldom are comical.
+%
+A lonely young lad of Eton
+Used always to sleep with the heat on,
+ Till he ran into a lass
+ Who showed him her ass --
+Now they sleep with only a sheet on.
+%
+A lovely young diver named Nancy,
+Wore a bikini bottom quite chancy,
+ The fish of Bonaire,
+ Watched her Derriere,
+And the sea fans all tickled her fancy.
+%
+A lovely young maid from St. Jude
+Once rode through the streets in the nude.
+ The police cried, "Whatam--
+ Agnificent bottom"
+And slapped it as hard as they could.
+%
+A lovely young maid from St. Jude
+Once rode through the streets in the nude.
+ The police cried, "Whatam--
+ Agnificent bottom"
+And slapped it as hard as they cude.
+%
+A lusty young maid from Seattle
+Got pleasure by sleeping with cattle;
+ Till she found a bull
+ Who filled her so full
+It made both her ovaries rattle.
+%
+A lusty young woodsman of Maine
+For years with no woman had lain,
+ But he found sublimation
+ At a high elevation
+In the crotch of a pine -- God, the pain!
+%
+A madam who ran a bordello
+Put come in her pineapple jello,
+ For the rich, sexy taste
+ And not wanting to waste
+That greasy kid stuff from a fellow.
+%
+A maestro directing in Rome
+Had a quaint way of driving it home.
+ Whoever he climbed
+ Had to keep her tail timed
+To the beat of his old metronome.
+%
+A maiden who lived in Virginny
+Had a cunt that could bark, neigh and whinny.
+ The horsey set rushed her,
+ But success finally crushed her
+For her tone soon became harsh and tinny.
+%
+A maiden who travelled in France
+Once got on a train, just by chance.
+ The engineer fucked her,
+ The conductor sucked her,
+And the fireman came in his pants.
+%
+A maiden who wrote of big cities
+Some songs full of love, fun and pities,
+ Sold her stuff at the shop
+ Of a musical wop
+Who played with her soft little titties.
+%
+A man was once heard to boast,
+That he received a parcel by post,
+ It contained, so we heard,
+ A magnificent turd,
+And the balls of his grandfather's ghost.
+%
+A marine being sent to Hong Kong
+Got a doctor to alter his dong.
+ He sailed off with a tool
+ Flat and thin as a rule -
+When he got there he found he was wrong.
+%
+A mathematician named Hall
+Had a hexhedronical ball,
+ And the square of its weight
+ Times his pecker's, plus eight,
+Was four-fifths of five-eighths of fuck-all.
+%
+A mathematician named Hall
+Has a hexahedronical ball,
+ And the cube of its weight
+ Times his pecker's, plus eight
+Is his phone number -- give him a call...
+%
+A mathematician named Klein
+Thought the Mobius band was divine.
+ Said he, "If you glue
+ The edges of two,
+You'll get a weird bottle like mine!
+%
+A middle-aged codger named Bruin
+Found his love life completely in ruin,
+ For he flirted with flirts
+ Wearing pants and no skirts,
+And he never got in for no screwin'.
+%
+A milkmaid there was, with a stutter,
+Who was lonely and wanted a futter.
+ She had nowhere to turn,
+ So she diddled a churn,
+And managed to come with the butter.
+%
+A mortician who practised in Fife
+Made love to the corpse of his wife.
+ "How could I know, Judge?
+ She was cold, did not budge--
+Just the same as she'd acted in life."
+%
+A nasty old drunk in Carmel
+Thinks it funny to piss in the well.
+ He says, "Some don't favor
+ That unusual flavor,
+But I don't drink the stuff -- what the hell!"
+%
+A nervous young fellow named Fred
+Took a charming young widow to bed.
+ When he'd diddled a while
+ She remarked with a smile,
+"You've got it all in but the head."
+%
+A new dramatist of the absurd
+Has a voice that will shortly be heard.
+ I learn from my spies
+ He's about to devise
+An unprintable three-letter word.
+%
+A newlywed couple from Goshen
+Spent their honeymoon sailing the ocean.
+ In twenty-eight days
+ They got laid eighty ways --
+Imagine such fucking devotion!
+%
+A newly-wed man of Peru
+Found himself in a terrible stew:
+ His wife was in bed
+ Much deader than dead,
+And so he had no one to screw.
+%
+A notorious whore named Ms. Hearst,
+In the pleasures of men was well-versed.
+ Reads the sign o'er the head
+ Of her well-rumpled bed
+"The customer always comes first."
+%
+A novice was told by the Abbot:
+"Consider the goat and the rabbit.
+ While they roll in the hay
+ You just stay home and pray.
+You've got to get out of that habit."
+%
+A nudist resort at Benares
+Took a midget in all unawares.
+ But he made members weep
+ For he just couldn't keep
+His nose out of private affairs.
+%
+A nurse motivated by spite
+Tied her infantine charge to a kite;
+ She launched it with ease
+ On the afternoon breeze,
+And watched till it flew out of sight.
+ -- Edward Gorey
+%
+A pansy who lived in Khartoum
+Took a lesbian up to his room.
+ They argued all night
+ Over who had the right
+To do what, with which, and to whom.
+%
+A passionate red-haired girl
+When you kissed her, her senses would whirl,
+ And her twat would get wet,
+ And would wiggle and fret,
+And her cunt-lips would curl and unfurl.
+%
+A pathetic old maid of Bordeaux
+Fell in love with a dashing young beau.
+ To arrest his regard
+ She would squat in his yard
+And longingly pee in the sneaux.
+%
+A petulant man once said, "Pish,
+Your cunt is as big as a dish."
+ She replied, "Why, you fool,
+ With your limp little tool,
+It's like driving a pin with a fish."
+%
+A physical fellow named Fisk
+Could screw at a rate very brisk.
+ So fast was his action
+ The Fitzgerald contraction
+Would shrink up his rod to a disk.
+%
+A pious old woman named Tweak
+Had taught her vagina to speak.
+ It was frequently liable
+ To quote from the Bible,
+But when fucking -- not even a squeak!
+%
+A pious young lady named Finnegan
+Would caution her friend, "Well, you're in again;
+ So time it aright,
+ Make it last through the night,
+For I certainly don't want to sin again!"
+%
+A pious young lady of Chichester
+Made all of the saints in their niches stir
+ And each morning at matin
+ Her breast in pink satin
+Made the bishop of Chichester's breeches stir.
+%
+A playful young chemist named Byrd
+Had an urge that could not be deferred.
+ So to irritate Knox
+ He shit in his sox,
+And plastered the walls with his turd.
+%
+A plumber whose name was John Brink
+Plumbed the cook as she bent o'er the sink.
+ Her resistance was stout,
+ And John Brink petered out,
+With his pipe-wrench all limber and pink.
+%
+A potter who lived in Bombay
+Once fashioned a cunt out of clay;
+ But the heat of his prick
+ Kilned the damn thing to brick
+And chafed all his foreskin away.
+%
+A pretty wife living in Tours
+Demanded her daily amour.
+ But the husband said, "No!
+ It's to much. Let it go!
+My backsides are dragging the floor."
+%
+A pretty young boy known as Kevin
+Was raped in a pasture by seven
+ Lascivious beasts
+ (Oh, those Anglican priests)
+And such is the Kingdom of Heaven.
+%
+A pretty young lady named Vogel
+Once sat herself down on a molehill.
+ A curious mole
+ Nosed into her hole --
+Ms. Vogel's ok, but the mole's ill.
+%
+A pretty young lady named Vogel
+Once sat herself down on a molehill.
+ A curious mole
+ Nosed into her hole --
+Ms. Vogel's okay, but the mole's ill.
+%
+A pretty young lady named Vogel
+Once sat herself down on a molehill.
+ A curious mole
+ Nosed into her hole-
+Ms. Vogel's ok, but the mole's ill.
+%
+A pretty young lady named Vogel
+Once sat herself down on a molehill.
+ A curious mole
+ Nosed into her hole --
+Ms. Vogel's okay, but the mole's ill.
+%
+A pretty young maiden from France
+Decided she'd "just take a chance."
+ She let herself go
+ For an hour or so,
+And now all her sisters are aunts.
+%
+A princess who lived near a bog
+Met a prince in the form of a frog.
+ Now she and her prince
+ Are the parents of quints,
+Four boys and one fine polliwog.
+%
+A princess who reigned in Baroda
+Made her home on a purple pagoda.
+ She festooned the walls
+ Of her halls with the balls
+And the tools of the fools who be-stroda'.
+%
+A programmer down in Moline
+Said, I'm the match for any machine.
+ My secret's aversion,
+ To loops and recursion,
+Just acres of in-line routine.
+ -- W.J. Wilson
+%
+A rapist who reeked of cheap booze
+Attempted to ravish Miss Hughes.
+ She cried, "I suppose
+ There's no time for my clothes,
+But PLEASE let me take off my shoes!"
+%
+A rapturous young fellatrix
+One day was at work on five pricks.
+ With an unholy cry
+ She whipped out her glass eye:
+"Tell the boys I can now take on six."
+%
+A reckless young lady of France
+Had no qualms about taking a chance,
+ But she thought it was crude
+ To get screwed in the nude,
+So she always went home with damp pants.
+%
+A remarkable race are the Persians;
+They have such peculiar diversions.
+ They make love the whole day
+ In the usual way
+And save up the nights for perversions.
+%
+A remarkable race are the Persians,
+They have such peculiar diversions.
+ They screw the whole day
+ In the regular way,
+And save up the nights for perversions.
+%
+A responsive young girl from the East
+In bed was an able artiste.
+ She had learned two positions
+ From family physicians,
+And ten more from the old parish priest.
+%
+A romantic attraction has clung
+To a chap of whom damsels have sung:
+ "'Tis the Scourge from the East,
+ That lascivious beast
+Who was known as Attila the Hung!"
+%
+A sailor who slept in the sun,
+Woke to find his fly buttons undone,
+ He remarked with a smile,
+ "Good grief, a sun-dial!
+And now it's a quarter-past one."
+%
+A savvy young hooker named Gail
+Got busted and lodged in the jail.
+ But the jailer got hot,
+ To be lodged in her twat,
+And so Gail made the bail with her tail.
+%
+A scandal involving an oyster
+Sent the Countess of Clews to a cloister
+ She preferred it, in bed,
+ To the count (so she said)
+'Cause it's longer and stronger and moister.
+%
+A scream from the crypt of St. Giles
+Resounded for miles upon miles.
+ Said the friar, "Good gracious,
+ The brother Ignatious
+Forgeteth the abbot hath piles."
+%
+A seafaring hacker named Slatey
+Went to bed with a VAX/780.
+ The thing's learned to swear
+ With a nautical air,
+And refers to its users as "matey".
+%
+A sex-loving coed named Bree
+Caught the clap from her Apple IIE.
+ The joystick, she found,
+ Had been fooling around
+With a neighboring student's PC.
+%
+A silly young man from Hong Kong
+Had hands that were skinny and long.
+ He ate rice with his fingers--
+ The taste of it lingers,
+But now all his fingers are gone.
+%
+A slick talking pirate named Bruce
+To steal code, had a plan to seduce
+ An Apple II+.
+ Now Bruce wears a truss
+And was jailed for computer abuse.
+%
+A software technician from Digital
+Had hardware extremely prodigical.
+ It's rumoured, I hear,
+ That when he was near
+He made the ladies all flustered and fidgital.
+%
+A space shuttle pilot named Ventry,
+Made love to a lovely girl sentry.
+ She started to pout,
+ Because it fell out,
+But the mission was saved by re-entry.
+%
+A sperm faced, alack and forsooth,
+His moment of sexual truth.
+ He'd expected to fall
+ On a womb's spongy wall
+But was dashed to his death on a tooth.
+%
+A spinster in Kalamazoo
+Once strolled after dark by the zoo.
+ She was seized by the nape,
+ And fucked by an ape,
+And she murmured, "A wonderful screw."
+
+And she added, "You're rough, yes, and hairy,
+But I hope -- yes I do -- that I marry
+ A man with a prick
+ Half as stiff and as thick
+As the kind that you zoo-keepers carry."
+%
+A spunky young schoolboy named Fred
+Used totoss off each night while in bed.
+ Said his mother, "Dear lad,
+ That's exceedingly bad--
+Jump in here with your mamma instead."
+%
+A starship commander named Kirk
+Emerged from his cabin berserk.
+ He grabbed a girl yeoman
+ Beneath the abdomen,
+And gave her a physical jerk.
+%
+A stout Gaelic warrior, McPherson,
+Was having a captive, a person
+ Who was not averse
+ Though she had the curse,
+And he'd breeches of bristling furs on.
+%
+A structured programmer named Drew
+Was intensely turned on by "goto".
+ When he saw it in code
+ He'd shoot off his load.
+It's a good thing his shop used so few.
+%
+A studious professor named Nestor
+Bet a whore all his books that he could best her.
+ But she drained out his balls
+ And skipped up the walls,
+Beseeching poor Nestor to rest her.
+%
+A sweetheart named Teresa Arden
+Went down on her beau in the garden.
+ He said, "Good lord, Tess,
+ Don't swallow that mess "
+And she replied, "Ulp, beg your pardon?"
+%
+A sweetheart named Teresa Arden
+Went down on her beau in the garden.
+ He said, "Good lord, Tess,
+ Don't swallow that mess!"
+And she replied, "Ulp, beg your pardon?"
+%
+A systems programmer named Sprotic
+Found his software intensely erotic.
+ In jealous distress
+ He wiped his OS.
+It's possible that he's psychotic.
+%
+A talented fuckstress, Miss Chisholm,
+Was renowned for her fine paroxysm.
+ While the man detumesced
+ She still spent on with zest,
+Her rapture sheer anachronism.
+%
+A talented girl from Detroit
+Could fuck you in ways quite adroit.
+ She could squeeze her vagina
+ To a pin-point or finer
+Or open it out like a quoit.
+%
+A team playing baseball in Dallas
+Called te umpire blind out of malice.
+ While this worthy had fits
+ The team made eight hits
+And a girl in the bleachers named Alice.
+%
+A team playing baseball in Dallas
+Called the umpire blind out of malice.
+ While this worthy had fits
+ The team made eight hits
+And a girl in the bleachers named Alice.
+%
+A teenage protester named Lil
+Cried, "Those watergate spies make me ill
+ First they bugged our martinis,
+ Our bras and bikinis,
+And now they are bugging the pill."
+%
+A thrice-married gal from L.A.
+Said, "My hymen's intact to this day,
+ 'Cause my first (a shrink) talked of it,
+ The voyeur only gawked at it,
+And my most recent man's a gourmet."
+%
+A tidy young lady of Streator
+Dearly loved to nibble a peter.
+ She always would say,
+ "I prefer it this way.
+I think it is very much neater."
+%
+A timid young woman named Jane
+Found parties a terrible strain;
+ With movements uncertain
+ She'd hide in a curtain
+And make sounds like a rabbit in pain.
+ -- Edward Gorey
+%
+A tired young trollop of Nome
+Was worn out from her toes to her dome.
+ Eight miners came screwing,
+ But she said, "Nothing doing;
+One of you has to go home!"
+%
+A trapper named Francois Lefebrve
+Once captured and buggered a beabrve.
+ The result of this fuck
+ Was a three titted duck,
+A canoe, and an Irish retriebrve.
+%
+A tutor who tooted a flute
+Tried to tutor two tutors to toot
+ Said the two to the tutor:
+ "Is it harder to toot or
+To tutor two tutors to toot"
+%
+A vengeful technician named Schmitz
+Caused a disk drive to go on the fritz.
+ He covered the platter
+ With bats' fecal matter.
+Now it's seek time is really the pits.
+%
+A very odd pair are the Pitts:
+His balls are as large as her tits,
+ Her tits are as large
+ As an invasion barge--
+Neither knows how the other cohabits.
+%
+A wanton young lady from Wimley
+Reproached for not acting quite primly
+ Said, "Heavens above!
+ I know sex isn't love,
+But it's such an entrancing facsimile."
+%
+A water pipe suited miss Hunt;
+She used it for many a bunt.
+ But the unlucky wench
+ Got it caught in her trench ---
+It took twenty-two men and a big Stillson wrench,
+To get the thing out of her cunt.
+%
+A water pipe suited miss Hunt;
+She used it for many a bunt.
+ But the unlucky wench
+ Got it caught in her trench ---
+It took twenty-two men and a big Stillson wrench,
+To get the thing out of her cunt.
+%
+A weary old lecher named Blott
+Took a luscious young blond to his yacht.
+ Too lazy to rape her,
+ He made darts out of paper,
+Which he leisurely tossed at her twat.
+%
+A whimsical fellow named Bloch
+Could beat the base drum with his cock.
+ With a special erection
+ He could play a selection
+From Johann Sebastian Bach.
+%
+A wicked stone cutter named Cary
+Drilled holes in divine statuary.
+ With eyes full of malice
+ He pulled out his phallus,
+And buggered a stone Virgin Mary.
+%
+A wide-bottomed girl named Trasket
+Had a hole as big as a basket.
+ A spot, as a bride,
+ In it now, you could hide,
+And include with your luggage your mascot.
+%
+A widow whose singular vice
+Was to keep her late husband on ice
+ Said, "It's been hard since I lost him --
+ I'll never defrost him!
+Cold comfort, but cheap at the price."
+%
+A wonderful bird is the pelican.
+His mouth can hold more than his belican.
+ He can take in his beak
+ Enough food for a week.
+And I'm darned if I know how the helican.
+%
+A wonderful bird is the pelican.
+His mouth can hold more than his belican.
+ He can take in his beak
+ Enough food for a week.
+I'm darned if I know how the helican.
+%
+A wonderful tribe are the Sweenies,
+Renowned for the length of their peenies.
+ The hair on their balls
+ Sweeps the floors of their halls,
+But they don't look at women, the meanies.
+%
+A wood-fetish busboy named Gable
+Is rapid, is thorough, is able;
+ But when everything's cleared,
+ He gives way to the weird,
+As he lovingly busses each table.
+%
+A worn-out young husband named Lehr
+Her daily his wife's plaintive prayer:
+ "Slip on a sheath, quick,
+ Then slip your big dick
+Between these lips covered with hair."
+%
+A worried young man from Stamboul
+Discovered red spots on his tool.
+ Said the doctor, a cynic,
+ "Get out of my clinic
+Just wipe off the lipstick, you fool."
+%
+A worried young man from Stamboul
+Founds lots of red spots on his tool.
+ Said the doctor, a cynic,
+ "Get out of my clinic;
+Just wipe off the lipstick, you fool!"
+%
+A young bride and groom of Australia
+Remarked as they joined genitalia :
+ "Though the system seems odd,
+ We are thankful that God
+Developed the genus Mammalia."
+%
+A young fellow discovered through Freud
+That although of penis devoid,
+ He could practice coitus
+ By eating a foetus,
+And his parents were quite overjoyed.
+%
+A young Juliet of St. Louis
+On a balcony stood acting screwy.
+ Her Romeo climbed,
+ But he wasn't well timed,
+And half-way up, off he went -- blooey!
+%
+A young lad named Lester McGraw
+Caught a stranger on top of his Maw.
+ As he watched him stick her
+ He said, with a snicker,
+"You do it much faster than Paw."
+%
+A young lady sat by the sea,
+Just as proper as proper could be.
+ A young fellow goosed her,
+ And roughly seduced her,
+So she thanked him and went home to tea.
+%
+A young lady who lived by the Usk
+Subsisted each day on a rusk;
+ She ate the first bite
+ Before it was light,
+And the last crumb sometime after dusk.
+ -- Edward Gorey
+%
+A young lass got married at Chester;
+Her mother she kissed and she blessed her.
+ Said she, "You're in luck --
+ 'E's a stunning good fuck,
+For I've 'ad 'im meself down in Leicester."
+%
+A young maiden from France was no prude,
+She decided to dive in the nude,
+ But her buddy, behind,
+ Went out of his mind,
+When he noticed where she was tatooed.
+%
+A young man by a girl was desired
+To give her the thrills she required,
+ But he died of old age
+ Ere his cock could assuage
+The volcanic desire it inspired.
+%
+A young man from the banks of the Po
+Found his cock had elongated so,
+ That when he'd pee
+ It was never he
+But only his neighbors who'd know.
+%
+A young man grew increasingly peaky
+In a house where the hinges were squeaky,
+ The ferns curled up brown,
+ The ceilings flaked down,
+And all of the faucets were leaky.
+ -- Edward Gorey
+%
+A young man maintained that his trigger
+Was so big that there weren't any bigger.
+ But this long and thick pud
+ Was so heavy it could
+Scarcely lift up its head. It lacked vigor.
+%
+A young man of acumen and daring,
+Who'd amassed a great fortune in herring,
+ Was left quite alone
+ When it soon became known
+That their use at his board was unsparing.
+ -- Edward Gorey
+%
+A young man of Llanfairpwllgwyngyll
+While bent over plucking a dingle
+ Had the whole of Eisteddfod
+ Taking turns at his pod
+While they sang some impossible jingle.
+%
+A young man with passions quite gingery
+Tore a hole in his sister's best lingerie.
+ He slapped her behind
+ And made up his mind
+To add incest to insult and injury.
+%
+A young polo-player of Berkeley
+Made love to his sweetheart beserkly.
+ In the midst of each chukker
+ He would break off and fuck her
+Horizontally, laterally and verkeley.
+%
+A young systems programmer of Sprotic
+Found his software intensely erotic.
+ In jealous distress
+ He wiped his OS.
+It's possible that he's a psychotic.
+%
+A young violinist from Rio
+Was seducing a woman named Cleo.
+ As she took down her panties
+ She said, "No andantes;
+I want this allegro con brio!"
+%
+A young wife in the outskirts of Reims
+Preferred frigging to going to mass.
+ Said her husband, "Take Jacques,
+ Or any young cock,
+For I cannot live up to your ass."
+%
+A young woman got married at Chester,
+Her mother she kissed her and blessed her.
+ Says she, "You're in luck,
+ He's a stunning good fuck,
+For I've had him myself down in Leicester."
+%
+According to experts, the oyster
+In its shell - a crustacean cloister -
+ May frequently be
+ Either he or a she
+Or both, if it should be its choice ter.
+%
+Alas for the Countess d'Isere,
+Whose muff wasn't furnished with hair.
+ Said the Count, "Quelle surprise!"
+ When he parted her thighs;
+"Magnifique! Pourtant pas de la guerre."
+%
+All the female apes ran from King Kong
+For his dong was unspeakably long.
+ But a friendly giraffe
+ Quaffed his yard and a half,
+And ecstatically burst into song.
+%
+An aesthete from South Carolina
+Had a cock that tickled like China,
+ But while shooting his load
+ It cracked like old Spode,
+So he's bought him a Steuben vagina.
+%
+An agreeable girl named Miss Doves
+Likes to jack off the young men she loves.
+ She will use her bare fist
+ If the fellows insist
+But she really prefers to wear gloves.
+%
+An AI researcher named Bluth
+Wrote, to find out the sexual truth,
+ Eroticon VI,
+ Which he taught certain tricks
+Which I'm sure can't be found in Knuth.
+%
+An amazon giantess named Dunne
+Let a midget screw her for fun.
+ But the poor little runt
+ Was engulfed in her cunt
+And re-born as the twin of his son.
+%
+An ambitious lady named Harriet
+Once dreamed she was raped in a chariot
+ By seventeen sailors
+ A monk and three tailors,
+Mohammed and Judas Iscariot.
+%
+An anonymous woman we knew
+Was dozing one day in her pew;
+ When the preacher yelled "Sin!"
+ She said, "Count me in
+As soon as the service is through."
+%
+An architect fellow named Yoric
+Could, when feeling euphoric,
+ Display for selection
+ Three kinds of erection-
+Corinthian, ionic, and doric.
+%
+An architect fellow named Yoric
+Could, when feeling euphoric,
+ Display for selection
+ Three kinds of erection-
+Corinthian,ionic,and doric.
+%
+An ardent young man named Magruder
+Once wooed a girl nude in Bermuda.
+ She thought it quite lewd
+ To be wooed in the nude,
+But magruder was shrewder, he screwed her.
+%
+An Argentine gaucho named Bruno
+Who said, "Fucking is one thing I do know.
+ Women are fine
+ And sheep are divine
+But llamas are numero uno."
+%
+An ARPAnaut name of Corvette
+Had a fetish involving the net.
+ As he fondled his IMP
+ His cock went from limp
+To as hard as concrete which has set.
+%
+An arrogant wench from Salt Lake
+Liked to tease all the boys on the make.
+ She was finally the prize
+ Of a man twice her size
+And all she recalls is the ache.
+%
+An artist who lived in Australia
+Once painted his ass like a Dahlia.
+ The drawing was fine,
+ The colour - devine,
+The scent - ah, that was a failia.
+%
+An artist who lived in Australia
+Once painted his ass like a Dahlia.
+ The drawing was fine,
+ The colour - divine,
+The scent - ah, that was a failia.
+%
+An eager young hacker named Gus
+Once buggered a VAX Unibus.
+ The hardware went bad,
+ But not the young lad
+(Except for the toupee and truss).
+%
+An eager young hacker named Gus
+Once buggered a VAX Unibus.
+ The hardware went bad,
+ But not the young lad
+He didn't expect all that fuss!
+%
+An Edwardian father named Udgeon,
+Whose offspring provoked him to dudgeon,
+ Used on Saturday nights
+ To turn down the lights,
+And chase them around with a bludgeon.
+ -- Edward Gorey
+%
+An envious girl named McMeanus
+Was jealous of her lover's big penis.
+ It was small consolation
+ That the rest of the nation
+Of women were with her in weeness.
+%
+An exotic young lady named Suki
+Once danced in a troupe of kabuki
+ When asked for a fuck
+ She said, "Solly, no luck--
+See here: looky looky, no nuki "
+%
+An impish young fellow named James
+Had a passion for idiot games.
+ He lighted the hair
+ Of his lady's affair
+And laughed as she pissed through the flames.
+%
+An impotent Scot named MacDougall
+Had to husband his sperm and be frugal.
+ He was gathering semen
+ To gender a he-man,
+By screwing his wife through a bugle.
+%
+An incautious young woman named Venn
+Was seen with the wrong sort of men;
+ She vanished one day,
+ But the following May
+Her legs were retrieved from a fen.
+ -- Edward Gorey
+%
+An indefatigable woman named Bavel
+Had often occasion to travel;
+ On the way she would sit
+ And furiously knit,
+And on the way back she'd unravel.
+ -- Edward Gorey
+%
+An ingenious young man in South Bend
+Made a synthetic ass for a friend,
+ But the friend shortly found
+ Its construction unsound,
+It was simply a bother -- no end.
+%
+An innocent maiden named Herridge
+Was cruelly tricked ito marriage;
+ When she later found out
+ What her spouse was about,
+She threw herself under a carriage.
+ -- Edward Gorey
+%
+An inquisitive virgin named Dora
+Asked the man who started to bore 'er :
+ "Do you mean birds and bees
+ Go through antics like these,
+To suppy us our fauna and flora?"
+%
+An irate young lady named Booker
+Told her husband, "You beast, I'm no hooker!
+ If you want it queer ways,
+ Go to whores for your lays!"
+So he packed up his tool and forsook 'er.
+%
+An octagenerian Jew
+To his wife remained steadfastly true.
+ This was not from compunction,
+ But due to dysfunction
+Of his spermatic glands -- nuts to you.
+%
+An old couple just at Shrovetide
+Were having a piece -- when he died.
+ The wife for a week
+ Sat tight on his peak,
+And bounced up and down as she cried.
+%
+An old electronic designer
+Had designs on a minor named Dinah.
+ He couldn't carry them out
+ For his prick was too stout,
+And too small was the minor's vagina.
+%
+An old gentleman's crotchets and quibblings
+Were a terrible trial to his siblings,
+ But he was not removed
+ Till one day it was proved
+That the bell-ropes were damp with his dribblings.
+ -- Edward Gorey
+%
+An old maid who had a pet ape
+Lived in fear of perpetual rape.
+ His red, hairy phallus
+ So filled her with malice
+That she sealed up her snatch with Scotch tape.
+%
+An old man at the Folies Bergere
+Had a jock, a most wondrous affair:
+ It snipped off a twat-curl
+ From each new chorus girl,
+And he had a wig made of the hair.
+%
+An organist playing in York
+Had a prick that could hold a small fork,
+ And between obbligatos
+ He'd munch at tomatoes,
+To keep up his strength while at work.
+%
+An orgasmic young sex star named Sue
+Was a hit as she writhed to a screw.
+ Her climatic fame spread
+ With an ad blitz that said:
+Coming soon at a theater near you!
+%
+An uptight young lady named Breerley
+Who valued her morals too dearly
+ Had sex, so I hear,
+ Only once every year,
+And she strained her vagina severely.
+%
+And earnest young woman in Thrace
+Said, "Darling, that's not the right place!"
+ So he gave her a thwack,
+ And did on her back,
+What he couldn't have done face to face.
+%
+And then there's the story that's fraught
+With disaster -- of balls that got caught,
+ When a chap took a crap
+ In the woods, and a trap
+Underneath... Oh, I can't bear the thought!
+%
+As for weirdness, the guy who's the tops
+Is a kinky old butcher named Pops.
+ Since he thinks it's effete
+ To be beating his meat,
+What he's into is licking his chops.
+%
+As he came in his chubby choirboy,
+Father Burke said, "There's no greater joy!
+ If no sodomy levens
+ And possible heavens,
+Existence will merely annoy."
+%
+As the breeches-buoy swing towards the rocks,
+Its occupant cried, "Save my socks!
+ I could not bear the loss,
+ For with scarlet silk floss
+My mama has embroidered their clocks."
+ -- Edward Gorey
+%
+As tourists inspected the apse
+An ominous series of raps
+ Came from under the altar,
+ Which caused some to falter
+And others to shriek and collapse.
+ -- Edward Gorey
+%
+Asked a supplicant priest of the pontiff,
+"Do I sin if I do what I want, if
+ I screw a young nun
+ In the eastertide sun?"
+His holiness murmured, "Gut yontiff."
+%
+At a contest for farting in Butte
+One lady's exertion was cute :
+ It won the diploma
+ For fetid aroma,
+And three judges were felled by the brute.
+%
+At a dance, a girl from Connecticut
+Showed an absolute absence of etiquette
+ Letting all comers press
+ Through the skirt of her dress
+And wiping the mess with her petticoat.
+%
+At the end of all civilization
+Is the planet Terminus's location.
+ There's a girl there whose feat,
+ Without stone or concrete,
+Nonetheless, was to lay the Foundation.
+%
+At the moment Japan declared war
+A sailor was fucking a whore.
+ He said, "After this poke
+ `Long and hard' ain't no joke;
+This means months 'til I get back ashore."
+%
+At the Villa Nemetia the sleepers
+Are disturbed by a phantom in weepers;
+ It beats all night long
+ A dirge on a gong
+As it staggers about in the creepers.
+ -- Edward Gorey
+%
+At Vassar, sex isn't injurious,
+Though of love we are never penurious.
+ Thanks to vulcanized aids,
+ Though we may die old maids,
+At least we shall never die curious.
+%
+At whist drives and strawberry teas
+Fan would giggle and show off her knees;
+ But when she was alone
+ She'd drink eau de cologne,
+And weep from a sense of unease.
+ -- Edward Gorey
+%
+Augustus, for slpashing his soup,
+Was put for the night on the stoop;
+ In the morning he'd not
+ Repented a jot,
+And next day he was dead of the croup.
+ -- Edward Gorey
+%
+Augustus, for splashing his soup,
+Was put for the night on the stoop;
+ In the morning he'd not
+ Repented a jot,
+And next day he was dead of the croup.
+ -- Edward Gorey
+%
+Back in the days of old Adam
+The grass served as mattress for madam,
+ And they spent the whole day
+ On the sex that today
+They would bounce on box springs, if they had 'em.
+%
+Each Friday his engines abort,
+But Scotty is never caught short.
+ He fills his machines
+ With space-navy beans,
+And farts the ship back into port.
+%
+Each night Father fills me with dread
+When he sits on the foot of my bed;
+ I'd not mind that he speaks
+ In gibbers and squeaks,
+But for the seventeen years he's been dead.
+ -- Edward Gorey
+%
+Each night Father fills me with dread
+When he sits on the foot ofmy bed;
+ I'd not mind that he speaks
+ In gibbers and squeaks,
+But for the seventeen years he's been dead.
+ -- Edward Gorey
+%
+From deep in the crypt at St. Giles
+Came a bellow that echoed for miles.
+ Said the rector, "My gracious,
+ Has Father Ignatius
+Forgotten the Bishop has piles!?"
+%
+From Number Nine, Penwiper Mews,
+There is really abominable news;
+ They've discovered a head
+ In the box for the bread,
+But nobody seems to know whose.
+ -- Edward Gorey
+%
+From the bathing machine came a din
+As of jollification within;
+ It was heard far and wide,
+ And the incoming tide
+Had a definite flavour of gin.
+ -- Edward Gorey
+%
+"Fucked by the finger of Fate!"
+Bewailed a young fellow named Tate.
+ "Since dating Miss Baugh,
+ My whole tongue has been raw--
+It must have been something I ate."
+%
+In the case of a lady named Frost,
+Whose cunt's a good two feet acrost,
+ It's the best part of valor
+ To bugger the gal, or
+You're apt to fall in and get lost.
+%
+In the Garden of Eden lay Adam,
+Complacently stroking his madam,
+ And loud was his mirth
+ For on all of the earth
+There were only two balls -- and he had 'em.
+%
+In the garden of Eden lay Adam,
+Complacently stroking his madam
+ And loud was his mirth
+ For on all of the earth
+There were only two balls and he had'em.
+%
+In the little French town of Le'Beau,
+Lived a maiden exceedingly droll.
+ At a masquerade ball,
+ Clad in nothing at all,
+She backed in as a Parker house roll.
+%
+It always delights me at Hank's
+To walk up the old river banks.
+ One time in the grass
+ I stepped on an ass,
+And heard a young girl murmur, "Thanks."
+%
+It had snowed, and the man in the drift,
+Flagged her down and asked, "Give me a lift?"
+ They sat in her Bentley,
+ She fondled him gently,
+And the lift that he'd asked for was swift!
+%
+The late Brigham Young was no neuter --
+No faggot, no fairy, no fruiter.
+ Where ten thousand virgins
+ Succumbed to his urgin's
+There now stands the great State of Utah.
+%
+The latest reports from Good Hope
+State that apes there have pricks thick as rope,
+ And fuck high, wide, and free,
+ From the top of one tree
+To the top of the next -- what a scope!
+%
+The limerick, a verse form iniquitous,
+Has nonetheless been ubiquitous.
+ Once Congress in session,
+ Declared its suppression,
+But people got around that by writing the last line with no rhyme or meter.
+%
+The limerick is furtive and mean;
+You must keep her in close quarantine,
+ Or she sneaks to the slums
+ And promptly becomes
+Disorderly, drunk, and obscene.
+ -- Morris Bishop
+%
+The limerick is furtive and mean;
+You must keep her in close quarantine,
+ Or she sneaks to the slums
+ And promptly becomes
+Disorderly, drunk, and obscene.
+ -- Morris Bishop
+%
+The old archeologist, Throstle,
+Discovered a marvelous fossil.
+ He knew from its bend
+ And the knot on the end,
+T'was the penis of Paul the Apostle.
+%
+There a young man from the Coast
+Who had an affair with a ghost.
+ At the height of orgasm
+ Said the pallid phantasm,
+"I think I can feel it -- almost!"
+%
+There once was a bishop from Birmingham
+Who deflowered young girls while confirming 'em.
+ As they knelt on the hassock
+ He lifted his cassock
+And slipped his episcopal worm in 'em.
+%
+There once was a boy named Carruthers
+Who was busily fucking his mother
+ "I know it's a sin,"
+ He said, shoving it in,
+"But it's better than blowing my brother."
+%
+There once was a chick named Longet,
+Who went out to Aspen to play.
+ Along came a Spyder,
+ Who sat down beside her
+And she blew the poor bastard away.
+%
+There once was a clergyman's daughter
+Who detested the pony he bought her,
+ Till she found that its dong
+ Was as hard and as long
+As the prayers her father had taught her.
+
+She married a fellow named Tony
+Who soon found her fucking the pony.
+ Said he, "What's it got,
+ My dear, that I've not?"
+Sighed she, "Just a yard-long bologna."
+%
+There once was a couple named Kelley,
+Who lived their life belly to belly.
+ Because in their haste
+ They used library paste,
+Instead of petroleum jelly.
+%
+There once was a couple named Kelly
+Who walked around belly-to-belly.
+ It seems in their haste,
+ They used Carter's paste
+Instead of petroleum jelly.
+%
+There once was a dentist named Stone
+Who saw all his patients alone.
+ In a fit of depravity
+ He filled the wrong cavity,
+And my, how his practice has grown!
+%
+There once was a Duchess of Beever
+Who slept with her golden retriever.
+ Said the potted old Duke :
+ "Such tricks make me puke!
+Were it not for her money, I'd leave her."
+%
+There once was a Duchess of Bruges
+Whose cunt was incredibly huge.
+ Said the king to this dame
+ As he thunderously came:
+"Mon Dieu! Apres moi, le deluge!"
+%
+There once was a fag of Khartoom
+Who spent the night in a Lesbians room.
+ They argued all night,
+ Over who had the right,
+To do what, and with which, and to whom.
+%
+There once was a fairy named Avers
+Who encircled his cock with lifesavers.
+ Though buggers all claimed
+ That their asses were maimed,
+Sixy-niners all cheered the new flavors.
+%
+There once was a fellow named Bob
+Who in sexual ways was a snob.
+ One day he was swimmin'
+ With twelve naked women
+And deserted them all for a gob.
+%
+There once was a fellow named Brewster
+Who said to his wife, as he goosed her,
+ "It used to be grand
+ But look at my hand
+You're not wiping as clean as ya uster."
+%
+There once was a fellow named Howard,
+Whose tool it was nuclear-powered,
+ While grabbing some ass,
+ He reached critical mass,
+But think of the girl he deflowered!
+%
+There once was a fellow named Potts
+Who was prone to having the trots
+ But his humble abode
+ Was without a commode
+So his carpet was covered with spots.
+%
+There once was a fellow named Siegel
+Who attempted to bugger a beagle,
+ But the mettlesome bitch
+ Turned and said with a twitch,
+"It's fun, but you know it's illegal."
+%
+There once was a fellow named Sweeney
+Who spilled gin all over his weenie.
+ Not being uncouth,
+ He added vermouth
+And slipped his amour a martini.
+%
+There once was a fencer named Fisk,
+Whose speed was incredibly brisk.
+ So fast was his action,
+ The Fitzgerald contraction,
+Foreshortended his foil to a disk.
+%
+There once was a fiesty young terrier
+Who liked to bite girls on the derriere.
+ He'd yip and he'd yap,
+ Then leap up and snap;
+And the fairer the derriere the merrier.
+%
+There once was a floozie named Annie
+Whose prices were cosy--but cannie:
+ A buck for a fuck,
+ Fifty cents for a suck,
+And a dime for a feel of her fanny.
+%
+There once was a freshman named Lin,
+Whose tool was as thin as a pin,
+ A virgin named Joan
+ From a bible belt home,
+Said "This won't be much of a sin."
+%
+There once was a gangster named Brown
+- the sneakiest bastard in town.
+ He was caught by G-men
+ Shooting his semen
+Where the cops would slip and fall down.
+%
+There once was a gaucho named Bruno,
+Who said, "About sex, well, I do know,
+ Sheep are just fine,
+ Chickens, divine,
+But iguanas are Numero Uno."
+%
+There once was a gay young Parisian
+Who screwed an appendix incision,
+ And the girl of his choice
+ Could hardly rejoice
+At the horrible lack of precision.
+%
+There once was a girl from Cornell
+Whose teats were shaped like a bell.
+ When you touched them they shrunk,
+ Except when she was drunk,
+And then they got bigger than hell.
+%
+There once was a girl from Decatur,
+Who got laid by a big alligator.
+ Now nobody knew
+ The result of that screw,
+'Cause after he laid her, he ate her.
+%
+There once was a girl from Madras
+Who had such a beautiful ass -
+ It was not round and pink
+ ( as you bastards think )
+But had two ears, a tail, and ate grass.
+%
+There once was a girl from Madras
+Who had such a beautiful ass -
+ It was not round and pink
+ (As you bastards think)
+But had two ears, a tail, and ate grass.
+%
+There once was a girl from Spokane,
+Went to bed with a one-legged man.
+ She said, "I know you--
+ You've really got two!
+Why didn't you say so when we began?"
+%
+There once was a girl named Irene
+Who lived on distilled kerosene
+ But she started absorbin'
+ A new hydrocarbon
+And since then has never benzene.
+%
+There once was a girl named Louise
+Who cunt hair hung down to her knees
+ The crabs in her twat
+ Tied the hairs in a knot
+And constructed a flying trapeze
+%
+There once was a girl named Mcgoffin
+Who was diddled amazingly often.
+ She was rogered by scores
+ Who'd been turned down by whores,
+And was finally screwed in her coffin.
+%
+There once was a girl named Priscilla
+Whose vagina was flavored vanilla.
+ The taste was so fine
+ Man and beast stood in line
+(Including a stud armadilla).
+%
+There once was a girl so lovely,
+Who wanted to make love in the bubbly,
+ She strapped on her tanks,
+ And started her pranks,
+But the lobsters all thought she was ugly.
+%
+There once was a golfer named Leer,
+Who got put in the clink for a year,
+ For an action obscene,
+ On the very first green.
+Where the sign said "Enter course here."
+%
+There once was a gouty old colonel
+Who grew glum when the weather grew vernal,
+ And he cried in his tiffin
+ For his prick wouldn't stiffen,
+And the size of the thing was infernal.
+%
+There once was a guardsman from Buckingham
+Who said, "As for girls, I hate fucking 'em.
+ But when I meet boys,
+ God! how I enjoys
+Just licking their peckers and sucking 'em."
+%
+There once was a hacker named Ken
+Who inherited truckloads of Yen.
+ So he built him some chicks,
+ Of silicon chips,
+And hasn't been heard from since then.
+%
+There once was a handsome young seaman
+Who with ladies was really a demon.
+ In peace or in war,
+ At sea or on shore,
+He could certainly dish out the semen.
+%
+There once was a horny old bitch
+With a motorized self-frigger which
+ She would use with delight
+ All day long and all night -
+Twenty bucks: Abercrombie & Fitch.
+%
+There once was a horse named Lily
+Whose dingus was really a dilly.
+ It was vaginoid duply,
+ And labial quadruply --
+In fact, he was really a filly.
+%
+There once was a husky young Viking
+Whose sexual prowess was striking.
+ Every time he got hot
+ He would scour the twat
+Of some girl that might be to his liking.
+%
+There once was a jolly old bloke
+Who picked up a girl for a poke.
+ He took down her pants,
+ Fucked her into a trance,
+And then shit into her shoe for a joke.
+%
+There once was a kiddie named Carr
+Caught a man on top of his mar.
+ As he saw him stick 'er,
+ He said with a snicker,
+"You do it much faster than par."
+%
+There once was a lady from Exeter,
+So pretty that men craned their necks at her.
+ One was even so brave
+ As to take out and wave
+The distinguishing mark of his sex at her.
+%
+There once was a lady from Kansas
+Whose cunt was as big as Bonanzas.
+ It was nine inches deep
+ And the sides were quite steep --
+It had whiskers like General Carranza's.
+%
+There once was a lady named Carter,
+Fell in love with a virile young Tartar.
+ She stripped off his pants,
+ At his prick quickly glanced,
+And cried: "For that I'll be a martyr!"
+%
+There once was a lady named Clair,
+Who posessed a magnificent pair.
+ Or that's what I thought,
+ Till I saw one get caught,
+On a thorn and begin losing air.
+%
+There once was a lady named Myrtle
+Who had an affair with a turtle.
+ She had crabs, so they say,
+ In a year and a day
+Which proved that that turtle was fertile.
+%
+There once was a lawyer named Rex
+With minuscule organs of sex.
+ Arraigned for exposure,
+ He maintained with composure,
+"De minimis non curat lex."
+
+ [Trans: the law does not concern itself with small things. Ed.]
+%
+There once was a lifeguard named Lee
+Who rescued a girl from the sea
+ She asked how to pay,
+ And he said "Try this way,
+Go down for the third time on me."
+%
+There once was a maid from Mobile
+Whose cunt was made of blue steel.
+ She only got thrills
+ From pneumatic drills
+And an off-centered emery wheel.
+%
+There once was a man from Bombay
+He would do it all night and all day
+ He soon became sore
+ You shoulda' heard him roar
+When his wife rubbed his balls with Ben-Gay!
+%
+There once was a man from Calcutta
+Who used to beat off in the gutta
+ The heat of the sun
+ Affected his gun
+And turned all his cream into butta!
+%
+There once was a man from Dunoon,
+Who always ate soup with a fork.
+ He said "When I eat
+ Either fish, foul or flesh,
+I otherwise finish too quick."
+%
+There once was a man from Exameter
+Who had a prodigious diameter
+ But it wasn't the size
+ That brought forth the cries
+'Twas his rythm, iambic pentameter.
+%
+There once was a man from Madras,
+Whose balls were made out of brass.
+ When they clanged together,
+ They played "Stormy Weather",
+And lightning shot out of his ass.
+%
+There once was a man from Nantee
+Who buggered an ape in a tree.
+ The results were most horrid
+ All ass and no forehead
+Three balls and a purple goatee.
+%
+There once was a man from Nantucket
+Who kept all his cash in a bucket.
+ His daughter, named Nan,
+ Ran away with a man,
+And as for the bucket, Nantucket.
+
+The pair of them went to Manhasset,
+(Nan and the man with the asset.)
+ Pa followed them there,
+ But they left in a tear,
+And as for the asset, Manhasset.
+
+Pa followed the pair to Pawtucket,
+(Nan and the man with the bucket.)
+ Pa said to the man,
+ "You're welcome to Nan."
+But as for the bucket, Pawtucket.
+%
+There once was a man from Nantucket,
+Whose cock was so long he could suck it.
+ He said with a grin,
+ As he wiped off his chin,
+If my ear were a cunt I could fuck it!
+%
+There once was a man from Nantucket
+Whose dick was so long he could suck it.
+ He said with a grin
+ As he wiped off his chin,
+"If my ear was a cunt, I could fuck it."
+%
+There once was a man from Racine,
+Who invented a screwing machine.
+ Both concave and convex,
+ It could please either sex,
+But, oh, what a bastard to clean!
+%
+There once was a man from Sandem
+Who was making his girl on a tandem.
+ At the peak of the make
+ She jammed on the brake
+And scattered his semen at random.
+%
+There once was a man from Sydney
+Who could put it up to her kidney.
+ But the man from Quebec
+ Put it up to her neck;
+He had a big one, now didn't he?
+%
+There once was a man named Lodge,
+who had seatbelts installed in his Dodge.
+ When his date was strapped in,
+ He committed a sin,
+without ever leaving the garage.
+%
+There once was a man named McGruder,
+Who canoed with a girl in Bermuder.
+ But the girl thought it crude,
+ To be wooed in the nude,
+So McGru took an oar and subduder.
+%
+There once was a man named McSweeny
+Who spilled lots of gin on his weeney
+ So just to be couth
+ He added vermouth
+And slipped his best girl a martini.
+%
+There once was a man named McSweeny
+Who spilled some raw gin on his weeny.
+ Just to be couth,
+ He added vermouth,
+And slipped his girlfriend a martini.
+%
+There once was a man named Parridge
+With peculiar views on marriage.
+ He sucked off his brother,
+ Fucked his own mother,
+And gobbled his sister's miscarriage.
+%
+There once was a man with a hernia
+Who said to his doctor, "Gol dern ya,
+ When you work on my middle
+ Be sure you don't fiddle
+With things that do not concern ya."
+%
+There once was a member of Mensa
+Who was a most excellent fencer.
+ The sword that he used
+ Was his -- (line is refused,
+And has now been removed by the censor).
+%
+There once was a miner named Dave,
+Who kept a dead whore in his cave.
+ She was ugly as shit,
+ And missing one tit,
+But think of the money he saves.
+%
+There once was a monk of Camyre
+Who was seized with a carnal desire
+ And the primary cause
+ Was the abbess's drawers
+Which were hung up to dry by the fire.
+%
+There once was a newspaper vendor,
+A person of dubious gender.
+ He would charge one-and-two
+ For permission to view
+His remarkable double pudenda.
+%
+There once was a plumber from Leigh
+Who was plumbing his maid by the sea.
+ Said she, "Please stop plumbing,
+ I think someone's coming!"
+Said he, "Yes, I know love, it's me."
+%
+There once was a pretty young Mrs.
+Whose tearful but short story thrs.
+ Her mind lost its grasp -
+ Now she thinks she's an asp
+And just sits in the corner and hrs.
+%
+There once was a queen of Bulgaria
+Whose bush had grown hairier and hairier,
+ Till a prince from Peru
+ Who came up for a screw
+Had to hunt for her cunt with a terrier.
+%
+There once was a reverend at Kings
+Whose mind 'twas on heavenly things.
+ But his heart was on fire
+ For a boy in the choir
+Whose buns were like jelly on springs.
+%
+There once was a sad Maitre d'hotel
+Who said, "They can all go to hell!
+ What they do to my wife --
+ Why it ruins my life;
+And the worst is they all do it well."
+%
+There once was a sailor named Gasted,
+A swell guy, as long as he lasted,
+ He could jerk himself off
+ In a basket, aloft,
+Or a breeches-buoy swung from the masthead.
+%
+There once was a Scot named McAmeter
+With a tool of prodigious diameter.
+ It was not the size
+ That cause such surprise;
+'Twas his rhythm -- iambic pentameter.
+%
+There once was a son-of-a-bitch,
+Neither clever, nor handsome, nor rich,
+ Yet the girls he would dazzle,
+ And fuck to a frazzle,
+And then ditch them, the son-of-a-bitch!
+%
+There once was a spaceman named Spock
+Who had a huge Vulcanized cock.
+ A girl from Missouri
+ Whose name was Uhura
+Just fainted away from the shock.
+%
+There once was a Swede in Minneapolis,
+Discovered his sex life was hapless:
+ The more he would screw
+ The more he'd want to,
+And he feared he would soon be quite sapless.
+%
+There once was a Usenetter named Mark,
+Whose gender was kept in the dark.
+ He/she/it said with a nod,
+ "My ancestors were odd!"
+Did Noah need two for the ark?
+%
+There once was a whore from Regina
+Who had a stupendous vagina.
+ To save herself time,
+ She had six at a time,
+And another one working behind her.
+%
+There once was a woman from Arden
+Who sucked off a man in a garden.
+ He said, "My dear Flo,
+ Where does all that stuff go?"
+And she said, "[Swallow hard] I beg pardon?"
+%
+There once was a yokel of Beaconsfield
+Engaged to look after the deacon's field,
+ But he lurked in the ditches
+ And diddled the bitches
+Who happened to cross that antique 'un's field.
+%
+There once was a young fellow named Blaine,
+And he screwed some disgusting old jane.
+ She was ugly and smelly,
+ With an awful pot-belly,
+But... well, they were caught in the rain.
+%
+There once was a young girl from Natches
+Who chanced to be born with two snatches
+ She often said, "Shit!
+ I'd give either tit
+For a guy with equipment that matches."
+%
+There once was a young man from Boston
+Who drove around town in an Austin,
+ There was room for his ass,
+ And a gallon of gas,
+So he hung out his balls and he lost 'em.
+%
+There once was a young man from France
+Who waited ten years for his chance;
+Then he muffed it...
+%
+There once was a young man from Yuma
+Who attempted sex with a puma
+ He gave up real quick
+ Minus nose, toes, and prick
+In obvious pain and ill huma.
+%
+There once was a young man from Yuma,
+Who told an elephant joke to a puma.
+ Now his dry bleached bones lie,
+ Under hot Asian skies,
+'Cause the puma had no sense of huma.
+%
+There once was a young man named Clyde
+Who fell in an outhouse, and died.
+ He had a twin brother
+ Who fell in another
+And now they're interred side by side.
+%
+There once was a young man named Gene,
+Who invented a screwing machine.
+ Concave and convex,
+ It served either sex,
+And it played with itself inbetween.
+%
+There once was a young man named Lancelot
+Whom the townsfolk would look at askance a lot
+ For when he should pass
+ A desirable lass
+The front of his pants would advance a lot.
+%
+There once was an Arpanet freak,
+Who better response-time did seek.
+ He searched coast to coast,
+ For a reliable host,
+Whose logger took less than a week.
+%
+There once was an old man from Esser,
+Who's knowledge grew lesser and lesser.
+ It at last grew so small,
+ He knew nothing at all,
+And now he's a College Professor.
+%
+There once were two brothers named Luntz
+Who buggered each other at once.
+ When asked to account
+ For this intricate mount,
+They said, "Ass-holes are tighter than cunts."
+%
+There once were two women from Birmingham.
+And this is the story concerning 'em.
+ They lifted the frock
+ And fondled the cock
+Of the bishop as he was confirming 'em.
+%
+There was a bluestocking in Florence
+Wrote anti-sex pamphlets in torrents,
+ Till a Spanish grandee,
+ Got her off with his knee,
+And she burned all her works with abhorrence.
+%
+There was a family named Doe,
+An ideal family to know.
+ As father screwed mother,
+ She said, "You're heavier than brother."
+And he said, "Yes, Sis told me so!"
+%
+There was a fat lady of China
+Who'd a really enormous vagina,
+ And when she was dead
+ They painted it red,
+And used it for docking a liner.
+%
+There was a fat man from Rangoon
+Whose prick was much like a ballon.
+ He tried hard to ride her
+ And when finally inside her
+She thought she was pregnant too soon.
+%
+There was a gay countess of Bray,
+And you may think it odd when I say,
+ That in spite of high station,
+ Rank and education,
+She always spelled cunt with a 'k'.
+%
+There was a gay countess of Bray,
+And you may think it odd when I say,
+ That in spite of high station,
+ Rank and education,
+She always spelled cunt with a 'k'.
+%
+There was a gay dog from Ontario
+Who fancied himself a Lothario.
+ At a wench's glance
+ He'd snatch off his pants
+And make for her Mons Venerio.
+%
+There was a gay parson of Norton
+Whose prick, although thick, was a short 'un.
+ To make up for this loss,
+ He had balls like a horse,
+And never spent less than a quartern.
+%
+There was a gay parson of Tooting
+Whose roe he was frequently shooting,
+ Till he married a lass
+ With a face like my arse,
+And a cunt you could put a top-boot in.
+%
+There was a girl from Aberystwyth
+Who brought grain to the mill to get grist with.
+ The miller's son Jack
+ Laid her flat on her back
+And united the organs they pissed with.
+%
+There was a lewd fellow named Duff
+Who loved to dive deep in the muff.
+ With his head in a whirl
+ He said, "Spread it, Pearl;
+I cunt get enough of the stuff!"
+%
+There was a man from Mich.
+Who used to wish and wich.
+ That spring would come
+ So he could bum
+Around and go out fich.
+%
+There was a pianist named Liszt
+Who played with one hand while he pissed,
+ But as he grew older
+ His technique grew bolder,
+And in concert jacked off with his fist.
+%
+There was a poor parson from Goring,
+Who made a small hole in his flooring,
+ Fur-lined it all round,
+ Then laid on the ground,
+And declared it was cheaper than whoring.
+%
+There was a strong man of Drumrig
+Who one day did seven times frig.
+ He buggered three sailors,
+ Four dogs and two tailors,
+And ended by fucking a pig.
+%
+There was a teenager named Donna
+Who never said, "No, I don't wanna."
+ Two days out of three
+ She would shoot LSD,
+And on weekends she smoked marijuana.
+%
+There was a young belle of old Natchez
+Whose garments were always in patchez.
+ When comment arose
+ On the state of her clothes
+She, drawled, "When ah itchez, ah scratchez."
+%
+There was a young blade from South Greece
+Whose bush did so greatly increase
+ That before he could shack
+ He must hunt needle in stack.
+'Twas as bad as being obese.
+%
+There was a young bride, a Canuck,
+Told her husband, "Let's do more than suck.
+ You say that I, maybe,
+ Can have my first baby--
+Let's give up this Frenchin' and fuck!"
+%
+There was a young bride of Antigua
+Whose husband said, "Dear me, how big you are!"
+ Said the girl, "What damn'd rot!
+ Why, you've only felt my twot,
+My legs and my arse and my figua!"
+%
+There was a young chap in Arabia
+Who courted a widow named Fabia.
+ "Yes, my tongue is as long
+ As the average man's dong,"
+He said, licking the lips of her labia.
+%
+There was a young cook with the art
+Of making a delicious tart
+ With a handful of shit,
+ Some snot and some spit,
+And he'd flavor the whole with a fart.
+%
+There was a young curate whose brain
+Was deranged from the use of cocaine;
+ He lured a small child
+ To a copse dark and wild,
+Where he beat it to death with his cane.
+ -- Edward Gorey
+%
+There was a young damsel named Baker
+Who was poked in a pew by a Quaker.
+ He yelled, "My God! what
+ Do you call this -- a twat?
+Why, the entrance is more than an acre!"
+%
+There was a young dolly named Molly
+Who thought that to frig was a folly.
+ Said she, "Your pee-pee
+ Means nothing to me,
+But I'll do it just to be jolly."
+%
+There was a young fellow called Clyde
+Who fell in an outhouse and died.
+ He had a twin brother
+ Who fell in another
+So now they're interred side by side.
+%
+There was a young fellow from Cal.,
+In bed with a passionate gal.
+ He leapt from the bed,
+ To the toilet he sped;
+Said the gal, "What about me, old pal?"
+%
+There was a young fellow from Florida
+Who liked a friend's wife, so he borrowed her.
+ When they got into bed
+ He cried, "God strike me dead!
+This ain't a cunt -- it's a corridor!"
+%
+There was a young fellow from Kent
+Whose cock was so long that it bent
+ To save himself trouble
+ He put it in double
+And instead of coming, he went.
+%
+There was a young fellow from Leeds
+Who swallowed a package of seeds.
+ Great tufts of grass
+ Sprouted out of his ass
+And his balls were all covered with weeds.
+%
+There was a young fellow from Parma
+Who was solemnly screwing his charmer.
+ Said the damsel demure,
+ "You'll excuse me, I'm sure,
+But I must say you fuck like a farmer."
+%
+There was a young fellow name Tucker
+Who, instructing a novice cock-sucker,
+ Said, "Don't bow out your lips
+ Like an elephant's hips,
+The boys like it best when they pucker."
+%
+There was a young fellow named Ades
+Whose favorite fruit was young maids.
+ But sheep, nigger boys, whores,
+ And the knot holes in doors
+Were by no means exempt from his raids.
+%
+There was a young fellow named Babbitt
+Who could screw nine times like a rabbit,
+ But a girl from Johore
+ Could do it twice more,
+Which was just enough extra to crab it.
+%
+There was a young fellow named Bill,
+Who took an atomic pill,
+ His navel corroded,
+ His asshole exploded,
+And they found his nuts in Brazil.
+%
+There was a young fellow named Blaine,
+And he screwed some disgusting old jane.
+ She was ugly and smelly
+ With an awful pot-belly,
+But... well, they were caught in the rain.
+%
+There was a young fellow named Bliss
+Whose sex life was strangely amiss,
+ For even with Venus
+ His recalcitrant penis
+Would never do better than t
+ h
+ i
+ s
+ .
+%
+There was a young fellow named Bowen
+Whose pecker kept growin' and growin'.
+ It grew so tremendous,
+ So long and so pendulous,
+'Twas no good for fuckin' -- just showin'.
+%
+There was a young fellow named Brewer
+Whose girl made her home in a sewer.
+ Thus he, the poor soul,
+ Could get into her hole,
+And still not be able to screw her!
+%
+There was a young fellow named Case
+Who entered a cunt-lapping race.
+ He licked his way clean
+ Through Number thirteen,
+But then slipped and got pissed in the face.
+%
+There was a young fellow named Charteris
+Put his hand where his young lady's garter is.
+ Said she, "I don't mind,
+ And higher up you'll find
+The place where my fucker and farter is."
+%
+There was a young fellow named Cribbs
+Whose cock was so big it had ribs.
+ They were inches apart,
+ And to suck it took art,
+While to fuck it took forty-two trips.
+%
+There was a young fellow named dick
+Who had a magnificent prick.
+ It was shaped like a prism
+ And shot so much gism
+It made every cocksucker sick.
+%
+There was a young fellow named Feeney
+Whose girl was a terrible meany.
+ The hatch of her snatch
+ Had a catch that would latch
+- She could only be screwed by Houdini.
+%
+There was a young fellow named Fletcher,
+Was reputed an infamous lecher.
+ When he'd take on a whore
+ She'd need a rebore,
+And they'd carry him out on a stretcher.
+%
+There was a young fellow named Fyfe
+Whose marriage was ruined for life,
+ For he had an aversion
+ To every perversion,
+And only liked fucking his wife.
+
+Well, one year the poor woman struck,
+And she wept, and she cursed at her luck,
+ And said, "Where have you gotten us
+ With your goddamn monotonous
+Fuck after fuck after fuck?
+
+"I once knew a harlot named Lou --
+And a versatile girl she was, too.
+ After ten years of whoredom
+ She perished of boredom
+When she married a jackass like you!"
+%
+There was a young fellow named Gene
+Who first picked his asshole quite clean.
+ He next picked his toes,
+ And lastly his nose,
+And he never did wash in between.
+%
+There was a young fellow named Gluck
+Who found himself shit out of luck.
+ Though he petted and wooed,
+ When he tried to get screwed
+He found virgins just don't give a fuck.
+%
+There was a young fellow named Goody
+Who claimed that he wouldn't, but would he?
+ If he found himself nude
+ With a gal in the mood
+The question's not woody but could he?
+%
+There was a young fellow named Grant
+Who was made like the sensitive plant.
+ When they asked "Do you fuck?"
+ He replied, "No such luck.
+I would if I could, but I can't."
+%
+There was a young fellow named Grimes
+Who fucked his girl seventeen times
+ In the course of a week --
+ And this isn't to speak
+Of assorted venereal crimes.
+%
+There was a young fellow named Harry,
+Had a joint that was long, huge and scary.
+ He grabbed him a virgin,
+ Who, without any urgin',
+Immediately spread like a fairy.
+%
+There was a young fellow named Hatch
+Who was fond of the music of Bach.
+ He said: "It's not fussy
+ Like Brahms and Debussy;
+Sit down, and I'll play you a snatch."
+%
+There was a young fellow named Kimble
+Whose prick was exceedingly nimble,
+ But fragile and slender,
+ And dainty and tender,
+So he kept it encased in a thimble.
+%
+There was a young fellow named Meek
+Who invented a lingual technique.
+ It drove women frantic,
+ And made them romantic,
+And wore all the hair off his cheek.
+%
+There was a young fellow named Morgan
+Who possessed an unusual organ:
+ The end of his dong,
+ Which was nine inches long,
+Was tipped with the head of a gorgon.
+%
+There was a young fellow named Paul
+Who confessed, "I have only one ball.
+ But the size of my prick
+ Is God's dirtiest trick,
+For my girls always ask, 'Is that all?'"
+%
+There was a young fellow named Pell
+Who didn't like cunt very well.
+ He would finger or fuck one,
+ But never would suck one--
+He just couldn't get used to the smell.
+%
+There was a young fellow named Price
+Who dabbled in all sorts of vice.
+ He had virgins and boys
+ And mechanical toys,
+And on Mondays... he meddled with mice!
+%
+There was a young fellow named Prynne
+Whose prick was so short and so thin,
+ His wife found she needed
+ A Fuckoscope -- she did --
+To see if he'd gotten it in.
+%
+There was a young fellow named Skinner
+Who took a young lady to dinner
+ At a quarter to nine,
+ They sat down to dine,
+At twenty to ten it was in her.
+The dinner, not Skinner -- Skinner was in her before dinner.
+
+There was a young fellow named Tupper
+Who took a young lady to supper.
+ At a quarter to nine,
+ They sat down to dine,
+And at twenty to ten it was up her.
+Not the supper -- not Tupper -- It was some son-of-a-bitch named Skinner!
+%
+There was a young fellow named Sweeney,
+Whose girl was a terrible meanie,
+ The hatch of her snatch,
+ Had a catch that would latch,
+She could only be screwed by Houdini.
+%
+There was a young fellow of Burma
+Whose betrothed had good reason to murmur.
+ But now that he's married he's
+ Been using cantharides
+And the root of their love is much firmer.
+%
+There was a young fellow of Greenwich
+Whose balls were all covered with spinach.
+ He had such a tool
+ It was wound on a spool,
+And he reeled it out inich by inich.
+
+But this tale has an unhappy finich,
+For due to the sand in the spinach
+ His ballocks grew rough
+ And wrecked his wife's muff,
+And scratched up her thatch in the scrimmage.
+%
+There was a young fellow of Harrow
+Whose john was the size of a marrow.
+ He said to his tart,
+ "How's this for a start?
+My balls are outside in a barrow."
+%
+There was a young fellow of Kent
+Whose prick was so long that it bent,
+ So to save himself trouble
+ He put it in double,
+And instead of coming he went.
+%
+There was a young fellow of Mayence
+Who fucked his own arse in defiance
+ Not only of custom
+ And morals, dad-bust him,
+But of most of the known laws of science.
+%
+There was a young fellow of Perth
+Whose balls were the finest on earth.
+ They grew to such size
+ That one won a prize,
+And goodness knows what they were worth.
+%
+There was a young fellow of Strensall
+Whose prick was as sharp as a pencil.
+ On the night of his wedding
+ It went through the bedding,
+And shattered the chamber utensil.
+%
+There was a young fellow of Warwick
+Who had reason for feeling euphoric,
+ For he could by election
+ Have triune erection:
+Ionic, Corinthian, and Doric.
+%
+There was a young fellow whose dong
+Was prodigiously massive and long.
+ On each side of his whang
+ Two testes did hang
+That attracted a curious throng.
+%
+There was a young gaucho named Bruno
+Who said, "Screwing is one thing I do know.
+ A woman is fine,
+ And a sheep is divine,
+But a llama is Numero Uno."
+%
+There was a young gaucho named Bruno
+Who said, "There is one thing I do know,
+ Women are fine
+ And children devine,
+But the llama is numero uno."
+%
+There was a young German named Ringer
+Who was screwing an opera singer.
+ Said he with a grin,
+ "Well, I've sure got it in!"
+Said she, "You mean that ain't your finger?"
+%
+There was a young girl from Annista
+Who dated a lecherous mister.
+ He fondled her titty,
+ Got one finger shitty,
+Then screwed up his courage and kissed 'er.
+%
+There was a young girl from Decatur
+Who was raped by an alligator.
+ But no one quite knew
+ How she relished that screw,
+For after he screwed her, he ate her.
+%
+There was a young girl from Dundee,
+From her fanny there grew a plum tree.
+ No one ate the nice fruit,
+ To tell you the truth,
+Because they knew it came from her tooty-toot-toot.
+%
+There was a young girl from East Lynn
+Whose mother ( to save her from sin )
+ Had filled up her crack
+ With hard-setting shellac,
+But the boys picked it out with a pin.
+%
+There was a young girl from Hong Kong
+Who said, "You are utterly wrong
+ To say my vagina
+ Is the largest in China
+Just because of your mean little dong."
+%
+There was a young girl from Hong Kong
+Whose cervical cap was a gong.
+ She said with a yell,
+ As a shot rang her bell,
+"I'll give you a ding for a dong!"
+%
+There was a young girl from Medina
+Who could completely control her vagina.
+ She could twist it around
+ Like the cunts that are found
+In Japan, Manchukuo and China.
+%
+There was a young girl from New York
+Who plugged up her cunt with a cork.
+ A woodpecker or two
+ Made the grade it is true,
+But it totally baffled the stork.
+
+Till along came a man who presented
+A tool that was strangely indented.
+ With a dizzying twirl
+ He punctured that girl,
+And thus was the cork-screw invented.
+%
+There was a young girl from New York
+Who plugged up her quim with a cork
+ A woodpecker or two
+ Made the grade, it is true,
+But it totally baffled the stork.
+%
+There was a young girl from Peru,
+Who had nothing whatever to do.
+ So she sat on the stairs,
+ And counted cunt hairs,
+Four thousand, three hundred and two.
+%
+There was a young girl from Peru,
+Who noticed her lovers were few;
+ So she walked out her door
+ With a fig leaf, no more,
+And now she's in bed - with the flu.
+%
+There was a young girl from Samoa
+Who pledged that no man would know her.
+ One young fellow tried,
+ But she wriggled aside,
+And he spilled all his spermatozoa.
+%
+There was a young girl from Seattle,
+Whose hobby was sucking off cattle.
+ But a bull from the South
+ Shot a wad in her mouth
+That made both her ovaries rattle.
+%
+There was a young girl from Siam
+Who said to her boyfriend Priam,
+ "To seduce me, of course,
+ You'll have to use force,
+And thank goodness you're stronger than I am.
+%
+There was a young girl from St. Cyr
+Whose reflex reactions were queer.
+ Her escort said, "Mable,
+ Get up off the table;
+That money's to pay for the beer."
+%
+There was a young girl from St. Paul
+Who went to a newspaper ball.
+ Her dress caught on fire
+ And burnt her entire
+Front page and sport section and all.
+%
+There was a young girl from the Bronix
+Who had a vagina of onyx.
+ She had so much `tsoris'
+ With her clitoris,
+She traded it in for a Packard.
+%
+There was a young girl from the coast
+Who, just when she needed it most,
+ Lost her Kotex and bled
+ All over the bed,
+And the head and the beard of her host.
+%
+There was a young girl in Berlin
+Who eked out a living through sin.
+ She didn't mind fucking,
+ But much preferred sucking,
+And she'd wipe off the pricks on her chin.
+%
+There was a young girl in Berlin
+Who was fucked by an elderly Finn.
+ Though he diddled his best,
+ And fucked her with zest,
+She kept asking, "Hey, Pop, is it in?"
+%
+There was a young girl in Dakota
+Had a letter from Ickes; he wrote her:
+ "In addition to gas
+ We are rationing ass,
+And you've greatly exceeded your quota."
+%
+There was a young girl name McKnight
+Who got drunk with her boy-friend one night.
+ She came to in bed,
+ With a split maidenhead--
+That's the last time she ever was tight.
+%
+There was a young girl named Ann Heuser
+Who swore that no man could surprise her.
+ But Pabst took a chance,
+ Found a Schlitz in her pants,
+And now she is sadder Budweiser.
+%
+There was a young girl named Heather
+Whose twitcher was made out of leather.
+ She made a queer noise,
+ Which attracted the boys,
+By flapping the edges together.
+%
+There was a young girl named McCall
+Whose cunt was exceedingly small,
+ But the size of her anus
+ Was something quite heinous --
+It could hold seven pricks and one ball.
+%
+There was a young girl named O'Clare
+Whose body was covered with hair.
+ It was really quite fun
+ To probe with one's gun,
+For her quimmy might be anywhere.
+%
+There was a young girl named O'Malley
+Who wanted to dance in the ballet.
+ She got roars of applause
+ When she kicked off her drawers,
+But her hair and her bush didn't tally.
+%
+There was a young girl named Saphire
+Who succumbed to her lovers desire.
+ She said, "It's a sin,
+ But now that it's in,
+Could you shove it a few inches higher?"
+%
+There was a young girl named Sapphire
+Who succumbed to her lover's desire.
+ She said, "It's a sin,
+ But now that it's in,
+Could you shove it a few inches higher?"
+%
+There was a young girl of Aberystwyth
+Who screwed every man that she kissed with.
+ She tickled the balls
+ Of the men in the halls,
+And pulled on the prongs that they pissed with.
+%
+There was a young girl of Aberystwyth
+Who took grain to the mill to get grist with.
+ The miller's sun, Jack,
+ Laid her flat on her back,
+And united the organs they pissed with.
+%
+There was a young girl of Angina
+Who stretched catgut across her vagina.
+ From the love-making frock
+ (With the proper sized cock)
+Came Toccata and Fugue in D minor.
+%
+There was a young girl of Asturias
+With a penchant for practices curious.
+ She loved to bat rocks
+ With her gentlemen's cocks --
+A practice both rude and injurious.
+%
+There was a young girl of Batonger
+who diddled herself with a conger,
+ When asked how it feels
+ To be pleasured by eels
+She said, "Just like a man, only longer.
+%
+There was a young girl of Cah'lina,
+Had a very capricious vagina:
+ To the shock of the fucker
+ "Twould suddenly pucker,
+And whistle the chorus of "Dinah."
+%
+There was a young girl of Cape Cod
+Who dreamt she'd been buggered by God.
+ But it wasn't Jehovah
+ That turned the girl over,
+'Twas Roger the lodger, the dirty old codger,
+ the bugger, the bastard, the sod!
+%
+There was a young girl of Cape Town
+Who usually fucked with a clown.
+ He taught her the trick
+ Of sucking his prick,
+And when it went up -- she went down.
+%
+There was a young girl of Coxsaxie
+Whose skirt was more mini than maxi.
+ She was fucked at the show
+ In the twenty-third row,
+And once more going home in the taxi.
+%
+There was a young girl of Darjeeling
+Who could dance with such exquisite feeling
+ There was never a sound
+ For miles around
+Save of fly-buttons hitting the ceiling.
+%
+There was a young girl of Des Moines
+Whose cunt could be fitted with coins,
+ Till a guy from Hoboken
+ Went and dropped in a token,
+And now she rides free on the ferry.
+%
+There was a young girl of Detroit
+Who at fucking was very adroit:
+ She could squeeze her vagina
+ To a pin-point, or finer,
+Or open it out like a quoit.
+
+And she had a friend named Durand
+Whose cock could contract or expand.
+ He could diddle a midge
+ Or the arch of a bridge --
+Their performance together was grand!
+%
+There was a young girl of East Lynne
+Whose mother, to save her from sin,
+ Had filled up her crack,
+ To the brim with shellac,
+But the boys picked it out with a pin.
+%
+There was a young girl of Gibraltar
+Who was raped as she knelt at the altar.
+ It really seems odd
+ That a virtuous God
+Should answer her prayers and assault her.
+%
+There was a young girl of LLewellyn
+Whose breasts were as big as a melon.
+ They were big it is true,
+ But her cunt was big too,
+Like a bifocal, full-color, aerial view
+Of Cape Horn and the Straits of Magellan.
+%
+There was a young girl of Mobile,
+Who hymen was made of chilled steel,
+ To give her a thrill,
+ Took a rotary drill,
+Or a number nine emery wheel.
+%
+There was a young girl of Moline
+Whose fucking was sweet and obscene.
+ She would work on a prick
+ With every known trick,
+And finish by winking it clean.
+%
+There was a young girl of Newcastle
+Whose charms were declared universal.
+ While one man in front
+ Wired into her cunt,
+Another was engaged at her arsehole.
+%
+There was a young girl of Pawtucket
+Whose box was as big as a bucket.
+ Her boy-friend said, "Toots,
+ I'll have to wear boots,
+For I see I must muck it, not fuck it."
+%
+There was a young girl of Penzance
+Who boarded a bus in a trance.
+ The passengers fucked her,
+ Likewise the conductor,
+While the driver shot off in his pants.
+%
+There was a young girl of Pitlochry
+Who was had by a man in a rockery.
+ She said, "Oh! You've come
+ All over my bum;
+This isn't a fuck -- it's a mockery."
+%
+There was a young girl of Rangoon
+Who was blocked by the Man in the Moon.
+ "Well, it has been great fun,"
+ She remarked when he'd done,
+"But I'm sorry you came quite so soon."
+%
+There was a young girl of Spitzbergen,
+Whose people all thought her a virgin,
+ Till they found her in bed
+ With her twat very red,
+And the head of a kid just emergin'.
+%
+There was a young girl, very sweet,
+Who thought sailors' meat quite a treat.
+ When she sat on their lap
+ She unbuttoned their flap,
+And always had plenty to eat.
+%
+There was a young girl who begat
+Three babies named Nat, Pat and Tat.
+ T'was fun in the breeding
+ But hell in the feeding
+When she found there's no tit for Tat.
+%
+There was a young girl who begat
+Three brats, by name Nat, Pat, and Tat.
+ It was fun in the breeding,
+ But hell in the feeding,
+When she found there was no tit for Tat.
+%
+There was a young harlot from Kew
+Who filled her vagina with glue.
+ She said with a grin,
+ "If they pay to get in,
+They'll pay to get out of it too."
+%
+There was a young harlot named Schwartz
+Whose cock-pit was studded with warts,
+ And they tickled so nice
+ She drew a high price
+From the studs at the summer resorts.
+
+Her pimp, a young fellow named Biddle,
+Was seldom hard up for a diddle,
+ For according to rumor
+ His tool had a tumor
+And a fine row of warts down the middle.
+%
+There was a young hayseed from Tiffan
+Whose cock would constantly stiffen.
+ The knob out in front
+ Attracted foul cunt
+Which he greatly delighted in sniffin'.
+%
+There was a young idler named Blood,
+Made a fortune performing at stud,
+ With a fifteen-inch peter,
+ A double-beat metre,
+And a load like the Biblical Flood.
+%
+There was a young Jew of Far Rockaway
+Whose screams could be heard for a block away.
+ Perceiving his error,
+ The Rabbi in terror
+Cried, "God! I have cut his whole cock away!"
+%
+There was a young lad - name of Durcan
+Who was always jerkin' his gherkin.
+ His father said, "Durcan
+ Stop jerkin' your gherkin
+Your gherkin's for ferkin', not jerkin'.
+%
+There was a young lad from Nahant
+Who was made like the Sensitve Plant.
+ When asked, "Do you fuck?"
+ He replied, "No such luck.
+I would if I could but I can't."
+%
+There was a young lad from Siam,
+Whose sexlife was caught in a jam.
+ He loved them real small,
+ 'Cause they're funner to ball,
+So he went out and bought him a lamb!
+%
+There was a young lad name of Durcan
+Who was always jerkin' his gherkin.
+ His father said, "Durcan!
+ Stop jerkin' your gherkin!
+Your gherkin's for ferkin', not jerkin'.
+%
+There was a young lad name of Ward
+Who strung himself up with a cord
+ Said he, of his work
+ (Ere the rope snapped with a jerk)
+"I am leaving because I am bored."
+ - E.A. Guest
+%
+There was a young lad named McFee
+Who was stung in the balls by a bee
+ He made oodles of money
+ By oozing pure honey
+Every time he attempted to pee.
+%
+There was a young lady at sea
+Who complained that it hurt her to pee.
+ Said the brawny old mate,
+ "That accounts for the state
+Of the cook and the captain and me."
+%
+There was a young lady at sea
+Who said, "God, how it hurts me to pee."
+ "I see," said the mate,
+ "That accounts for the state
+Of the captain, the purser, and me."
+%
+There was a young lady called Ciss
+Who went to the river to piss.
+ A young man in a punt
+ Put his hand on her cunt;
+No wonder she thought it was bliss.
+%
+There was a young lady from Bangor
+Who slept while the ship lay at anchor
+ She woke in dismay
+ When she heard the mate say:
+"Let's lift up the topsheet and spanker!"
+%
+There was a young lady from Bright,
+Whose speed was much faster than light.
+ She went out one day
+ In a relative way
+And returned on the previous night.
+%
+There was a young lady from Bristol
+Who went to the Palace called Crystal.
+ Said she, "It's all glass,
+ And as round as my ass,"
+And she farted as loud as a pistol.
+%
+There was a young lady from Brussels
+Who was proud of her vaginal muscles.
+ She could easily plex them
+ And so interflex them
+As to whistle love songs through her bustles.
+%
+There was a young lady from Drew
+Who ended her verse at line two.
+%
+There was a young lady from Dumfries
+Who said to her boyfriend, "It's some freeze!
+ My navel's all bare,
+ So stick it in there,
+Before both my legs and my bum freeze."
+%
+There was a young lady from Exeter,
+So pretty that men craned their necks at her.
+ One was even so brave
+ As to take out and wave
+The distinguishing mark of his sex at her.
+%
+There was a young lady from Hyde
+Who ate a green apple and died.
+ While her lover lamented
+ The apple fermented
+And made cider inside her inside.
+%
+There was a young lady from Maine
+Who claimed she had men on her brain.
+ But you knew from the view,
+ As her abdomen grew,
+It was not on her brain that he'd lain.
+%
+There was a young lady from Munich
+Who had an affair with a eunuch.
+ At the height of their passion
+ He dealt her a ration
+%
+There was a young lady from Munich
+Who had an affair with a eunuch.
+ At the height of their passion
+ He dealt her a ration
+From a squirt gun concealed in his tunic.
+%
+There was a young lady from Norway
+Who hung by her heels in a doorway.
+ She told her young man,
+ "Get off the divan,
+I think I've discovered one more way "
+%
+There was a young lady from Prentice
+Who had an affair with a dentist.
+ To make things easier
+ He used anesthesia,
+And diddled her, `non compos mentis'.
+%
+There was a young lady from Rheims
+Who amazingly pissed in four streams.
+ A friend poked around
+ And a fly-button found
+Lodged tight in her hole so it seems.
+%
+There was a young lady from Rio
+Who slept with the Fornier trio.
+ As she dropped her panties
+ She said, "No andanties
+I want this allegro con brio."
+%
+There was a young lady from Siam
+Who said to her lover, one Kiam,
+ "You may kiss me of course,
+ But you'll have to use force.
+Though god knows you're stronger than I am."
+%
+There was a young lady from Spain
+Who demurely undressed on a train.
+ A helpful young porter
+ Helped more than he orter,
+And she promptly cried "Help me again"
+%
+There was a young lady from Spain
+Who got sick as she rode on a train;
+ Not once, but again,
+ And again, and again,
+And again, and again, and again.
+%
+There was a young lady from Spain
+Whose face was exceedingly plain,
+ But her cunt had a pucker
+ That made the men fuck her,
+Again, and again, and again.
+%
+There was a young lady from Troy
+Had a moustache, just like a young boy
+ Though it tickled to kiss
+ 'Twas a source of much bliss
+When she used it to brush a man's toy.
+%
+There was a young lady from Wheeling
+Who claimed to lack sexual feeling.
+ But a cynic named Boris
+ Just touched her clitoris
+And she had to be scraped off the ceiling.
+%
+There was a young lady from Wheeling
+Who had a peculiar feeling.
+ She laid on her back
+ And tickled her crack
+And pissed all over the ceiling.
+%
+There was a young lady from Wooster
+Who complained that too many men gooster.
+ So she traded her scanties
+ For sandpaper panties,
+Now they goose her much less than they used 'ter.
+%
+There was a young lady in Reno,
+Who lost all her dough playing Keno.
+ But she lay on her back,
+ And opened her crack,
+So now she owns the Casino!
+%
+There was a young lady named Alice
+Who was known to have peed in a chalice.
+ 'Twas the common belief
+ It was done for relief,
+And not out of protestant malice.
+%
+There was a young lady named Astor
+Who never let any get past her.
+ She finally got plenty
+ By stopping twenty,
+Which certainly ought to last her.
+%
+There was a young lady named Banker,
+Who slept while the ship lay at anchor,
+ She woke in dismay,
+ When she heard the mate say,
+"Now hoist up the topsheet and spanker."
+%
+There was a young lady named Blount
+Who had a rectangular cunt.
+ She learned for diversion
+ Posterior perversion,
+Since no one could fit here in front.
+%
+There was a young lady named Bower
+Who dwelt in an Ivory Tower.
+ But a poet from Perth
+ Laid her flat on the earth,
+And proceeded with penis to plough her.
+%
+There was a young lady named Brent
+With a cunt of enormous extent,
+ And so deep and so wide,
+ The acoustics inside
+Were so good you could hear when you spent.
+%
+There was a young lady named Bright
+Who could travel much faster than light.
+ She took off one day,
+ In a relative way,
+And returned on the previous night.
+%
+There was a young lady named Brook
+Who never could learn how to cook.
+ But on a divan
+ She could please any man-
+She knew every darn trick in the book!
+%
+There was a young lady named Cager
+Who, as the result of a wager,
+ Consented to fart
+ The entire oboe part
+Of Mozart's quartet in F major.
+%
+There was a young lady named Ciss
+Who said, "I think skating's a bliss "
+ But she'll never restate,
+ For a wheel off her skate
+.siht ekil gnihtemos pu hsinif reh edaM
+%
+There was a young lady named Clair
+Who possessed a magnificent pair;
+ At least so I thought
+ Till I saw one get caught
+On a thorn, and begin losing air.
+%
+There was a young lady named Dot
+Whose cunt was so terribly hot
+ That ten bishops of Rome
+ And the Pope's private gnome
+Failed to quench her Vesuvial twat.
+%
+There was a young lady named Duff
+With a lovely, luxuriant muff.
+ In his haste to get in her
+ One eager beginner
+Lost both of his balls in the rough.
+%
+There was a young lady named Etta
+Who was constantly seen in a swetta.
+ Three reasons she had:
+ To keep warm wasn't bad,
+But the other two reasons were betta.
+%
+There was a young lady named Fleager
+Who was terribly, terribly eager
+ To be all the rage
+ On the tragedy stage,
+Though her talents were pitifully meagre.
+ -- Edward Gorey
+%
+There was a young lady named Flo
+Whose lover had pulled out too slow.
+ So they tried it all night,
+ Till he got it just right...
+Well, practice makes pregnant, you know.
+%
+There was a young lady named Flynn
+Who thought fornication a sin,
+ But when she was tight
+ It seemed quite all right,
+So everyone filled her with gin.
+%
+There was a young lady named Gilda
+Who went on a date with a builder.
+ He said that he would,
+ And he could and he should,
+And he did and it damn well near killed her.
+%
+There was a young lady named Gloria
+Who was had by Sir Gerald Du Maurier,
+ And then by six men,
+ Sir Gerald again,
+And the band at the Waldorf-Astoria.
+%
+There was a young lady named Gloria,
+Whose boyfriend said, "May I explore ya?"
+ She replied to the chap,
+ "I'll draw you a map,
+Of where others have been to before ya."
+%
+There was a young lady named Grace
+Who would not take a prick in her "place."
+ Though she'd kiss it and suck it,
+ She never would fuck it--
+She just couldn't relax face-to-face.
+%
+There was a young lady named Hall,
+Wore a newspaper dress to a ball.
+ The dress caught on fire
+ And burned her entire
+Front page, sporting section, and all.
+%
+There was a young lady named Hatch
+Who would always come through in a scratch.
+ If a guy wouldn't neck her,
+ She'd grab up his pecker
+And shove the damn thing up her snatch.
+%
+There was a young lady named Mable
+Who liked to sprawl out on the table,
+ Then cry to her man,
+ "Stuff in all you can --
+Get your ballocks in, too, if you're able."
+%
+There was a young lady named Mandel
+Who caused quite a neighborhood scandal
+ By coming out bare
+ On the main village square
+And frigging herself with a candle.
+%
+There was a young lady named Maud,
+A terrible society fraud:
+ In company, I'm told,
+ She was distant and cold,
+But if you got her alone, Oh God!
+%
+There was a young lady named May
+Who strolled in a park by the way,
+ And she met a youg man
+ Who fucked her and ran --
+Now she goes to the park every day.
+%
+There was a young lady named Nance
+Who learned about fucking in France,
+ And when you'd insert it
+ She'd squeeze till she hurt it,
+And shoved it right back in your pants.
+%
+There was a young lady named Nelly
+Whose tits would jiggle like jelly.
+ They could tickle her twat
+ Or be tied in a knot,
+And could even swat flies on her belly.
+%
+There was a young lady named Ransom
+Who was raped three times in a hansom
+ When she cried out for more
+ Said a voice from the floor,
+"My name, ma'am, is Simpson, not Samson
+%
+There was a young lady named Ransom
+Who was rogered three times in a hansom.
+ When she cried out for more
+ A voice from the floor
+Replied, "My name is Simpson, not Samson."
+%
+There was a young lady named Riddle
+Who had an untouchable middle.
+ She had many friends
+ Because of her ends,
+Since it isn't the middle you diddle.
+%
+There was a young lady named Rose
+Who fainted whenever she chose;
+ She did so one day
+ While playing croquet,
+But was quickly revived with a hose.
+ -- Edward Gorey
+%
+There was a young lady named Rose
+With erogenous zones in her toes.
+ She remained onanistic
+ Till a foot-fetishistic
+Young man became one of her beaux.
+%
+There was a young lady named Schneider
+Who often kept trysts with a spider.
+ She found a strange bliss,
+ In the hiss of her piss,
+As it strained through the cobwebs inside her.
+%
+There was a young lady named Smith
+Whose virtue was largely a myth.
+ She said, "Try as I can
+ I can't find a man
+Who it's fun to be virtuous with."
+%
+There was a young lady named Twiss
+Who said she thought fucking a bliss,
+ For it tickled her bum
+ And caused her to come
+.siht ekil gniyl ylbatrofmoc elihW
+%
+There was a young lady named Wylde
+Who kept herself quite undefiled
+ By thinking of Jesus;
+ Contagious diseases;
+And the bother of having a child.
+%
+There was a young lady of Arden,
+The tool of whose swain wouldn't harden.
+ Said she with a frown,
+ "I've been sadly let down
+By the tool of a fool in a garden."
+%
+There was a young lady of Bicester
+Who was nicer by far than her sister:
+ The sister would giggle
+ And wiggle and jiggle,
+But this one would come if you kissed her.
+%
+There was a young lady of Brabant
+Who slept with an impotent savant.
+ She admitted, "We shouldn't,
+ But it turned out he couldn't-
+So you can't say we have when we haven't."
+%
+There was a young lady of Bude
+Who walked down the street in the nude.
+ A bobby said, "Whattum
+ Magnificent bottom!"
+And slapped it as hard as he could.
+%
+There was a young lady of Carmia
+Whose housekeeping ways would alarm ya.
+ At every cold snap
+ She would climb in your lab,
+So her little base burner could warm ya.
+%
+There was a young lady of Dee
+Who went down to the river to pee.
+ A man in a punt
+ Put his hand on her cunt,
+And God! how I wish it were me.
+%
+There was a young lady of Dee
+Whose hymen was split into three.
+ And when she was diddled
+ The middle string fiddled :
+"Nearer My God To Thee."
+%
+There was a young lady of Dexter
+Whose husband exceedingly vexed her,
+ For whenever they'd start
+ He'd unfailingly fart
+With a blast that damn nearly unsexed her.
+%
+There was a young lady of Dover
+Whose passion was such that it drove her
+ To cry, when you came,
+ "Oh dear! What a shame!
+Well, now we shall have to start over."
+%
+There was a young lady of Ealing
+And her lover before her was kneeling.
+ Said she, "Dearest Jim,
+ Take your hands off my quim;
+I much prefer fucking to feeling."
+%
+There was a young lady of fashion
+Who had oodles and oodles of passion.
+ To her lover she said,
+ As they climbed into bed,
+"Here's one thing the bastards can't ration!"
+%
+There was a young lady of Fez
+Who was known to the public as "Jez."
+ Jezebel was her name,
+ Sucking cocks was the game
+She excelled at (so everyone says).
+%
+There was a young lady of Gaza
+Who shaved her cunt bare with a razor.
+ The crabs, in a lump,
+ Made tracks to her rump -
+This passing parade did amaze her.
+%
+There was a young lady of Gaza
+Who shaved her cunt bare with a razor.
+ The crabs, in a lump,
+ Made tracks to her rump -
+This passing parade did amaze her.
+%
+There was a young lady of Gaza
+Who shaved her cunt bare with a razor.
+ The crabs, in a lump,
+ Made tracks to her rump--
+This passing parade did amaze her.
+%
+There was a young lady of Gloucester,
+Met a passionate fellow who tossed her.
+ She wasn't much hurt,
+ But he dirtied her skirt,
+So think of the anguish it cost her.
+%
+There was a young lady of Gloucester
+Whose friends they thought they had lost her
+ Till they found on the grass
+ The marks of her arse,
+And the knees of the man who had crossed her.
+%
+There was a young lady of Kent,
+Who admitted she knew what it meant
+ When men asked her to dine,
+ And plied her with wine,
+She knew, oh she knew -- but she went!
+%
+There was a young lady of Lee
+Who scrambled up into a tree,
+ When she got there
+ Her arsehole was bare,
+And so was her C U N T.
+%
+There was a young lady of Lincoln
+Who said that her cunt was a pink'un,
+ So she had a prick lent her
+ Which turned it magenta,
+This artful old lady of Lincoln.
+%
+There was a young lady of Natchez
+Who chanced to be born with two snatches,
+ And she often said, "Shit!
+ Why, I'd give either tit
+For a man with equipment that matches."
+
+There was a young fellow named Locke
+Who was born with a two-headed cock.
+ When he'd fondle the thing
+ It would rise up and sing
+An antiphonal chorus by Bach.
+
+But whether these two ever met
+Has not been recorded as yet,
+ Still, it would be diverting
+ To see him inserting
+His whang while it sang a duet.
+%
+There was a young lady of Norway
+Who hung by her toes in a doorway.
+ She said to her beau
+ "Just look at me Joe
+I think I've discovered one more way."
+%
+There was a young lady of Rhyll
+In an omnibus was taken ill,
+ So she called the conductor,
+ Who got in and fucked her,
+Which did more good than a pill.
+%
+There was a young lady of Spain
+Who took down her pants on a train.
+ There was a young porter
+ Saw more than he orter,
+And asked her to do it again.
+%
+There was a young lady of Spain
+Who was fucked by a monk in a drain.
+ They did it again
+ And again and again,
+And again and again and again.
+%
+There was a young lady of Twickenham
+Who thought men had not enough prick in 'em.
+ On her knees every day
+ To God she would pray
+To lengthen and strengthen and thicken 'em.
+%
+There was a young lady of Wheeling
+Said to her beau, "I've a feeling
+ My little brown jug
+ Has need of a plug" --
+And straightaway she started to peeling.
+%
+There was a young lady of Wheeling
+Who professed to lack sexual feeling.
+ But a cynic named Boris
+ Just touched her clitoris,
+And she had to be scraped off the ceiling.
+%
+There was a young lady who said,
+As her bridegroom got into the bed,
+ "I'm tired of this stunt,
+ That they do with one's cunt,
+You can get up my bottom instead."
+%
+There was a young lady whose cunt
+Could accomodate a small punt.
+ Her mother said, "Annie,
+ It matches your fanny,
+Which never was that of a runt."
+%
+There was a young lady whose thighs,
+When spread showed a slit of such size,
+ And so deep and so wide,
+ You could play cards inside,
+Much to her bridegroom's surprise.
+%
+There was a young lass from Surat.
+The cheeks of her ass were so fat
+ That they had to be parted
+ Whenever she farted,
+And also whenever she shat.
+%
+There was a young lass from Surat.
+The cheeks of her ass were so fat
+ That they had to be parted
+ Whenever she farted,
+And also whenever she shat.
+%
+There was a young laundress named Wrangle
+Whose tits tilted up at an angle.
+ "They may tickle my chin,"
+ She said with a grin,
+"But at least they keep out of the mangle."
+%
+There was a young maiden from Osset
+Whose quim was nine inches across it.
+ Said a young man named Tong,
+ With tool nine inches long,
+"I'll put bugger-in if I loss it."
+%
+There was a young man from Bear Ridge
+Who had strange ideas about marriage.
+ He fucked his wife's mother
+ And sucked off her brother
+And ate up her sister's miscarriage.
+%
+There was a young man from Bel-Aire
+Who was screwing his girl on the stair.
+ But the banister broke
+ So he doubled his stroke
+And finished her off in mid-air.
+%
+There was a young man from Bengal
+Who claimed he had only one ball,
+ But two little bitches
+ Pulled down this man's breeches
+And proved he had nothing at all.
+%
+There was a young man from Biloxi
+Whose bowels responded to Moxie.
+ Drinking glass after glass,
+ He would tune up his ass,
+Till he played like the band at the Roxy.
+%
+There was a young man from Bombay
+Who fashioned a cunt out of clay
+ But the heat of his prick
+ Turned it into a brick
+And rubbed all his foreskin away.
+%
+There was a young man from Boston
+Who rode around in an Austin.
+ There was room for his ass
+ And a gallon of gas,
+But his balls hung out and he lost 'em.
+%
+There was a young man from Calcutta
+Who was heard in his beard to mutter,
+ "If her Bartholin glands
+ Don't respond to my hands,
+I'm afraid I shall have to use butter."
+%
+There was a young man from Dallas
+Who had an exceptional phallus.
+ He couldn't find room
+ In any girl's womb
+Without rubbing it first with Vitalis.
+%
+There was a young man from Dundee
+Who buggered an ape in a tree.
+ The results were quite horrid:
+ All ass and no forehead,
+Three balls and a purple goatee.
+%
+There was a young man from East Lizes
+Whose balls were of two different sizes
+ One was so small
+ It was no ball at all
+The other was large and won prizes.
+%
+There was a young man from East Wubley
+Whose cock was bifurcated doubly.
+ Each quadruplicate shaft
+ Had two balls hanging aft,
+And the general effect was quite lovely.
+
+There was a young man from Hong Kong
+Who had a trifurcated prong:
+ A small one for sucking,
+ A large one for fucking,
+And a `boney' for beating a gong.
+%
+There was a young man from Glengozzle
+Who found a remarkable fossil.
+ He knew by the bend
+ And the wart on the end,
+'Twas the peter of Paul the Apostle.
+%
+There was a young man from Jodhpur
+Who found he could easily cure
+ His dread diabetes
+ By eating a foetus
+Served up in a sauce of manure.
+%
+There was a young man from Kent
+Whose tool was so long that it bent.
+ To save himself trouble
+ He put it in double
+And instead of coming, he went.
+%
+There was a young man from Lynn
+Whose cock was the size of a pin.
+ Said his girl with a laugh
+ As she felt his staff,
+"This won't be much of a sin."
+%
+There was a young man from Maine
+Whose prick was as strong as a crane;
+ It was almost as long,
+ So he strolled with his dong
+Extended in sunshine and rain.
+%
+There was a young man from Nantucket
+Whose cock was so long he could suck it.
+ But he looked in the glass,
+ And saw his own ass,
+And broke his neck trying to fuck it.
+%
+There was a young man from Nantucket
+Whose cock was so long he could suck it.
+ He said with a grin,
+ While wiping his chin,
+"If my ear was a cunt, I could fuck it."
+%
+There was a young man from New Haven
+Who had an affair with a raven.
+ He said with a grin
+ As he wiped off his chin,
+"Nevermore!"
+%
+There was a young man from Peru,
+Who took a long trip by canoe.
+ While staring at Venus,
+ And rubbing his penis,
+He wound up with a handful of goo.
+%
+There was a young man from Purdue
+Who was only just learning to screw,
+ But he hadn't the knack,
+ And he got too far back --
+In the right church, but in the wrong pew.
+%
+There was a young man from Racine
+Who invented a fucking machine.
+ Concave or convex,
+ It served either sex,
+But oh what a bitch to keep clean.
+%
+There was a young man from Rangoon
+Who used to lament 'neath the moon
+ That he had the luck
+ To be born of a fuck
+That was scraped off the sheets with a spoon.
+%
+There was a young man from Salinas
+Who had an extremely long penis:
+ Believe it or not,
+ When he lay on his cot
+It reached from Marin to Martinez.
+%
+There was a young man from Seattle
+Whose testicles tended to rattle.
+ He said as he fuck-ed
+ Some stones in a bucket,
+"If Stravinsky won't deafen you -- that'll."
+%
+There was a young man from Siam
+Who said, "I go in with a wham,
+ But I soon lose my starch
+ Like the mad month of March,
+And the lion comes out like a lamb."
+%
+There was a young man from St. Paul's
+Who read "Harper's Bazaar" and "McCall's"
+ Till he grew such a passion
+ For feminine fashion
+That he knitted a snood for his balls.
+%
+There was a young man from Stamboul
+Who boasted so torrid a tool
+ That each female crater
+ Explored by this satyr
+Seemed almost unpleasantly cool.
+%
+There was a young man from Tibet-
+And this is the strangest one yet-
+ Whose tool was so long,
+ So pointed and strong,
+He could bugger six Greeks "en brochette".
+%
+There was a young man in Havana,
+Banged his girl on a player-piana.
+ At the height of their fever
+ Her ass hit the lever
+And: yes, he has no banana.
+%
+There was a young man in Norway,
+Tried to jerk himself off in a sleigh,
+ But the air was so frigid
+ It froze his cock rigid,
+And all he could come was frappe.
+%
+There was a young man in the choir
+Whose penis rose higher and higher,
+ Till it reached such a height
+ It was quite out of sight --
+But of course you know I'm a liar.
+%
+There was a young man, name of Fred,
+Who spent every Thursday in bed;
+ He lay with his feet
+ Outside of the sheet,
+And the pillows on top of his head.
+ -- Edward Gorey
+%
+There was a young man, name of Saul,
+Who was able to bounce either ball,
+ He could stretch them and snap them,
+ And juggle and clap them,
+Which earned him the plaudits of all.
+%
+There was a young man named Crockett
+Whose balls got caught in a socket.
+ His wife was a bitch
+ So she threw the switch,
+And Crockett went off like a rocket.
+%
+There was a young man named Crockett
+Whose balls got caught in a socket.
+ His wife was a bitch,
+ Yeah, she threw the switch,
+And Crockett went off like a rocket.
+%
+There was a young man named Hughes
+Who swore off all kinds of booze.
+ He said, "When I'm muddled
+ My senses get fuddled,
+And I pass up too many screws."
+%
+There was a young man named Knute
+Who had warts all over his root.
+ He put acid on these
+ And now when he pees,
+He fingers the thing like a flute.
+%
+There was a young man named Laplace
+Whose balls were made out of spun glass.
+ When they banged together
+ They played "Stormy Weather"
+And lightning shot out of his ass.
+%
+There was a young man named McNamiter
+With a tool of prodigious diameter.
+ But it wasn't the size
+ Gave the girls a surprise,
+But his rythm -- iambic pentameter.
+%
+There was a young man named Rex
+Who really was small for his sex.
+ When tried for exposure
+ The judge's disclosure
+Was "de minimus non curat lex."
+%
+There was a young man named Zerubbabel
+Who had only one real, and one rubber ball.
+ When they asked if his pleasure
+ Was only half measure,
+He replied, "That is highly improbable."
+%
+There was a young man named Zerubbabub
+Who belonged to the Block, Fuck & Bugger Club
+ But the pride of his life
+ Were the tits of his wife --
+One real, and one India-rubber bub.
+%
+There was a young man of Arras
+Who stretched himself out on the grass,
+ And with no little trouble,
+ He bent himself double,
+And stuck his prick well up his ass.
+%
+There was a young man of Australia
+Who went on a wild bacchanalia.
+ He buggered a frog,
+ Two mice and a dog,
+And a bishop in fullest regalia.
+%
+There was a young man of Belgrade
+Who remarked, "I'm a queer piece of trade.
+ I will suck, without charge,
+ Any cock, if it's large.
+If it's small, I expect to be paid."
+%
+There was a young man of Belgrade
+Who slept with a girl in the trade.
+ She said to him, "Jack,
+ Try the hole in the back;
+The front one is badly decayed."
+%
+There was a young man of Bengal
+Who swore he had only one ball,
+ But two little bitches
+ Unbuttoned his britches,
+And found he had no balls at all.
+%
+There was a young man of Bombay
+Who buggered his dad once a day.
+ He said, "I like, rather,
+ Fucking my father --
+He's clean, and there's nothing to pay."
+%
+There was a young man of Calcutta,
+Who tried to write "cunt" on a shutter.
+ When he got to c-u,
+ A pious Hindoo
+Knocked him ass-over-head in the gutter.
+%
+There was a young man of Cape Horn
+Who wished he had never been born,
+ And he wouldn't have been
+ If his father had seen
+That the end of the rubber was torn.
+%
+There was a young man of Coblenz
+Whose ballocks were simply immense:
+ It took forty-four draymen,
+ A priest and three laymen
+To carry them thither and thence.
+%
+There was a young man of Darjeeling
+Whose cock reached up to the ceiling.
+ In the electric light socket,
+ He'd put it and rock it--
+Oh God! What a wonderful feeling!
+%
+There was a young man of Devizes
+Whose balls were of different sizes.
+ His tool when at ease,
+ Hung down to his knees,
+Oh, what must it be when it rises!
+%
+There was a young man of Devizes,
+Whose balls were of different sizes.
+ One was so small,
+ It was nothing at all;
+The other took numerous prizes.
+%
+There was a young man of Dumfries
+Who said to his girl, "If you please,
+ It would give me great bliss
+ If, while playing with this,
+You would pay some attention to these!"
+%
+There was a young man of Greenwich
+Whose balls were all covered with spinach.
+ So long was his tool
+ That it wound round a spool,
+And he let it out inach by inach.
+%
+There was a young man of high station
+Who was found by a pious relation
+ Making love in a ditch
+ To -- I won't say a bitch --
+But a woman of no reputation.
+%
+There was a young man of Khartoum,
+The strength of whose balls was his doom.
+ So strong was his shootin',
+ The third law of Newton
+Propelled the poor chap to the Moon.
+%
+There was a young man of Khartoum
+Who lured a poor girl to her doom.
+ He not only fucked her,
+ But buggered and sucked her--
+And left her to pay for the room.
+%
+There was a young man of Kildare
+Who was fucking a girl on the stair.
+ The bannister broke,
+ But he doubled his stroke
+And finished her off in mid-air.
+%
+There was a young man of Kutki
+Who could blink himself off with one eye.
+ For a while though, he pined,
+ When his organ declined
+To function, because of a stye.
+%
+There was a young man of Lahore
+Whose prick was one inch and no more.
+ It was all right for key-holes
+ And little girl's pee-holes,
+But not worth a damn with a whore.
+%
+There was a young man of Lake Placid
+Whose prick was lethargic and flaccid.
+ When he wanted to sport
+ He would have to resort
+To injections of sulphuric acid.
+%
+There was a young man of Madras
+Whose balls were constructed of brass.
+ When jangled together
+ They played "Stormy Weather",
+And lightning shot out of his ass.
+%
+There was a young man of Missouri
+Who fucked with a terrible fury.
+ Till hauled into court
+ For his beastial sport,
+And condemned by a poorly-hung jury.
+%
+There was a young man of Natal
+And Sue was the name of his gal.
+ One day, north of Aden,
+ He got his hard rod in,
+And came clear up Suez Canal.
+%
+There was a young man of Natal
+Who was fucking a Hottentot gal.
+ Said she, "You're a sluggard!"
+ Said he, "You be buggered!
+I like to fuck slow and I shall."
+%
+There was a young man of Ostend
+Who let a girl play with his end.
+ She took hold of Rover,
+ And felt it all over,
+And it did what she didn't intend.
+%
+There was a young man of Ostend
+Whose wife caught him fucking her friend.
+ "It's no use, my duck,
+ Interrupting our fuck,
+For I'm damned if I draw till I spend."
+%
+There was a young man of Saskatchewan,
+Whose penis was truly gargantuan.
+ It was good for large whores,
+ And for small dinosaurs,
+And was rough enough to scratch a match upon.
+%
+There was a young man of Seattle
+Who bested a bull in a battle.
+ With fire and gumption
+ He assumed the bull's function,
+And deflowered a whole herd of cattle.
+%
+There was a young man of St. John's
+Who wanted to bugger the swans.
+ But the loyal hall porter
+ Said, "Pray take my daughter!
+Those birds are reserved for the dons."
+%
+There was a young man of Tibet
+-- And this is the strangest one yet --
+ His prick was so long,
+ And so pointed and strong,
+He could bugger six sheep en brochette.
+%
+There was a young man of Toulouse
+Who had a deficient prepuce,
+ But the foreskin he lacked
+ He made up in his sac;
+The result was, his balls were too loose.
+%
+There was a young man who appeared
+To his friends with a full growth of beard;
+ They at once said, "Although
+ We can't say why it's so,
+The effect is uncommonly weird."
+ -- Edward Gorey
+%
+There was a young man who said "God,
+I find it exceedingly odd,
+ That the willow oak tree
+ Continues to be,
+When there's no one about in the Quad."
+
+"Dear Sir, your astonishment's odd,
+For I'm always about in the Quad;
+ And that's why the tree,
+ Continues to be,"
+Signed "Yours faithfully, God."
+%
+There was a young man with a fiddle
+Who asked of his girl, "Do you diddle?"
+ She replied, "Yes, I do,
+ But prefer to with two --
+It's twice as much fun in the middle."
+%
+There was a young man with a prick
+Which into his wife he would stick
+ Every morning and night
+ If it stood up all right --
+Not a very remarkable trick.
+
+His wife had a nice little cunt:
+It was hairy, and soft, and in front,
+ And with this she would fuck him,
+ Though sometimes she'd suck him --
+A charming, if commonplace, stunt.
+%
+There was a young man with one foot
+Who had a very long root.
+ If he used this peg
+ As an extra leg
+Is a question exceedingly moot.
+%
+There was a young miss from Johore
+Who'd lie on a mat on the floor;
+ In a manner uncanny
+ She'd wobble her fanny,
+And drain your nuts dry to the core.
+%
+There was a young monk from Siberia
+Whose life got drearia' and drearia'
+ Till he did to a nun
+ What shouldn't be done
+And made her a mother superia'.
+%
+There was a young monk from Tibet
+And this is the damnedest one yet
+ His cock was so long
+ And incredibly strong
+That he buggered six Greeks en brochette.
+%
+There was a young monk in Siberia,
+Whose morals were very inferior,
+ He jumped on a nun
+ Which he shouldn't have done,
+And now she's a Mother Superior.
+%
+There was a young monk of Dundee
+Who complained that it hurt him to pee,
+ He said, "Pax vobiscum,
+ Now why won't the piss come?
+I'm afraid I've the c-l-a-p."
+%
+There was a young parson of Harwich,
+Tried to grind his betrothed in a carriage.
+ She said, "No, you young goose,
+ Just try self-abuse.
+And the other we'll try after marriage."
+%
+There was a young peasant named Gorse
+Who fell madly in love with his horse.
+ Said his wife, "You rapscallion,
+ That horse is a stallion --
+This constitutes grounds for divorce."
+%
+There was a young person of Kent
+Who was famous wherever he went.
+ All the way through a fuck,
+ He would quack like a duck,
+And he crowed like a cock when he spent.
+%
+There was a young physicist named Fisk
+Whose lovemaking was rather brisk.
+ So quick was his action,
+ The Lorentz Contraction
+Shortened his rod to a disc !!
+%
+There was a young plumber named Lee
+Who was plumbing his girl by the sea.
+ She said, "Stop your plumbing,
+ There's somebody coming"
+Said the plumber, still plumbing, "It's me."
+%
+There was a young poet named Dan,
+Whose poetry never would scan.
+ When told this was so,
+ He said, "Yes, I know,
+It's because I try to put every possible syllable into that
+ Last line that I can."
+%
+There was a young poet named Dan,
+Whose poetry never would scan.
+ When told this was so,
+ He said, "Yes, I know.
+It's because I try to put every single
+syllable into the last line that I possibly,
+possibly can."
+%
+There was a young royal marine,
+Who tried to fart "God Save the Queen".
+ When he reached the soprano
+ Out came only guano
+And his britches weren't fit to be seen.
+%
+There was a young sailor from Brighton,
+Who remarked to his girl, "You're a tight one."
+ She replied, "'Pon my soul,
+ You're in the wrong hole;
+There's plenty of room in the right one."
+%
+There was a young sailor from Brighton
+Who said to his bird, "You're a tight'un."
+ She replied, "'Pon my soul,
+ You're in the wrong hole
+There's plenty of room in the right'un."
+%
+There was a young sapphic named Anna
+Who stuffed her friend's cunt with banana,
+ Which she sucked, bit by bit,
+ From her partner's warm slit,
+In the most approved lesbian manner.
+%
+There was a young Scot in Madrid
+Who got fifty-five fucks for a quid.
+ When they said, "Are you faint?"
+ He replied, "No, I ain't,
+But I don't feel as good as I did."
+%
+There was a young soldier from Munich
+Whose penis hung down past his tunic,
+ And their chops girls would lick
+ When they thought of his prick,
+But alas! he was only a eunuch.
+%
+There was a young sportsman named Peel
+Who went for a trip on his wheel;
+ He pedalled for days
+ Through crepuscular haze,
+And returned feeling somewhat unreal.
+ -- Edward Gorey
+%
+There was a young squaw of Wohunt
+Who possessed a collapsible cunt.
+ It had many odd uses,
+ Produced no papooses,
+And fitted both giant and runt.
+%
+There was a young student from Yale
+Who was getting his first piece of tail.
+ He shoved in his pole,
+ But in the wrong hole,
+And a voice from beneath yelled: "No sale!"
+%
+There was a young trollop at Yale,
+Who had verses tattooed on her tail,
+ And on her behind,
+ For the sake of the blind,
+A duplicate version in Braille.
+%
+There was a young whore from Kaloo
+Who filled her vagina with glue.
+ She said with a grin,
+ "If they pay to get in,
+They can pay to get out again too!"
+%
+There was a young woman called Pearl
+Who quite resembled a churl;
+ When she asked a young man named Tex
+ Whether he would like to have sex,
+"Certainly," quoth he, "Who's the girl?"
+%
+There was a young woman from Bude,
+Who went for a swim in the nude,
+ But a man in a punt,
+ Grabbed at her elbow,
+And said "Hey, lady, you can't swim here, it's private property."
+%
+There was a young woman in Dee
+Who stayed with each man she did see.
+ When it came to a test
+ She wished to be best,
+And practice makes perfect, you see.
+%
+There was a young woman named Alice
+Who peed in a Catholic chalice.
+ She said, "I do this
+ From a great need to piss,
+And not from sectarian malice."
+%
+There was a young woman named Ells
+Who was subject to curious spells
+ When got up very oddly,
+ She'd cry out things ungodly
+by the palms in expensive hotels.
+ -- Edward Gorey
+%
+There was a young woman named Florence
+Who for fucking professed an abhorrence,
+ But they found her in bed
+ With her cunt flaming red,
+And her poodle-dog spending in torrents.
+%
+There was a young woman named Plunnery
+Who rejoiced in the practice of gunnery.
+ Till one day unobservant,
+ She blew up a servant,
+And was forced to retire to a nunnery.
+ -- Edward Gorey
+%
+There was a young woman named Sutton
+Who said, as she carved up the mutton,
+ "My father preferred
+ The last sheep in the herd --
+This is one of his children I'm cuttin'."
+%
+There was a young woman of Cheadle,
+Who once gave the clap to a beadle.
+ Said she, "Does it itch?"
+ "It does, you damned bitch,
+And it burns like hell-fire when I peedle."
+%
+There was a young woman of Condover
+Whose husband had ceased to be fond of 'er.
+ Her pussy was juicy,
+ Her arse soft and goosey,
+But peroxide had now made a blonde of 'er.
+%
+There was a young woman of Croft
+Who played with herself in a loft,
+ Having reasoned that candles
+ Could never cause scandals,
+Besides which they did not go soft.
+
+Said another young woman of Croft,
+Amusing herself in the loft,
+ "A salami or wurst
+ Is what I'd choose first --
+With bologna you know you've been boffed."
+%
+There was a young woman, quite handsome,
+Who got stuck in a sleeping room transom.
+ When she offered much gold
+ For release, she was told
+That the view was worth more than the ransom.
+%
+There was a young woman whose stammer
+Was atrocious, and so was her grammar;
+ But they were not improved
+ When her husband was moved
+To knock out her teeth with a hammer.
+ -- Edward Gorey
+%
+There was an old abbess quite shocked
+To find nuns where the candles were locked.
+ Said the abbess, "You nuns
+ Should behave more like guns,
+And never go off till you're cocked."
+%
+There was an old bishop from Buckingham
+Who fell in love with some oysters while shucking 'em.
+ His wife with distain
+ Could scarcely restrain
+That sprightly old bishop from * * *.
+%
+There was an old count of Swoboda
+Who would not pay a whore what he owed her.
+ So, with great savoir-faire,
+ She stood on a chair
+And pissed in his whiskey-and-soda.
+%
+There was an old curate of Hestion
+Who'd errect at the slightest suggestion.
+ But so small was his tool
+ He could scarce screw a spool,
+And a cunt was quite out of the question.
+%
+There was an old fellow named Art
+Who awoke with a horrible start,
+ For down by his rump
+ Was a generous lump
+Of what should have been just a fart.
+%
+There was an old fellow named Skinner
+Whose prick, his wife said, had grown thinner.
+ But still, by and large,
+ It would always discharge
+Once he could just get it in her.
+%
+There was an old feminine blighter
+Who trained a Chow dog to delight her.
+ She would cream her own pool
+ While she sucked off his tool --
+How his cock in her cunt would excite her!
+%
+There was an old gent from Kentuck
+Who boasted a filigreed schmuck,
+ But he put it away
+ For fear that one day
+He might put it in and get stuck.
+%
+There was an old girl of Kilkenny
+Whose usual charge was a penny.
+ For half of that sum
+ You could finger her bum--
+A source of amusement to many.
+%
+There was an old harlot from Dijon
+Who in her old age got religion.
+ "When I'm dead & gone,"
+ Said she, "I'll take on
+The Father, the Son, and the Pigeon."
+%
+There was an old hermit named Dave
+Who kept a dead whore in his cave.
+ He said "I'll admit
+ I'm a bit of a shit,
+But look at the money I save."
+%
+There was an old lady of Bingly
+Who wailed, "I do hate to sleep singly.
+ I thought I had got
+ A bloke for my twat,
+But he seems rather queenly than kingly."
+%
+There was an old lady of Glascow,
+Whose party proved quite a fiasco.
+ At nine-thirty, about,
+ The lights all went out,
+Through a lapse on the part of the Gas Co.
+%
+There was an old lady of Kewry
+Whose cunt was a `lusus naturae':
+ The `introitus vaginae',
+ Was unnaturally tiny,
+And the thought of it filled her with fury.
+%
+There was an old lady who lay
+With her legs wide apart in the hay,
+ Then, calling the ploughman,
+ She said, "Do it now, man!
+Don't wait till your hair has turned gray."
+%
+There was an old maid from Cape Cod
+Who thought all good things came from god.
+ But it wasn't the almighty
+ Who lifted her nighty,
+It was Roger, the lodger, by god.
+%
+There was an old man from Bengal
+Who liked to do tricks in the hall.
+ His favorite trick
+ Was to stand on his dick
+While he rolled around on one ball.
+%
+There was an old man from Duluth
+Whose cock was shot off in his youth.
+ He fucked with his nose
+ Or his fingers and toes
+And he came thru a hole in his tooth.
+%
+There was an old man from Fort Drum
+Whose son was incredibly dumb.
+ When he urged him ahead,
+ He went down instead,
+For he thought to succeed meant succumb.
+%
+There was an old man of Alsace
+Who played the trombone with his ass.
+ He put in a trap
+ To take out the crap,
+But the vapors corroded the brass.
+%
+There was an old man of Brienz
+The length of whose cock was immense:
+ With one swerve he could plug
+ A boy's bottom in Zug,
+And a kitchen-maid's cunt in Coblenz.
+%
+There was an old man of Cajon
+Who never could get a good bone.
+ With the aid of a gland
+ It grew simply grand;
+Now his wife cannot leave it alone.
+%
+There was an old man of Calcutta
+Who spied through a chink in the shutter.
+ But all he could see
+ Was his wife's bare knee,
+And the back of the bloke who was up her.
+%
+There was an old man of Connaught
+Whose prick was remarkably short.
+ When he got into bed,
+ The old woman said,
+"This isn't a prick, it's a wart."
+%
+There was an old man of Duddee
+Who came home as drunk as could be.
+ He wound up the clock
+ With the end of his cock,
+And buggered his wife with the key.
+%
+There was an old man of Duluth
+Whose cock was shot off in his youth.
+ He fucked with his nose
+ And with fingers and toes,
+And he came through a hole in his tooth.
+%
+There was an old man of Hong Kong
+Who never did anything wrong.
+ He would lie on his back
+ With his head in a sack
+And secretly finger his dong.
+%
+There was an old man of St. Bees,
+Who was stung in the arm by a wasp.
+ When asked, "Does it hurt?"
+ He relied, "No, it doesn't.
+I'm so glad that it wasn't a hornet."
+%
+There was an old man of St. Bees,
+Who was stung in the arm by a wasp.
+ When asked, "Does it hurt?"
+ He relied, "No, it doesn't.
+I'm so glad that it wasn't a hornet."
+ -- W.S. Gilbert
+%
+There was an old man of Tagore
+Whose tool was a yard long or more,
+ So he wore the damn thing
+ In a surgical sling
+To keep it from wiping the floor.
+%
+There was an Old Man of the Mountain
+Who frigged himself into a fountain
+ Fifteen times had he spent,
+ Still he wasn't content,
+He simply got tired of the counting.
+%
+There was an old man of the port
+Whose prick was remarkably short.
+ When he got into bed,
+ The old woman said,
+"That isn't a prick; it's a wart!"
+%
+There was an old man of the port
+Whose prick was remarkably short.
+ When he got into bed,
+ The old woman said,
+"This isn't a prick; it's a wart!"
+%
+There was an old man of the port
+Whose prick was remarkably short.
+ When he got into bed,
+ The old woman said,
+"That isn't a prick; it's a wart!"
+%
+There was an old man who said, "Tush!
+My balls always hang in the brush,
+ And I fumble about,
+ Half in and half out,
+With a pecker as limber as mush."
+%
+There was an old man with a beard
+Who said, "It is just what I feared!
+ Two owls and a hen,
+ Four larks and a wren
+Have all built their nests in my beard!"
+%
+There was an old person of Ware
+Who had an affair with a bear.
+ He explained, "I don't mind,
+ For it's gentle and kind,
+But I wish it had slightly less hair."
+%
+There was an old pirate named Bates
+Who was learning to rhumba on skates
+ He fell on his cutlass
+ Which rendered him nutless
+And practically useless on dates.
+%
+There was an old satyr named Mack
+Whose prick had a left handed tack.
+ If the ladies he loves
+ Don't spin when he shoves,
+Their cervixes frequently crack.
+%
+There was an old Scot named McTavish
+Who attempted an anthropoid ravish.
+ The object of rape
+ Was the wrong sex of ape,
+And the anthropoid ravished McTavish.
+%
+There was an old whore from Silesia
+Who'd croke: "If my box doesn't please ya,
+ For a slight extra sum
+ You can go up my bum
+But watchout or my tapeworm'll seize ya."
+%
+There was an old whore in the Azores
+Whose body was covered with festers & sores.
+ Why the dogs in the street
+ Wouldn't eat the green meat
+That hung in festoons from her drawers.
+%
+There was an old woman of Ghent
+Who swore that her cunt had no scent.
+ She got fucked so often
+ At last she got rotten,
+And didn't she stink when she spent.
+%
+There was once a mechanic named Bench
+Whose best tool was a sturdy gut-wrench.
+ With this vibrant device
+ He could reach, in a trice,
+The innermost parts of a wench.
+%
+There was once a sad Maitre d'hotel
+Who said, "They can all go to hell!
+ What they do to my wife--
+ Why it ruins my life;
+And the worst is, they all do it well.
+%
+There were three ladies of Huxham,
+And whenever we meets 'em we fucks 'em,
+ And when that game grows stale
+ We sits on a rail,
+And pulls out our pricks and they sucks 'em.
+%
+There were three young ladies of Birmingham,
+And this is the scandal concerning 'em.
+ They lifted the frock
+ And tickled the cock
+Of the Bishop engaged in confirming 'em.
+
+Now, the Bishop was nobody's fool,
+He'd been to a good public school,
+ So he took down their britches
+ And buggered those bitches
+With his ten-inch episcopal tool.
+
+Then up spoke a lady from Kew,
+And said, as the Bishop withdrew,
+ "The vicar is quicker
+ And thicker and slicker,
+And longer and stronger than you."
+ -- Abuses of the Clergy
+%
+There's a charming young girl in Tobruk
+Who refers to her quiff as a nook.
+ It's deep and it's wide,
+ -- You can curl up inside
+With a nice easy chair and a book.
+%
+There's a charming young lady named Beaulieu
+Who's often been screwed by yours truly,
+ But now--it's appallin'--
+ My balls always fall in!
+I fear that I've fucked her unduly.
+%
+There's a dowager near Sweden Landing
+Whose manners are odd and demanding.
+ It's one of her jests
+ To suck off her guests --
+She hates to keep gentlemen standing.
+%
+There's a lovely young lady named Shittlecock
+Who loves to play diddle and fiddle-cock,
+ But her cunt's got a pucker
+ That's best not to fuck, or
+When least you expect it to, it'll lock.
+%
+There's a rather odd couple in Herts
+Who are cousins (or so each asserts);
+ Their sex is in doubt
+ For they're never without
+Their moustaches and long, trailing skirts.
+ -- Edward Gorey
+%
+There's a sports-minded coed named Sue,
+Who's been coxing the varsity crew.
+ In the shell Sue is great,
+ But her boyfriend's irate,
+When she calls out the stroke as they screw.
+%
+There's a tavern in London that's staffed,
+By a barmaid who's tops at her craft:
+ In her striving to please,
+ She serves ale on her knees,
+So the patrons get head with their draft.
+%
+There's a very hot babe at the Aggies
+Who's to men what to bulls a red rag is.
+ The seniors go round
+ Hanging down to the ground,
+And one extra-large Soph has to drag his.
+%
+There's a vicar who's classed as nefarious,
+Since his shocking perversions are various...
+ He will bugger some lad
+ With a dildo (the cad!)
+While exulting, "My pleasure's vicarious!"
+%
+There's a young Yiddish slut with two cunts,
+Whose pleasure in life is to pruntz.
+ When one pireg is shot,
+ There's that alternate twat,
+But the ausgefuckt male merely grunts.
+%
+There's an oversexed lady named Whyte
+Who insists on a dozen a night.
+ A fellow named Cheddar
+ Had the brashness to wed her-
+His chance of survival is slight.
+%
+There's an unbroken babe from Toronto,
+Exceedingly hard to get onto,
+ But when you get there,
+ And have parted the hair,
+You can fuck her as much as you want to.
+%
+They had come in the fugue to the stretto
+When a dark, bearded man from a ghetto
+ Slipped forward and grabbed
+ Her tresses and stabbed
+Her to death with a rusty stiletto.
+ -- Edward Gorey
+%
+Though his plan, when he gave her a buzz,
+Was to do what man normally does,
+ She declared, "I'm a Soul-
+ Not a sexual goal!"
+So he shrugged and called someone who was.
+%
+Though most of the crewmen are whites,
+Uhura has full equal rights.
+ Her crewmates, you see,
+ Love De-mo-cra-cy,
+And the way that she fills out her tights.
+%
+Though the invalid Saint of Brac
+Lay all of his life on his back,
+ His wife got her share,
+ And the pilgrims now stare
+At the scene, in his shrine, on a plaque.
+%
+'Tis a custom in Castellamare
+To fuck in the back of a lorry.
+ The chassis and springs
+ Are like woodwinds and strings
+In the midst of a musical soiree.
+%
+To a weepy young woman in Thrums
+Her betrothed remarked, "This is what comes
+ Of allowing your tears
+ To fall into my ears -
+I think they have rotted the drums."
+ -- Edward Gorey
+%
+To bear offspring, Noah's snakes were unable.
+Their fertility was somewhat unstable.
+ He constructed a bed
+ Out of tree trunks and said,
+"Even adders can multiply on a log table."
+%
+To his bride a young bridegroom said, "Pish!
+Your cunt is as big as a dish!"
+ She replied, "Why, you fool,
+ With your limp little tool
+It's like driving a nail with a fish!"
+%
+To his bride said a numskull named Clarence :
+"I trust you will show some forbearance.
+ My sexual habits
+ I picked up from rabbits,
+And occasionally watching my parents."
+%
+To his bride said economist Fife :
+"The semen you'll launch as my wife,
+ We will salvage and freeze
+ To resemble goat's cheese,
+And slice for hors d'oeuvres with a knife."
+%
+To his bride said the keen-eyed detective,
+"Can it be that my eyesight's defective?
+ Has the east tit the least bit
+ The best of the west tit,
+Or is it the faulty perspective?"
+%
+To his bride, said the sharp eyed detective,
+"Can it be that my eyesight's defective?
+ Is your east tit the least bit
+ The best of your west tit,
+Or is it a trick of perspective?"
+%
+To his clubfooted child said Lord Stipple,
+As he poured his post-prandial tipple,
+ "Your mother's behaviour
+ Gave pain to Our Saviour,
+And that's why He made you a cripple."
+ -- Edward Gorey
+%
+Two anglers were fishing off Wight
+And his bobber was dipping all night.
+ Murmured she, with a laugh,
+ "It's ready to gaff,
+But don't break your rod which is light."
+
+A couple was fishing near Clombe
+When the maid began looking quite glum,
+ And said, "Bother the fish!
+ I'd rather coish!"
+Which they did -- which was why they had come.
+
+As two consular clerks in Madras
+Fished, hidden in deep shore-grass,
+ "What a marvelous pole,"
+ Said she, "but control
+Your sinkers -- they're banging my ass."
+%
+Two eager young men from Cawnpore
+Once buggared and fucked the same whore.
+ But her partition split
+ And the blood and the shit
+Rolled out in a mess on the floor.
+%
+Two roosters in one of our pens
+Found their pricks were no larger than wens.
+ As they looked at their foreskins
+ And wished they had more skins,
+They discovered they'd both become hens.
+%
+Under the spreading chestnut tree
+The village smith he sat,
+ Amusing himself
+ By abusing himself
+And catching the load in his hat.
+%
+Une joile epousetta a Tours
+Voulait de gig-gig tous le jours.
+ Mais le mari disait, "Non!
+ De trop n'est pas bon!
+Mon derriere exige du secours!"
+%
+Visas erat: huic geminarum
+Dispar modus testicularum:
+ Minor haec nihili,
+ Palma triplici,
+Jam fecerat altera clarum.
+%
+We dedicate this to the cunt,
+The kind the broad-minded guys hunt :
+ All hail to the twat,
+ Willing, thrilling, and hot,
+That wears peckers down, limp and blunt!
+%
+When I was a baby, my penis
+Was as white as the buttocks of Venus.
+ But now 'this as red
+ As her nipples instead--
+All because of the feminie genus!
+%
+When they asked a pert baggage name Alice,
+Who'd been bedded and banged in the palace,
+ "Was he modest or vain?"
+ "Was he regal or plain?"
+She replied, "He's a jolly good phallus!"
+%
+When you fuck little Annie in Anza
+You get a great bossom bonanza:
+ Sucking Annie's soft tits
+ Makes her throw fifty fits,
+And the fuck is a sextravaganza!
+%
+While his duchess lay practically dead,
+The Duke of Daguerrodargue said:
+ "Can it be this is all?
+ How puny! How small!
+Have destroyed this disgrace to my bed."
+ -- Edward Gorey
+%
+While I, with my usual enthusiasm,
+Was exploring in Ermintrude's busiasm,
+ She explained, "They are flat,
+ But think nothing of that --
+You will find that my sweet sister Susiasm."
+%
+While out on a date in his Fiat,
+The man exclaimed "Where's my key at?"
+ As he bent down to seek,
+ She let out a shriek:
+"That's not where it's likely to be at."
+%
+While spending the winter at Pau
+Lady Pamela forgot to say "No."
+ So the head-porter made her
+ And the second-cook laid her;
+The waiters were all hanging low.
+%
+While Titian was mixing rose madder,
+His model reclined on a ladder.
+ Her position to Titian
+ Suggested coition,
+So he leapt up the ladder and had 'er.
+%
+While travelling in farthest Tibet,
+Lord Irongate found cause to regret
+ The buttered-up tea,
+ A pain in his knee,
+And the frivolous tourists he met.
+ -- Edward Gorey
+%
+Winter is here with his grouch,
+The time when you sneeze and you slouch.
+ You can't take your women
+ Canoein' or swimmin',
+But a lot can be done on a couch.
+%
+With his penis in turgid erection,
+And aimed at woman's mid-section,
+ Man looks most uncouth
+ In that Moment of Truth,
+But she sheathes it with loving affection.
+%
+You Women's Lib gals won't agree,
+But dependent on men you must be:
+ You'll need a him
+ With a rod firm and trim,
+To puggle your water-drains free!
+%
+Young Frederick the great was a beaut.
+To a guard he cried, "Hey, man, you're cute.
+ If you'll come to my palace,
+ I'll finger your phallus,
+And then I shall blow on your flute."
+%
+You've heard of the bishop of Birmingham,
+Well, here's the new story concerning 'im :
+ He buggers the choir
+ As they sing "Ave Maria,"
+And fucks all the girls whilst confirming 'em.
+%
diff --git a/fortune/datfiles/unamerican-o.fake b/fortune/datfiles/unamerican-o.fake
new file mode 100644
index 0000000..3b3f5a3
--- /dev/null
+++ b/fortune/datfiles/unamerican-o.fake
@@ -0,0 +1,2 @@
+There are no potentially offensive fortunes installed on this
+system. For further details, contact your system administrator.
diff --git a/fortune/datfiles/unamerican-o.real b/fortune/datfiles/unamerican-o.real
new file mode 100644
index 0000000..769e902
--- /dev/null
+++ b/fortune/datfiles/unamerican-o.real
@@ -0,0 +1,385 @@
+SHUT UP HIPPY
+%
+YOU'RE ALL SHEEP
+%
+SELL ME DRUGS
+%
+TELEVISION LOVES ME
+%
+DON'T POSTPONE JOY
+%
+FUCK SLOGANS
+%
+COFFEE NOW DAMMIT
+%
+THIS WORLD IS SHIT
+%
+SMASH THE STATE
+%
+DARN THE GOV'T
+%
+WHITEY WILL PAY
+%
+MY JOB SUCKS ASS
+%
+BAD SEX SUCKS
+%
+I'M FUCKING METAL
+%
+I WORSHIP SATAN HA HA
+%
+ADULTS ARE DUMB
+%
+WE'RE DOOMED
+%
+DON'T GET CAUGHT
+%
+THE END IS NEAR
+%
+GOD IS OBSOLETE
+%
+FUCK YOU, GOD
+%
+NO MORE BULLSHIT
+%
+WARM THE GLOBE
+%
+JESUS HATES ME
+%
+FUCK WORK
+%
+DRUGS HELP ALOT
+%
+COPS SMELL FUNNY
+%
+WEIRDOS UNITE!
+%
+MICROSOFT MUST DIE
+%
+WHY DOES SCHOOL SUCK?
+%
+MY BOSS IS A JERK
+%
+JESUS JUST LEFT
+%
+REBOOT AMERICA
+%
+DESTROY CAPITALISM
+%
+I HATE THE RICH
+%
+I AM AN ANARCHIST
+%
+BOMB THE MALL
+%
+WAKE THE FUCK UP
+%
+DOPE SMOKIN' MORON
+%
+KIDS LOVE SATAN
+%
+THE SYSTEM'S FUCKED
+%
+WOMEN WILL RISE
+%
+FUCK SCHOOL
+%
+I HATE COMPUTERS
+%
+LIFE ISN'T FAIR
+%
+POLITICS ARE BORING
+%
+NO CHANGE SORRY
+%
+GOOD FOR NOTHING
+%
+RACISM IS TYPICAL
+%
+YOU'RE A SEXIST
+%
+BORED
+%
+BROKE
+%
+WAGE-SLAVE
+%
+MAKE IT STOP
+%
+FUCK ART LET'S KILL
+%
+END CIVILIZATION
+%
+CALL IN SICK
+%
+TWENTYNOTHING
+%
+GOAT-BOY
+%
+My dad's a cop too,
+couldja let me go now?
+%
+KEEP MUSIC EVIL
+%
+FUCK FAST FOOD
+%
+ORGASMS ARE GOOD
+%
+BREAK SOME LAWS
+%
+STAMP OUT REALITY
+%
+LIVE THE CHAOS
+%
+WE'RE ALL PERVERTS
+%
+UNEMPLOYABLE
+%
+LEGALIZE YOURSELF
+%
+T.V. CASUALTY
+%
+BE NOT HALF-ASSED
+%
+ANNOY THE BORING
+%
+PUNK ROCK GIRL
+%
+GOD MASTURBATES
+%
+DIE MTV DIE
+%
+I AM A POSEUR
+%
+TOUCH ME I'M SICK
+%
+ANTI-FASHION
+%
+PIGS VS. PEOPLE
+%
+NOT OF THIS EARTH
+%
+DRUGS SUCK ALOT
+%
+Sex with you would suck.
+%
+I'm killing the Earth!
+%
+I guess I was punk once.
+%
+i represent
+ GOD
+ you fuck
+%
+My world is cold
+and without hope.
+%
+GIMME GIMME
+FOOD STAMPS
+%
+THIS ISN'T ME
+%
+FUCK DECAF
+%
+DEFEATED
+%
+Blow up Disneyland.
+%
+California is overrated.
+%
+UNAMERICAN
+%
+I AM CONFUSED
+%
+SEX TOYS ROCK
+%
+GO FUCKING PRAY
+%
+NATURE IS PISSED
+%
+FUGAZIFY YOURSELF
+%
+I'M IN SCENESTER HELL
+%
+RESIST DESPAIR
+%
+EVIL WILL TRIUMPH
+%
+FUCK YOUR LAME ADS
+%
+RACE MIXING IS COOL
+%
+EMBRACE VIOLENCE
+%
+AMERICAN WASTE
+%
+FUCKING HOSTILE
+%
+SEIZE LIBERTY
+%
+DESTROY WHAT
+ BORES YOU
+ ON SIGHT
+%
+FUCK YEAH I'M WEIRD
+%
+FUCK CENSORSHIP
+%
+WE'RE NOT DUMB
+%
+DEMAND JUSTICE
+%
+FREAK PRIDE
+%
+CULT MEMBER
+%
+CONFORMIST
+REVOLUTION
+%
+FUCK SHIT UP
+%
+DON'T LET ME FAIL
+%
+GROOVE MATTERS
+%
+SURVIVE Y2K SOMEHOW
+%
+TAX THE RICH
+%
+MAKE YUPPIES SUFFER
+%
+GET A JOB JUNKIE
+%
+ARM THE HOMELESS
+%
+BOYCOTT GEN-X CRAP
+%
+GODLESS COMMIE SCUM
+%
+I STILL BELIEVE
+%
+SCARE THE SQUARE
+%
+I AM A BAD ASS
+%
+UNLEASH INFINITY
+%
+ESTROGEN POWER
+%
+HEDONISM NOW!
+%
+SOMEBODY DOSE ME
+%
+REAGAN WAS WORSE
+%
+children know everything
+%
+TRAITOR
+%
+SINNER
+%
+UNITY
+%
+UNDERSTAND
+%
+GO CORPORATE
+%
+You LIVE in that head?
+%
+JUST BE PURE
+%
+PIGS SHOULDN'T RULE
+%
+Go work on your website.
+%
+America eats its young.
+%
+LAUGH AT ASSHOLES
+%
+PEOPLE ARE MIRACLES
+%
+DESTINATION UNKNOWN
+%
+HEAL YOUR FUCKERS
+%
+CONSIDER SOBREITY
+%
+INHERIT THE EARTH
+%
+DROP THE ATTITUDE
+%
+ALL POLITICIANS LIE
+%
+GOTTA LOVE HOTTIES
+%
+what's stopping you?
+%
+IMPEACH 'EM ALL
+%
+HOOK ME UP BABY
+%
+i'm so fucking beautiful
+%
+SO MANY FEELINGS
+%
+QUIT BEING PASSIVE
+%
+GO BEYOND COMFORT
+%
+STOP LIVING LIKE VEAL
+%
+ask me about my pain
+%
+OVERTHROW THAT SHIT
+%
+BORN TO CHILL
+%
+Whose future is it, anyway?
+%
+This is a nation of whores.
+%
+YOUR KIDS ARE TRIPPING
+%
+FUCK ALL PREJUDICE
+%
+SHHHHHH. LISTEN.
+%
+FIGHT FAT PHOBIA
+%
+VICTORY OVER HORSESHIT
+%
+everyone is a prostitute
+%
+DON'T STOP BELIEVING
+%
+YOU'RE BISEXUAL
+%
+MINIMIZE BAD THINGS
+%
+YOU'RE MY RELIGION
+%
+I WORSHIP YOU
+%
+MY MACINTOSH RULES
+%
+CHEER UP EMO KID
+%
+LIVE FREE OR DIE
+%
+TELEVISION IS TORTURE
+%
+BRING THAT BEAT BACK
+%
+HUG A REVOLUTIONARY
+%
+DON'T FEAR THE REAPER
+%
+SHOW ME THE WAY
+%
+I CAN MAKE YOU GOD
+%
+WOMEN TAKE OVER
+%
+SO FUCKING DEEP
+%
+WHY OBEY MORONS?
diff --git a/include/sys/endian.h b/include/sys/endian.h
new file mode 100644
index 0000000..1898a52
--- /dev/null
+++ b/include/sys/endian.h
@@ -0,0 +1,120 @@
+/* sys/endian.h - bsd-games compatibility with NetBSD (not
+ * a complete emulation).
+ *
+ * Copyright (c) 1999 Joseph Samuel Myers.
+ * 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. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+ */
+
+#include
+#include
+#include
+#include
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+#ifndef be16toh
+#define be16toh(x) ((u_int16_t)(x))
+#endif
+#ifndef htobe16
+#define htobe16(x) ((u_int16_t)(x))
+#endif
+#ifndef be32toh
+#define be32toh(x) ((u_int32_t)(x))
+#endif
+#ifndef htobe32
+#define htobe32(x) ((u_int32_t)(x))
+#endif
+#ifndef be64toh
+#define be64toh(x) ((u_int64_t)(x))
+#endif
+#ifndef htobe64
+#define htobe64(x) ((u_int64_t)(x))
+#endif
+#ifndef BE16TOH
+#define BE16TOH(x) ((void)0)
+#endif
+#ifndef HTOBE16
+#define HTOBE16(x) ((void)0)
+#endif
+#ifndef BE32TOH
+#define BE32TOH(x) ((void)0)
+#endif
+#ifndef HTOBE32
+#define HTOBE32(x) ((void)0)
+#endif
+#ifndef BE64TOH
+#define BE64TOH(x) ((void)0)
+#endif
+#ifndef HTOBE64
+#define HTOBE64(x) ((void)0)
+#endif
+#else /* little-endian */
+#ifndef be16toh
+#define be16toh(x) ((u_int16_t)ntohs((u_int16_t)(x)))
+#endif
+#ifndef htobe16
+#define htobe16(x) ((u_int16_t)htons((u_int16_t)(x)))
+#endif
+#ifndef be32toh
+#define be32toh(x) ((u_int32_t)ntohl((u_int32_t)(x)))
+#endif
+#ifndef htobe32
+#define htobe32(x) ((u_int32_t)htonl((u_int32_t)(x)))
+#endif
+#ifndef be64toh
+#ifdef __bswap_64 /* glibc */
+#define be64toh(x) ((u_int64_t)__bswap_64((u_int64_t)(x)))
+#else /* no __bswap_64 */
+#ifdef __swab64 /* Linux kernel headers (libc5, at least with kernel 2.2) */
+#define be64toh(x) ((u_int64_t)__swab64((u_int64_t)(x)))
+#else /* no __bswap_64 or __swab64 */
+static __inline__ u_int64_t be64toh(u_int64_t __x);
+static __inline__ u_int64_t be64toh(u_int64_t __x) { return (((u_int64_t)be32toh(__x & (u_int64_t)0xFFFFFFFFULL)) << 32) | ((u_int64_t)be32toh((__x & (u_int64_t)0xFFFFFFFF00000000ULL) >> 32)); }
+#define be64toh(x) be64toh((x))
+#endif /* no __bswap_64 or __swab64 */
+#endif /* no __bswap_64 */
+#endif /* no be64toh */
+#ifndef htobe64
+#define htobe64(x) be64toh(x)
+#endif
+#ifndef BE16TOH
+#define BE16TOH(x) ((x) = be16toh((x)))
+#endif
+#ifndef HTOBE16
+#define HTOBE16(x) ((x) = htobe16((x)))
+#endif
+#ifndef BE32TOH
+#define BE32TOH(x) ((x) = be32toh((x)))
+#endif
+#ifndef HTOBE32
+#define HTOBE32(x) ((x) = htobe32((x)))
+#endif
+#ifndef BE64TOH
+#define BE64TOH(x) ((x) = be64toh((x)))
+#endif
+#ifndef HTOBE64
+#define HTOBE64(x) ((x) = htobe64((x)))
+#endif
+#endif /* little-endian */
diff --git a/robots/auto.c b/robots/auto.c
new file mode 100644
index 0000000..c0a15bf
--- /dev/null
+++ b/robots/auto.c
@@ -0,0 +1,388 @@
+/* $NetBSD: auto.c,v 1.4 1999/09/08 21:17:56 jsm Exp $ */
+
+/*-
+ * Copyright (c) 1999 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Christos Zoulas.
+ *
+ * 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 NetBSD
+ * Foundation, Inc. and its contributors.
+ * 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
+ */
+
+/*
+ * Automatic move.
+ * intelligent ?
+ * Algo :
+ * IF scrapheaps don't exist THEN
+ * IF not in danger THEN
+ * stay at current position;
+ * ELSE move away from the closest robot;
+ * FI
+ * ELSE
+ * find closest heap;
+ * find closest robot;
+ * IF scrapheap is adjacenHEN
+ * move behind the scrapheap
+ * ELSE
+ * move away from the closest robot
+ * FI
+ * ELSE
+ * take the move that takes you away from the
+ * robots and closest to the heap
+ * FI
+ * FI
+ */
+#include "robots.h"
+
+#define ABS(a) (((a)>0)?(a):-(a))
+#define MIN(a,b) (((a)>(b))?(b):(a))
+#define MAX(a,b) (((a)<(b))?(b):(a))
+
+#define CONSDEBUG(a)
+
+static int distance __P((int, int, int, int));
+static int xinc __P((int));
+static int yinc __P((int));
+static const char *find_moves __P((void));
+static COORD *closest_robot __P((int *));
+static COORD *closest_heap __P((int *));
+static char move_towards __P((int, int));
+static char move_away __P((COORD *));
+static char move_between __P((COORD *, COORD *));
+static int between __P((COORD *, COORD *));
+
+/* distance():
+ * return "move" number distance of the two coordinates
+ */
+static int
+distance(x1, y1, x2, y2)
+ int x1, y1, x2, y2;
+{
+ return MAX(ABS(ABS(x1) - ABS(x2)), ABS(ABS(y1) - ABS(y2)));
+} /* end distance */
+
+/* xinc():
+ * Return x coordinate moves
+ */
+static int
+xinc(dir)
+ int dir;
+{
+ switch(dir) {
+ case 'b':
+ case 'h':
+ case 'y':
+ return -1;
+ case 'l':
+ case 'n':
+ case 'u':
+ return 1;
+ case 'j':
+ case 'k':
+ default:
+ return 0;
+ }
+}
+
+/* yinc():
+ * Return y coordinate moves
+ */
+static int
+yinc(dir)
+ int dir;
+{
+ switch(dir) {
+ case 'k':
+ case 'u':
+ case 'y':
+ return -1;
+ case 'b':
+ case 'j':
+ case 'n':
+ return 1;
+ case 'h':
+ case 'l':
+ default:
+ return 0;
+ }
+}
+
+/* find_moves():
+ * Find possible moves
+ */
+static const char *
+find_moves()
+{
+ int x, y;
+ COORD test;
+ const char *m;
+ char *a;
+ static const char moves[] = ".hjklyubn";
+ static char ans[sizeof moves];
+ a = ans;
+
+ for(m = moves; *m; m++) {
+ test.x = My_pos.x + xinc(*m);
+ test.y = My_pos.y + yinc(*m);
+ move(test.y, test.x);
+ switch(winch(stdscr)) {
+ case ' ':
+ case PLAYER:
+ for(x = test.x - 1; x <= test.x + 1; x++) {
+ for(y = test.y - 1; y <= test.y + 1; y++) {
+ move(y, x);
+ if(winch(stdscr) == ROBOT)
+ goto bad;
+ }
+ }
+ *a++ = *m;
+ }
+ bad:;
+ }
+ *a = 0;
+ if(ans[0])
+ return ans;
+ else
+ return "t";
+}
+
+/* closest_robot():
+ * return the robot closest to us
+ * and put in dist its distance
+ */
+static COORD *
+closest_robot(dist)
+ int *dist;
+{
+ COORD *rob, *end, *minrob = NULL;
+ int tdist, mindist;
+
+ mindist = 1000000;
+ end = &Robots[MAXROBOTS];
+ for (rob = Robots; rob < end; rob++) {
+ tdist = distance(My_pos.x, My_pos.y, rob->x, rob->y);
+ if (tdist < mindist) {
+ minrob = rob;
+ mindist = tdist;
+ }
+ }
+ *dist = mindist;
+ return minrob;
+} /* end closest_robot */
+
+/* closest_heap():
+ * return the heap closest to us
+ * and put in dist its distance
+ */
+static COORD *
+closest_heap(dist)
+ int *dist;
+{
+ COORD *hp, *end, *minhp = NULL;
+ int mindist, tdist;
+
+ mindist = 1000000;
+ end = &Scrap[MAXROBOTS];
+ for (hp = Scrap; hp < end; hp++) {
+ if (hp->x == 0 && hp->y == 0)
+ break;
+ tdist = distance(My_pos.x, My_pos.y, hp->x, hp->y);
+ if (tdist < mindist) {
+ minhp = hp;
+ mindist = tdist;
+ }
+ }
+ *dist = mindist;
+ return minhp;
+} /* end closest_heap */
+
+/* move_towards():
+ * move as close to the given direction as possible
+ */
+static char
+move_towards(dx, dy)
+ int dx, dy;
+{
+ char ok_moves[10], best_move;
+ char *ptr;
+ int move_judge, cur_judge, mvx, mvy;
+
+ (void)strcpy(ok_moves, find_moves());
+ best_move = ok_moves[0];
+ if (best_move != 'F') {
+ mvx = xinc(best_move);
+ mvy = yinc(best_move);
+ move_judge = ABS(mvx - dx) + ABS(mvy - dy);
+ for (ptr = &ok_moves[1]; *ptr != '\0'; ptr++) {
+ mvx = xinc(*ptr);
+ mvy = yinc(*ptr);
+ cur_judge = ABS(mvx - dx) + ABS(mvy - dy);
+ if (cur_judge < move_judge) {
+ move_judge = cur_judge;
+ best_move = *ptr;
+ }
+ }
+ }
+ return best_move;
+} /* end move_towards */
+
+/* move_away():
+ * move away form the robot given
+ */
+static char
+move_away(rob)
+ COORD *rob;
+{
+ int dx, dy;
+
+ dx = sign(My_pos.x - rob->x);
+ dy = sign(My_pos.y - rob->y);
+ return move_towards(dx, dy);
+} /* end move_away */
+
+
+/* move_between():
+ * move the closest heap between us and the closest robot
+ */
+static char
+move_between(rob, hp)
+ COORD *rob;
+ COORD *hp;
+{
+ int dx, dy;
+ float slope, cons;
+
+ /* equation of the line between us and the closest robot */
+ if (My_pos.x == rob->x) {
+ /*
+ * me and the robot are aligned in x
+ * change my x so I get closer to the heap
+ * and my y far from the robot
+ */
+ dx = - sign(My_pos.x - hp->x);
+ dy = sign(My_pos.y - rob->y);
+ CONSDEBUG(("aligned in x"));
+ }
+ else if (My_pos.y == rob->y) {
+ /*
+ * me and the robot are aligned in y
+ * change my y so I get closer to the heap
+ * and my x far from the robot
+ */
+ dx = sign(My_pos.x - rob->x);
+ dy = -sign(My_pos.y - hp->y);
+ CONSDEBUG(("aligned in y"));
+ }
+ else {
+ CONSDEBUG(("no aligned"));
+ slope = (My_pos.y - rob->y) / (My_pos.x - rob->x);
+ cons = slope * rob->y;
+ if (ABS(My_pos.x - rob->x) > ABS(My_pos.y - rob->y)) {
+ /*
+ * we are closest to the robot in x
+ * move away from the robot in x and
+ * close to the scrap in y
+ */
+ dx = sign(My_pos.x - rob->x);
+ dy = sign(((slope * ((float) hp->x)) + cons) -
+ ((float) hp->y));
+ }
+ else {
+ dx = sign(((slope * ((float) hp->x)) + cons) -
+ ((float) hp->y));
+ dy = sign(My_pos.y - rob->y);
+ }
+ }
+ CONSDEBUG(("me (%d,%d) robot(%d,%d) heap(%d,%d) delta(%d,%d)",
+ My_pos.x, My_pos.y, rob->x, rob->y, hp->x, hp->y, dx, dy));
+ return move_towards(dx, dy);
+} /* end move_between */
+
+/* between():
+ * Return true if the heap is between us and the robot
+ */
+int
+between(rob, hp)
+ COORD *rob;
+ COORD *hp;
+{
+ /* I = @ */
+ if (hp->x > rob->x && My_pos.x < rob->x)
+ return 0;
+ /* @ = I */
+ if (hp->x < rob->x && My_pos.x > rob->x)
+ return 0;
+ /* @ */
+ /* = */
+ /* I */
+ if (hp->y < rob->y && My_pos.y > rob->y)
+ return 0;
+ /* I */
+ /* = */
+ /* @ */
+ if (hp->y > rob->y && My_pos.y < rob->y)
+ return 0;
+ return 1;
+} /* end between */
+
+/* automove():
+ * find and do the best move if flag
+ * else get the first move;
+ */
+char
+automove()
+{
+#if 0
+ return find_moves()[0];
+#else
+ COORD *robot_close;
+ COORD *heap_close;
+ int robot_dist, robot_heap, heap_dist;
+
+ robot_close = closest_robot(&robot_dist);
+ if (robot_dist > 1)
+ return('.');
+ if (!Num_scrap)
+ /* no scrap heaps just run away */
+ return move_away(robot_close);
+
+ heap_close = closest_heap(&heap_dist);
+ robot_heap = distance(robot_close->x, robot_close->y,
+ heap_close->x, heap_close->y);
+ if (robot_heap <= heap_dist && !between(robot_close, heap_close)) {
+ /*
+ * robot is closest to us from the heap. Run away!
+ */
+ return move_away(robot_close);
+ }
+
+ return move_between(robot_close, heap_close);
+#endif
+} /* end automove */
diff --git a/substfiles2 b/substfiles2
new file mode 100644
index 0000000..c1f8fe1
--- /dev/null
+++ b/substfiles2
@@ -0,0 +1,50 @@
+# substfiles2 - list of files in which parameters are to be substituted.
+# These ones get substituted during the make process.
+#
+# Copyright (c) 1997, 1998, 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+#
+atc/atc.6
+backgammon/backgammon/backgammon.6
+caesar/rot13
+canfield/canfield/canfield.6
+cribbage/cribbage.6
+dm/dm.8
+dm/dm.conf.5
+fortune/fortune/fortune.6
+hangman/hangman.6
+hunt/hunt/hunt.6
+hunt/huntd/huntd.6
+monop/monop.6
+quiz/datfiles/index
+quiz/quiz.6
+robots/robots.6
+rogue/rogue.6
+snake/snake/snake.6
+tetris/tetris.6
+trek/trek.6
+wtf/wtf.6
+wtf/wtf
diff --git a/substscr b/substscr
new file mode 100755
index 0000000..35ae97b
--- /dev/null
+++ b/substscr
@@ -0,0 +1,96 @@
+#!/bin/sh
+# substscr - substitute parameters to create a file from a .in.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+# First argument is some combination of:
+# r to generate makefile rules
+# g to generate the file in question
+
+# Second argument gives the style of comment:
+# c for C comment
+# h for generic # comment
+# m for manpage comment
+# n for none
+# s for shell comment
+
+# Third argument is the source file.
+
+# Fourth argument is the target file.
+
+# The target gets its permissions from the source.
+
+set -e
+
+if [ $# != 4 ]; then
+ echo "usage: $0 action comment-style source target" >&2
+ exit 1
+fi
+
+action="$1"
+style="$2"
+source="$3"
+target="$4"
+
+if echo $action |grep -q g; then
+ echo "Generating $target from $source"
+ rm -f $target
+ cp "$source" "$target" # set permissions
+
+ case "$style" in
+ (c)
+ echo "/* Automatically generated from $source. Do not edit. */" >"$target"
+ ;;
+ (h)
+ echo "# Automatically generated from $source. Do not edit." >"$target"
+ ;;
+ (m)
+ echo ".\\\" Automatically generated from $source. Do not edit." >"$target"
+ ;;
+ (n)
+ : >"$target"
+ ;;
+ (s)
+ echo "#!/bin/sh" >"$target"
+ echo "# Automatically generated from $source. Do not edit." >>"$target"
+ ;;
+ (*)
+ echo "$0: unknown comment style $style" >&2
+ exit 1
+ esac
+
+ sed -f subst.sed <"$source" >>"$target"
+fi
+
+if echo $action |grep -q r; then
+ # Append to subst.rules.
+ cat >>subst.rules <test.out 2>&1 || failtest
+compare test.out tests/bcd.foo
+rm -f test.out
+
+testno 2
+bcd/bcd "foo bar" >test.out 2>&1 || failtest
+compare test.out tests/bcd.foobar
+rm -f test.out
+
+testno 3
+bcd/bcd >test.out 2>&1 <test.out 2>&1 || failtest
+compare test.out tests/bcd.fooxbar
+rm -f test.out
+
+testno 5
+bcd/bcd >test.out 2>&1 <test.out 2>&1 || failtest
+compare test.out tests/caesar.constout
+rm -f test.out
+
+testno 2
+caesar/caesar 21 test.out 2>&1 || failtest
+compare test.out tests/caesar.constout
+rm -f test.out
diff --git a/tests/common b/tests/common
new file mode 100644
index 0000000..4ec2287
--- /dev/null
+++ b/tests/common
@@ -0,0 +1,55 @@
+#!/bin/sh
+# tests/common - common functions for bsd-games testsuite.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+# testexec game executable
+testexec () {
+ testgame="$1"
+ if [ -x "$2" ]; then
+ true
+ else
+ exit 0
+ fi
+}
+
+testno () {
+ printf "%s" "$testgame test $1... "
+}
+
+failtest () {
+ echo "FAIL"
+ exit 1
+}
+
+compare () {
+ if cmp -s "$1" "$2"; then
+ echo "PASS"
+ else
+ failtest
+ fi
+}
diff --git a/tests/factor.123456 b/tests/factor.123456
new file mode 100644
index 0000000..c4a84d2
--- /dev/null
+++ b/tests/factor.123456
@@ -0,0 +1,2 @@
+123: 3 41
+456: 2 2 2 3 19
diff --git a/tests/factor.123456789 b/tests/factor.123456789
new file mode 100644
index 0000000..0dba255
--- /dev/null
+++ b/tests/factor.123456789
@@ -0,0 +1 @@
+123456789: 3 3 3607 3803
diff --git a/tests/factor.987654321 b/tests/factor.987654321
new file mode 100644
index 0000000..c105d01
--- /dev/null
+++ b/tests/factor.987654321
@@ -0,0 +1 @@
+987654321: 3 3 17 17 379721
diff --git a/tests/factor.test b/tests/factor.test
new file mode 100755
index 0000000..7540aa8
--- /dev/null
+++ b/tests/factor.test
@@ -0,0 +1,57 @@
+#!/bin/sh
+# tests/factor.test - test functionality of factor.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+set -e
+
+. tests/common
+
+testexec factor factor/factor
+
+testno 1
+factor/factor 123456789 >test.out 2>&1 || failtest
+compare test.out tests/factor.123456789
+rm -f test.out
+
+testno 2
+factor/factor 987654321 >test.out 2>&1 || failtest
+compare test.out tests/factor.987654321
+rm -f test.out
+
+testno 3
+factor/factor 123 456 >test.out 2>&1 || failtest
+compare test.out tests/factor.123456
+rm -f test.out
+
+testno 4
+factor/factor <test.out 2>&1 || failtest
+123
+456
+EOF
+compare test.out tests/factor.123456
+rm -f test.out
diff --git a/tests/morse.SOS b/tests/morse.SOS
new file mode 100644
index 0000000..22e6d98
--- /dev/null
+++ b/tests/morse.SOS
@@ -0,0 +1,3 @@
+ ...,
+ ---,
+ ...,
diff --git a/tests/morse.foo b/tests/morse.foo
new file mode 100644
index 0000000..96556d3
--- /dev/null
+++ b/tests/morse.foo
@@ -0,0 +1,3 @@
+ dit dit daw dit,
+ daw daw daw,
+ daw daw daw,
diff --git a/tests/morse.sos b/tests/morse.sos
new file mode 100644
index 0000000..77ef9f9
--- /dev/null
+++ b/tests/morse.sos
@@ -0,0 +1 @@
+sos
diff --git a/tests/morse.test b/tests/morse.test
new file mode 100755
index 0000000..90d26fc
--- /dev/null
+++ b/tests/morse.test
@@ -0,0 +1,52 @@
+#!/bin/sh
+# morse.test - test functionality of morse.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+set -e
+
+. tests/common
+
+testexec morse morse/morse
+
+# morse is somewhat broken and should probably be replaced with the
+# OpenBSD version. This limits the tests we can do until we fix it.
+
+testno 1
+morse/morse foo >test.out 2>&1 || failtest
+compare test.out tests/morse.foo
+rm -f test.out
+
+testno 2
+morse/morse -s SOS >test.out 2>&1 || failtest
+compare test.out tests/morse.SOS
+rm -f test.out
+
+testno 3
+morse/morse -d test.out 2>&1 || failtest
+compare test.out tests/morse.sos
+rm -f test.out
diff --git a/tests/number.-0.1 b/tests/number.-0.1
new file mode 100644
index 0000000..fea1e89
--- /dev/null
+++ b/tests/number.-0.1
@@ -0,0 +1,3 @@
+minus
+one.
+tenths.
diff --git a/tests/number.123456 b/tests/number.123456
new file mode 100644
index 0000000..4a3681b
--- /dev/null
+++ b/tests/number.123456
@@ -0,0 +1,2 @@
+one hundred twenty-three thousand.
+four hundred fifty-six.
diff --git a/tests/number.987654321 b/tests/number.987654321
new file mode 100644
index 0000000..8de4c90
--- /dev/null
+++ b/tests/number.987654321
@@ -0,0 +1,3 @@
+nine hundred eighty-seven million.
+six hundred fifty-four thousand.
+three hundred twenty-one.
diff --git a/tests/number.test b/tests/number.test
new file mode 100755
index 0000000..74d78d2
--- /dev/null
+++ b/tests/number.test
@@ -0,0 +1,49 @@
+#!/bin/sh
+# number.test - test functionality of number.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+set -e
+
+. tests/common
+
+testexec number number/number
+
+testno 1
+number/number -- -0.1 >test.out 2>&1 || failtest
+compare test.out tests/number.-0.1
+rm -f test.out
+
+testno 2
+number/number 123456 >test.out 2>&1 || failtest
+compare test.out tests/number.123456
+rm -f test.out
+
+testno 3
+number/number -- 987654321 >test.out 2>&1 || failtest
+compare test.out tests/number.987654321
+rm -f test.out
diff --git a/tests/pig.test b/tests/pig.test
new file mode 100755
index 0000000..ab589cd
--- /dev/null
+++ b/tests/pig.test
@@ -0,0 +1,49 @@
+#!/bin/sh
+# pig.test - test functionality of pig.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+set -e
+
+. tests/common
+
+testexec pig pig/pig
+
+testno 1
+echo "This is a test." |pig/pig >test.out 2>&1 || failtest
+compare test.out tests/pig.test1
+rm -f test.out
+
+testno 2
+echo "Is this a test?" |pig/pig >test.out 2>&1 || failtest
+compare test.out tests/pig.test2
+rm -f test.out
+
+testno 3
+echo "IS THIS A TEST?" |pig/pig >test.out 2>&1 || failtest
+compare test.out tests/pig.test3
+rm -f test.out
diff --git a/tests/pig.test1 b/tests/pig.test1
new file mode 100644
index 0000000..ff15882
--- /dev/null
+++ b/tests/pig.test1
@@ -0,0 +1 @@
+Isthay isway away esttay.
diff --git a/tests/pig.test2 b/tests/pig.test2
new file mode 100644
index 0000000..06169ed
--- /dev/null
+++ b/tests/pig.test2
@@ -0,0 +1 @@
+Isway isthay away esttay?
diff --git a/tests/pig.test3 b/tests/pig.test3
new file mode 100644
index 0000000..21eb173
--- /dev/null
+++ b/tests/pig.test3
@@ -0,0 +1 @@
+ISWAY ISTHAY AWAY ESTTAY?
diff --git a/tests/pom.1998fm1 b/tests/pom.1998fm1
new file mode 100644
index 0000000..8b680dc
--- /dev/null
+++ b/tests/pom.1998fm1
@@ -0,0 +1 @@
+Mon 1998 Jan 12 17:00:00 (UTC): The Moon was Full
diff --git a/tests/pom.1998fm2 b/tests/pom.1998fm2
new file mode 100644
index 0000000..6dd2d5e
--- /dev/null
+++ b/tests/pom.1998fm2
@@ -0,0 +1 @@
+Wed 1998 Nov 4 05:00:00 (UTC): The Moon was Full
diff --git a/tests/pom.1998fq1 b/tests/pom.1998fq1
new file mode 100644
index 0000000..4d4b18c
--- /dev/null
+++ b/tests/pom.1998fq1
@@ -0,0 +1 @@
+Mon 1998 Jan 5 14:00:00 (UTC): The Moon was at the First Quarter
diff --git a/tests/pom.1998fq2 b/tests/pom.1998fq2
new file mode 100644
index 0000000..bdc166a
--- /dev/null
+++ b/tests/pom.1998fq2
@@ -0,0 +1 @@
+Wed 1998 Oct 28 12:00:00 (UTC): The Moon was at the First Quarter
diff --git a/tests/pom.1998lq1 b/tests/pom.1998lq1
new file mode 100644
index 0000000..5676f31
--- /dev/null
+++ b/tests/pom.1998lq1
@@ -0,0 +1 @@
+Tue 1998 Jan 20 20:00:00 (UTC): The Moon was at the Last Quarter
diff --git a/tests/pom.1998lq2 b/tests/pom.1998lq2
new file mode 100644
index 0000000..644f03e
--- /dev/null
+++ b/tests/pom.1998lq2
@@ -0,0 +1 @@
+Wed 1998 Nov 11 00:00:00 (UTC): The Moon was at the Last Quarter
diff --git a/tests/pom.1998nm1 b/tests/pom.1998nm1
new file mode 100644
index 0000000..a32d014
--- /dev/null
+++ b/tests/pom.1998nm1
@@ -0,0 +1 @@
+Wed 1998 Jan 28 06:00:00 (UTC): The Moon was New
diff --git a/tests/pom.1998nm2 b/tests/pom.1998nm2
new file mode 100644
index 0000000..6742990
--- /dev/null
+++ b/tests/pom.1998nm2
@@ -0,0 +1 @@
+Tue 1998 Oct 20 10:00:00 (UTC): The Moon was New
diff --git a/tests/pom.test b/tests/pom.test
new file mode 100755
index 0000000..01aff41
--- /dev/null
+++ b/tests/pom.test
@@ -0,0 +1,84 @@
+#!/bin/sh
+# pom.test - test functionality of pom.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+set -e
+
+. tests/common
+
+testexec pom pom/pom
+
+# Test dates from Astronomical Almanac 1998, rounded to nearest hour.
+# Should add dates from other years.
+
+# We should also test the fraction illuminated given by the program, but
+# it isn't really accurate enough to do this reliably and the Astronomical
+# Almanac only gives these figures to 2 decimal places (like pom) so I don't
+# know which are border cases and which are good tests.
+
+export TZ=UTC0
+
+testno 1
+pom/pom 1998010514 >test.out 2>&1 || failtest
+compare test.out tests/pom.1998fq1
+rm -f test.out
+
+testno 2
+pom/pom 1998011217 >test.out 2>&1 || failtest
+compare test.out tests/pom.1998fm1
+rm -f test.out
+
+testno 3
+pom/pom 1998012020 >test.out 2>&1 || failtest
+compare test.out tests/pom.1998lq1
+rm -f test.out
+
+testno 4
+pom/pom 1998012806 >test.out 2>&1 || failtest
+compare test.out tests/pom.1998nm1
+rm -f test.out
+
+testno 5
+pom/pom 1998102010 >test.out 2>&1 || failtest
+compare test.out tests/pom.1998nm2
+rm -f test.out
+
+testno 6
+pom/pom 1998102812 >test.out 2>&1 || failtest
+compare test.out tests/pom.1998fq2
+rm -f test.out
+
+testno 7
+pom/pom 1998110405 >test.out 2>&1 || failtest
+compare test.out tests/pom.1998fm2
+rm -f test.out
+
+testno 8
+pom/pom 1998111100 >test.out 2>&1 || failtest
+compare test.out tests/pom.1998lq2
+rm -f test.out
diff --git a/tests/ppt.Foobarnl b/tests/ppt.Foobarnl
new file mode 100644
index 0000000..00b098c
--- /dev/null
+++ b/tests/ppt.Foobarnl
@@ -0,0 +1,10 @@
+___________
+| o .oo |
+| oo o.ooo|
+| oo o.ooo|
+| o . |
+| oo . o |
+| oo . o|
+| ooo . o |
+| o. o |
+___________
diff --git a/tests/ppt.foobar b/tests/ppt.foobar
new file mode 100644
index 0000000..be77efa
--- /dev/null
+++ b/tests/ppt.foobar
@@ -0,0 +1,9 @@
+___________
+| oo .oo |
+| oo o.ooo|
+| oo o.ooo|
+| o . |
+| oo . o |
+| oo . o|
+| ooo . o |
+___________
diff --git a/tests/ppt.test b/tests/ppt.test
new file mode 100755
index 0000000..45249a9
--- /dev/null
+++ b/tests/ppt.test
@@ -0,0 +1,49 @@
+#!/bin/sh
+# ppt.test - test functionality of ppt.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+set -e
+
+. tests/common
+
+testexec ppt ppt/ppt
+
+testno 1
+ppt/ppt "foo bar" >test.out 2>&1 || failtest
+compare test.out tests/ppt.foobar
+rm -f test.out
+
+testno 2
+ppt/ppt foo bar >test.out 2>&1 || failtest
+compare test.out tests/ppt.foobar
+rm -f test.out
+
+testno 3
+echo "Foo bar" |ppt/ppt >test.out 2>&1 || failtest
+compare test.out tests/ppt.Foobarnl
+rm -f test.out
diff --git a/tests/primes.100 b/tests/primes.100
new file mode 100644
index 0000000..afc67fd
--- /dev/null
+++ b/tests/primes.100
@@ -0,0 +1,25 @@
+2
+3
+5
+7
+11
+13
+17
+19
+23
+29
+31
+37
+41
+43
+47
+53
+59
+61
+67
+71
+73
+79
+83
+89
+97
diff --git a/tests/primes.1e6 b/tests/primes.1e6
new file mode 100644
index 0000000..7ee7564
--- /dev/null
+++ b/tests/primes.1e6
@@ -0,0 +1,24 @@
+1000003
+1000033
+1000037
+1000039
+1000081
+1000099
+1000117
+1000121
+1000133
+1000151
+1000159
+1000171
+1000183
+1000187
+1000193
+1000199
+1000211
+1000213
+1000231
+1000249
+1000253
+1000273
+1000289
+1000291
diff --git a/tests/primes.1e9 b/tests/primes.1e9
new file mode 100644
index 0000000..d6f119d
--- /dev/null
+++ b/tests/primes.1e9
@@ -0,0 +1,16 @@
+1000000007
+1000000009
+1000000021
+1000000033
+1000000087
+1000000093
+1000000097
+1000000103
+1000000123
+1000000181
+1000000207
+1000000223
+1000000241
+1000000271
+1000000289
+1000000297
diff --git a/tests/primes.test b/tests/primes.test
new file mode 100755
index 0000000..c77e5c6
--- /dev/null
+++ b/tests/primes.test
@@ -0,0 +1,49 @@
+#!/bin/sh
+# primes.test - test functionality of primes.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+set -e
+
+. tests/common
+
+testexec primes primes/primes
+
+testno 1
+primes/primes 1 100 >test.out 2>&1 || failtest
+compare test.out tests/primes.100
+rm -f test.out
+
+testno 2
+primes/primes 1000000 1000300 >test.out 2>&1 || failtest
+compare test.out tests/primes.1e6
+rm -f test.out
+
+testno 3
+primes/primes 1000000000 1000000300 >test.out 2>&1 || failtest
+compare test.out tests/primes.1e9
+rm -f test.out
diff --git a/tests/rot13.FooBar b/tests/rot13.FooBar
new file mode 100644
index 0000000..f04e44e
--- /dev/null
+++ b/tests/rot13.FooBar
@@ -0,0 +1,2 @@
+Sbb
+One
diff --git a/tests/rot13.foo b/tests/rot13.foo
new file mode 100644
index 0000000..f82bed7
--- /dev/null
+++ b/tests/rot13.foo
@@ -0,0 +1 @@
+sbb
diff --git a/tests/rot13.test b/tests/rot13.test
new file mode 100755
index 0000000..3c947b4
--- /dev/null
+++ b/tests/rot13.test
@@ -0,0 +1,49 @@
+#!/bin/sh
+# rot13.test - test functionality of rot13.
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+set -e
+
+. tests/common
+
+testexec rot13 caesar/rot13
+
+testno 1
+caesar/rot13 >test.out 2>&1 <test.out 2>&1 <
diff --git a/wtf/Makefrag b/wtf/Makefrag
new file mode 100644
index 0000000..a1d787b
--- /dev/null
+++ b/wtf/Makefrag
@@ -0,0 +1,37 @@
+# Makefrag - makefile fragment for wtf
+#
+# Copyright (c) 1999 Joseph Samuel Myers.
+# 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. The name of the author may not be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+
+wtf_DIRS := $(GAMESDIR) $(MAN6DIR) $(shell dirname $(WTF_ACRONYMFILE))
+
+wtf_all: wtf/wtf wtf/wtf.6
+
+wtf_install: wtf_all
+ $(INSTALL_SCRIPT) wtf/wtf $(INSTALL_PREFIX)$(GAMESDIR)/wtf
+ $(HIDE_GAME) wtf
+ $(INSTALL_DATA) wtf/acronyms $(INSTALL_PREFIX)$(WTF_ACRONYMFILE)
+ $(INSTALL_MANUAL) wtf/wtf.6
diff --git a/wtf/acronyms b/wtf/acronyms
new file mode 100644
index 0000000..f22ccac
--- /dev/null
+++ b/wtf/acronyms
@@ -0,0 +1,91 @@
+$NetBSD: acronyms,v 1.40 1999/09/16 12:47:31 kleink Exp $
+
+AFAICR as far as I can recall
+AFAICT as far as I can tell
+AFAIK as far as I know
+AFAIR as far as I recall
+AFK away from keyboard
+ASAP as soon as possible
+BBL [I'll] be back later
+BBS be back soon
+BFD big fucking deal
+BIAB back in a bit
+BIAF back in a few
+BIAS back in a second
+BIAW back in a while
+BRB [I'll] be right back
+BTTH butt to the head
+BTW by the way
+CMIIW correct me if I'm wrong
+CNP continued [in my] next post
+DNDK don't know, don't care
+DTRT do the right thing
+DTWT do the wrong thing
+DWIM do what I mean
+EG evil grin
+EMSG email message
+ETLA extended three letter acronym
+FSDO for some definition of
+FUBAR fucked up beyond all recognition
+FUD fear, uncertianty and doubt
+FWIW for what it's worth
+FYI for your information
+G grin
+GMTA great minds think alike
+HHIS hanging head in shame
+HTH hope this helps
+IANAL I am not a lawyer
+IIANM if I am not mistaken
+IIRC if I recall correctly
+IMCO in my considered opinion
+IMHO in my humble opinion
+IMNSHO in my not so humble opinion
+IMO in my opinion
+IOW in other words
+IRL in real life
+ISTM it seems to me
+ISTR I seem to recall
+JMO just my opinion
+JTLYK just to let you know
+KISS keep it simple, stupid
+L8R later
+LMSO laughing my socks off
+LOL laughing out loud
+LTNS long time no see
+MTF more to follow
+MYOB mind your own business
+NFC no fucking clue
+NFI no fucking idea
+NIH not invented here
+NRN no reply necessary
+OIC oh, I see
+OTOH on the other hand
+OTTOMH off the top of my head
+PITA pain in the ass
+PPL pretty please
+RL real life
+ROTFL rolling on the floor laughing
+RTFB read the fine book
+RTFM read the fine manual
+RTFMP read the fine man page
+RTFS read the fine source
+SEP someone else's problem
+SFA sweet fuck all
+SHID slaps head in disgust
+SMLSFB So many losers, so few bullets
+SMOP simple matter of programming
+SNAFU situation normal, all fucked up
+SNERT Snot-Nosed egotistical rude teenager
+SO significant other
+SOL shit out [of] luck
+TIA thanks in advance
+TLA three letter acronym
+TMI too much information
+TTFN ta ta for now
+TYVM thank you very much
+UTSL use the source, Luke
+VEG very evil grin
+WTF {what,where,who,why} the fuck
+WTH {what,where,who,why} the hell
+YKWIM you know what I mean
+YMMV your mileage may vary
diff --git a/wtf/wtf.6.in b/wtf/wtf.6.in
new file mode 100644
index 0000000..6f313b4
--- /dev/null
+++ b/wtf/wtf.6.in
@@ -0,0 +1,49 @@
+.\" $NetBSD: wtf.6,v 1.3 1999/07/25 20:29:04 briggs Exp $
+.\"
+.\" Public Domain
+.\"
+.Dd July 21, 1999
+.Dt WTF 6
+.Os
+.Sh NAME
+.Nm wtf
+.Nd translates acronyms for you
+.Sh SYNOPSIS
+.Nm
+.Op Ar is
+.Ar acronym Ar ...
+.Sh DESCRIPTION
+The
+.Nm
+utility displays the expansion of the acronyms
+specified on the command line. If the acronym is unknown,
+.Nm
+will check to see if the acronym is known by the
+.Xr whatis 1
+command.
+.Pp
+If
+.Dq is
+is specified on the command line, it will be ignored, allowing the
+fairly natural
+.Dq wtf is WTF
+usage.
+.Sh ENVIRONMENT
+.Bl -tag -width ACRONYMDB
+.It Ev ACRONYMDB
+The default acronym database may be overridden by setting the
+environment variable
+.Ev ACRONYMDB
+to the name of a file in the proper format (acronym[tab]meaning).
+.El
+.Sh FILES
+.Bl -tag -width @wtf_acronymfile@ -compact
+.It Pa @wtf_acronymfile@
+default acronym database.
+.El
+.Sh SEE ALSO
+.Xr whatis 1
+.Sh HISTORY
+.Nm
+first appeared in
+.Nx 1.5 .
diff --git a/wtf/wtf.in b/wtf/wtf.in
new file mode 100755
index 0000000..aa1e369
--- /dev/null
+++ b/wtf/wtf.in
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# $NetBSD: wtf,v 1.5 1999/08/13 03:02:06 sommerfeld Exp $
+#
+# Public domain
+#
+
+acronyms=${ACRONYMDB:-@wtf_acronymfile@}
+
+if [ X"$1" = X"is" ] ; then
+ shift
+fi
+
+if [ $# -lt 1 ] ; then
+ echo "Usage: $0 [is] "
+fi
+
+rv=0
+while [ $# -gt 0 ] ; do
+ target=`echo $1 | tr '[a-z]' '[A-Z]'`
+ ans=`sed -ne "/^$target[[:space:]]/s/^$target[[:space:]]*//p" \
+ < $acronyms 2>/dev/null`
+ if [ "$ans" != "" ] ; then
+ echo "$target: $ans"
+ else
+ ans=`whatis $1 2> /dev/null | egrep "^$1[, ]" 2> /dev/null`
+ if [ $? -eq 0 ] ; then
+ echo "$1: $ans"
+ else
+ echo "Gee... I don't know what $1 means..." 1>&2
+ rv=1
+ fi
+ fi
+ shift
+done
+exit $rv