%endoflist

%externalroutinespec READSTRING(%string(255) s)
%externalroutinespec ILAP OUT
%externalroutinespec SCALE OUT
%externalroutinespec CLEAN CONSTRAINT GRAPH(%integer limited)
%externalrecord(NODE)%mapspec FIND WIRE(%record(NODE)%name thing,%integer type)
%externalpredicatespec THRU WIRE(%record(NODE)%name wire,%integer x,y)
!__________________________________________________________________________
%externalintegerspec this port
%externalintegerspec port count
%externalstring(255)%arrayspec PORT NAME(1:30)
%externalintegerarrayspec PORT POS(1:30,xdir:ydir)
%externalrecord(NODELIST)%arrayspec PORT LIST(topp:bottom)
%externalintegerspec min extension
%externalbytespec min pu ratio
%externalbytespec min gate ratio
%externalintegerspec min buried spacing 
%externalintegerspec polydiff
%externalintegerspec min buried long
%externalintegerspec min buried short

%externalintegerarrayspec min width(contact:metal)
%externalintegerarrayspec min seperation(poly:metal)
!___________________________________________________________________________
%externalroutinespec INIT
%externalroutinespec INIT2
%externalrecord(NODE)%spec left edge, right edge
%externalrecord(NODE)%spec top edge,  bottom edge

%externalrecord(EXT)%arrayspec screens(X dir:Y dir)
%externalrecord(NODE)%namespec error
!___________________________________________________________________________


!%externalroutinespec DRAW(%integer offset)
!%externalroutinespec DISPLAY(%string(255)s,%integer x,y,colour)
!%externalintegerfunctionspec BOUND(%integer coord,max,flip screen)
!%externalroutinespec TRACE CURSOR(%integername  x,y,moving)
!%externalintegerfunctionspec REGULARISE(%integer coord)
!%externalroutinespec DRAW DEVICE(%integer x,y,type)
!%externalroutinespec DRAW WIRE(%integername sx,sy,ex,ey,%integer type,flip screen)
!%externalroutinespec  ROTATION(%integername x,y,%integer rot,type)
!%externalroutinespec DRAW CELL(%integer x1,y1,type,colour,flip screen,rot)
!%externalroutinespec TRACE LINE(%integername osx,osy,oex,oey, %c
!                    %integer update,finish,colour)
!%externalroutinespec TRACE WIRE(%integer nsx,nsy,%integername nex,ney,%integer finish)
!%externalroutinespec TRACE CELL(%integer type,rot,request)
!%externalroutinespec CLEAR TOGGLE(%integer off)
!%externalroutinespec change TOGGLE(%integer cell,zoom,size,input)
!%externalroutinespec simple help
!%externalrecord(NODE)%mapspec CONNECT(%record(NODE)%name node,%integer dir)
!%externalroutinespec SCAN
!%externalpredicatespec ON WIRE(%record(NODE)%name node,%integer new x,new y)
!%externalpredicatespec OVERLAP WIRE(%record(NODE)%name new input,node)
!%externalpredicatespec ON CELL(%record(NODE)%name node,%integer new x,new y)
!%externalpredicatespec CORRUPTS CELL(%record(NODE)%name new input,node)
!%externalpredicatespec ON DEVICE(%record(NODE)%name n1,%integer x,y)
!%externalpredicatespec OVERLAP DEVICE(%record(NODE)%name n1,n2)
!%externalrecord(NODE)%mapspec  DELETE CELL(%integer x,y)
!%externalpredicatespec CELLS CORRUPTED(%record(NODE)%name new input)
!%externalrecord(NODE)%mapspec FIND EDGE(%integer x,y,dir)
!%externalrecord(NODE)%mapspec CROSSES EDGE OR AREA(%integer max,min,cross coord,dir, %c
!                                       area,length)
!%externalpredicatespec NOT FREE AREA(%record(NODE)%name new input)
!%externalintegerfunctionspec INSERT NODE(%record(NODE)%name new input)
!%externalrecord(NODE)%mapspec FIND NODE(%integer x,y,dir,special)
!%externalrecord(NODE)%mapspec DELETE OR SIZE NODE(%integer x,y,special,size)
!%externalroutinespec CLEAR TRACE
!%externalrecord(SETS)%mapspec  SWITCH OP(%byteinteger function,type, %c
!                         %integer x,y, %c
!                              %integername start x,start y, %c
!                                   %record(SETS)%name settings)
!%externalroutinespec REDRAW(%record(NODE)%name nodeptr,%integer offset)
!%externalpredicatespec ON SCREEN(%integer this coord,end coord,origin,max)
!%externalroutinespec DELAY(%integer count)
!%externalroutinespec DRAW SCREEN(%integername flip screen)
!%externalroutinespec RESET SCREEN(%integername flip screen)
!%externalroutinespec  MOVE SCREEN(%integername origin x,origin y,start x,start y,moving)
!%externalroutinespec GET DESIRED CELL(%integername current cell,current rot)
!%externalroutinespec DO ZOOM(%integername origin x,origin y,zoom,off x,off y,%integer a,b,c)
!%externalroutinespec CLEAN DATA(%integer full) 
!%externalroutinespec THE LONG AND THE SHORT
