// OBSOLETE /* Definitions for all PA machines.  */
// OBSOLETE 
// OBSOLETE /* This was created for "makeva", which is obsolete.  This file can
// OBSOLETE    probably go away (unless someone can think of some other host thing
// OBSOLETE    which is common to various pa machines).  */
