#include "tapeio.h"
FUNCTION c_tpbsr (unit, count, mode)
long *unit;
long *count;
long *mode;
Unit number to be used as a reference for the drive. This number is set by c_tpopen() and should not be altered.
Number of records to back over. If beginning of file is encountered before all records are skipped, c_tpbsr() returns TAPE_BOF and count returns the number of records skipped. The tape will be left at the beginning of the current file.
A value of NO_HANDLE (0) specifies that errors are to be returned to the calling program. A value of HANDLE (1) specifies that when an error occurs the routine is to return an error to the calling program and display a message to the terminal.
The c_tpbsr() call is used to back over count records on a tape device. However, it will not backspace over an EOF mark. Some examples of c_tpbsr() follow:
Tape location before, Tape location after call,
called with count = 1 returns TAPE_SUCC, count = 1
| |
V V
------------------------------ ------------------------------
| |E| |E| |E| |E|E| | |E| |E| |E| |E|E|
| |O| |O| |O| |O|O| | |O| |O| |O| |O|O|
| |R| |R| |R| |F|F| | |R| |R| |R| |F|F|
------------------------------ ------------------------------
Tape location before, Tape location after call,
called with count = 2 returns TAPE_BOT, count = 2
| |
V V
------------------------------ ------------------------------
| |E| |E| |E| |E|E| | |E| |E| |E| |E|E|
| |O| |O| |O| |O|O| | |O| |O| |O| |O|O|
| |R| |R| |R| |F|F| | |R| |R| |R| |F|F|
------------------------------ ------------------------------
c_tpbsr() returns
TAPE_SUCC (0) --> successful completion
TAPE_BOF --> beginning of file
TPBSR_BSR --> device error
TAPE_BOT --> beginning of tape