function peekw(address:integer):integer; external;
function peekb(address:integer):integer; external;
procedure pokew(address,data:integer);   external;
procedure pokeb(address,data:integer);   external;
procedure wibot(var address:integer; data:integer); external;
procedure witop(var address:integer; data:integer); external;
procedure writepalette(num,status,r,g,b:integer);   external;
procedure awaitdppoll; external;
procedure awaitgppoll; external;
procedure absmov(x,y:integer); external;
procedure arcexclusion(dxmin,dymin,dxmax,dymax,radius:integer); external;
procedure arcinclusion(dxmin,dymin,dxmax,dymax,radius:integer); external;
procedure bitblt(sx,sy,dx,dy:integer); external;
procedure bitbltm(srcaddr,sxmax,symax,sx,sy,dx,dy:integer); external;
procedure call(address:integer); external;
procedure charopaque(strptr,chars:integer); external;
procedure chartransparent(strptr,chars:integer); external;
procedure circle(radius:integer); external;
procedure defbitmap(address,xmax,ymax,bpp:integer); external;
procedure defcharorient(path,rotation:integer); external;
procedure defcharsetword(fontaddr:integer); external;
procedure defcharsetbyte(fontaddr:integer); external;
procedure defcharspace(space:integer); external;
procedure defcliprect(xmin,ymin,xmax,ymax:integer); external;
procedure defcolors(f,b:integer); external;
procedure deflogicalop(bitmask,fcode:integer); external;
procedure deftextureopaque(pattern:integer); external;
procedure deftexturetransparent(pattern:integer); external;
procedure dumpreg(address,register:integer); external;
procedure enterpick; external;
procedure exitpick; external;
procedure halt; external;
procedure incrpoint(address,number:integer); external;
procedure intrgen; external;
procedure linerel(dx,dy:integer); external;
procedure link(address:integer); external;
procedure loadreg(address,register:integer); external;
procedure nop; external;
procedure point(dx,dy:integer); external;
procedure polygon(address,number:integer); external;
procedure polyline(address,number:integer); external;
procedure rect(dx,dy:integer); external;
procedure relmov(dx,dy:integer); external;
procedure return; external;
procedure scanlines(address,number:integer); external;

{ ********************************************************************** }
{ Data allocation routines                                               }

procedure opengcmbmain; external;
procedure closegcmbmain; external;
function opengcmbsub:integer; external;
procedure closegcmbsub; external;
procedure delgcmbsub(address:integer); external;
procedure gpinit; external;
 
{ ********************************************************************* }
{ DP routines                                                           }

procedure loadstripheader(lines,tiles,last:integer); external;
procedure loadtile(bmapw,addr,bpp,start,stop,fetch,tblr,z,f:integer); external;
procedure dploadreg(address,register:integer); external;
procedure dpdumpreg(address,register:integer); external;
procedure dploadall(address:integer); external;
procedure dpdumpall(address:integer); external;
procedure zoom(xfactor,yfactor:integer); external;
procedure cursoron; external;
procedure cursoroff; external;
procedure cursortype(t:integer); external;
procedure cursor(x,y:integer); external;

{ ******************************************************************** }
{ Memory management routines                                           }

function loadstring(txt:string[255]):integer; external;
function openarray:integer; external;
procedure loadpoly(dx,dy:integer); external;
procedure loadscanline(dx,dy,deltax:integer); external;
procedure loadincrpoint(inc:integer); external;

{ ******************************************************************* }
{ Font handling routines                                              }

function loadfont(fname:string[255]; var faddr:integer):integer; external;
