This key allows access to the data on the tape. Many functions are controlled by the capability mask. Different copies of the TAPEKEY will produce access keys with different capabilities.

The tape access key transmits data to the requestor in records. These records may be blocked and unblocked into and out of tape blocks according to the format specified. This makes tape operations transparent to the requestor. All error recovery is handled by the access key.

NOTE! When variable and variable blocked formats are specified, the length of the data passed to the ACCESS key must be 4 bytes shorter that the specified record length in the format. The format is specified as an OS system will see the tape. OS type control words are added to the records by the ACCESS key so the user need not worry about such things. However the actual data must be 4 bytes less than the specified record length and the block length must be at least 4 bytes longer than the record length as there is a block control word added by the ACCESS key.

TAPEACCESS(kt ==> x'52b')

TAPEACCESS(0,(2,file #) [(1,F^V^U)][(2,BLKSIZE)][(2,LRECL)]; ==> c) OPEN a file for input.

#)(17,filename)[(1,F^V^U)][(2,BLKSIZE)][(2,LRECL)]; ==> c) OPEN a file for output.

{ni}TAPEACCESS(2,(17,filename)[format]); ==> c) OPEN labelled tape to specific file for input.

{ni}TAPEACCESS(3,(17,filename)[format]; ==> c) OPEN labelled tape to specific file for output.

TAPEACCESS(4; ==>c) CLOSE file.

TAPEACCESS(5,(data); ==>c) Write record.

TAPEACCESS(6; ==> c,(data)) Read record.

TAPEACCESS(7; ==> c) Make tape unlabelled.

TAPEACCESS(8; ==> c) Verify Tape Label (closely guarded).

TAPEACCESS(9;==> c) Write tape label.

TAPEACCESS(10 ==> c) Set label of old tape (closely guarded).

TAPEACCESS(11; ==> 0,(4096,logfile))

TAPEACCESS(12; ==>c,(8,csw)(n,sense)) Issue sense

TAPEACCESS(13; ==> c) Rewind and Unload tape (Privileged)

TAPEACCESS(14,(1,mode); ==>c,(8,csw)(24,sense)) Set tape density

TAPEACCESS(16+oc ...) OPEN tape file for addition to file (DISP MOD).