diff --git a/log/src/diggates.c b/log/src/diggates.c
index 546e4701f941bdf10140b650ba3dd6e2406a6feb..ca1259fd9fbc024597c812ced87904623f032f70 100644
--- a/log/src/diggates.c
+++ b/log/src/diggates.c
@@ -619,7 +619,6 @@ void Log_mygates_ascdisp(log_16_action *act_)
 		case act_16_new:
 			(*WITH1->hook.getcolor)("CRT", &crtcolor, log_green);
 			m_seefont(&savef);
-			m_choosefont(0L);
 			m_seefont(&crtfont);
 			m_setfont(savef);
 			V.dip = (dispinfo *)Malloc(sizeof(dispinfo));
diff --git a/log/src/log.c b/log/src/log.c
index c46b4e6dbd3842b8b1a4ece5382775ea8e65d640..aad5f73ecedb7d420c0ab1a82f6e50a2ddde1c14 100644
--- a/log/src/log.c
+++ b/log/src/log.c
@@ -4088,8 +4088,8 @@ static void showstick(long x1, long y1, long x2, long y2, long mode)
 	x2 = x2 * gg.scale - gg.xoff;
 	y2 = y2 * gg.scale - gg.yoff;
 	m_drawline(x1, y1, x2, y2);
-	m_drawarrow(x1, y1, x2, y2, 4L, 4L);
-	m_drawarrow(x2, y2, x1, y1, 4L, 4L);
+	m_drawline(x1, y1, x2, y2);
+	m_drawline(x2, y2, x1, y1);
 	m_colormode((long)m_normal);
 }
 
diff --git a/log/src/logstuff.c b/log/src/logstuff.c
index 36393cc3362784d95eae56254b53011915ab1700..fc64a92578832e16c724c1df7dba01c042c825d3 100644
--- a/log/src/logstuff.c
+++ b/log/src/logstuff.c
@@ -133,10 +133,6 @@ void init_X_screen()
   choose_log_cursor(0);
 }
 
-
-
-
-
 void m_bunny(int x, int y)
 {
   m_colormode(m_xor);
@@ -183,11 +179,6 @@ void m_putcpicture()
 }
 
 
-void m_drawarrow(long x1, long y1, long x2, long y2, long a, long b)
-{
-  m_drawline(x1, y1, x2, y2);
-}
-
 int nk_setcapslock(int newval)
 {
   return false;
diff --git a/psys/include/p2c/mylib.h b/psys/include/p2c/mylib.h
index 5c766ab72da7aa4b0aa6681ce11c65442e624612..358a4cdfe0335ced1184d5553c2590be0486381f 100644
--- a/psys/include/p2c/mylib.h
+++ b/psys/include/p2c/mylib.h
@@ -14,51 +14,22 @@ typedef uchar m_colorarray[17];
 
 typedef uchar m_vcolorarray[1000001L];
 
-typedef long m_pointarray[10];
-
-typedef uchar m_screenvararr[199680L];
-
-typedef uchar m_packedscreenvararr[99840L];
-
-typedef uchar m_picturevararr[];
-
-typedef long m_chpicarr[32];
-
 typedef struct m_chpicrec {
     int xsize : 8, ysize : 8, xoff : 8, yoff : 8;
-/* p2c: Note: Must assume this bit field is signed (from mylib.imp, line 53) */
     unsigned xdim : 8, ydim : 8, width : 8, height : 8;
-    m_chpicarr pic;
+    long pic[32];
 } m_chpicrec;
 
-typedef struct m_fchpic {
-    uchar ch, junk;
-    m_chpicrec pic;
-} m_fchpic;
-
-typedef m_chpicrec *m_chfontarr[256];
-
-typedef uchar m_cchpicarr[32][32];
-
 typedef struct m_cchpicrec {
     int xsize : 8, ysize : 8, xoff : 8, yoff : 8;
-/* p2c: Note: Must assume this bit field is signed (from mylib.imp, line 53) */
     unsigned xdim : 8, ydim : 8, width : 8, height : 8;
-    m_cchpicarr pic;
+    uchar pic[32][32];
 } m_cchpicrec;
 
-typedef struct m_fcchpic {
-    uchar ch, junk;
-    m_cchpicrec pic;
-} m_fcchpic;
-
-typedef m_cchpicrec *m_cchfontarr[256];
-
 typedef struct m_tablet_info {
     long x, y;
     short phx, phy, fill1;
     int ax : 8, ay : 8;
-/* p2c: Note: Must assume this bit field is signed (from mylib.imp, line 53) */
     unsigned menu : 8, depressed : 1, near_ : 1, dn : 1, up : 1, off : 1, clip : 1,
              moving : 1, inalpha : 1;
 } m_tablet_info;
@@ -115,15 +86,8 @@ typedef struct m_tablet_info {
 
 
 
-vextern _PROCEDURE m_usercolor[16];
-vextern _PROCEDURE m_fastusercolor;
-vextern uchar m_chgfrom, m_chgto;
-vextern m_colorarray m_chgtable;
-vextern int m_blackflag;
 vextern long m_hitcount, m_across, m_down;
-#define m_machine "X"
-/*   vextern uchar m_machine[20];  */
-vextern long m_maxcolor, m_scanmask;
+vextern long m_maxcolor;
 vextern Display *m_display;
 vextern Window m_window;
 vextern int m_initialized;
@@ -143,16 +107,7 @@ extern void m_init_screen ();
 extern void m_init_colors ();
 extern void m_init_pen (int);
 extern void m_init_graphics ();
-extern void m_init_graphics_nopen ();
-extern void m_init_dzg ();
-extern void m_modern (int);
-extern void m_version (int);
-extern long m_curversion ();
-extern void m_setplanes();
-extern long m_seeplanes();
 extern void m_clear ();
-extern void m_clearwindow (int, int);
-extern void m_vsync ();
 extern void m_clip (int, int, int, int);
 extern void m_noclip ();
 extern void m_unclip();	
@@ -164,18 +119,11 @@ extern void m_notransform ();
 extern void m_untransform();
 extern void m_cursor (int, int);
 extern void m_nocursor ();
-extern void m_setcursor();
-extern void m_setcursorshape();	
 extern void m_choosecursor (int);
-extern void m_seecursor();
 extern void m_color (int);
 extern void m_colormode (int c);
-extern void m_uncolor();
 extern long m_curcolor ();
 extern long m_curcolormode ();
-extern void m_setpattern();
-extern void m_seepattern();
-extern void m_scanpos();
 extern void m_setcolor();
 extern void m_seecolor (int, int *, int *, int *);
 extern void m_setcolors (m_colorarray, m_colorarray, m_colorarray);
@@ -183,100 +131,34 @@ extern void m_seecolors (m_colorarray, m_colorarray, m_colorarray);
 extern void m_vsetcolors (int, int, m_vcolorarray, m_vcolorarray, m_vcolorarray);
 extern void m_vseecolors (int, int, m_vcolorarray, m_vcolorarray, m_vcolorarray);
 extern void m_choosecolors (int);
-extern void m_nullusercolor();
-extern void m_pixelpos();
-extern void m_pixelptr();
-extern void m_nullfastusercolor();
 extern void m_linestyle (int);
-extern void m_nolinestyle ();
-extern void m_unlinestyle();
-extern long m_curlinestyle ();
 extern void m_setlinestyle (int, int);
-extern void m_seelinestyle (int, int *);
-extern void m_linewidth (int);
-extern void m_nolinewidth ();
-extern void m_unlinewidth();
 extern void m_move (int, int);
-extern void m_moverel (int, int);
 extern void m_move2 (int, int);
-extern void m_moverel2 (int, int);
 extern void m_draw (int, int);
 extern void m_drawrel (int, int);
-extern void m_seeposn (int *, int *);
 extern void m_drawline (int, int, int, int);
 extern void m_drawrect (int, int, int, int);
 extern void m_fillrect (int, int, int, int);
 extern void m_grid (int, int, int, int, int, int, int, int);
 extern void m_drawpoint (int, int);
-extern long m_seepoint();
-extern void m_scanrect();
-extern void m_crt_out();
 extern void m_circle (int, int, int);
 extern void m_ellipse (int, int, int, int, int);
 extern void m_drawarc (long, long, long, long, double, double, double, long);
 extern void m_fillarc (long, long, long, long, double, double, double, long);
-extern void m_computearc3();
-extern void m_drawarc3();
-extern void m_fillarc3();
-extern void m_computearct();
-extern void m_drawarct();
-extern void m_fillarct();
 extern void m_roundrect (int, int, int, int, int, int, int);
 extern void m_bezier (int, int, int, int, int, int, int, int);
 extern void m_bezier2 (int, int, int, int, int, int, int, int, int);
 extern void m_cbezier (int, int, int, int, int, int, int, int, int);
 extern void m_polycurve (double, double, double, double, double, double, double, double, double, double, double, double);
-extern void m_drawarrow();
-extern void m_fillarrow();
 extern void m_drawpoly (int, int [], int []);
 extern void m_fillpoly (int, int [], int []);
-extern void m_floodfill();
-extern void m_boundaryfill();
-extern void m_areafill();
-extern void m_colorrect();
-extern void m_movescreen();
-extern void m_swapscreen();
-extern void m_packscreen();
-extern void m_unpackscreen();
-extern void m_setscreen();
-extern void m_seescreen();
-extern void m_getpicture();
-extern void m_getpicture2();
-extern void m_putpicture();
-extern void m_putpicture2();
-extern void m_getcpicture();
-extern void m_putcpicture();
-extern void m_putcpicture2();
-extern void m_xorcpicture();
-extern void m_setcpicture();
-extern void m_disposepicture();
-extern void m_bunny();
-extern void m_hscroll();
-extern void m_vscroll();
-extern void m_blit();
-extern void m_loadfont();
-extern void m_displaytext();
 extern void m_drawstr (int, int, char *, char *);
 extern void m_centerstr (int, int, char *, char *);
 extern void m_rightstr (int, int, char *, char *);
 extern long m_strwidth (char *, char *);
-extern long m_strlength();
 extern void m_setfont();
-#define m_choosefont(x)
-/*  extern void m_choosefont();  */
 extern void m_seefont();
-extern void m_copychar();
-extern void m_disposechar();
-extern void m_loadcfont();
-extern void m_drawcchar();
-extern void m_xorcchar();
-extern void m_drawcchar2();
-extern void m_xorcchar2();
-extern void m_makecchar();
-extern void m_changecchar();
-extern void m_copycchar();
-extern void m_disposecchar();
-extern void m_getcchar();
 extern void m_graphics_on();
 extern void m_alpha_on();
 
diff --git a/psys/include/p2c/p2c.h b/psys/include/p2c/p2c.h
index 2b1f9939b56fa121bf3c3b49a464c8160d33e419..2e2552637ead8a03acbbfeebb7048a2764fb3a0a 100644
--- a/psys/include/p2c/p2c.h
+++ b/psys/include/p2c/p2c.h
@@ -83,56 +83,34 @@ extern int     P_ioresult;
 extern __p2c_jmp_buf *__top_jb;
 extern int     bigendian;
 
-extern void*      _OutMem     ();
-extern void      _CaseCheck  ();
-extern void      _NilCheck   ();
+extern void*   _OutMem     ();
+extern void    _CaseCheck  ();
+extern void    _NilCheck   ();
 extern char   *_ShowEscape   (char *, int, int, char *);
 extern void	_Escape      (int);
 extern void	_EscIO       (int);
 
 extern int      microsleep    (long);
-extern long     ipow         (long, long);
 
 extern char    *strsub       (char *, char *, size_t, size_t);
 extern char    *strltrim     (char *);
 extern char    *strrtrim     (char *);
-extern char    *strrpt       (char *, char *, size_t);
-extern char    *strpad       (char *, char *, size_t, size_t);
-extern size_t      strpos2      (char *, char *, size_t);
+extern size_t  strpos2      (char *, char *, size_t);
 extern void    strmove      (size_t len, char * s, size_t spos, char * d, size_t dpos);
 extern int     strcicmp     (char * s1, char * s2);
 
-extern char     P_peek       (FILE *);
 extern int      P_eof        (FILE *);
 extern int      P_eoln       (FILE *);
-extern void     P_readpaoc   (FILE *, char *, size_t);
-extern void     P_readlnpaoc  (FILE *, char *, size_t);
-extern long     P_maxpos     (FILE *);
-extern char    *P_trimname   (char *, size_t) DEPRECATED;
 extern long    *P_setunion   (long *, long *, long *) DEPRECATED;
-extern long    *P_setint     (long *, long *, long *) DEPRECATED;
 extern long    *P_setdiff    (long *, long *, long *) DEPRECATED;
-extern long    *P_setxor     (long *, long *, long *) DEPRECATED;
 extern int      P_inset      (unsigned, long *) DEPRECATED;
-extern int      P_setequal   (long *, long *) DEPRECATED;
 extern int      P_subset     (long *, long *) DEPRECATED;
 extern long    *P_addset     (long *, unsigned) DEPRECATED;
 extern long    *P_addsetr    (long *, unsigned, unsigned) DEPRECATED;
 extern long    *P_remset     (long *, unsigned) DEPRECATED;
-extern long    *P_setcpy     (long *, long *) DEPRECATED;
 extern long    *P_expset     (long *, long) DEPRECATED;
-extern long     P_packset    (long *) DEPRECATED;
-extern int      P_getcmdline  (int l, int h, char *line);
-extern void     TimeStamp    (int *Day, int *Month, int *Year,
-				 int *Hour, int *Min, int *Sec);
-extern void	P_sun_argv   (char *, int, int);
-
-extern void     _local_p2c_init (void);
-
 
 /* I/O error handling */
-#define _CHKIO(cond,ior,val,def)  ((cond) ? P_ioresult=0,(val)  \
-					  : P_ioresult=(ior),(def))
 #define _SETIO(cond,ior)          (P_ioresult = (cond) ? 0 : (ior))
 
 /* Following defines are suitable for the HP Pascal operating system */
@@ -145,8 +123,6 @@ extern void     _local_p2c_init (void);
 /* Creating temporary files */
 
 /* File buffers */
-#define FILEBUF(f,sc,type) sc int f##_BFLAGS;   \
-			   sc type f##_BUFFER
 #define FILEBUFNC(f,type)  int f##_BFLAGS;   \
 			   type f##_BUFFER
 
@@ -158,16 +134,6 @@ extern void     _local_p2c_init (void);
 				fread(&f##_BUFFER,  \
 				      sizeof(type),1,(f)))),\
 			      &f##_BUFFER))
-#define AGETFBUF(f,type)   (f##_BFLAGS == 1 &&   \
-			     ((f##_BFLAGS = 2),   \
-			      fread(f,_BUFFER,  \
-				    sizeof(type),1,(f)))),\
-			    f,_BUFFER)
-
-#define PUTFBUF(f,type,v)  (GETFBUF(f,type) = (v))
-#define CPUTFBUF(f,v)      (PUTFBUF(f,char,v))
-#define APUTFBUF(f,type,v) (memcpy(AGETFBUF(f,type), (v),  \
-				   sizeof(f,_BUFFER)))
 
 #define GET(f,type)        (f##_BFLAGS == 1 ?   \
 			    fread(&f##_BUFFER,sizeof(type),1,(f)) :  \
@@ -175,24 +141,11 @@ extern void     _local_p2c_init (void);
 
 #define PUT(f,type)        (fwrite(&f##_BUFFER,sizeof(type),1,(f)),  \
 			    (f##_BFLAGS = 0))
-#define CPUT(f)            (PUT(f,char))
-
-#define BUFEOF(f)	   (f##_BFLAGS != 2 && P_eof(f))
-#define BUFFPOS(f)	   (ftell(f) - (f##_BFLAGS == 2))
-
-typedef struct {
-    FILE *f;
-    FILEBUFNC(f,char);
-    char name[_FNSIZE];
-} _TEXT;
 
 /* Memory allocation */
 # define Malloc(n)  (malloc((n != 0) ? (n) : 1) ?: _OutMem())
 #define Free(p)     (free((void*)(p)), (p)=NULL)
 
-/* sign extension */
-#define SEXT(x,n)   ((x) | -(((x) & (1L<<((n)-1))) << 1))
-
 /* packed arrays */   /* BEWARE: these are untested! */
 #define P_getbits_UB(a,i,n,L)   ((int)((a)[(i)>>((L)-(n))] >>   \
 				       (((~(i))&((1<<((L)-(n)))-1)) << (n)) &  \
diff --git a/psys/src/mylib.c b/psys/src/mylib.c
index f94a6cc069f42fb5c56098ae0cfe756ccd80ff30..d05aa34b13045802a00a4eabd61f5ba8d5d08c02 100644
--- a/psys/src/mylib.c
+++ b/psys/src/mylib.c
@@ -1366,22 +1366,6 @@ void m_init_graphics()
 # define nocache  0
 #endif
 
-
-void m_init_graphics_nopen()
-{
-  Mfprintf(stderr, "m_init_graphics_nopen()\n");
-  do_init_screen(1);
-
-}
-
-void m_init_dzg()
-{
-  Mfprintf(stderr, "m_init_dzg()\n");
-
-  m_init_graphics();
-  flip = 0;
-}
-
 void m_init_colors()
 {
   Mfprintf(stderr, "m_init_colors()\n");
@@ -1395,33 +1379,6 @@ int hpib_address;
   Mfprintf(stderr, "m_init_pen(%d)\n", hpib_address);
 }
 
-void m_version(version)
-int version;
-{
-  Mfprintf(stderr, "m_version(%d)\n", version);
-
-  if (version != 0)
-    fprintf(stderr, "Mylib:  m_version(%d) not supported\n", version);
-}
-
-long m_curversion()
-{
-  Mfprintf(stderr, "m_curversion()\n");
-
-  return(0);
-}
-
-void m_modern(flag)
-int flag;
-{
-  Mfprintf(stderr, "m_modern(%d)\n", flag);
-
-  if (flag)
-    m_version(1);
-  else
-    m_version(0);
-}
-
 /*****************************************************************************/
 /*            These are internal routines to do better buffering             */
 
@@ -1582,28 +1539,6 @@ void m_clear()
   }
 }
 
-void m_clearwindow(from, lines)
-int from, lines;
-{
-  Mfprintf(stderr, "m_clearwindow(%d, %d)\n", from, lines);
-
-#ifdef EXTRA_BUFFERING
-  flush_buffers();
-#endif /* EXTRA_BUFFERING */
-  Xfprintf(stderr, "XClearArea()\n");
-  XClearArea(m_display, m_window, 0, from, 0, lines, False);
-
-  if (nocache) {
-    Ffprintf(stderr, "XFlush()\n");
-    XFlush(m_display);
-  }
-}
-
-void m_vsync()
-{
-  Mfprintf(stderr, "m_vsync()\n");
-}
-
 int m_clip_x1, m_clip_y1, m_clip_x2, m_clip_y2;
 
 void m_clip(x1, y1, x2, y2)
@@ -2421,42 +2356,6 @@ int s;
   }
 }
 
-void m_nolinestyle()
-{
-  int i;
-
-  Mfprintf(stderr, "m_nolinestyle()\n");
-
-  if (currentlinestyle) {
-#ifdef EXTRA_BUFFERING
-    flush_buffers();
-#endif /* EXTRA_BUFFERING */
-    for (i = 0; i < ColorsInSet; i++) {
-      Xfprintf(stderr, "XSetLineAttributes(m_display, gc[%d])\n", i);
-      XSetLineAttributes(m_display, gc[i], linewidth, LineSolid, CapButt, JoinMiter);
-    }
-    Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc1)\n");
-    XSetLineAttributes(m_display, newgrid->gc1, linewidth, LineSolid, CapButt, JoinMiter);
-
-    Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc2)\n");
-    XSetLineAttributes(m_display, newgrid->gc2, linewidth, LineSolid, CapButt, JoinMiter);
-
-    Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc1)\n");
-    XSetLineAttributes(m_display, oldgrid->gc1, linewidth, LineSolid, CapButt, JoinMiter);
-
-    Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc2)\n");
-    XSetLineAttributes(m_display, oldgrid->gc2, linewidth, LineSolid, CapButt, JoinMiter);
-    currentlinestyle = 0;
-  }
-}
-
-long m_curlinestyle()
-{
-  Mfprintf(stderr, "m_curlinestyle()\n");
-
-  return(currentlinestyle);
-}
-
 void m_setlinestyle(s, mask)
 int s, mask;
 {
@@ -2472,146 +2371,6 @@ int s, mask;
     fprintf(stderr, "mylib:  invalid linestyle number (%d) passed to m_setlinestyle", s);
 }
 
-void m_seelinestyle(s, mask)
-int s, *mask;
-{
-  Mfprintf(stderr, "m_seelinestyle(%d, mask)\n", s);
-
-  *mask = linestyles[s];
-}
-
-void m_linewidth(w)
-int w;
-{
-  int i;
-
-  Mfprintf(stderr, "m_linewidth(%d)\n", w);
-
-  if (w <= 1)
-    w = 0;
-  if (w != linewidth) {
-#ifdef EXTRA_BUFFERING
-    flush_buffers();
-#endif /* EXTRA_BUFFERING */
-    linewidth = w;
-    for (i = 0; i < ColorsInSet; i++)
-      if (linestyles[currentlinestyle] == 65535) {
-	Xfprintf(stderr, "XSetLineAttributes(m_display, gc[%d])\n", i);
-	if (default_linestyle[i] == NULL)
-	  XSetLineAttributes(m_display, gc[i], linewidth, LineSolid,
-			     CapButt, JoinMiter);
-	else {
-	  XSetDashes(m_display, gc[i], 0,
-		     (char*)default_linestyle[i], LINESTIPPLELENGTH);
-	  XSetLineAttributes(m_display,gc[i],linewidth,LineDoubleDash,
-			     CapButt,JoinMiter);
- 	}
-      } else {
-	Xfprintf(stderr, "XSetLineAttributes(m_display, gc[%d])\n", i);
-	XSetLineAttributes(m_display, gc[i], linewidth, LineOnOffDash,
-			   CapButt, JoinMiter);
-      }
-    if (linestyles[currentlinestyle] == 65535) {
-      Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc1)\n");
-      XSetLineAttributes(m_display, newgrid->gc1, linewidth, LineSolid,
-			 CapButt, JoinMiter);
-
-      Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc2)\n");
-      XSetLineAttributes(m_display, newgrid->gc2, linewidth, LineSolid,
-			 CapButt, JoinMiter);
-
-      Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc1)\n");
-      XSetLineAttributes(m_display, oldgrid->gc1, linewidth, LineSolid,
-			 CapButt, JoinMiter);
-
-      Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc2)\n");
-      XSetLineAttributes(m_display, oldgrid->gc2, linewidth, LineSolid,
-			 CapButt, JoinMiter);
-    } else {
-      Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc1)\n");
-      XSetLineAttributes(m_display, newgrid->gc1, linewidth, LineOnOffDash,
-			 CapButt, JoinMiter);
-
-      Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc2)\n");
-      XSetLineAttributes(m_display, newgrid->gc2, linewidth, LineOnOffDash,
-			 CapButt, JoinMiter);
-
-      Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc1)\n");
-      XSetLineAttributes(m_display, oldgrid->gc1, linewidth, LineOnOffDash,
-			 CapButt, JoinMiter);
-
-      Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc2)\n");
-      XSetLineAttributes(m_display, oldgrid->gc2, linewidth, LineOnOffDash,
-			 CapButt, JoinMiter);
-    }
-  }
-}
-
-void m_nolinewidth()
-{
-  int i;
-
-  Mfprintf(stderr, "m_nolinewidth()\n");
-
-  if (linewidth) {
-#ifdef EXTRA_BUFFERING
-    flush_buffers();
-#endif /* EXTRA_BUFFERING */
-    linewidth = 0;
-    for (i = 0; i < ColorsInSet; i++) {
-      if (currentlinestyle == 0) {
-	Xfprintf(stderr, "XSetLineAttributes(m_display, gc[%d])\n", i);
-	if (default_linestyle[i] == NULL)
-	  XSetLineAttributes(m_display, gc[i], linewidth, LineSolid,
-			     CapButt, JoinMiter);
-	else {
-	  XSetDashes(m_display, gc[i], 0,
-		     (char*)default_linestyle[i], LINESTIPPLELENGTH);
-	  XSetLineAttributes(m_display, gc[i], linewidth, LineDoubleDash,
-			     CapButt, JoinMiter);
- 	}
-      } else {
-	Xfprintf(stderr, "XSetLineAttributes(m_display, gc[%d])\n", i);
-	XSetLineAttributes(m_display, gc[i], linewidth, LineOnOffDash,
-			   CapButt, JoinMiter);
-      }
-      if (currentlinestyle == 0) {
-	Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc1)\n");
-	XSetLineAttributes(m_display, newgrid->gc1, linewidth, LineSolid,
-			   CapButt, JoinMiter);
-
-	Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc2)\n");
-	XSetLineAttributes(m_display, newgrid->gc2, linewidth, LineSolid,
-			   CapButt, JoinMiter);
-
-	Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc1)\n");
-	XSetLineAttributes(m_display, oldgrid->gc1, linewidth, LineSolid,
-			   CapButt, JoinMiter);
-
-	Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc2)\n");
-	XSetLineAttributes(m_display, oldgrid->gc2, linewidth, LineSolid,
-			   CapButt, JoinMiter);
-      } else {
-	Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc1)\n");
-	XSetLineAttributes(m_display, newgrid->gc1, linewidth, LineOnOffDash,
-			   CapButt, JoinMiter);
-
-	Xfprintf(stderr, "XSetLineAttributes(m_display, newgrid->gc2)\n");
-	XSetLineAttributes(m_display, newgrid->gc2, linewidth, LineOnOffDash,
-			   CapButt, JoinMiter);
-
-	Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc1)\n");
-	XSetLineAttributes(m_display, oldgrid->gc1, linewidth, LineOnOffDash,
-			   CapButt, JoinMiter);
-
-	Xfprintf(stderr, "XSetLineAttributes(m_display, oldgrid->gc2)\n");
-	XSetLineAttributes(m_display, oldgrid->gc2, linewidth, LineOnOffDash,
-			   CapButt, JoinMiter);
-      }
-    }
-  }
-}
-
 static int curx = 0, cury = 0;
 
 void m_move(x, y)
@@ -2625,16 +2384,6 @@ int x, y;
   cury = y;
 }
 
-void m_moverel(dx, dy)
-int dx, dy;
-{
-  Mfprintf(stderr, "m_moverel(%d, %d)\n", dx, dy);
-
-  DTRNSFRM(dx, dy);
-
-  curx += dx;
-  cury += dy;
-}
 
 int hitdet_line(x1, y1, x2, y2)
 int x1, y1, x2, y2;
@@ -2796,33 +2545,6 @@ int x, y;
   cury = y;
 }
 
-void m_moverel2(dx, dy)
-int dx, dy;
-{
-  Mfprintf(stderr, "m_moverel2(%d, %d)\n", dx, dy);
-
-  DTRNSFRM(dx, dy);
-
-  curx += dx;
-  cury += dy;
-}
-
-void m_seeposn(x, y)
-int *x, *y;
-{
-  int tx, ty;
-
-  Mfprintf(stderr, "m_seeposn(x, y)\n");
-
-  tx = curx;
-  ty = cury;
-
-  UNTRNSFRM(tx, ty);
-
-  *x = curx;
-  *y = cury;
-}
-
 void m_drawline(x1, y1, x2, y2)
 int x1, y1, x2, y2;
 {
diff --git a/psys/src/p2clib.c b/psys/src/p2clib.c
index 0e2ba7554283a8d138e6e9162c67b00a5b1c57f5..976805239ebd6994036af301bff92d6521e6585e 100644
--- a/psys/src/p2clib.c
+++ b/psys/src/p2clib.c
@@ -47,32 +47,6 @@ void PASCAL_MAIN(int argc, char **argv)
 	bigendian = isbigendian();
 }
 
-long ipow(long a, long b)
-{
-	long v;
-
-	if (a == 0 || a == 1)
-		return a;
-
-	if (a == -1)
-		return (b & 1) ? -1 : 1;
-
-	if (b < 0)
-		return 0;
-
-	if (a == 2)
-		return 1 << b;
-
-	v = (b & 1) ? a : 1;
-	while ((b >>= 1) > 0)
-	{
-		a *= a;
-		if (b & 1)
-			v *= a;
-	}
-	return v;
-}
-
 /* Common string functions: */
 
 /* Store in "ret" the substring of length "len" starting from "pos" (1-based).
@@ -160,48 +134,10 @@ char *strrtrim(char *s)
 	return s;
 }
 
-/* Store in "ret" "num" copies of string "s".  Return "ret". */
-char *strrpt(char *ret, char *s, size_t num)
-{
-	char *s2 = ret;
-	char *s1;
-
-	while (num-- > 0)
-	{
-		s1 = s;
-		while ((*s2++ = *s1++)) ;
-		s2--;
-	}
-	return ret;
-}
-
-
-/* Store in "ret" string "s" with enough pad chars added to reach "size". */
-char *strpad(char *ret, char *s, size_t padchar, size_t num)
-{
-    char *d = ret;
-
-	if (s == d)
-	{
-		while (*d++) ;
-	}
-	else
-	{
-		while ((*d++ = *s++)) ;
-	}
-
-	num -= (--d - ret);
-	while (num > 0)
-		*d++ = padchar;
-	*d = 0;
-	return ret;
-}
-
 
 /* Copy the substring of length "len" from index "spos" of "s" (1-based)
    to index "dpos" of "d", lengthening "d" if necessary.  Length and
    indices must be in-range. */
-
 void strmove(size_t len, char *s, size_t spos, char *d, size_t dpos)
 {
 	s += spos - 1;
@@ -269,24 +205,9 @@ void strinsert(char *src, char *dst, size_t pos)
 
 /* File functions */
 
-/* Peek at next character of input stream; return EOF at end-of-file. */
-
-char P_peek(FILE *f)
-{
-	char ch;
-
-	ch = getc(f);
-	if (ch == EOF)
-		return EOF;
-	ungetc(ch, f);
-	return (ch == '\n') ? ' ' : ch;
-}
-
-
 /* Check if at end of file, using Pascal "eof" semantics.  End-of-file for
    stdin is broken; remove the special case for it to be broken in a
    different way. */
-
 int P_eof(FILE *f)
 {
     char ch;
@@ -316,85 +237,6 @@ int P_eoln(FILE *f)
 	return (ch == '\n');
 }
 
-
-/* Read a packed array of characters from a file. */
-
-void P_readpaoc(FILE *f, char *s, size_t len)
-{
-	char ch;
-
-	for (;;)
-	{
-		if (len <= 0)
-			return;
-		ch = getc(f);
-		if (ch == EOF || ch == '\n')
-			break;
-		*s++ = ch;
-		--len;
-	}
-	while (len > 0)
-	{
-		*s++ = ' ';
-		--len;
-	}
-	if (ch != EOF)
-		ungetc(ch, f);
-}
-
-void P_readlnpaoc(FILE *f, char *s, size_t len)
-{
-	char ch;
-
-	for (;;)
-	{
-		ch = getc(f);
-		if (ch == EOF || ch == '\n')
-			break;
-		if (len > 0)
-		{
-			*s++ = ch;
-			--len;
-		}
-	}
-	while (len > 0)
-	{
-		*s++ = ' ';
-		--len;
-	}
-}
-
-
-/* Compute maximum legal "seek" index in file (0-based). */
-
-long P_maxpos(FILE *f)
-{
-	long savepos = ftell(f);
-	long val;
-
-	if (fseek(f, 0L, SEEK_END))
-		return -1;
-	val = ftell(f);
-	if (fseek(f, savepos, SEEK_SET))
-		return -1;
-	return val;
-}
-
-
-/* Use packed array of char for a file name. */
-
-char *P_trimname(char *fn, size_t len)
-{
-	char *fnbuf = malloc(sizeof(char) * 256);
-	char *cp = fnbuf;
-
-	while (len-- > 0 && *fn && !isspace(*fn))
-		*cp++ = *fn++;
-
-	*cp = '\0';
-	return fnbuf;
-}
-
 /* Sets are stored as an array of longs.  S[0] is the size of the set;
    S[N] is the N'th 32-bit chunk of the set.  S[0] equals the maximum
    I such that S[I] is nonzero.  S[0] is zero for an empty set.  Within
@@ -427,23 +269,6 @@ long *P_setunion(long *d, long *s1, long *s2)         /* d := s1 + s2 */
 	return dbase;
 }
 
-
-long *P_setint(long *d, long *s1, long *s2)           /* d := s1 * s2 */
-{
-	long *dbase = d++;
-	long sz1 = *s1++;
-	long sz2 = *s2++;
-
-	while (--sz1 >= 0 && --sz2 >= 0)
-		*d++ = *s1++ & *s2++;
-
-	while (--d > dbase && !*d) ;
-
-	*dbase = d - dbase;
-	return dbase;
-}
-
-
 long *P_setdiff(long *d, long *s1, long *s2)          /* d := s1 - s2 */
 {
 	long *dbase = d++;
@@ -464,32 +289,6 @@ long *P_setdiff(long *d, long *s1, long *s2)          /* d := s1 - s2 */
 	return dbase;
 }
 
-
-long *P_setxor(long *d, long *s1, long *s2)         /* d := s1 / s2 */
-{
-	long *dbase = d++;
-	long sz1 = *s1++;
-	long sz2 = *s2++;
-
-	while (sz1 > 0 && sz2 > 0)
-	{
-		*d++ = *s1++ ^ *s2++;
-		sz1--, sz2--;
-	}
-
-	while (--sz1 >= 0)
-		*d++ = *s1++;
-
-	while (--sz2 >= 0)
-		*d++ = *s2++;
-
-	while (--d > dbase && !*d) ;
-	*dbase = d - dbase;
-
-	return dbase;
-}
-
-
 int P_inset(unsigned val, long *s)                 /* val IN s */
 {
 	long bit = val % SETBITS;
@@ -498,7 +297,6 @@ int P_inset(unsigned val, long *s)                 /* val IN s */
 	return ((long)val < *s++ && ((1<<bit) & s[val]));
 }
 
-
 long *P_addset(long *s, unsigned val)              /* s := s + [val] */
 {
 	long *sbase = s;
@@ -579,20 +377,6 @@ long *P_remset(long *s, unsigned val)              /* s := s - [val] */
 	return s;
 }
 
-int P_setequal(long *s1, long *s2)              /* s1 = s2 */
-{
-    long  size = *s1++;
-	if (*s2++ != size)
-		return 0;
-	while (--size >= 0)
-	{
-		if (*s1++ != *s2++)
-			 return 0;
-	}
-	return 1;
-}
-
-
 int P_subset(long *s1, long *s2)                /* s1 <= s2 */
 {
 	long sz1 = *s1++;
@@ -610,15 +394,6 @@ int P_subset(long *s1, long *s2)                /* s1 <= s2 */
 }
 
 
-long *P_setcpy(long *d, long *s)                /* d := s */
-{
-	long *save_d = d;
-
-    memcpy(d, s, (*s + 1) * sizeof(long));
-
-	return save_d;
-}
-
 /* s is a "smallset", i.e., a 32-bit or less set stored
    directly in a long. */
 
@@ -637,77 +412,6 @@ long *P_expset(long *d, long s)                /* d := s */
 	return d;
 }
 
-
-long P_packset(long *s)                   /* convert s to a small-set */
-{
-	if (*s++)
-		return *s;
-	else
-		return 0;
-}
-
-/* Oregon Software Pascal extensions, courtesy of William Bader */
-
-int P_getcmdline(int l, int h, char *line)
-{
-	int i, len;
-	char *s;
-
-	h = h - l + 1;
-	len = 0;
-
-	for(i = 1; i < P_argc; i++)
-	{
-		s = P_argv[i];
-		while (*s)
-		{
-			if (len >= h)
-				return len;
-			line[len++] = *s++;
-		}
-		if (len >= h)
-			return len;
-		line[len++] = ' ';
-	}
-
-	return len;
-}
-
-void TimeStamp(int *Day, int *Month, int *Year, int *Hour, int *Min, int *Sec)
-{
-	struct tm *tm;
-	time_t clock;
-
-	time(&clock);
-	tm = localtime(&clock);
-	*Day = tm->tm_mday;
-	*Month = tm->tm_mon + 1;		/* Jan = 0 */
-	*Year = tm->tm_year;
-	if (*Year < 1900)
-		*Year += 1900;     /* year since 1900 */
-	*Hour = tm->tm_hour;
-	*Min = tm->tm_min;
-	*Sec = tm->tm_sec;
-}
-
-/* SUN Berkeley Pascal extensions */
-
-void P_sun_argv(char *s, int len, int n)
-{
-	char *cp;
-
-	if (n < P_argc)
-		cp = P_argv[n];
-	else
-		cp = "";
-
-	while (*cp && --len >= 0)
-		*s++ = *cp++;
-
-	while (--len >= 0)
-		*s++ = ' ';
-}
-
 void* _OutMem()
 {
     _Escape(-2);