Double Ended Queue ??

I am trying to create a double ended queue in pascal in a circular array.

Can anyone please tell me the concept about. Or can anyone tell me where can
i find it ( the link in the internet )

deque( double queue )  :

It is a list in which entrys can be added or deleted from either the first
or last position of the list, but no changes can be made elsewhere in the
list. Thus a deque is a generslisation of both a stack and a queue.