{ This procedure is called to reserve a tape block buffer.
{
{ A pointer to the tape block buffer is returned to the caller.
{ The buffer may then be filled with data and passed to
{ BAP$TAPE_BM_WRITE_NEXT_BLOCK for eventual writing to tape.
{
{ Calling this procedure reserves the returned buffer to the caller.
{ Calling BAP$TAPE_BM_WRITE_NEXT_BLOCK releases the reservation, and
{ that buffer may no longer be used.  (A new buffer should be acquired
{ by calling this procedure.)
{
{ Only one block buffer may be reserved at a time.  Any attempt to
{ reserve a buffer when a buffer is already reserved will be rejected
{ with status BAE$TOO_MANY_RESERVED_BUFFERS.
{
{ In addition to the release of reservations by calling
{ BAP$TAPE_BM_WRITE_NEXT_BLOCK, any outstanding reservation is implicitly
{ released by a call to any of the following procedures:
{
{     BAP$TAPE_BM_WRITE_TAPE_MARK
{     BAP$TAPE_BM_SKIP
{     BAP$TAPE_BM_ERASE_BLOCK
{     BAP$TAPE_BM_REWIND
{
{ To continue writing after calling one of these procedures you should
{ call this procedure again to reserve a new block buffer.
{
{     BAP$TAPE_BM_RESERVE_BLK_BUFFER(FILE_IDENTIFIER,
{         BUFFER_POINTER, FAILURE_MODES, STATUS)
{
{ FILE_IDENTIFIER (Input): The file identifier for the file.
{
{  BUFFER_POINTER: (Output) A pointer to the tape block buffer.
{
{  FAILURE_MODES:  (Output) Detailed information on any tape I/O error.
{
{  STATUS: (Output) Request status.
