Guardian Programmer's Guide

Table Of Contents
Communicating With Magnetic Tape
Guardian Programmer’s Guide 421922-014
12 - 43
Reading From the Only File on a
Labeled Tape Volume
The following example creates a DEFINE called =TAPEFILE^READ that describes a
labeled tape file using standard ANSI labels:
!Turn on DEFINE mode:
NEW^VALUE := 1;
ERROR := DEFINEMODE(NEW^VALUE,
OLD^VALUE);
IF ERROR > 0 THEN ...
!Set the CLASS attribute to TAPE:
ATTRIBUTE^NAME ':=' "CLASS ";
ATTRIBUTE^VALUE ':=' "TAPE" -> @S^PTR;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
@S^PTR '-' @ATTRIBUTE^VALUE,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the LABELS attribute to ANSI:
ATTRIBUTE^NAME ':=' "LABELS ";
ATTRIBUTE^VALUE ':=' "ANSI" -> @S^PTR;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
@S^PTR '-' @ATTRIBUTE^VALUE,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the VOLUME attribute to MYVOL:
ATTRIBUTE^NAME ':=' "VOLUME ";
ATTRIBUTE^VALUE ':=' "MYVOL" -> @S^PTR;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
@S^PTR '-' @ATTRIBUTE^VALUE,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the FILEID attribute to TAPEFILE:
ATTRIBUTE^NAME ':=' "FILEID ";
ATTRIBUTE^VALUE ':=' "TAPEFILE" -> @S^PTR;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
@S^PTR '-' @ATTRIBUTE^VALUE,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the FILESEQ attribute to 1:
ATTRIBUTE^NAME ':=' "FILESEQ ";
ATTRIBUTE^VALUE ':=' "1";
ATTRIBUTE^LEN := 1;
ERROR := DEFINESETATTR(ATTRIBUTE^NAME,
ATTRIBUTE^VALUE,
ATTRIBUTE^LEN,
DEFAULT^NAMES);
IF ERROR <> 0 THEN ...
!Set the USE attribute to IN:
ATTRIBUTE^NAME ':=' "USE ";