Guardian Programmer's Guide

Table Of Contents
Using DEFINEs
Guardian Programmer’s Guide 421922-014
7 - 35
Using DEFINEs: An Example
!------------------------------------------------------------
! Procedure to prompt the user for all attributes for a CLASS
! SUBSORT DEFINE.
!------------------------------------------------------------
PROC SET^SUBSORT;
BEGIN
STRING .VALUES^LIST[0:BUFSIZE - 1];
STRING .NAME[0:15];
NAME ':=' "CLASS ";
VALUES^LIST ':=' "Must be SUBSORT" -> @S^PTR;
CALL DEFINE^ATTR(NAME,VALUES^LIST,
@S^PTR '-' @VALUES^LIST);
NAME ':=' "BLOCK ";
VALUES^LIST ':=' "Any multiple of 512 up to 30K"
-> @S^PTR;
CALL DEFINE^ATTR(NAME,VALUES^LIST,
@S^PTR '-' @VALUES^LIST);
NAME ':=' "CPU ";
VALUES^LIST ':=' "A number in the range 0 through 15"
-> @S^PTR;
CALL DEFINE^ATTR(NAME,VALUES^LIST,
@S^PTR '-' @VALUES^LIST);
NAME ':=' "PRI ";
VALUES^LIST ':=' "A number in the range 1 through 199"
-> @S^PTR;
CALL DEFINE^ATTR(NAME,VALUES^LIST,
@S^PTR '-' @VALUES^LIST);
NAME ':=' "PROGRAM ";
VALUES^LIST ':=' "A valid program file name" -> @S^PTR;
CALL DEFINE^ATTR(NAME,VALUES^LIST,
@S^PTR '-' @VALUES^LIST);
NAME ':=' "SCRATCH ";
VALUES^LIST ':='
"A valid unstructured file name or volume name"
-> @S^PTR;
CALL DEFINE^ATTR(NAME,VALUES^LIST,
@S^PTR '-' @VALUES^LIST);
NAME ':=' "SEGMENT ";
VALUES^LIST ':=' "A number 64 or greater" -> @S^PTR;
CALL DEFINE^ATTR(NAME,VALUES^LIST,
@S^PTR '-' @VALUES^LIST);
NAME ':=' "SWAP ";
VALUES^LIST ':=' "A valid file or volume name" -> @S^PTR;
CALL DEFINE^ATTR(NAME,VALUES^LIST,
@S^PTR '-' @VALUES^LIST);
END;