In IBM mainframe operating systems, Basic sequential access method (BSAM) is an access method to read and write datasets sequentially. BSAM is available on OS/360, OS/VS2, MVS, z/OS, and related operating systems.
BSAM is used for devices that are naturally sequential, such as punched card readers, punches, line printers, and magnetic tape. It is also used for data on devices that could also be addressed directly, such as magnetic disks. BSAM offers device independence: to the extent possible, the same API calls are used for different devices.
BSAM allows programs to read and write physical blocks of data, as opposed to the more powerful but less flexible Queued Sequential Access Method (QSAM) which allows programs to access logical records within physical blocks of data. The BSAM user must be aware of the possibility of encountering short (truncated) blocks (blocks within a dataset which are shorter than the BLKSIZE of the dataset), particularly at the end of a dataset, but also in many cases within a dataset. QSAM has none of these limitations.
The programmer specifies DSORG=PS
in his Data Control Block (DCB) to indicate use of BSAM. As a basic access method BSAM reads and writes member data in blocks and the I/O operation proceeds asynchronously and must be tested for completion using the CHECK
macro. BSAM uses the standard system macros OPEN
, CLOSE
, READ
, WRITE
,and CHECK
. The NOTE
macro instruction returns position of the last block read or written, and the POINT
macro will reposition to the location identified by a previous NOTE
.