C Prolog is a Prolog interpreter distributed by the AI Department.
It is available on the APMs, some of the Perqs and on TVAX.
It was implemented by Frank Cringle who has since left.

The language corresponds fairly closely to that described in Clocksin & Mellish 
(Programming in Prolog, Springer-Verlag, 1981).

!<Loading Prolog
Use the following command sequence:

      } setup cplog
      } prolog

!>
!<Local additions
Some predicates have been added to allow access to the APM level 1 graphics
hardware.  Explanations taken by JHB from LEVEL1:GRAPHINC.IMP routines of the
same name:

      g_colour(C)
Sets colour for drawing to 'colour'.

      g_offset(X,Y)
Sets display area so that screen origin is at (x&(\15), y) within framestore.

      g_enable(C)
Allows writing to planes that have bits in 'planes' 1, disables other planes.

      g_plot(X,Y)
Draws a single pixel at (x, y).

      g_line(X1,Y1,X2,Y2)
Draws arbitrary line from (x0, y0) to (x1, y1).

      g_trapeze(X1,X2,Y1,X3,X4,Y2)
Draws a filled trapezium with vertices (x00,y0), (x01,y0), (x10,y1), (x11,y1).

      g_triangle(X1,Y1,X2,Y2,X3,Y3)
Draws filled triangle with vertices at (x0, y0), (x1, y1), (x2, y2).

      g_fill(X1,Y1,X2,Y2)
Draws filled orthogonal box with diagonal corners at (x0, y0, x1, y1).

      g_clear
Sets whole of framestore to colour 0.                          
The currently selected colour and enabled planes are unaltered.

      g_mouse(X,Y,B)
JHB assumes this gives you absolute  X,Y (or relative since last call on the
function - try it and see) plus the buttons - (left=1, middle=2, right=4)
!>  FDC.  additions  JHB 27/04/87
