 















             VAX Notes Callable Routines Reference Manual

             Order Number: DRAFT



             February 1990

             This is a draft and likely does not fully reflect the API.





             Revision/Update Information:  This is a revised manual.

             Operating System and Version: VMS Version 5.3 or higher.

             Software Version:             VAX Notes Version 2.1.







             digital equipment corporation
             maynard, massachusetts

 









             ___________________________________________________
             First Printing, March 1986
             Revised, February 1990

             The information in this document is subject to change without
             notice and should not be construed as a commitment by Digital
             Equipment Corporation. Digital Equipment Corporation assumes
             no responsibility for any errors that may appear in this
             document.

             The software described in this document is furnished under a
             license and may be used or copied only in accordance with the
             terms of such license.

             No responsibility is assumed for the use or reliability
             of software on equipment that is not supplied by Digital
             Equipment Corporation or its affiliated companies.

             Restricted Rights: Use, duplication, or disclosure by the
             U.S. Government is subject to restrictions as set forth in
             subparagraph (c)(1)(ii)  of the Rights in Technical Data and
             Computer Software clause at DFARS 252.227-7013.

              Digital Equipment Corporation 1986, 1990.

             All Rights Reserved.
             Printed in U.S.A.

             The postpaid Reader's Comments forms at the end of this docu-
             ment request your critical evaluation to assist in preparing
             future documentation.

                                                                    ZK____

 















                                                                  Contents
          ________________________________________________________________

          Preface .......................................................v.


          ________________________________________________________________
          Part I   VAX Notes Callable Routines and Network Protocol

          ________________________________________________________________
          Chapter 1  Introduction

               1.1   Callable High-Level User Interface..............  1-1

               1.2   Notefile Format...................................1-3
                     1.2.1 Use of Keys in Records....................  1-3
                     1.2.2 Record Types................................1-5

               1.3   The Seen/Unseen Map...............................1-8

               1.4   Callable Routines.................................1-8
                     1.4.1 Calling Sequence........................... 1-9
                     1.4.2 Error Reporting by the Callable
                           Routines ..................................1-10
                     1.4.3 Continuable Operations.................... 1-11
                     1.4.4 Passing Context Information..............  1-11





                                                                       iii

 






          ________________________________________________________________
          Chapter 2  Notefile Routines

               2.1   NOTES$NOTEFILE_BEGIN..............................2-3

               2.2   NOTES$NOTEFILE_END................................2-5

               2.3   NOTES$NOTEFILE_GET_INFO...........................2-5

               2.4   NOTES$NOTEFILE_MODIFY.............................2-5

               2.5   NOTES$NOTEFILE_LIST_BEGIN........................ 2-6

               2.6   NOTES$NOTEFILE_LIST...............................2-7


          ________________________________________________________________
          Chapter 3  Class Routines

               3.1   NOTES$CLASS_BEGIN.................................3-2

               3.2   NOTES$CLASS_END...................................3-2

               3.3   NOTES$CLASS_ADD...................................3-2

               3.4   NOTES$CLASS_DELETE................................3-3

               3.5   NOTES$CLASS_GET...................................3-3

               3.6   NOTES$CLASS_GET_ENTRY.............................3-4

               3.7   NOTES$CLASS_MODIFY................................3-4







          iv

 






          ________________________________________________________________
          Chapter 4  Entry Routines

               4.1   NOTES$ENTRY_BEGIN.................................4-3

               4.2   NOTES$ENTRY_END...................................4-3

               4.3   NOTES$ENTRY_ADD...................................4-4

               4.4   NOTES$ENTRY_DELETE................................4-5

               4.5   NOTES$ENTRY_GET...................................4-5

               4.6   NOTES$ENTRY_GET_CLASS.............................4-6

               4.7   NOTES$ENTRY_GET_KEYWORD...........................4-7

               4.8   NOTES$ENTRY_MODIFY................................4-7

               4.9   NOTES$ENTRY_UPDATE................................4-8


          ________________________________________________________________
          Chapter 5  Keyword Routines

               5.1   NOTES$KEYWORD_BEGIN...............................5-2

               5.2   NOTES$KEYWORD_END.................................5-2

               5.3   NOTES$KEYWORD_ADD.................................5-2

               5.4   NOTES$KEYWORD_DELETE..............................5-3

               5.5   NOTES$KEYWORD_GET.................................5-4

               5.6   NOTES$KEYWORD_GET_NOTE............................5-4

               5.7   NOTES$KEYWORD_MODIFY..............................5-5

                                                                         v

 






          ________________________________________________________________
          Chapter 6  Note Routines

               6.1   NOTES$NOTE_BEGIN..................................6-3

               6.2   NOTES$NOTE_END....................................6-4

               6.3   NOTES$NOTE_ADD....................................6-4

               6.4   NOTES$NOTE_ADD_TEXT...............................6-5

               6.5   NOTES$NOTE_DELETE.................................6-5

               6.6   NOTES$NOTE_GET....................................6-6

               6.7   NOTES$NOTE_GET_KEYWORD............................6-8

               6.8   NOTES$NOTE_GET_TEXT...............................6-8

               6.9   NOTES$NOTE_MODIFY.................................6-9


          ________________________________________________________________
          Chapter 7  Profile Routines

               7.1   NOTES$PROFILE_BEGIN...............................7-2

               7.2   NOTES$PROFILE_END.................................7-2

               7.3   NOTES$PROFILE_GET.................................7-3

               7.4   NOTES$PROFILE_MODIFY..............................7-3







          vi

 






          ________________________________________________________________
          Chapter 8  User Routines

               8.1   NOTES$USER_BEGIN..................................8-2

               8.2   NOTES$USER_END....................................8-2

               8.3   NOTES$USER_ADD....................................8-3

               8.4   NOTES$USER_DELETE.................................8-4

               8.5   NOTES$USER_GET....................................8-4

               8.6   NOTES$USER_MODIFY.................................8-5


          ________________________________________________________________
          Chapter 9  VAX Notes Network Protocol

               9.1   Type Field........................................9-2

               9.2   Length Field......................................9-4

               9.3   Value Field.......................................9-6

               9.4   Structure of a Data Packet....................... 9-6

          ________________________________________________________________
          Part II   VAX Notes Routines Dictionary

                     NOTES$CLASS_ADD.................................... 3
                     NOTES$CLASS_BEGIN.................................. 6
                     NOTES$CLASS_DELETE................................. 9
                     NOTES$CLASS_END....................................12
                     NOTES$CLASS_GET....................................15
                     NOTES$CLASS_GET_ENTRY............................. 18
                     NOTES$CLASS_MODIFY.................................21
                     NOTES$ENTRY_ADD....................................24

                                                                       vii

 






                     NOTES$ENTRY_BEGIN..................................27
                     NOTES$ENTRY_DELETE.................................30
                     NOTES$ENTRY_END....................................33
                     NOTES$ENTRY_GET....................................36
                     NOTES$ENTRY_GET_CLASS............................. 39
                     NOTES$ENTRY_GET_KEYWORD........................... 42
                     NOTES$ENTRY_MODIFY.................................45
                     NOTES$ENTRY_UPDATE.................................48
                     NOTES$KEYWORD_ADD..................................51
                     NOTES$KEYWORD_BEGIN............................... 54
                     NOTES$KEYWORD_DELETE.............................. 57
                     NOTES$KEYWORD_END..................................60
                     NOTES$KEYWORD_GET..................................63
                     NOTES$KEYWORD_GET_NOTE............................ 66
                     NOTES$KEYWORD_MODIFY.............................. 69
                     NOTES$NOTEFILE_BEGIN.............................. 72
                     NOTES$NOTEFILE_END.................................76
                     NOTES$NOTEFILE_GET_INFO........................... 79
                     NOTES$NOTEFILE_LIST............................... 82
                     NOTES$NOTEFILE_LIST_BEGIN........................  85
                     NOTES$NOTEFILE_MODIFY............................. 88
                     NOTES$NOTE_ADD.....................................91
                     NOTES$NOTE_ADD_TEXT............................... 94
                     NOTES$NOTE_BEGIN...................................97
                     NOTES$NOTE_DELETE.................................100
                     NOTES$NOTE_END....................................103
                     NOTES$NOTE_GET....................................106
                     NOTES$NOTE_GET_KEYWORD............................110
                     NOTES$NOTE_GET_TEXT...............................113
                     NOTES$NOTE_MODIFY.................................116
                     NOTES$PROFILE_BEGIN...............................119
                     NOTES$PROFILE_END.................................122
                     NOTES$PROFILE_GET.................................125
                     NOTES$PROFILE_MODIFY..............................128
                     NOTES$USER_ADD....................................131
                     NOTES$USER_BEGIN..................................134
                     NOTES$USER_DELETE.................................137
                     NOTES$USER_END....................................140

          viii

 






                     NOTES$USER_GET....................................143
                     NOTES$USER_MODIFY.................................146


          ________________________________________________________________
          Part III   Appendixes

          ________________________________________________________________
          Appendix A Item List Format and Contents

               A.1   Various Context Items.............................A-1

               A.2   Item Codes........................................A-2


          ________________________________________________________________
          Appendix B Sample Program

          ________________________________________________________________
          Appendix C Messages


          ________________________________________________________________
          Index

          ________________________________________________________________
          Examples

               1     ...................................................75.

               B-1   Sample BASIC Program..............................B-3








                                                                        ix

 







          ________________________________________________________________
          Tables

               1-1   Key Usage.........................................1-4

               A-1   Item Codes........................................A-2
































          x

 














                                                                   Preface
          ________________________________________________________________



             The routines described in this manual allow you to develop a
             new user interface for VAX Notes or to call VAX Notes from an
             application program.

          ____________________________________________________________

          Intended Audience

             This manual is intended for programmers who will be writing a
             user interface for VAX Notes, or using VAX Notes routines in
             other programs.

          ____________________________________________________________

          Document Structure

             This manual is divided into three parts. Part I consists of
             nine chapters, Part II is a dictionary of routines, and Part
             III consists of three appendixes.

             Chapter 1, Introduction, gives general information about the
             structure of the callable routines.




                                                                         v

 






             Chapters 2 through 8 provide reference information for the
             callable routines, as follows:

              o Chapter 2, Notefile Routines, describes the routines used
                to create and access notefiles. A notefile is either a
                conference or a Notebook.

              o Chapter 3, Class Routines, describes the routines used
                to access class definitions. A class is a named set of
                Notebook entries. An entry is a conference that has been
                entered in a user's Notebook.

              o Chapter 4, Entry Routines, describes the routines used to
                access entry definitions, which store information about
                conferences in users' Notebooks.

              o Chapter 5, Keyword Routines, describes the routines used
                to access keywords. Keywords are an aid to the quick
                retrieval of information from a conference.

              o Chapter 6, Note Routines, describes the routines used to
                access a note or set of notes once the notefile has been
                opened. A note is a single communication (either a topic
                or a reply) to a conference.

              o Chapter 7, Profile Routines, describes the routines used
                to access a user's individual information. The profile is
                part of a user's Notebook.

              o Chapter 8, User Routines, describes the routines used to
                access member information.

             Chapter 9, VAX Notes Network Protocol, describes the rules
             that govern the exchange of data between clients and servers.

             Part II, VAX Notes Routines Dictionary, provides reference
             information on the callable routines in alphabetic order.

             Appendix A, Item List Format and Contents, provides addi-
             tional reference information on VAX Notes item codes.

          vi

 






             Appendix B, Sample Program, shows and explains a sample
             program that uses the VAX Notes callable routines. The sample
             program is presented in the BASIC language.

             Appendix C, Messages, lists all error and other messages
             returned by VAX Notes.

          ____________________________________________________________

          Associated Documents

             You should have the Guide to VAX Notes (Order number AI-
             GH98B-TE) available for reference.

          ____________________________________________________________

          Conventions

             _____________________________________________________________
             Convention_______Meaning_____________________________________

              . ..            A horizontal ellipsis in a figure or example
                              indicates that not all of the statements are
                              shown.

             file-            A horizontal ellipsis following a parameter,
             spec, . ..       option, or value in syntax descriptions in-
                              dicates that additional parameters, options,
                              or values can be entered.

             [expression]     Square brackets indicate that the enclosed
                              item is optional. (Square brackets are not,
                              however, optional indicators in the syntax
                              of a directory name in a file specifica-
                              tion.)




                                                                       vii

 





             _____________________________________________________________
             Convention_______Meaning_____________________________________

             {option|option}  Braces in VAX Notes syntax enclose lists of
                              alternatives from which you must select one
             _________________item._______________________________________


































          viii

 












                                                                    Part I
                          VAX Notes Callable Routines and Network Protocol
          ________________________________________________________________

 

















                                                                      Chapter 1


                                                                   Introduction
               ________________________________________________________________


                  This chapter provides general information about the structure
                  of VAX Notes callable routines. A sample BASIC program in
                  Appendix B demonstrates the correct use of the callable
                  routines.

               ____________________________________________________________

               1.1  Callable High-Level User Interface

                  The NOTES$NOTES routine provides high-level callable ac-
                  cess to VAX Notes. If you want the entire interactive VAX
                  Notes utility, call the NOTES$NOTES routine. It invokes the
                  appropriate user interface based on the input device, and
                  processes commands from SYS$INPUT until it returns to the
                  calling program.

                  Before you can set up a call to NOTES$NOTES, you must de-
                  termine whether the call should be a procedure call or a
                  function call. Call NOTES$NOTES as a function if you want
                  it to return a condition value. Otherwise, if you are not
                  interested in the condition value, you can call NOTES$NOTES
                  as a procedure. You should generally call NOTES$NOTES as a
                  function because not checking the condition value can lead to
                  many undiscovered errors.








                                                              Introduction  1-1

 











                  The format for calling NOTES$NOTES as a function is

                        condition_value = NOTES$NOTES ([arg1])

                  The format for calling NOTES$NOTES as a procedure is

                        CALL NOTES$NOTES ([arg1])

                  where arg1 is the address of a VMS string descriptor of the
                  VAX Notes DCL command line with which to start up VAX Notes.

                  The argument you supply in the call to NOTES$NOTES must have
                  these attributes:

                  _____________________________________________________________
                  Attribute_Value_________Description__________________________

                  VMS       char_string   VMS data structure; string of from 0
                  Usage:                  to 65,535 8-bit characters

                  Type:     character     VMS data type; symbolic code DSC$K_
                            string        DTYPE_T

                  Access:   read only     Data must be read as input by
                                          NOTES$NOTES and not modified

                  Mechanism:by reference  Address of data is passed to
                  ________________________NOTES$NOTES__________________________

                  If you do not supply an argument, no special processing will
                  be done and VAX Notes will start up in the default Notebook
                  class, as if the command were $ NOTES.

                  You declare the NOTES$NOTES routine in your program as you
                  would declare any other external routine. The declaration
                  statement will vary depending on whether you are calling
                  NOTES$NOTES as a procedure or function. Refer to your lan-
                  guage reference manual or handbook for details.

                  Because of the variety of condition values that can be re-
                  turned by NOTES$NOTES, you should check for success or fail-
                  ure only. You can check for an odd number, since all success
                  values are odd. If the condition value returned is not a suc-
                  cess condition, then the routine did not complete normally
                  and the information it was supposed to return may be missing,
                  incomplete, or incorrect.

               1-2  Introduction

 











                  You must create a command procedure for linking as follows:

                    $ LINK yourfile, SYS$INPUT:/OPTIONS
                      SYS$LIBRARY:NOTES$SHARE/SHARE
                    $ EXIT

               ____________________________________________________________

               1.2  Notefile Format

                  The VAX Notes notefile format provides good performance and
                  extensibility. The same format is used for conferences and
                  Notebooks.

                  Your access to the notefile is through the VAX Notes callable
                  routines, which can provide any and all information in a
                  notefile. Knowledge of the complete notefile format is there-
                  fore unnecessary, and it is not documented.

                  The data portion of the records is encoded using Type Length
                  Values (TLVs). Thus, considerable latitude is allowed for
                  future extensions. (See Chapter 9 for an explanation of TLV
                  code.)

               ____________________________________________________________

               1.2.1  Use of Keys in Records

                  Notefiles are implemented as VAX Record Management Services
                  (VAX RMS) indexed files with three keys:

                   o A binary key for unique identifiers (UIDs)

                   o A binary key for topic.reply (t.r)

                   o A string key (64 bytes)

                  There are several kinds of records (described in Section 1.2.2),
                  and each makes its own use of the key fields, as indicated
                  in Table 1-1. All record types have the UID key (which is
                  the primary key for the VAX RMS file), while only some record
                  types use the topic.reply (t.r) key or the string key. For
                  the UID key, the type of access (direct access only or direct
                  and sequential access) is also indicated.

                                                              Introduction  1-3

 











                  Table 1-1:  Key Usage
                  _____________________________________________________________
                  Record_Type_____UID_____________T.R___________String_Key_____

                  Conference      Direct          0             0
                  headers

                  Member          Direct          0             User name

                  Access          Direct          0             Node name

                  Note header     Direct and      T.R           0
                                  sequential

                  Note text       Direct and      T.R           0
                                  sequential

                  Keyword         Direct          0             Keyword

                  Entry           Direct          0             Entry name

                  Class of        Direct          0             Class name
                  conferences

                  Profile_________Direct__________0_____________0______________

                  String keys are prefixed with a byte to indicate the record
                  type. For instance, the user-name string key for members
                  may be prefixed with a 1, keywords with a 2, and so forth.
                  The prefix allows VAX Notes to use VAX RMS to easily read
                  through all member records, in alphabetical order, without
                  also reading keyword and other records.

                  UID Key Layout

                  UIDs in the notefile are allocated from two pools of avail-
                  able UIDs. One pool provides sequentially increasing UIDs for
                  note header records, while the other provides UIDs for all
                  other record types. Having two pools of UIDs makes the map of
                  seen/unseen notes more succinct, by collapsing ranges of con-
                  secutive note UIDs, and improves performance by segregating
                  the note headers from the other record types.



               1-4  Introduction

 











                  The 32-bit UIDs have the following format:

                         00yy yyyy yyyy yyyy yyyy yyyy yyyy yyyy  Miscellaneous records
                         01zz zzzz wwww wwww wwww wwww wwww wwww  Reserved (z not equal to 0)
                         0100 0000 xxxx xxxx xxxx xxxx xxxx xxxx  Note header record
                         1xxx xxxx xxxx xxxx xxxx xxxx xsss ssss  Note text record

                  The high bit is on for note text records, which also have 24
                  bits of UID, and 7 low bits to indicate a note text record
                  number (recall that each VAX RMS record is 2K bytes, and
                  can hold several text records). If the note exceeds 128 note
                  text records (that is, more than 256K bytes), another UID is
                  allocated for the continuation. The high bit is off for all
                  other records.

               ____________________________________________________________

               1.2.2  Record Types

                  There are a number of record types, as follows:

                  Conference Header Records

                  Conference header records contain information that applies to
                  the entire notefile. Each notefile has two conference header
                  records. One conference header record stores the values of
                  the highest used UID number and highest used note number, and
                  is used to sequentially allocate new UIDs and note numbers.
                  In addition, this conference header record stores various
                  structural attributes, such as a notefile format number,
                  whether this conference is open or closed, whether anyone
                  can create keywords, and so on. The other conference header
                  record holds more "visible" information, such as the notefile
                  title, notice of the day, and moderator name.

                  Member Records

                  Member records authorize users to participate in a private
                  conference. The moderator must give the user authorization to
                  join the private conference. Each record has a unique member
                  name (without a node name) as the string key, and contains
                  a list of the member's node::user-names. These records also
                  indicate privileges such as whether the member can create new
                  keywords or moderate the conference, and thus are used for
                  public conferences as well as private.

                                                              Introduction  1-5

 











                  Access Records

                  An access record has a node name as the string key and con-
                  tains a list of the user names on that node that are members
                  of the conference. Each user name entry points to the member-
                  ship record for that member.

                  Note Header Records

                  A note header record provides all the structural information
                  about the note. It contains everything except the note text;
                  that is, the author name, title, creation date/time, number
                  of replies, list of keywords, whether replies can be written,
                  and whether the note is hidden. The UID of the first note
                  text record for this note is calculated as a simple function
                  of the UID for the note header record, as is explained in
                  Section 1.2.1.

                  Note Text Records

                  Note text records contain the body of a note. The text is
                  stored as a constructor TLV, containing an ordered collection
                  of text TLVs for the lines of text in the note, with TLVs
                  allowed to cross record boundaries. Each note text record
                  also contains the t.r number.

                  Keyword Records

                  A keyword record contains the keyword and a list of the notes
                  to which the keyword refers. For each note in the list,
                  the topic.reply (t.r) number and the note UID are stored
                  in the keyword record, and that note is marked as having this
                  keyword.

                  The keyword-record mechanism also supports markers. Markers
                  are created by an individual for his or her use only, and
                  are stored in the user's Notebook; a marker refers to a
                  single note in any conference, not necessarily the current
                  conference. If the keyword-record mechanism is used for a
                  marker instead of a keyword, the reference includes the entry
                  name for the conference as well as the t.r number and the
                  note UID.



               1-6  Introduction

 











                  Entry Records

                  Entry records store entries in a user's Notebook. The infor-
                  mation stored includes the following:

                   o The entry name

                   o The file specification

                   o The highest note UID number entered in the notefile

                   o The last revision date

                   o The seen/unseen map

                   o The classes of conferences to which this entry belongs

                   o The total number of notes

                   o The moderator name

                   o The Distributed Name Service (DNS) object name, if any

                  Most entry records also contain a user-defined field.

                  Class of Conferences Records

                  A class record groups several entries into a single class;
                  it contains the class name and a list of the entry names
                  belonging to the class.

                  Profile Records

                  A profile record is stored in each user's personal Notebook.
                  A profile record stores and maintains the following informa-
                  tion:

                   o The user's editor of choice and access

                   o The default conference class

                   o The user's personal name, if any

                   o Any PRINT qualifiers

                   o Whether a directory of notes or the first unseen note, or
                     neither, is displayed when a conference is opened

                   o Whether the profile settings are temporary

                                                              Introduction  1-7

 










               ____________________________________________________________

               1.3  The Seen/Unseen Map

                  VAX Notes maintains a seen/unseen map to determine which
                  topics and replies have been read by a particular user. This
                  map describes ranges of notes that have been seen. Thus, to
                  determine the next unseen note, you need only consult the
                  seen/unseen map.

                  The seen/unseen map consists of two sections. The first
                  section is a list of ranges of unique note-IDs, describing
                  the notes that have been seen by the user. These ranges are
                  described by a pair of longwords, denoting the low and high
                  unique note-IDs for the range.

                  The second section of the map describes ranges of notes
                  in t.r format. For instance, 2.3-2.8 describes the range
                  of replies from reply 3 to reply 8 of topic 2. As the
                  NOTES$NOTE_GET routine retrieves notes described in this
                  section of the map, it can remove the note from this section
                  and add the unique note-ID to the first section of the map.

                  The purpose of the second section of the map is to optimize
                  performance during the setting of notes as seen.

               ____________________________________________________________

               1.4  Callable Routines

                  Several different levels of callable routines are provided.
                  High-level routines call VAX Notes as a complete user inter-
                  face. Low-level routines provide complete access to the VAX
                  Notes database, allowing the construction of a variety of
                  user interfaces. The callable routines are all synchronous.

                  VAX Notes uses many of the same file access routines for both
                  conferences and Notebooks, although, to a user, conferences
                  and Notebooks appear as distinct kinds of files. This avoids
                  having duplication of code, since many of the conference and
                  Notebook features can be performed with the same functions.

                                               NOTE

                      The routines transparently access remote conferences
                      by DECnet without additional work on the user's part.

               1-8  Introduction

 










               ____________________________________________________________

               1.4.1  Calling Sequence

                  The VAX Notes routines all have the same calling sequence.
                  The calling sequence has the following form:

                        STATUS = NOTES$ROUTINE ( CONTEXT, INP-ITEM-LIST, OUT-
               ITEM-LIST )

                  In the previous statement:

                   o STATUS is an unsigned longword status code returned by the
                     routine.

                   o NOTES$ROUTINE is the name of the VAX Notes routine.

                   o CONTEXT is the address of an unsigned longword.

                     The context longword stores needed information between
                     calls to the VAX Notes routines. To initialize the con-
                     text, the longword should be zeroed and passed to the
                     NOTES$xxx_BEGIN routine; this routine stores some context
                     information (a nonzero value) in the longword, and this
                     context can then be passed to other VAX Notes routines.
                     When the information is no longer needed, NOTES$xxx_END
                     can be called to delete the context, release resources
                     associated with the context information, and reset the
                     context longword to zero.

                   o INP-ITEM-LIST is the address of an item list. (See Part II
                     for a description of the format of item lists.)

                     The input item list and the context longword provide all
                     the inputs needed by the called routine.

                   o OUT-ITEM-LIST is the address of an item list into which
                     the routine writes its results or the requested informa-
                     tion.

                  Item lists use an item code of 0 to terminate the item list,
                  -1 (NOTES$K_CHAIN) to indicate chaining to another item list,
                  and -2 (NOTES$K_NOOP) to indicate a no-operation (ignored)
                  item code.

                  Items that turn some attribute on or off (such as NOTES$K_
                  USER_MODERATE) with the values 0 or 1 can also take the value
                  -1, to indicate that the attribute should remain unchanged.
                  This value is passed in the longword to which the item code
                  ITM$L_BUFADR field of the item list points.

                                                              Introduction  1-9

 











                  See Appendix A for a complete description of the item list
                  contents.

               ____________________________________________________________

               1.4.2  Error Reporting by the Callable Routines

                  The callable VAX Notes routines signal errors by default;
                  the NOTES$K_NOSIGNAL item code can be specified on the rou-
                  tine calls to override the default signaling mechanism, and
                  instead return an error status.

                  The only status codes that are never signaled, but only
                  returned, are NOTES$_NORMAL, NOTES$_MORE_INFO, and NOTES$_NO_
                  MORE_xxx.

                  The VAX Notes routines signal a fatal (F-level) diagnostic
                  for errors that normally terminate the image. For example,
                  access violations, corrupted in-memory data structures, and
                  some programming errors signal a fatal error. Note that F-
                  level diagnostics are signaled regardless of whether the
                  NOTES$K_NOSIGNAL item code was specified.

                  The VAX Notes routines signal an error (E-level) diagnos-
                  tic for most errors. E-level diagnostics indicate that the
                  requested operation cannot be completed. VAX Notes reports
                  E-level diagnostics by signaling (unless NOTES$K_NOSIGNAL was
                  specified), and then returning that E-level status code to
                  the caller.

                  A warning (W-level) diagnostic indicates that the operation
                  may not yield completely correct results, and should be
                  reported to the user.

                  Informational (I-level) messages contain parenthetical infor-
                  mation.

                  After signaling a W-level or I-level diagnostic, the VAX
                  Notes routine continues processing. When it eventually re-
                  turns to the caller, the return status is the same as the
                  worst diagnostic signaled.

                  Note that while VAX Notes has W-level status codes (NOTES$_
                  NO_MORE_xxx), these are not signaled by VAX Notes.

               1-10  Introduction

 










               ____________________________________________________________

               1.4.3  Continuable Operations

                  Many of the operations are continuable (in particular, the
                  NOTES$xxx_GET, NOTES$xxx_GET_yyy, and the NOTES$NOTE_ADD_TEXT
                  routines). A continuable operation returns a success status,
                  and further information is available (or can be specified in
                  the case of NOTES$NOTE_ADD_TEXT) by calling the same routine
                  again (with the same context) and specifiying the NOTES$K_
                  CONTINUE item code in the input item list.

                  The NOTES$K_CONTINUE item code causes the routine to ignore
                  all other item codes (except NOTES$K_NOSIGNAL), and either
                  returns more information, or just returns a warning status to
                  indicate no more information (for example, NOTES$_NO_MORE_
                  TEXT).

                  When a stream of information is available, it remains avail-
                  able until, or unless, the end of the information is reached,
                  or a different request is made with the same context.

               ____________________________________________________________

               1.4.4  Passing Context Information

                  The following diagram shows the relationship between the
                  routines and the context information passed between them.

                  The diagram includes some of the note, keyword, and user
                  routines. The relationships shown, however, apply in general
                  to all routines.

                  Each box in the diagram represents the following informa-
                  tion:[1]







               ___________________
             [1] The diagram shows only the context item in each case.  A call

                 would include additional input items and output items.

                                                             Introduction  1-11

 











                                  +----------+
                                  | routine  |[ context parameter ]
                                  | name     |[ input item list   ]
                                  |          |[ output item list  ]
                                  +----------+


                  The following abbreviations are used in the diagram:

                  F   Notefile context

                  N   Note context

                  K   Keyword context

                  U   User context





























               1-12  Introduction

 











                                                       +----------+
                 1                                     | NOTEFILE |[ F ]
                                 --------------------  | BEGIN    |[   ]  ---------
                                 |                     |          |[   ]          |
                                 |                     +----------+               |
                                 |                             |                  |
                                 |                             |                  |
                                 V                             V                  V
                            +----------+                  +----------+        +----------+
                            | NOTE     |[ N ]             | KEYWORD  |[ K ]   | USER     |[ U ]
                 2          | BEGIN    |[ F ]             | BEGIN    |[ F ]   | BEGIN    |[ F ]   ...
                            |          |[   ]             |          |[   ]   |          |[   ]
                            +----------+                  +----------+        +----------+
                                 |                             |                   |
                                 V                             V                   V
                            +----------+                  +----------+        +----------+
                            | NOTE     |[ N ]             | KEYWORD  |[ K ]   | USER     |[ U ]
                 3          | GET      |[   ]             | GET      |[   ]   | GET      |[   ]
                            |          |[   ]             |          |[   ]   |          |[   ]
                            +----------+                  +----------+        +----------+
                            |          |                        |                  |
                            V          V                        V                  |
                  +----------+        +----------+        +----------+             |
                  | NOTE     |[ N ]   | NOTE     |[ N ]   | KEYWORD  |[ K ]        |
                 4| GET      |[   ]   | GET      |[   ]   | GET      |[   ]        |
                  | TEXT     |[   ]   | KEYWORD  |[   ]   | NOTE     |[   ]        |
                  +----------+        +----------+        +----------+             |
                            |          |                       |                   |
                            |          |                       |                   |
                            V          V                       V                   V
                            +----------+                  +----------+        +----------+
                            | NOTE     |[ N ]             | KEYWORD  |[ K ]   | USER     |[ U ]
                 5          | END      |[   ]             | END      |[   ]   | END      |[   ]
                            |          |[   ]             |          |[   ]   |          |[   ]
                            +----------+                  +----------+        +----------+
                                 |                         |                       |
                                 |                         |                       |
                                 |                         V                       |
                                 |              +----------+                       |
                                 --------->     |NOTEFILE  |[ F ]    <--------------
                                                |END       |[   ]
                 6                              |          |[   ]
                                                +----------+


                                                             Introduction  1-13

 













                   1 The notefile context (F) is created by a call to
                     NOTES$NOTEFILE_BEGIN.

                   2 This context must be passed (in the input item list) to
                     NOTES$NOTE_BEGIN, which creates a note context (N), for
                     note-level access to information in the notefile.

                   3 Then NOTES$NOTE_GET can be called to get a range (for
                     example, a sequence or stream) of notes. An initial call
                     is made to NOTES$NOTE_GET to specify the range of notes
                     to get; this sets up the stream, and returns information
                     about the first note in the stream (for example, the name
                     of its author).

                   4 Calls to NOTES$NOTE_GET_TEXT can now be made. These calls
                     return text records for this note (or return the status
                     NOTES$_NO_MORE_TEXT). Then another call to NOTES$NOTE_GET
                     (with NOTES$K_CONTINUE) returns information about the next
                     note in the stream. This can continue until NOTES$NOTE_GET
                     returns the status NOTES$_NO_MORE_NOTES, or until that
                     same note context is used to request a new range of notes.
                     Calls to NOTES$NOTE_GET_KEYWORD can be made in the same
                     way; and they can be made simultaneously with calls to
                     NOTES$NOTE_GET_TEXT.

                   5 NOTES$NOTE_END is called next, by NOTES$NOTE_GET_TEXT or
                     NOTES$NOTE_GET_KEYWORD.

                   6 NOTES$NOTEFILE_END is the final call in this or any other
                     sequence of calls.

                  Similarly, NOTES$NOTEFILE_BEGIN passes the notefile context
                  to NOTES$KEYWORD_BEGIN, which creates a keyword context;
                  NOTES$KEYWORD_GET can return a stream of keyword information
                  (in response, for example, to "Notes> DIR/KEYWORD=FAR*"),
                  and NOTES$KEYWORD_GET_NOTE can return the sequence of notes
                  having that keyword.

                  The third path shown in the diagram proceeds from NOTES$NOTEFILE_
                  BEGIN through the user routines. The ellipses in the diagram
                  represent the other categories of routines (class, entry,
                  notefile, and profile), which work in a similar way.

                  Note that any of the calling paths can be occurring simulta-
                  neously, and any of them can be repeated simultaneously.

               1-14  Introduction

 











                  The sample BASIC program presented in Appendix B shows how to
                  order calls correctly to VAX Notes routines in an application
                  program.










































                                                             Introduction  1-15

 

















                                                                      Chapter 2


                                                              Notefile Routines
               ________________________________________________________________


                  This chapter describes the routines used to create and access
                  notefiles.

                  The item codes allowed in an output item list (OUT-ITEM-LIST)
                  are described first, because this list is common to most of
                  the routines in this chapter.

                  Each notefile routine is described in a separate section with
                  its own list of allowed input item codes (INP-ITEM-LIST).

                  The following abbreviations are used in the list of input
                  item codes:

                  R   Required  This item code must be specified in the call.

                  O   Optional  This item code may be specified in the call.

                  S   Selection This item code specifies which class, entry,
                                keyword, or note is being referenced by the
                                call.

                  Output Item Codes

                  The following item codes can be specified in an OUT-ITEM-LIST
                  for the NOTES$NOTEFILE_xxx calls.

                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_ENTRY_OBJECT_SPEC    File specification string to
                                               which the DNS object name was
                                               translated

                                                         Notefile Routines  2-1

 










                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_NOTEFILE_CREATE_     Quadword date/time of the note-
                  TIME                         file creation

                  NOTES$K_NOTEFILE_ENTRYTOTAL  Total number of topics and
                                               replies

                  NOTES$K_NOTEFILE_FORMAT      Longword indicating the notefile
                                               format

                  NOTES$K_NOTEFILE_HIGH_UID    Longword of highest used note
                                               UID

                  NOTES$K_NOTEFILE_LASTREV     Quadword date/time of the last
                                               revision

                  NOTES$K_NOTEFILE_MODERATOR   Moderator name string

                  NOTES$K_NOTEFILE_NOTICE      Notice string

                  NOTES$K_NOTEFILE_NUMNOTES    Longword note number of the last
                                               topic

                  NOTES$K_NOTEFILE_REPLY_ONLY  Conference in which only autho-
                                               rized users may enter topics,
                                               indicated by 1

                  NOTES$K_NOTEFILE_RESTRICTED  Private conference, in which
                                               only authorized users may par-
                                               ticipate, indicated by 1

                  NOTES$K_NOTEFILE_RESULT_     Resultant file specification
                  SPEC                         string

                  NOTES$K_NOTEFILE_TITLE       Title string

                  NOTES$K_NOTEFILE_USER_AREA   String of user-programmable data

                  NOTES$K_NOTEFILE_WRITELOCK   Notefile writelocked against new
                                               notes, indicated by 1




               2-2  Notefile Routines

 










                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_SEEN_MAP             String indicating which notes
                                               have been seen

                  NOTES$K_SERVER_MAX_ITEM      Longword value of the high-
                                               est item code that the server
                                               supports

                  NOTES$K_USER_CREATE_KEYWORD  Conference in which any user may
                                               create keywords, indicated by 1

                  NOTES$K_USER_MODERATE        Conference in which any user may
                  _____________________________moderate,_indicated_by_1________


               ____________________________________________________________

               2.1  NOTES$NOTEFILE_BEGIN

                  Initiates access to a notefile. This routine creates the
                  notefile if so directed, and opens the file for access by
                  other routines. It creates and initializes the notefile
                  context for later calls to NOTES$NOTEFILE_xxx routines.

                  Input Item Codes

                  O   NOTES$K_ENTRY_OBJECT_NAME    DNS object name string for
                                                   the entry

                  O   NOTES$K_NOSIGNAL             Return on errors; do not
                                                   signal

                  O   NOTES$K_NOTEFILE_CREATE      Create the notefile

                  O   NOTES$K_NOTEFILE_DEFAULT_    Default file specification
                      NAME                         string

                  R   NOTES$K_NOTEFILE_FILE_NAME   File name string

                  O   NOTES$K_NOTEFILE_MODERATE    Moderator privilege turned
                                                   on = 1, turned off = 0



                                                         Notefile Routines  2-3

 












                  O   NOTES$K_NOTEFILE_MODERATOR   Moderator name string

                  O   NOTES$K_NOTEFILE_RELATED_    Related file specification
                      NAME                         string

                  O   NOTES$K_NOTEFILE_REPLY_ONLY  Conference in which only
                                                   authorized users may enter
                                                   topics, indicated by 1

                  O   NOTES$K_SEEN_MAP             String indicating which
                                                   notes have been seen

                  O   NOTES$K_USER_CREATE_KEYWORD  Any user can create key-
                                                   words, indicated by 1

                  The following item codes are allowed as input items when
                  NOTES$K_NOTEFILE_CREATE is passed to the NOTES$NOTEFILE_BEGIN
                  routine.

                  O   NOTES$K_NOTEFILE_NOTICE      Notice string

                  O   NOTES$K_NOTEFILE_RESTRICTED  Private conference, in which
                                                   only authorized users can
                                                   participate, indicated by 1

                  O   NOTES$K_NOTEFILE_TITLE       Title string

                  O   NOTES$K_NOTEFILE_USER_AREA   String of user programmable
                                                   data

                  O   NOTES$K_NOTEFILE_WRITELOCK   Notefile writelocked against
                                                   new notes, indicated by 1

                  O   NOTES$K_USER_MODERATE        Used in creating a Notebook,
                                                   indicated by 1









               2-4  Notefile Routines

 










               ____________________________________________________________

               2.2  NOTES$NOTEFILE_END

                  Deletes or deallocates notefile context. This routine is
                  used to terminate access to a notefile. All dynamic memory
                  allocated by the NOTES$ routines when accessing the notefile
                  (including CLASS, ENTRY, KEYWORD, PROFILE, and USER access)
                  is deallocated.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               2.3  NOTES$NOTEFILE_GET_INFO

                  Obtains information about the notefile.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               2.4  NOTES$NOTEFILE_MODIFY

                  Updates or changes notefile-level information, such as the
                  title, notice of the day, and moderator.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL             Return on errors; do not
                                                   signal

                  O   NOTES$K_NOTE_BEFORE_TIME     Mark all notes before speci-
                                                   fied date-time as seen

                  O   NOTES$K_NOTE_MARK_SEEN       Mark all notes as seen

                  O   NOTES$K_NOTE_SINCE_TIME      Mark all notes after speci-
                                                   fied date-time as seen



                                                         Notefile Routines  2-5

 












                  O   NOTES$K_NOTEFILE_MODERATE    Moderator privilege turned
                                                   on = 1, turned off = 0

                  O   NOTES$K_NOTEFILE_MODERATOR   Moderator name string

                  O   NOTES$K_NOTEFILE_NOTICE      Notice string

                  O   NOTES$K_NOTEFILE_REPLY_ONLY  Conference in which only
                                                   authorized users may enter
                                                   topics, indicated by 1

                  O   NOTES$K_NOTEFILE_RESTRICTED  Only authorized users may
                                                   participate, indicated by 1

                  O   NOTES$K_NOTEFILE_TITLE       Title string

                  O   NOTES$K_NOTEFILE_USER_AREA   String of user-programmable
                                                   data

                  O   NOTES$K_NOTEFILE_WRITELOCK   Notefile writelocked against
                                                   new notes, indicated by 1

                  O   NOTES$K_SEEN_MAP             String indicating which
                                                   notes have been seen

                  O   NOTES$K_USER_CREATE_KEYWORD  Any user may create key-
                                                   words, indicated by 1

               ____________________________________________________________

               2.5  NOTES$NOTEFILE_LIST_BEGIN

                  Initiates the process of collecting notefile names, for a di-
                  rectory listing of conferences. You call the NOTES$NOTEFILE_
                  LIST_BEGIN routine with the file specification, default
                  file specification, and related file specification. It
                  performs the initialization. After a successful call to
                  NOTES$NOTEFILE_LIST_BEGIN you call NOTES$NOTEFILE_LIST until
                  the status NOTES$_NMF is returned.





               2-6  Notefile Routines

 











                  For server performance considerations, in the output item
                  list for the NOTES$NOTEFILE_LIST_BEGIN routine you must
                  specify all the items that you specify in the call to
                  NOTES$NOTEFILE_LIST. However, the items are not returned
                  on the call to the NOTES$NOTEFILE_LIST_BEGIN routine.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  O   NOTES$K_NOTEFILE_     Default notefile name string
                      DEFAULT_NAME

                  R   NOTES$K_NOTEFILE_     File name string
                      FILE_NAME

                  O   NOTES$K_NOTEFILE_     Related notefile name string
                      RELATED_NAME

               ____________________________________________________________

               2.6  NOTES$NOTEFILE_LIST

                  Collects information on a selected group of notefiles. The
                  NOTES$NOTEFILE_LIST_BEGIN routine must be called before
                  the NOTES$NOTEFILE_LIST routine. You specify the filenames
                  in the NOTES$NOTEFILE_LIST_BEGIN routine, and collect the
                  information on successive calls to NOTES$NOTEFILE_LIST until
                  the status NOTES$_NMF is returned.

                  Any output item codes specified in the call to the NOTES$NOTEFILE_
                  LIST routine must also be specified in the call to the
                  NOTES$NOTEFILE_LIST_BEGIN routine for correct operation on
                  remote conference directories.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal







                                                         Notefile Routines  2-7

 

















                                                                      Chapter 3


                                                                 Class Routines
               ________________________________________________________________


                  This chapter describes the routines used to access class
                  definitions. A class is a named set of Notebook entries
                  (conferences entered in a user's Notebook).

                  The item codes allowed in an output item list (OUT-ITEM-LIST)
                  are described first, because this list is common to most of
                  the routines in this chapter.

                  Each notefile routine is described in a separate section with
                  its own list of allowed input item codes (INP-ITEM-LIST).

                  The following abbreviations are used in the list of input
                  item codes:

                  R   Required  This item code must be specified in the call.

                  O   Optional  This item code may be specified in the call.

                  S   Selection This item code specifies which class, entry,
                                keyword, or note is being referenced by the
                                call.

                  Output Item Codes

                  The following item code can be specified in the OUT-ITEM-LIST
                  for the NOTES$CLASS_xxx calls.

                  _____________________________________________________________
                  Item_Code___________Description______________________________

                  NOTES$K_CLASS_NAME  Class name string

                                                            Class Routines  3-1

 










                  _____________________________________________________________
                  Item_Code___________Description______________________________

                  NOTES$K_CLASS_      String of user-programmable data
                  USER_AREA____________________________________________________

                  The following item code can be specified in the OUT-ITEM-LIST
                  for the NOTES$CLASS_GET_ENTRY calls.

                  _____________________________________________________________
                  Item_Code___________Description______________________________

                  NOTES$K_ENTRY_NAME__Entry_name_string________________________

               ____________________________________________________________

               3.1  NOTES$CLASS_BEGIN

                  Creates and initializes class context for later calls to
                  NOTES$CLASS_xxx routines.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  R   NOTES$K_NOTEFILE_     Context longword for notefile
                      CONTEXT

               ____________________________________________________________

               3.2  NOTES$CLASS_END

                  Deletes or deallocates class context.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               3.3  NOTES$CLASS_ADD

                  Creates a class record if the entry_name is missing. If the
                  entry_name is specified, adds that entry to the class.


               3-2  Class Routines

 











                  Input Item Codes

                  S,R NOTES$K_CLASS_NAME    Class name string

                  O   NOTES$K_CLASS_USER_   String of user-programmable data
                      AREA

                  O   NOTES$K_ENTRY_NAME    Entry name string

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               3.4  NOTES$CLASS_DELETE

                  Deletes the class record if the entry_name is missing. If the
                  entry_name is specified, deletes that entry from the class.

                  Input Item Codes

                  S,R NOTES$K_CLASS_NAME    Class name string

                  O   NOTES$K_DELIF0        Delete class if empty, indicated by
                                            1

                  O   NOTES$K_ENTRY_NAME    Entry name string

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               3.5  NOTES$CLASS_GET

                  Gets information about a class or, if NOTES$K_CONTINUE was
                  specified, the next class.

                  Input Item Codes

                  O   NOTES$K_CLASS_HINT_   For remote Notebooks, "hint" that
                      GET_ENTRY             entries for the class will be
                                            coming




                                                            Class Routines  3-3

 












                  S,R NOTES$K_CLASS_NAME    Class name string (allows wild-
                                            cards)

                  O   NOTES$K_CONTINUE      Keep returning information

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               3.6  NOTES$CLASS_GET_ENTRY

                  Gets information about entries belonging to a class (the
                  class specified by the most recent NOTES$CLASS_GET call for
                  this context).

                  Input Item Codes

                  O   NOTES$K_CONTINUE      Keep returning information

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               3.7  NOTES$CLASS_MODIFY

                  Modifies information stored for a class.

                  Input Item Codes

                  S,R NOTES$K_CLASS_NAME    Class name string

                  O   NOTES$K_CLASS_NEW_    New class name string (rename)
                      NAME

                  O   NOTES$K_CLASS_USER_   String of user-programmable data
                      AREA

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal






               3-4  Class Routines

 

















                                                                      Chapter 4


                                                                 Entry Routines
               ________________________________________________________________


                  This chapter describes the routines used to access entry
                  definitions. Entries are used to store information about
                  notefiles.

                  The item codes allowed in an output item list (OUT-ITEM-LIST)
                  are described first, because this list is common to most of
                  the routines in this chapter.

                  Each notefile routine is described in a separate section with
                  its own list of allowed input item codes (INP-ITEM-LIST).

                  The following abbreviations are used in the list of input
                  item codes:

                  R   Required  This item code must be specified in the call.

                  O   Optional  This item code may be specified in the call.

                  S   Selection This item code specifies which class, entry,
                                keyword, or note is being referenced by the
                                call.

                  Output Item Codes

                  The following item codes may be specified in the OUT-ITEM-
                  LIST for the NOTES$ENTRY_xxx calls.






                                                            Entry Routines  4-1

 










                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_ENTRY_LAST_STATUS    Longword value of the last
                                               update for the entry (update
                                               status longword)

                  NOTES$K_ENTRY_NAME           Entry name string

                  NOTES$K_ENTRY_OBJECT_NAME    DNS object name string for the
                                               entry

                  NOTES$K_ENTRY_UNSEEN_EST     Longword number of unseen notes

                  NOTES$K_ENTRY_USER_AREA      String of user-programmable data

                  NOTES$K_NOTEFILE_DEFAULT_    Default notefile name string
                  NAME

                  NOTES$K_NOTEFILE_ENTRYTOTAL  Longword number of notes in the
                                               entry

                  NOTES$K_NOTEFILE_FILE_NAME   File name string

                  NOTES$K_NOTEFILE_HIGH_UID    Longword of highest used note
                                               UID

                  NOTES$K_NOTEFILE_LASTREV     Quadword date/time that the
                                               notefile was last revised

                  NOTES$K_NOTEFILE_MODERATOR   Moderator name string

                  NOTES$K_NOTEFILE_NOTICE      Notice string

                  NOTES$K_NOTEFILE_NUMNOTES    Longword note number of the last
                                               topic

                  NOTES$K_NOTEFILE_RELATED_    Related notefile name string
                  NAME

                  NOTES$K_NOTEFILE_TITLE       Title string





               4-2  Entry Routines

 










                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_SEEN_MAP             String indicating which notes
                  _____________________________have_been_seen__________________

                  The following item code is specified in the OUT-ITEM-LIST for
                  the NOTES$ENTRY_GET_CLASS call.

                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_CLASS_NAME___________Class_name_string_______________

                  The following item code is specified in the OUT-ITEM-LIST for
                  the NOTES$ENTRY_GET_KEYWORD call.

                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_KEYWORD_NAME_________Keyword_name_string_____________

               ____________________________________________________________

               4.1  NOTES$ENTRY_BEGIN

                  Creates and initializes entry context for later calls to
                  NOTES$ENTRY_xxx routines.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  R   NOTES$K_NOTEFILE_     Context longword for notefile
                      CONTEXT

               ____________________________________________________________

               4.2  NOTES$ENTRY_END

                  Deletes or deallocates entry context.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                                                            Entry Routines  4-3

 










               ____________________________________________________________

               4.3  NOTES$ENTRY_ADD

                  Adds an entry to the specified class.

                  Input Item Codes

                  O     NOTES$K_CLASS_NAME           Class name string

                  O     NOTES$K_ENTRY_LAST_STATUS    Longword value of the
                                                     last update for the entry
                                                     (update status longword)

                  S,R   NOTES$K_ENTRY_NAME           Entry name string

                  O     NOTES$K_ENTRY_OBJECT_NAME    DNS object name string for
                                                     the entry

                  O     NOTES$K_ENTRY_USER_AREA      String of user-programmable
                                                     data

                  O     NOTES$K_NOSIGNAL             Return on errors; do not
                                                     signal

                  O     NOTES$K_NOTE_BEFORE_TIME     Mark notes before this
                                                     time as seen

                  O     NOTES$K_NOTE_SINCE_TIME      Mark notes after this time
                                                     as seen

                  O     NOTES$K_NOTEFILE_DEFAULT_    Default notefile name
                        NAME                         string

                  O     NOTES$K_NOTEFILE_ENTRYTOTAL  Longword number of notes
                                                     in the entry

                  R     NOTES$K_NOTEFILE_FILE_NAME   File name string

                  O     NOTES$K_NOTEFILE_HIGH_UID    Longword of highest used
                                                     note UID





               4-4  Entry Routines

 












                  O     NOTES$K_NOTEFILE_LASTREV     Quadword date/time that
                                                     the notefile was last
                                                     revised

                  O     NOTES$K_NOTEFILE_MODERATOR   Moderator name string

                  O     NOTES$K_NOTEFILE_NOTICE      Notice string

                  O     NOTES$K_NOTEFILE_NUMNOTES    Longword note number of
                                                     the last topic

                  O     NOTES$K_NOTEFILE_RELATED_    Related notefile name
                        NAME                         string

                  O     NOTES$K_NOTEFILE_TITLE       Title string

                  O     NOTES$K_SEEN_MAP             String indicating which
                                                     notes have been seen

               ____________________________________________________________

               4.4  NOTES$ENTRY_DELETE

                  Deletes the entry record.

                  Input Item Codes

                  O     NOTES$K_CLASS_NAME    Class name string

                  O     NOTES$K_DELIF0        Delete class if empty, indicated
                                              by 1

                  S,R   NOTES$K_ENTRY_NAME    Entry name string

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               4.5  NOTES$ENTRY_GET

                  Gets the information from the entry record.



                                                            Entry Routines  4-5

 











                  Input Item Codes

                  O     NOTES$K_CLASS_NAME    Class name string

                  O     NOTES$K_CONTINUE      Keep returning information

                  O     NOTES$K_ENTRY_HINT_   Value of 1 indicates that a
                        GET_CLASS             NOTES$ENTRY_GET_CLASS will be
                                              performed next (to improve server
                                              performance). This item code must
                                              be specified if a NOTES$ENTRY_
                                              GET_CLASS will be done next;
                                              otherwise, the NOTES$ENTRY_GET_
                                              CLASS will not work correctly for
                                              remote notefiles

                  O     NOTES$K_ENTRY_HINT_   Value of 1 indicates that a
                        GET_KEYWORD           NOTES$ENTRY_GET_CLASS will be
                                              performed next (to improve server
                                              performance). This item code must
                                              be specified if a NOTES$ENTRY_
                                              GET_CLASS will be done next;
                                              otherwise, the NOTES$ENTRY_GET_
                                              CLASS will not work correctly for
                                              remote notefiles

                  S,R   NOTES$K_ENTRY_NAME    Entry name string

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               4.6  NOTES$ENTRY_GET_CLASS

                  Gets information about the classes to which the entry belongs
                  (the entry specified by the most recent NOTES$ENTRY_GET call
                  for this context).








               4-6  Entry Routines

 











                  Input Item Codes

                  O     NOTES$K_CONTINUE      Keep returning information

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               4.7  NOTES$ENTRY_GET_KEYWORD

                  Gets information about keywords (or markers) for this entry.

                  Input Item Codes

                  O     NOTES$K_CONTINUE      Keep returning information

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               4.8  NOTES$ENTRY_MODIFY

                  Modifies the information stored for this entry.

                  Input Item Codes

                  O     NOTES$K_ENTRY_LAST_STATUS    Longword value of the
                                                     last update for the entry
                                                     (update status longword)

                  S,R   NOTES$K_ENTRY_NAME           Entry name string

                  O     NOTES$K_ENTRY_NEW_NAME       New entry name string
                                                     (rename)

                  O     NOTES$K_ENTRY_OBJECT_NAME    DNS object name string for
                                                     the entry

                  O     NOTES$K_ENTRY_USER_AREA      String of user-programmable
                                                     data

                  O     NOTES$K_NOSIGNAL             Return on errors; do not
                                                     signal


                                                            Entry Routines  4-7

 












                  O     NOTES$K_NOTEFILE_DEFAULT_    Default notefile name
                        NAME                         string

                  O     NOTES$K_NOTEFILE_ENTRYTOTAL  Longword number of notes
                                                     in entry

                  O     NOTES$K_NOTEFILE_FILE_NAME   File name string

                  O     NOTES$K_NOTEFILE_HIGH_UID    Longword of highest used
                                                     note UID

                  O     NOTES$K_NOTEFILE_LASTREV     Quadword date/time the
                                                     notefile was last revised

                  O     NOTES$K_NOTEFILE_MODERATOR   Moderator name string

                  O     NOTES$K_NOTEFILE_NOTICE      Notice string

                  O     NOTES$K_NOTEFILE_NUMNOTES    Longword note number of
                                                     the last topic

                  O     NOTES$K_NOTEFILE_RELATED_    Related notefile name
                        NAME                         string

                  O     NOTES$K_NOTEFILE_TITLE       Title string

                  O     NOTES$K_SEEN_MAP             String indicating which
                                                     notes have been seen

               ____________________________________________________________

               4.9  NOTES$ENTRY_UPDATE

                  Updates statistics for an entry (or entries, if wildcards are
                  used).

                  Input Item Codes

                  O     NOTES$K_CLASS_NAME           Class name string

                  O     NOTES$K_CONTINUE             Keep getting information



               4-8  Entry Routines

 












                  S,R   NOTES$K_ENTRY_NAME           Entry name string

                  O     NOTES$K_NOSIGNAL             Return on errors; do not
                                                     signal

                  O     NOTES$K_NOTEFILE_DEFAULT_    Default notefile name
                        NAME                         string

                  O     NOTES$K_NOTEFILE_FILE_NAME   Notefile name string

                  O     NOTES$K_NOTEFILE_RELATED_    Related notefile name
                        NAME                         string
































                                                            Entry Routines  4-9

 

















                                                                      Chapter 5


                                                               Keyword Routines
               ________________________________________________________________


                  This chapter describes the routines used to access keywords.

                  The item codes allowed in an output item list (OUT-ITEM-LIST)
                  are described first, because this list is common to most of
                  the routines in this chapter.

                  Each notefile routine is described in a separate section with
                  its own list of allowed input item codes (INP-ITEM-LIST).

                  The following abbreviations are used in the list of input
                  item codes:

                  R   Required  This item code must be specified in the call.

                  O   Optional  This item code may be specified in the call.

                  S   Selection This item code specifies which class, entry,
                                keyword, or note is being referenced by the
                                call.

                  Output Item Codes

                  The following item code can be specified in the OUT-ITEM-LIST
                  for the NOTES$KEYWORD_xxx calls.

                  _____________________________________________________________
                  Item_Code_____________Description____________________________

                  NOTES$K_KEYWORD_NAME  Keyword string

                  NOTES$K_KEYWORD_      String of user-programmable data
                  USER_AREA____________________________________________________

                                                          Keyword Routines  5-1

 











                  The following item codes may be specified in the OUT-ITEM-
                  LIST for the NOTES$KEYWORD_GET_NOTE calls.

                  _____________________________________________________________
                  Item_Code_____________Description____________________________

                  NOTES$K_ENTRY_NAME    Entry name string

                  NOTES$K_KEYWORD_NAME  Keyword name string

                  NOTES$K_NOTE_ID       String of topic.reply

                  NOTES$K_NOTE_UID______Longword_unique_note_identifier________

               ____________________________________________________________

               5.1  NOTES$KEYWORD_BEGIN

                  Creates and initializes keyword context for later calls to
                  NOTES$KEYWORD_xxx routines.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  R   NOTES$K_NOTEFILE_     Context longword for notefile
                      CONTEXT

               ____________________________________________________________

               5.2  NOTES$KEYWORD_END

                  Deletes or deallocates keyword context.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               5.3  NOTES$KEYWORD_ADD

                  Creates a keyword record if both the entry_name and note_
                  ID are missing. Creates a keyword reference if either the
                  entry_name or note_ID is specified. If the entry name is not
                  specified, this routine also adds the reference to the note
                  (if specified).

               5-2  Keyword Routines

 











                  Note that keyword routines are also used for markers. A
                  marker is unique to one note in a notefile, although it can
                  be used in more than one notefile. A keyword, by contrast,
                  can refer to more than one note in a notefile.

                  Input Item Codes

                  O     NOTES$K_ENTRY_NAME    Entry name string (for markers)

                  S,R   NOTES$K_KEYWORD_NAME  Keyword string

                  O     NOTES$K_KEYWORD_      String of user-programmable data
                        USER_AREA

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

                  O     NOTES$K_NOTE_ID       String of topic.reply

                  O     NOTES$K_NOTE_UID      Longword unique note identifier

                  O     NOTES$K_UNIENTRY      If there is an existing reference
                                              (by this marker) to another note
                                              in the specified conference,
                                              supersede it (this is not used
                                              for keywords)

               ____________________________________________________________

               5.4  NOTES$KEYWORD_DELETE

                  Deletes a keyword record if both the entry_name and note_ID
                  are missing. Deletes a keyword reference if either the entry_
                  name or the note_ID is specified. If the entry name is not
                  specified, this routine also deletes the reference from the
                  note (if specified).

                  Input Item Codes

                  S,O   NOTES$K_ENTRY_NAME    Entry name string (D = current
                                              notefile)

                  S,R   NOTES$K_KEYWORD_NAME  Keyword string



                                                          Keyword Routines  5-3

 












                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

                  S,O   NOTES$K_NOTE_ID       String of topic.reply

                  O     NOTES$K_NOTE_UID      Longword unique note identifier

               ____________________________________________________________

               5.5  NOTES$KEYWORD_GET

                  Gets information about keywords.

                  Input Item Codes

                  O     NOTES$K_CONTINUE      Keep returning information

                  O     NOTES$K_ENTRY_NAME    Entry name string

                  O     NOTES$K_KEYWORD_      Indicates that a NOTES$KEYWORD_
                        HINT_GET_NOTE         GET_NOTE will be performed next.
                                              This item code must be specified
                                              if a NOTES$KEYWORD_GET_NOTE
                                              is going to be done after the
                                              NOTES$KEYWORD_GET. Otherwise, the
                                              NOTES$KEYWORD_GET will not work
                                              correctly for remote notefiles.

                  S,R   NOTES$K_KEYWORD_NAME  Keyword string (allows wildcards)

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               5.6  NOTES$KEYWORD_GET_NOTE

                  Gets information about notes referenced by a keyword (the
                  keyword specified by the most recent NOTES$KEYWORD_GET call
                  for this context).






               5-4  Keyword Routines

 











                  Input Item Codes

                  O     NOTES$K_CONTINUE      Keep returning information

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               5.7  NOTES$KEYWORD_MODIFY

                  Changes the keyword name (note that references are created
                  and deleted by calls to NOTES$KEYWORD_ADD and NOTES$KEYWORD_
                  DELETE routines). If the keyword_new_name does not exist,
                  this routine updates the keyword record. Otherwise, this
                  routine effectively uses NOTES$KEYWORD_GET/ADD/DELETE to copy
                  all references from the keyword_name to the keyword_new_name,
                  and then deletes the keyword_name record.

                  Input Item Codes

                  S,R   NOTES$K_KEYWORD_NAME  Keyword string

                  O     NOTES$K_KEYWORD_NEW_  New keyword name string (rename)
                        NAME

                  O     NOTES$K_KEYWORD_      String of user-programmable data
                        USER_AREA

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal
















                                                          Keyword Routines  5-5

 

















                                                                      Chapter 6


                                                                  Note Routines
               ________________________________________________________________


                  This chapter describes the routines used to access a note or
                  set of notes once the notefile has been opened.

                  The item codes allowed in an output item list (OUT-ITEM-LIST)
                  are described first, because this list is common to most of
                  the routines in this chapter.

                  Each notefile routine is described in a separate section with
                  its own list of allowed input item codes (INP-ITEM-LIST).

                  The following abbreviations are used in the list of input
                  item codes:

                  R   Required  This item code must be specified in the call.

                  O   Optional  This item code may be specified in the call.

                  S   Selection This item code specifies which class, entry,
                                keyword, or note is being referenced by the
                                call.

                  Output Item Codes

                  The following item codes can be specified in the OUT-ITEM-
                  LIST for the NOTES$NOTE_xxx calls.

                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_NOTE_AUTHOR          Author name string

                  NOTES$K_NOTE_BLINK_ID        Note identifier string of topic

                                                             Note Routines  6-1

 










                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_NOTE_BLINK_TITLE     Title of topic

                  NOTES$K_NOTE_BLINK_UID       Longword unique note identifier
                                               of topic

                  NOTES$K_NOTE_CAN_REPLY       Longword indicating with a value
                                               of 1 that a reply can be added

                  NOTES$K_NOTE_CREATE_TIME     Quadword date/time of note
                                               creation

                  NOTES$K_NOTE_HIDDEN          Longword indicating with a value
                                               of 1 that text has been hidden

                  NOTES$K_NOTE_ID              Note identifier string

                  NOTES$K_NOTE_NUMRECORDS      Longword number of text records
                                               in this note

                  NOTES$K_NOTE_NUMRESPONSES    Longword response number of the
                                               last reply

                  NOTES$K_NOTE_PEN_NAME        Personal name string

                  NOTES$K_NOTE_TITLE           Title string

                  NOTES$K_NOTE_TYPE            Longword indicating the type of
                                               text in the note

                  NOTES$K_NOTE_UID             Longword unique note identifier

                  NOTES$K_NOTE_USER_AREA       String of user-programmable data

                  NOTES$K_NOTE_WRITELOCK       Longword indicating with a
                                               value of 1 that the notefile
                                               is writelocked

                  NOTES$K_NOTEFILE_ENTRYTOTAL  Longword number of notes in the
                                               entry




               6-2  Note Routines

 










                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_NOTEFILE_FILE_NAME   Notefile name string

                  NOTES$K_NOTEFILE_HIGH_UID    Longword of highest used note
                                               UID

                  NOTES$K_NOTEFILE_LASTREV     Quadword date/time that the
                                               notefile was last revised

                  NOTES$K_NOTEFILE_NUMNOTES    Longword note number of last
                                               topic

                  NOTES$K_SEEN_MAP             String indicating which notes
                  _____________________________have_been_seen__________________

                  The following item code is specified in the OUT-ITEM-LIST for
                  the NOTES$NOTE_GET_KEYWORD call.

                  _____________________________________________________________
                  Item_Code_____________Description____________________________

                  NOTES$K_KEYWORD_NAME__Keyword_string_________________________

                  The following item codes may be specified in the OUT-ITEM-
                  LIST for the NOTES$NOTE_ADD_TEXT and the NOTES$NOTE_GET_TEXT
                  calls.

                  _____________________________________________________________
                  Item_Code_____________Description____________________________

                  NOTES$K_TEXT_STRING   Text record string

                  NOTES$K_TEXT_TYPE_____Longword_type_of_text_record___________

               ____________________________________________________________

               6.1  NOTES$NOTE_BEGIN

                  Initiates notes-level access on a currently open note-
                  file. This routine must be called before any of the other
                  NOTES$NOTE_xxx routines and after the NOTES$NOTEFILE_BEGIN
                  routine has been called to open the notefile. It is possible
                  to have more than one NOTE_BEGIN/END routine active in the
                  same NOTEFILE_BEGIN/END "block". This routine creates and

                                                             Note Routines  6-3

 











                  initializes note context for later calls to NOTES$NOTE_xxx
                  routines.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  R   NOTES$K_NOTEFILE_     Context longword for notefile
                      CONTEXT

               ____________________________________________________________

               6.2  NOTES$NOTE_END

                  Deletes or deallocates note context.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               6.3  NOTES$NOTE_ADD

                  Adds a new note or reply to a notefile. Calls to the
                  NOTE$NOTE_ADD_TEXT routine can then be used to write the
                  text of the note. The "BLINK" (back-link) item codes, if pre-
                  sent, indicate the note for which the reply is being written.
                  If not specified, a new topic is written.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  O   NOTES$K_NOTE_BLINK_   Note identifier string
                      ID

                  O   NOTES$K_NOTE_BLINK_   Longword unique note identifier
                      UID

                  O   NOTES$K_NOTE_HIDDEN   Hide note = 1, unhide note = 0 (the
                                            default is not hidden)



               6-4  Note Routines

 












                  O   NOTES$K_NOTE_MARK_    Mark note as seen, indicated by 1
                      SEEN

                  O   NOTES$K_NOTE_PEN_     User personal name string
                      NAME

                  O   NOTES$K_NOTE_TITLE    Title string

                  O   NOTES$K_NOTE_USER_    String of user-programmable data
                      AREA

                  O   NOTES$K_NOTE_         Writelock note = 1, write-enable
                      WRITELOCK             note = 0 (default is enabled)

                  O   NOTES$K_NOTEFILE_     Notefile name string
                      FILE_NAME

               ____________________________________________________________

               6.4  NOTES$NOTE_ADD_TEXT

                  Adds another line of text to the note being written. After
                  all the text has been added by calls to this routine, it
                  should be called again, specifying the NOTES$K_TEXT_END
                  routine.

                  Input Item Codes

                  O   NOTES$K_CONTINUE      Keep releasing information

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  O   NOTES$K_TEXT_END      Indicate end of the note text

                  O   NOTES$K_TEXT_STRING   Text record string

                  O   NOTES$K_TEXT_TYPE     Longword type of text record

               ____________________________________________________________

               6.5  NOTES$NOTE_DELETE

                  Deletes the specified topic or reply.

                                                             Note Routines  6-5

 











                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  O   NOTES$K_NOTE_ID       String note identifier

                  O   NOTES$K_NOTE_UID      Longword unique note identifier

               ____________________________________________________________

               6.6  NOTES$NOTE_GET

                  Retrieves information about a note or sequence of notes. It
                  must be called before any calls to the NOTES$NOTE_GET_KEYWORD
                  or the NOTES$NOTE_GET_TEXT routines. The item codes NOTES$K_
                  NOTE_BACK_NOTE, NOTES$K_NOTE_NEXT_NOTE, NOTES$K_NOTE_BACK_
                  RESPONSE, and NOTES$K_NOTE_NEXT_RESPONSE conflict with each
                  other and with all other item codes.

                  Input Item Codes

                  O     NOTES$K_CONTINUE          Keep returning information

                  S,O   NOTES$K_KEYWORD_NAME      Select notes with the speci-
                                                  fied keyword

                  O     NOTES$K_NOSIGNAL          Return on errors; do not
                                                  signal

                  S,O   NOTES$K_NOTE_ALL_         Indicates replies should also
                        RESPONSES                 be returned

                  S,O   NOTES$K_NOTE_AUTHOR       Select only notes by this
                                                  author (string)

                  S,O   NOTES$K_NOTE_BACK_NOTE    Select previous topic

                  S,O   NOTES$K_NOTE_BACK_        Select previous reply
                        RESPONSE

                  S,O   NOTES$K_NOTE_BEFORE_TIME  Select only notes before this
                                                  date/time



               6-6  Note Routines

 












                  S,O   NOTES$K_NOTE_HINT_GET_    Value of 1 indicates that a
                        KEYWORD                   NOTES$NOTE_GET_KEYWORD will
                                                  be performed next. This item
                                                  code must be specified if
                                                  a NOTES$NOTE_GET_KEYWORD
                                                  will be done after the
                                                  NOTES$NOTE_GET. Otherwise,
                                                  the NOTES$NOTE_GET_KEYWORD
                                                  will not work correctly for
                                                  remote notefiles.

                  S,O   NOTES$K_NOTE_HINT_GET_    Value of 1 indicates that a
                        TEXT                      NOTES$NOTE_GET_TEXT will
                                                  be performed next. This
                                                  item code must be speci-
                                                  fied if a NOTES$NOTE_GET_
                                                  TEXT will be done after the
                                                  NOTES$NOTE_GET. Otherwise,
                                                  the NOTES$NOTE_GET_TEXT will
                                                  not work correctly for remote
                                                  notefiles.

                  S,O   NOTES$K_NOTE_ID           String range of notes to get
                                                  (conflicts with NOTES$K_NOTE_
                                                  UID)

                  S,O   NOTES$K_NOTE_MARK_SEEN    Mark notes as seen, indicated
                                                  by 1

                  S,O   NOTES$K_NOTE_NEXT_NOTE    Select following topic

                  S,O   NOTES$K_NOTE_NEXT_        Select following reply
                        RESPONSE

                  S,O   NOTES$K_NOTE_NEXT_UNSEEN  Select next unseen note,
                                                  indicated by 1

                  S,O   NOTES$K_NOTE_SEARCH_      Select only notes containing
                        STRING                    this string





                                                             Note Routines  6-7

 












                  S,O   NOTES$K_NOTE_SINCE_TIME   Select only notes after this
                                                  date/time

                  S,O   NOTES$K_NOTE_TITLE        Select only notes whose
                                                  titles contain this string

                  S,O   NOTES$K_NOTE_UID          Longword unique note identi-
                                                  fier (conflicts with NOTES$K_
                                                  NOTE_ID)

                  S,O   NOTES$K_NOTE_UNSEEN       Select unseen notes = 1,
                                                  select seen notes = 0

                  O     NOTES$K_NOTE_USER_AREA    String of user-programmable
                                                  data

               ____________________________________________________________

               6.7  NOTES$NOTE_GET_KEYWORD

                  Gets the keywords associated with the current note (the note
                  specified by the last call to the NOTES$NOTE_GET routine).
                  Keywords are returned one per call.

                  Input Item Codes

                  O   NOTES$K_CONTINUE      Keep returning information

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               6.8  NOTES$NOTE_GET_TEXT

                  Gets the text records associated with the current note (the
                  note specified by the last call to the NOTES$NOTE_GET rou-
                  tine). Text records are returned one per call.







               6-8  Note Routines

 











                  Input Item Codes

                  O     NOTES$K_CONTINUE      Keep returning information

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               6.9  NOTES$NOTE_MODIFY

                  Modifies attributes of a note.

                  Input Item Codes

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

                  O     NOTES$K_NOTE_HIDDEN   Hide note = 1, unhide note = 0

                  S,O   NOTES$K_NOTE_ID       String range of notes to modify

                  O     NOTES$K_NOTE_NEW_ID   String specifying the new note-
                                              ID to which the range of notes
                                              should be moved

                  O     NOTES$K_NOTE_PEN_     Personal name string
                        NAME

                  O     NOTES$K_NOTE_TITLE    Title string

                  S,O   NOTES$K_NOTE_UID      Longword unique note identifier

                  O     NOTES$K_NOTE_UNSEEN   Unseen note = 1, seen note = 0

                  O     NOTES$K_NOTE_USER_    String of user-programmable data
                        AREA

                  O     NOTES$K_NOTE_         Writelock note = 1, write-enable
                        WRITELOCK             note = 0

                  O     NOTES$K_NOTEFILE_     Notefile name string
                        FILE_NAME




                                                             Note Routines  6-9

 

















                                                                      Chapter 7


                                                               Profile Routines
               ________________________________________________________________


                  This chapter describes the routines used to access the user's
                  personal information.

                  The item codes allowed in an output item list (OUT-ITEM-LIST)
                  are described first, because this list is common to most of
                  the routines in this chapter.

                  Each notefile routine is described in a separate section with
                  its own list of allowed input item codes (INP-ITEM-LIST).

                  The following abbreviations are used in the list of input
                  item codes:

                  R   Required  This item code must be specified in the call.

                  O   Optional  This item code may be specified in the call.

                  S   Selection This item code specifies which class, entry,
                                keyword, or note is being referenced by the
                                call.

                  Output Item Codes

                  The following item codes can be specified in the OUT-ITEM-
                  LIST for the NOTES$PROFILE_xxx calls.

                  _____________________________________________________________
                  Item_Code___________________Description______________________

                  NOTES$K_PROFILE_AUTO_DIR    Automatic directory = 1, no auto-
                                              directory = 0

                                                          Profile Routines  7-1

 










                  _____________________________________________________________
                  Item_Code___________________Description______________________

                  NOTES$K_PROFILE_AUTO_       Automatic unseen = 1, no auto-
                  UNSEEN                      matic unseen = 0

                  NOTES$K_PROFILE_CLASS_NAME  String of default class name to
                                              use

                  NOTES$K_PROFILE_EDITOR      Editor name string

                  NOTES$K_PROFILE_EDITOR_     Spawn editor = 1, callable editor
                  SPAWN                       = 0

                  NOTES$K_PROFILE_PEN_NAME    Personal name string

                  NOTES$K_PROFILE_PRINT       String of default print quali-
                  ____________________________fiers_to_apply___________________


               ____________________________________________________________

               7.1  NOTES$PROFILE_BEGIN

                  Creates and initializes profile context for later calls to
                  NOTES$PROFILE_xxx routines.

                  Input Item Codes

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

                  R     NOTES$K_NOTEFILE_     Context longword for notefile
                        CONTEXT

               ____________________________________________________________

               7.2  NOTES$PROFILE_END

                  Deletes or deallocates profile context.

                  Input Item Codes

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal



               7-2  Profile Routines

 










               ____________________________________________________________

               7.3  NOTES$PROFILE_GET

                  Gets the current settings of the personal profile informa-
                  tion.

                  Input Item Codes

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

                  S,O   NOTES$K_PROFILE_      Indicates that the temporary
                        TEMPORARY             profile information should be
                                              returned

               ____________________________________________________________

               7.4  NOTES$PROFILE_MODIFY

                  Sets or changes personal profile information.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL          Return on errors; do not signal

                  O   NOTES$K_PROFILE_AUTO_DIR  Automatic directory = 1, no
                                                auto-directory = 0

                  O   NOTES$K_PROFILE_AUTO_     Automatic unseen = 1, no auto-
                      UNSEEN                    matic unseen = 0

                  O   NOTES$K_PROFILE_CLASS_    String of default class name to
                      NAME                      use

                  O   NOTES$K_PROFILE_EDITOR    Editor name string

                  O   NOTES$K_PROFILE_EDITOR_   Spawn editor = 1, callable
                      SPAWN                     editor = 0

                  O   NOTES$K_PROFILE_PEN_NAME  Personal name string

                  O   NOTES$K_PROFILE_PRINT     String of default print quali-
                                                fiers to apply



                                                          Profile Routines  7-3

 












                  O   NOTES$K_PROFILE_          Indicates that settings are
                      TEMPORARY                 temporary (not stored)










































               7-4  Profile Routines

 

















                                                                      Chapter 8


                                                                  User Routines
               ________________________________________________________________


                  This chapter describes the routines used to access member
                  information.

                  The item codes allowed in an output item list (OUT-ITEM-LIST)
                  are described first, because this list is common to most of
                  the routines in this chapter.

                  Each notefile routine is described in a separate section with
                  its own list of allowed input item codes (INP-ITEM-LIST).

                  The following abbreviations are used in the list of input
                  item codes:

                  R   Required  This item code must be specified in the call.

                  O   Optional  This item code may be specified in the call.

                  S   Selection This item code specifies which class, entry,
                                keyword, or note is being referenced by the
                                call.

                  Output Item Codes

                  The following item codes can be specified in the OUT-ITEM-
                  LIST for the NOTES$USER_xxx calls.

                  _____________________________________________________________
                  Item_Code_____________Description____________________________

                  NOTES$K_USER_ACCESS_  String of node::user-name pairs for
                  LIST                  this user

                                                             User Routines  8-1

 










                  _____________________________________________________________
                  Item_Code_____________Description____________________________

                  NOTES$K_USER_CREATE_  May create keywords = 1, may not create
                  KEYWORD               keywords = 0 (default)

                  NOTES$K_USER_MAIL_    Mailing address string
                  ADDR

                  NOTES$K_USER_         May be moderator = 1, not moderator = 0
                  MODERATE              (default)

                  NOTES$K_USER_NAME     User name string

                  NOTES$K_USER_         String of node names (comma-separated)
                  NODENAME

                  NOTES$K_USER_WRITE_   May write to write-locked conference,
                  BYPASS                reply-only conference, and write-locked
                  ______________________topic__________________________________


               ____________________________________________________________

               8.1  NOTES$USER_BEGIN

                  Creates and initializes user context for later calls to
                  NOTES$USER_xxx routines.

                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

                  R   NOTES$K_NOTEFILE_     Context longword for notefile
                      CONTEXT

               ____________________________________________________________

               8.2  NOTES$USER_END

                  Deletes or deallocates user context.





               8-2  User Routines

 











                  Input Item Codes

                  O   NOTES$K_NOSIGNAL      Return on errors; do not signal

               ____________________________________________________________

               8.3  NOTES$USER_ADD

                  Verifies that there is no existing user with the specified
                  user name and node names. Creates a member record for that
                  user. If the user name already exists, returns an error.

                  Input Item Codes

                  O     NOTES$K_NOSIGNAL          Return on errors; do not
                                                  signal

                  O     NOTES$K_USER_ACCESS_LIST  String of node::user-name
                                                  pairs for this user

                  O     NOTES$K_USER_CREATE_      May create keywords = 1,
                        KEYWORD                   may not create keywords = 0
                                                  (default)

                  O     NOTES$K_USER_MAIL_ADDR    Mailing address string

                  O     NOTES$K_USER_MODERATE     May be moderator = 1, not
                                                  moderator = 0 (default)

                  S,R   NOTES$K_USER_NAME         User name string

                  S,O   NOTES$K_USER_NODENAME     String of node names (comma-
                                                  separated)

                  O     NOTES$K_USER_WRITE_       May write to write-locked
                        BYPASS                    conference, reply-only con-
                                                  ference, and write-locked
                                                  topic
               )






                                                             User Routines  8-3

 










               ____________________________________________________________

               8.4  NOTES$USER_DELETE

                  Verifies that the specified user exists. Deletes the member
                  record for that user.

                  Input Item Codes

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

                  O     NOTES$K_USER_ACCESS_  String of node::user-name pairs
                        LIST                  for this user

                  S,R   NOTES$K_USER_NAME     User name string

                  S,O   NOTES$K_USER_         String of node names (comma-
                        NODENAME              separated)

               ____________________________________________________________

               8.5  NOTES$USER_GET

                  Gets information about users.

                  Input Item Codes

                  O     NOTES$K_CONTINUE      Keep returning information

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

                  S,O   NOTES$K_USER_         Only return users with moderator
                        MODERATE              privilege, indicated by 1; only
                                              return nonmoderators, indicated
                                              by 0

                  S,R   NOTES$K_USER_NAME     User name string (allows wild-
                                              cards); a null user name string
                                              will get the requester's user
                                              information






               8-4  User Routines

 










               ____________________________________________________________

               8.6  NOTES$USER_MODIFY

                  Verifies that the specified user exists. Modifies the member
                  record for that user.

                  Input Item Codes

                  O     NOTES$K_NOSIGNAL      Return on errors; do not signal

                  O     NOTES$K_USER_ACCESS_  String of node::user-name pairs
                        LIST                  for this user

                  O     NOTES$K_USER_CREATE_  May create keywords = 1, may not
                        KEYWORD               creates keywords = 0 (default)

                  O     NOTES$K_USER_MAIL_    Mailing address string
                        ADDR

                  O     NOTES$K_USER_         May be moderator = 1, not modera-
                        MODERATE              tor = 0 (default)

                  S,R   NOTES$K_USER_NAME     User name string

                  O     NOTES$K_USER_NEW_     New user name string (to rename)
                        NAME

                  O     NOTES$K_USER_NEW_     String of new node names (comma-
                        NODENAME              separated)

                  O     NOTES$K_USER_         Node name string
                        NODENAME

                  O     NOTES$K_USER_WRITE_   May write to write-locked confer-
                        BYPASS                ence, reply-only conference, and
                                              write-locked topic









                                                             User Routines  8-5

 

















                                                                      Chapter 9


                                                     VAX Notes Network Protocol
               ________________________________________________________________


                  The VAX Notes network protocol uses a data syntax based on
                  the DIGITAL Data Interchange Syntax (DDIS)[1] and ASN.1.[2]
                  Data is encoded in TLVs. TLV stands for

                     Type field
                     Length field
                     Value field

                  This chapter describes the TLV encoding in VAX Notes of data
                  packets exchanged between client and server nodes.

                  TLVs can be nested; that is, the Value field of one TLV can
                  contain one or more additional TLVs.

                  VAX Notes uses unregistered Type codes in its network proto-
                  col. The Type codes are the numeric values listed in the file
                  NOTESCODES.TXT, provided with the software kit.

                  The Type and Length fields of a TLV are bit-encoded for
                  efficiency. The following sections explain the Type, Length,
                  and Value fields.




               ___________________
             [1] DEC STD 081, DIGITAL Data Interchange Syntax (DDIS), Part 1,

                 as described in A-DS-EL00081-00-3, Rev AX03, 15-Jan-1989.
             [2] International Standard Organizations (ISO), Open System Interconnect
                 (OSI), Abstract Syntax Notation (ASN.1), as defined in ISO 8824,

                 ISO 8825.

                                                VAX Notes Network Protocol  9-1

 










               ____________________________________________________________

               9.1  Type Field

                  The Type field of a TLV is bit-encoded in 1, 2, or 3 octets
                  (8-bit bytes).

                  Bits 6 and 7 of the first or only byte of the Type field
                  specify the class. There are four classes of data types:

                  0 = TLV$M_UNIVERSAL          Generally useful, application-
                                               independent types defined by
                                               CCITT X.409

                  1 = TLV$M_APPLICATION_WIDE   Specialized types, defined by an
                                               application

                  2 = TLV$M_CONTEXT_SPECIFIC   Application types that are valid
                                               only within limited contexts of
                                               the application

                  3 = TLV$M_PRIVATE            Reserved for the private use of
                                               Digital

                  Depending on the context, VAX Notes specifies either TLV$M_
                  PRIVATE or (inappropriately) zero for the class. Thus, bits 6
                  and 7 of the first byte always contain either 00 (binary) or
                  11 (binary).

                  Bit 5 of the first or only byte of the Type field specifies
                  the form. There are two forms of data elements:

                  0 = TLV$M_PRIMITIVE          An element whose value field is
                                               atomic (not itself another data
                                               element)

                  1 = TLV$M_CONSTRUCTOR        An element whose value field is
                                               itself a data element or series
                                               of data elements

                  VAX Notes does not specify TLV$M_CONSTRUCTOR, so bit 5 of the
                  first byte is always 0.

                  The Type field is either 1, 2, or 3 bytes in length, depend-
                  ing on the numeric value of the Type code. The diagrams that
                  follow map the 1-byte, 2-byte, and 3-byte Type fields. In the
                  diagrams,

                     C = Class

               9-2  VAX Notes Network Protocol

 











                     F = Form
                     T = Type
                     L = Length

                               7 6 5 4 3 2 1 0
                              +-+-+-+-+-+-+-+-+
                     1-byte:  |C|C|F|T|T|T|T|T|   where TTTTT is less than 11111 (31 decimal)
                              +-+-+-+-+-+-+-+-+


                  The one-byte form is used for Types in the range 0 through
                  30. The number of the Type is in bits 0 through 4. Bit 0 is
                  the least significant bit. The number identifies the routine
                  or item code. (For example, 0001 is the number of NOTES$K_
                  INITIALIZE. This and all other Type codes are listed in the
                  file NOTESCODES.TXT, supplied with your kit.)

                               7 6 5 4 3 2 1 0     7 6 5 4 3 2 1 0
                              +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+
                     2-byte:  |C|C|F|1|1|1|1|1|   |0|T|T|T|T|T|T|T|
                              +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+

                  The two-byte form is used for Type codes in the range 31
                  through 127. Bits 0 through 4 of the first byte are set to
                  11111. Bit 7 of the second byte is set to 0. The Type code is
                  in bits 0 through 6 of the second byte. Bit 0 is the least
                  significant bit. (For example, 32 decimal is the number of
                  NOTES$K_CLASS_BEGIN).

















                                                VAX Notes Network Protocol  9-3

 











                               7 6 5 4 3 2 1 0     7 6 5 4 3 2 1 0     7 6 5 4 3 2 1 0
                              +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+
                     3-byte:  |C|C|F|1|1|1|1|1|   |1|T|T|T|T|T|T|T|   |0|T|T|T|T|T|T|T|
                              +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+


                  The three-byte form is used for Type codes in the range 128
                  through 16383. Bit 7 of the second byte is set to 1, and bit
                  7 of the third byte is set to 0. The Type code is in bits
                  0 through 6 of the second byte, and bits 0 through 6 of the
                  third byte. Bit 0 of the second byte is the least significant
                  bit, and bit 6 of the third byte is the most significant bit.
                  Hence, to read the binary number, remove bit 7 of the second
                  byte and bit 7 of the third byte; then put the third byte's
                  remaining 7 bits before the second byte's 7 bits, without
                  reordering the bits within each byte. (For example, NOTES$K_
                  INIT_NODENAME is 8194).

               ____________________________________________________________

               9.2  Length Field

                  The Length field specifies the length (in 8-bit bytes, or
                  octets) of the Value field of a TLV. The Length field con-
                  sists of 1, 2, or 3 bytes, in one of the following forms:

                               7 6 5 4 3 2 1 0
                              +-+-+-+-+-+-+-+-+
                     1-byte:  |0|L|L|L|L|L|L|L|
                              +-+-+-+-+-+-+-+-+

                  This one-byte form (there is another one-byte form that
                  indicates indefinite length, described below) is used for
                  lengths in the range 0 through 127. Bit 7 is set to 0. The
                  length is specified in bits 0 through 6. Bit 0 is the least
                  significant bit.









               9-4  VAX Notes Network Protocol

 











                               7 6 5 4 3 2 1 0     7 6 5 4 3 2 1 0
                              +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+
                     2-byte:  |1|0|0|0|0|0|0|1|   |L|L|L|L|L|L|L|L|
                              +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+


                  The two-byte form is used for lengths in the range 128
                  through 255. The length is specified in bits 0 through 7
                  of the second byte. Bit 0 is the least significant bit.

                               7 6 5 4 3 2 1 0     7 6 5 4 3 2 1 0     7 6 5 4 3 2 1 0
                              +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+
                     3-byte:  |1|0|0|0|0|0|1|0|   |L|L|L|L|L|L|L|L|   |L|L|L|L|L|L|L|L|
                              +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+   +-+-+-+-+-+-+-+-+

                  The three-byte form is used for lengths in the range 256
                  through 65535. The length is specified in bits 0 through 7 of
                  the second byte, and bits 0 through 7 of the third byte. Bit
                  0 of the second byte is the least significant bit, and bit
                  7 of the third byte is the most significant bit. (Hence, to
                  read the binary number, put the third byte before the second
                  byte.)

                               7 6 5 4 3 2 1 0
                              +-+-+-+-+-+-+-+-+
                     1-byte:  |1|0|0|0|0|0|0|0|
                              +-+-+-+-+-+-+-+-+

                  This one-byte form is used to indicate an indefinite length.
                  The Value field that follows is itself TLV-encoded; that
                  is, it is a sequence of TLVs. A TLV of all zeroes within the
                  Value field indicates the end of the Value (that is, both
                  the Type and Length are zero, so this appears as two bytes of
                  zero).

                  VAX Notes uses this form only in error reporting (see
                  NOTES$K_ERROR_TLV).








                                                VAX Notes Network Protocol  9-5

 










               ____________________________________________________________

               9.3  Value Field

                  For character string data, the Value portion of a TLV is
                  a string of 8-bit octets. Integer data is passed as a 1-
                  octet or 4-octet string with VAX ordering used for the octets
                  within this string. A VMS date/time format is used to pass a
                  date/time data item as an 8-octet string.

               ____________________________________________________________

               9.4  Structure of a Data Packet

                  The first two bytes of every data packet sent between the VAX
                  Notes client and server contain flags. Currently, only bit 0
                  of the first byte is used; the other bits are sent as zero
                  and ignored.

                  Bit 0 of the first byte is the end of message (EOM) bit. When
                  set (1), it indicates that this packet represents the end
                  of the message. When clear (0), it indicates that there are
                  continuation packets that may be requested. Continuation is
                  described in detail below (see NOTES$K_MORE).

                  Except for continuation packets, the two flag bytes are
                  followed by a sequence of TLVs. The description of these TLVs
                  and their contents comprise the remainder of this chapter.

                  The protocol design supports only one outstanding request per
                  connection.

                  In the sequence of TLVs from the server, there may be error-
                  reporting TLVs (see NOTES$K_ERROR_TLV). These indicate an
                  error or informational message that was produced while the
                  server was processing a client request. These may occur
                  anywhere amoung the top-level TLVs; they do not occur in
                  nested TLVs. (A nested TLV is one that occurs as part of the
                  Value field of another TLV.)

                  NOTES$K_ERROR_TLV = 131

                  While processing a client request, the server may produce
                  an error or informational message. To report this, it is put
                  into a NOTES$K_ERROR_TLV, and is sent to the client as one
                  of the top-level TLVs in the next message (it is not nested
                  within another TLV). The Value of the NOTES$K_ERROR_TLV TLV
                  is itself a sequence of TLVs, with the format depending on

               9-6  VAX Notes Network Protocol

 











                  whether both the client and server specified the NOTES$V_
                  INIT_VMSMSGS capability in their NOTES$K_INITIALIZE messages.

                  With the NOTES$V_INIT_VMSMSGS capability, the NOTES$K_ERROR_
                  TLV TLV represents a signaled VMS condition vector.

                              NOTES$K_ERROR_TLV
                                  NOTES$K_STATUS                  A longword condition value
                                  NOTES$K_ERROR_NARGS             Number of following arguments
                                  NOTES$K_ERROR_ARG               A string argument

                  The NOTES$K_ERROR_ARG TLV may occur any number of times
                  (including 0).

                  Without the NOTES$V_INIT_VMSMSGS capability:

                              NOTES$K_ERROR_TLV
                                  NOTES$K_ERROR_TEXT              A string, the error text

                  Note that the indefinite length encoding is used for the
                  NOTES$K_ERROR_TLV's Length field.

                  NOTES$K_INITIALIZE = 1

                  When the client first starts using VAX Notes for a remote
                  connection (by calling NOTES$NOTEFILE_BEGIN), a connection
                  to the server is made, and initialization messages are ex-
                  changed.

                  The initialization message sent by the client contains (in
                  order) the two flag bytes (containing the EOM bit), followed
                  by a TLV of Type NOTES$K_INITIALIZE. The Value of this TLV is
                  itself a sequence of TLVs for the software version, client
                  nodename, client username, and client capabilities. These
                  TLVs are indicated below; note that indentation is used to
                  indicate the nested TLVs.









                                                VAX Notes Network Protocol  9-7

 











                          INITIALIZE (from client to server)

                              NOTES$K_INITIALIZE
                                  NOTES$K_INIT_VERSION            Version, a longword integer
                                  NOTES$K_INIT_NODENAME           Client nodename (a string)
                                  NOTES$K_INIT_USERNAME           Username (a string)
                                  NOTES$K_INIT_CAPABILITIES       Capabilities, a longword



                  The server responds with another message. It begins with the
                  flags word, and includes two TLVs, NOTES$K_INITIALIZE and
                  NOTES$K_STATUS. The Value of the NOTES$K_INITIALIZE TLV is
                  itself a sequence of TLVs for the software version, server
                  nodename, server capabilities, and the maximum itemcode which
                  is understood by the server. The Value of the NOTES$K_STATUS
                  TLV is a VAX/VMS condition value (typically SS$_NORMAL).

                          INITIALIZE (from server to client)

                              NOTES$K_INITIALIZE
                                  NOTES$K_INIT_VERSION            Version, a longword integer
                                  NOTES$K_INIT_NODENAME           Server nodename (a string)
                                  NOTES$K_INIT_CAPABILITIES       Capabilities, a longword
                                  NOTES$K_INIT_MAXITEMCODE        A longword integer
                              NOTES$K_STATUS                      A longword condition value

                  Only bit 0 of the capabilities is defined; other bits should
                  be clear. If set, bit 0 indicates that the sender (client or
                  server) understands VAX/VMS error messages. This determines
                  the format in which error messages will be sent (see NOTES$K_
                  ERROR_TLV, above). The symbolic name for this capability
                  field within the capabilities longword is NOTES$V_INIT_
                  VMSMSGS.

                  The software version described herein is 2/4, which is sent
                  as hex 00020004, and which represents version 0002, update
                  0004. When changes that allow upward compatibility are made
                  to the protocol, the update number is increased; and if
                  significant changes are made, the version number is increased
                  (and the update reset to 0). Protocol changes are mentioned
                  in the following text.



               9-8  VAX Notes Network Protocol

 











                  Most of the 'routine' messages are fairly similar, and are
                  closely related to the corresponding callable interface
                  routines (see Part II). As an example, consider the messages
                  used to modify a user/membership record.

                          USER_MODIFY (from client to server)

                              NOTES$K_USER_MODIFY
                                  NOTES$K_REQUEST_CONTEXT         Context from notefile_begin
                                  NOTES$K_TLV_INPUT
                                      NOTES$K_USER_NAME           Username
                                      NOTES$K_USER_MAIL_ADDR      Mail address
                                      ...
                                  NOTES$K_TLV_OUTPUT
                                      NOTES$K_USER_NAME           Username
                                      NOTES$K_USER_MODERATE       Longword boolean
                                      ...

                  The NOTES$K_REQUEST_CONTEXT TLV corresponds to the context
                  parameter that is returned by NOTES$USER_BEGIN and passed to
                  NOTES$USER_MODIFY.

                  The TLVs within the NOTES$K_TLV_INPUT and NOTES$K_TLV_OUTPUT
                  TLVs correspond directly to the items that can be speci-
                  fied to (or requested from) the NOTES$USER_MODIFY routine.
                  Since their values would be meaningless, the TLVs within the
                  NOTES$K_TLV_OUTPUT TLV are specified with lengths of 0; their
                  presence merely indicates which data items are desired.

                  The server responds with the following message.















                                                VAX Notes Network Protocol  9-9

 











                          USER_MODIFY (from server to client)

                              NOTES$K_REQUEST_CONTEXT             Context from notefile_begin
                              NOTES$K_TLV_OUTPUT
                                  NOTES$K_USER_NAME               Username
                                  NOTES$K_USER_MODERATE           Longword boolean
                                  ...
                              NOTES$K_STATUS                      A longword condition value

                  Note that the server's response is not nested within a
                  NOTES$K_USER_MODIFY TLV; there is no NOTES$K_TLV_INPUT TLV;
                  and the message includes a NOTES$K_STATUS TLV which gives the
                  final status of the operation. The NOTES$K_TLV_OUTPUT TLV may
                  be absent (this happens when the NOTES$K_STATUS TLV indicates
                  failure).

                  None of the BEGIN routines specify the NOTES$K_REQUEST_
                  CONTEXT TLV; this is an output provided by the server's
                  response.

                  While all the BEGIN responses include the NOTES$K_REQUEST_
                  CONTEXT TLV, most other server responses do not; it is unnec-
                  essary because the context is the same as the context in the
                  preceding request (it is assumed that for a given connection
                  the requests are serial).

                  Responses can also include error or informational messages
                  (see NOTES$K_ERROR_TLV). Some responses may be split into
                  several packets (see NOTES$K_MORE).

                  The following messages/routines fit the above description,
                  and are not further described. See Part II for a description
                  of the inputs and outputs of these routines.

                     NOTES$K_NOTEFILE_BEGIN = 3
                     NOTES$K_NOTEFILE_END = 4
                     NOTES$K_NOTEFILE_GET_INFO = 5
                     NOTES$K_NOTEFILE_MODIFY = 6
                     NOTES$K_NOTEFILE_LIST_BEGIN = 7
                     NOTES$K_NOTEFILE_LIST = 8
                     NOTES$K_KEYWORD_BEGIN = 9
                     NOTES$K_KEYWORD_END = 10
                     NOTES$K_KEYWORD_ADD = 11
                     NOTES$K_KEYWORD_DELETE = 12

               9-10  VAX Notes Network Protocol

 











                     NOTES$K_KEYWORD_GET_NOTE = 14
                     NOTES$K_KEYWORD_MODIFY = 15
                     NOTES$K_NOTE_BEGIN = 16
                     NOTES$K_NOTE_END = 17
                     NOTES$K_NOTE_ADD = 18
                     NOTES$K_NOTE_DELETE = 20
                     NOTES$K_NOTE_GET_KEYWORD = 22
                     NOTES$K_NOTE_GET_TEXT = 23
                     NOTES$K_NOTE_MODIFY = 24
                     NOTES$K_USER_BEGIN = 25
                     NOTES$K_USER_END = 26
                     NOTES$K_USER_ADD = 27
                     NOTES$K_USER_DELETE = 28
                     NOTES$K_USER_MODIFY = 30
                     NOTES$K_CLASS_ADD = 31
                     NOTES$K_CLASS_BEGIN = 32
                     NOTES$K_CLASS_DELETE = 33
                     NOTES$K_CLASS_END = 34
                     NOTES$K_CLASS_GET_ENTRY = 36
                     NOTES$K_CLASS_MODIFY = 37
                     NOTES$K_ENTRY_ADD = 38
                     NOTES$K_ENTRY_BEGIN = 39
                     NOTES$K_ENTRY_DELETE = 40
                     NOTES$K_ENTRY_END = 41
                     NOTES$K_ENTRY_GET_CLASS = 43
                     NOTES$K_ENTRY_GET_KEYWORD = 44
                     NOTES$K_ENTRY_MODIFY = 45
                     NOTES$K_PROFILE_BEGIN = 46
                     NOTES$K_PROFILE_END = 47
                     NOTES$K_PROFILE_GET = 48
                     NOTES$K_PROFILE_MODIFY = 49


                  To reduce the amount of network traffic, the following two
                  techniques are used in the VAX Notes network protocol.

                  When a user requests a list (for example, a list of key-
                  words), the callable interface would generally require
                  that multiple calls be made to a GET routine, with NOTES$K_
                  CONTINUE specified on the second and subsequent calls. To
                  reduce the number of packets that are exchanged in handling
                  a user's request, the server assumes that all GET requests
                  are continued, and sends back the information for multiple


                                               VAX Notes Network Protocol  9-11

 











                  GET requests in one packet, without requiring the separate
                  requests.

                  If the information being returned by the server exceeds the
                  size of a single packet, a NOTES$K_MORE request from the
                  client prompts the server to send the next packet in the
                  message. The NOTES$K_USER request illustrates the simplest
                  example of this technique (see NOTES$K_USER_GET).

                  To further reduce the network traffic, the client can specify
                  "hints" to the server. For example, if the client specifies
                  NOTES$K_NOTE_HINT_GET_TEXT in the NOTES$K_TLV_INPUT TLV of
                  a NOTES$K_NOTE_GET request, then (as usual) the server will
                  send back the items requested in the NOTES$K_TLV_OUTPUT TLV,
                  but it will also send back the text of the note, without the
                  client making individual NOTES$K_NOTE_GET_TEXT requests.

                  NOTES$K_USER_GET = 29

                  This is requested as described above. The servers response
                  may include multiple NOTES$K_TLV_OUTPUT TLVs, one for each
                  user record found/requested. As usual, NOTES$K_ERROR_TLV TLVs
                  may also appear, and the NOTES$K_TLV_OUTPUT TLV may be absent
                  if the NOTES$K_STATUS TLV indicates failure.

                          USER_GET (from server to client)

                              NOTES$K_TLV_OUTPUT                   \
                                  NOTES$K_USER_NAME                 \
                                  NOTES$K_USER_MODERATE              > This may be repeated
                                  ...                               /
                              NOTES$K_STATUS                       /

                  NOTES$K_KEYWORD_GET = 13

                  This is requested as described above. The server's response
                  may include multiple NOTES$K_TLV_OUTPUT TLVs, one for each
                  keyword found/requested.

                  If the NOTES$K_KEYWORD_GET request (sent from the client to
                  the server) includes a NOTES$K_KEYWORD_HINT_GET_NOTE TLV in
                  its NOTES$K_TLV_INPUT TLV, then for each keyword, the server
                  does a NOTES$K_KEYWORD_GET_NOTE and sends that information
                  along in its response. The form of that information depends
                  on whether the NOTES$K_KEYWORD_GET request had NOTES$K_ENTRY_
                  NAME in its NOTES$K_TLV_INPUT TLV.

               9-12  VAX Notes Network Protocol

 











                  If NOTES$K_ENTRY_NAME was specified, the server sends a form
                  suited for markers:

                          KEYWORD_GET (from server to client)

                              NOTES$K_TLV_OUTPUT                 \
                                  NOTES$K_KEYWORD_NAME            \
                                  ...                              \
                              NOTES$K_STATUS                        \
                                                                     \
                              NOTES$K_TLV_OUTPUT     \ one for        > This may be repeated
                                  NOTES$K_NOTE_ID     \ each         /
                                  NOTES$K_ENTRY_NAME   \ note       /
                                  NOTES$K_KEYWORD_NAME /           /
                                  NOTES$K_NOTE_UID    /           /
                              NOTES$K_STATUS         /           /

                  If NOTES$K_ENTRY_NAME was not specified:

                          KEYWORD_GET (from server to client)

                              NOTES$K_TLV_OUTPUT                  \
                                  NOTES$K_KEYWORD_NAME             \
                                  ...                               \
                              NOTES$K_STATUS                         \
                                                                      > This may be repeated
                              NOTES$K_NOTE_UID       \ one for       /
                              NOTES$K_NOTE_ID        / each note    /
                                                                   /
                              NOTES$K_STATUS - end of all the     /
                                                hooji-woojis     /

                  The first NOTES$K_STATUS shown above is for the NOTES$K_
                  KEYWORD_GET operation, and the second is for the final (un-
                  successful) NOTES$K_KEYWORD_GET_NOTE done for each keyword.

                  The NOTES$K_NOTE_UID may be absent, since early versions of
                  VAX Notes (prior to protocol 2/3) did not include it.

                  NOTES$K_CLASS_GET = 35

                  This is requested as described above. The servers response
                  may include multiple NOTES$K_TLV_OUTPUT TLVs, one for each
                  class record found/requested.

                                               VAX Notes Network Protocol  9-13

 











                  If the NOTES$K_CLASS_GET request includes a NOTES$K_CLASS_
                  HINT_GET_ENTRY TLV in its NOTES$K_TLV_INPUT TLV, then for
                  each class, the server does a NOTES$K_CLASS_GET_ENTRY and
                  sends the results in its response.

                          CLASS_GET (from server to client)

                              NOTES$K_TLV_OUTPUT                    \
                                  NOTES$K_CLASS_NAME                 \
                                  ...                                 \
                              NOTES$K_STATUS                           \ This may be repeated
                                                                       /
                              NOTES$K_ENTRY_NAME  > repeated          /
                                                                     /
                              NOTES$K_STATUS                        /

                  The first NOTES$K_STATUS shown above is for the NOTES$K_
                  CLASS_GET operation, and the second is for the final (unsuc-
                  cessful) NOTES$K_CLASS_GET_ENTRY done for each class.

                  NOTES$K_ENTRY_GET = 42

                  In a NOTES$K_ENTRY_GET request a client may specify one of
                  two hints, NOTES$K_ENTRY_HINT_GET_CLASS or NOTES$K_ENTRY_
                  HINT_GET_KEYWORD, but not both.

                  If NOTES$K_ENTRY_HINT_GET_CLASS is specified, then for each
                  entry, the server does a NOTES$K_ENTRY_GET_CLASS and sends
                  the results in its response.
















               9-14  VAX Notes Network Protocol

 











                          ENTRY_GET (from server to client)

                              NOTES$K_TLV_OUTPUT                    \
                                  NOTES$K_ENTRY_NAME                 \
                                  ...                                 \
                              NOTES$K_STATUS                           \ This may be repeated
                                                                       /
                              NOTES$K_CLASS_NAME   > repeated         /
                                                                     /
                              NOTES$K_STATUS                        /

                  If NOTES$K_ENTRY_HINT_GET_KEYWORD is specified, then for each
                  entry, the server does a NOTES$K_ENTRY_GET_KEYWORD and sends
                  the results in its response.

                          ENTRY_GET (from server to client)

                              NOTES$K_TLV_OUTPUT                    \
                                  NOTES$K_ENTRY_NAME                 \
                                  ...                                 \
                              NOTES$K_STATUS                           \ This may be repeated
                                                                       /
                              NOTES$K_KEYWORD_NAME   > repeated       /
                                                                     /
                              NOTES$K_STATUS                        /

                  NOTES$K_NOTE_GET = 21

                  This is requested as described above. The server's response
                  may include multiple NOTES$K_TLV_OUTPUT TLVs, one for each
                  note found/selected.

                  If the NOTES$K_NOTE_GET request includes a NOTES$K_NOTE_HINT_
                  GET_KEYWORD TLV in its NOTES$K_TLV_INPUT TLV, then for each
                  note, the server does NOTES$K_NOTE_GET_KEYWORD operations and
                  sends the resulting keywords in its response. If the request
                  includes a NOTES$K_NOTE_HINT_GET_TEXT TLV, then for each
                  note, the server does NOTES$K_NOTE_GET_TEXT operations, and
                  sends the results in its response. The two hints cannot be
                  specified together.





                                               VAX Notes Network Protocol  9-15

 











                  If NOTES$K_NOTE_GET_KEYWORD is specified:

                          NOTE_GET (from server to client)

                              NOTES$K_TLV_OUTPUT                    \
                                  NOTES$K_NOTE_UID                   \
                                  ...                                 \
                              NOTES$K_STATUS                           \ This may be repeated
                                                                       /
                              NOTES$K_KEYWORD_NAME   > repeated       /
                                                                     /
                              NOTES$K_STATUS                        /

                  If NOTES$K_NOTE_GET_TEXT is specified:

                          NOTE_GET (from server to client)

                              NOTES$K_TLV_OUTPUT                  \
                                  NOTES$K_NOTE_UID                 \
                                  ...                               \
                              NOTES$K_STATUS                         \
                                                                      > This may be repeated
                              NOTES$K_TEXT_TYPE      \ repeated      /
                              NOTES$K_TEXT_STRING    /              /
                                                                   /
                              NOTES$K_STATUS                      /

                  The NOTES$K_TEXT_TYPE may be absent, since early versions of
                  VAX Notes (prior to protocol 2/3) did not include it.

                  The first NOTES$K_STATUS shown above (in each diagram) is
                  for the NOTES$K_NOTE_GET operation, and the second is for
                  the final (unsuccessful) NOTES$K_NOTE_GET_KEYWORD or NOTES$K_
                  NOTE_GET_TEXT operation done for each note.

                  If NOTES$K_NOTE_SEARCH_STRING is specified with NOTES$K_
                  NOTE_GET_TEXT, then the server empties/sends its buffer at
                  the end of each note, rather than waiting until the buffer
                  fills. This is consistent with the protocol, and gives better
                  user-perceived performance, as the results of a long-lasting
                  SEARCH command are sent to the client as soon as they are
                  available, rather than being further delayed until the buffer
                  is full or all the notes have been searched.


               9-16  VAX Notes Network Protocol

 











                  NOTES$K_NOTE_ADD_TEXT = 19

                  To reduce the number of packets sent when a user writes a
                  note, the client can specify multiple lines of text within a
                  single message.

                          NOTE_ADD_TEXT (from client to server)

                              NOTES$K_NOTE_ADD_TEXT
                                  NOTES$K_TEXT_STRING      \ repeatable
                                  NOTES$K_TEXT_TYPE        / in any order
                                  NOTES$K_TEXT_END

                          NOTE_ADD_TEXT (from server to client)

                              NOTES$K_NOTE_ADD_TEXT
                                  NOTES$K_STATUS

                  NOTES$K_MORE = 2

                  If a message overflows the buffer size (currently 1024
                  bytes), then the buffer/packet is sent with the EOM bit
                  clear. The other process can request more (with a NOTES$K_
                  MORE message), and the next packet continues (after the ini-
                  tial two bytes) where the previous one left off.

                  The MORE message itself is also sent with the EOM bit clear.


















                                               VAX Notes Network Protocol  9-17

 











                          MORE (from client to server)

                              NOTES$K_MORE
                                  NOTES$K_REQUEST_CONTEXT           Longword context of the request

                  NOTES$K_CANCEL_REQUEST = 135

                  NOTES$K_REQUEST_CANCELLED = 136

                  Some server operations may take a long time. To cancel an
                  operation, the client sends a CANCEL_REQUEST message. In
                  response, the server cancels the current operation, and sends
                  back a REQUEST_CANCELLED message. The client should read
                  until it sees the REQUEST_CANCELLED message, since it is
                  possible that the server did not receive the CANCEL_REQUEST
                  message until after it sent its previous response.

                          CANCEL_REQUEST (from client to server)

                              NOTES$K_CANCEL_REQUEST                (with Length 0)

                          CANCEL_REQUEST (from server to client)

                              NOTES$K_REQUEST_CANCELLED             (with Length 0)





















               9-18  VAX Notes Network Protocol

 

















                                                                        Part II
                                                  VAX Notes Routines Dictionary
               ________________________________________________________________

 











                                                                NOTES$CLASS_ADD



               ________________________________________________________________

               NOTES$CLASS_ADD

                  Creates a class record if the entry name is missing. If the
                  entry name is specified, NOTES$CLASS_ADD adds that entry to
                  the class.

               ____________________________________________________________

               Format

                  NOTES$CLASS_ADD  (context,input-item-list

                                        [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the class context
                  returned by NOTES$CLASS_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_CLASS_NAME is required. All the
                  others are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_USER_AREA
                     NOTES$K_ENTRY_NAME

                                                                              3

 











               NOTES$CLASS_ADD



                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$CLASS_ADD routine creates a class record if the
                  entry name is missing. If the entry name is specified,
                  NOTES$CLASS_ADD adds that entry to the class.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

               4

 











                                                                NOTES$CLASS_ADD


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
































                                                                              5

 











               NOTES$CLASS_BEGIN



               ________________________________________________________________

               NOTES$CLASS_BEGIN

                  Creates and initializes the class context for later calls to
                  NOTES$CLASS_xxx routines.

               ____________________________________________________________

               Format

                  NOTES$CLASS_BEGIN  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that will receive class context
                  information.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_NOTEFILE_CONTEXT is required. The
                  other is optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_CONTEXT

               6

 











                                                              NOTES$CLASS_BEGIN



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$CLASS_BEGIN routine creates and initializes the
                  class context for later calls to NOTES$CLASS_xxx routines.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


                                                                              7

 











               NOTES$CLASS_BEGIN


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


































               8

 











                                                             NOTES$CLASS_DELETE



               ________________________________________________________________

               NOTES$CLASS_DELETE

                  Deletes the class record if the entry name is missing. If
                  the entry name is specified, NOTES$CLASS_DELETE deletes that
                  entry from the class.

               ____________________________________________________________

               Format

                  NOTES$CLASS_DELETE  (context,input-item-list

                                           [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the class context
                  returned by NOTES$CLASS_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_CLASS_NAME is required. All the
                  others are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_DELIFO
                     NOTES$K_ENTRY_NAME

                                                                              9

 











               NOTES$CLASS_DELETE



                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$CLASS_DELETE routine deletes the class record if
                  the entry name is missing. If the entry name is specified,
                  NOTES$CLASS_DELETE deletes that entry from the class.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

               10

 











                                                             NOTES$CLASS_DELETE


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
































                                                                             11

 











               NOTES$CLASS_END



               ________________________________________________________________

               NOTES$CLASS_END

                  Deletes or deallocates the class context.

               ____________________________________________________________

               Format

                  NOTES$CLASS_END  (context[,input-item-list]

                                        [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the class context
                  returned by NOTES$CLASS_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of the following single, optional
                  item code:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

               12

 











                                                                NOTES$CLASS_END




                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$CLASS_END routine deletes or deallocates the class
                  context. The context longword is zeroed.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?



                                                                             13

 











               NOTES$CLASS_END


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?_____________________________________________________






































               14

 











                                                                NOTES$CLASS_GET



               ________________________________________________________________

               NOTES$CLASS_GET

                  Gets information about a class or, if NOTES$K_CONTINUE was
                  specified, the next class.

               ____________________________________________________________

               Format

                  NOTES$CLASS_GET  (context,input-item-list

                                        [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the class context
                  returned by NOTES$CLASS_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_CLASS_NAME is required. All the
                  others are optional.

                     NOTES$K_CLASS_HINT_GET_ENTRY
                     NOTES$K_CLASS_NAME
                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL

                                                                             15

 











               NOTES$CLASS_GET



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$CLASS_GET routine gets information about a class
                  or, if NOTES$K_CONTINUE was specified, the next class.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               16

 











                                                                NOTES$CLASS_GET


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


































                                                                             17

 











               NOTES$CLASS_GET_ENTRY



               ________________________________________________________________

               NOTES$CLASS_GET_ENTRY

                  Gets information about entries belonging to the class spec-
                  ified by the most recent NOTES$CLASS_GET call for this con-
                  text.

               ____________________________________________________________

               Format

                  NOTES$CLASS_GET_ENTRY  (context,input-item-list

                                              [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the class context
                  returned by NOTES$CLASS_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or both item codes from the
                  following list. Both are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL

               18

 











                                                          NOTES$CLASS_GET_ENTRY



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_USER_AREA
                     NOTES$K_ENTRY_NAME

               ____________________________________________________________

               Description

                  The NOTES$CLASS_GET_ENTRY routine gets information about
                  entries belonging to the class specified by the most recent
                  NOTES$CLASS_GET call for this context.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


                                                                             19

 











               NOTES$CLASS_GET_ENTRY


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
































               20

 











                                                             NOTES$CLASS_MODIFY



               ________________________________________________________________

               NOTES$CLASS_MODIFY

                  Modifies information stored for a class.

               ____________________________________________________________

               Format

                  NOTES$CLASS_MODIFY  (context,input-item-list

                                           [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the class context
                  returned by NOTES$CLASS_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_CLASS_NAME is required. All the
                  others are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_NEW_NAME
                     NOTES$K_CLASS_USER_AREA
                     NOTES$K_NOSIGNAL

                                                                             21

 











               NOTES$CLASS_MODIFY



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CLASS_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$CLASS_MODIFY routine modifies the information
                  stored for a class.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               22

 











                                                             NOTES$CLASS_MODIFY


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


































                                                                             23

 











               NOTES$ENTRY_ADD



               ________________________________________________________________

               NOTES$ENTRY_ADD

                  Adds an entry to the specified class.

               ____________________________________________________________

               Format

                  NOTES$ENTRY_ADD  (context,input-item-list

                                        [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the entry context
                  returned by NOTES$ENTRY_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_ENTRY_NAME and NOTES$K_NOTEFILE_FILE_
                  NAME are required. All the others are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOSIGNAL

               24

 











                                                                NOTES$ENTRY_ADD



                     NOTES$K_NOTE_BEFORE_TIME
                     NOTES$K_NOTE_SINCE_TIME
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP


                                                                             25

 











               NOTES$ENTRY_ADD



               ____________________________________________________________

               Description

                  The NOTES$ENTRY_ADD routine adds an entry to the specified
                  class.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________








               26

 











                                                              NOTES$ENTRY_BEGIN



               ________________________________________________________________

               NOTES$ENTRY_BEGIN

                  Creates and initializes the entry context for later calls to
                  NOTES$ENTRY_xxx routines.

               ____________________________________________________________

               Format

                  NOTES$ENTRY_BEGIN  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that will receive entry context
                  information.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_NOTEFILE_CONTEXT is required. The
                  other is optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_CONTEXT

                                                                             27

 











               NOTES$ENTRY_BEGIN



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$ENTRY_BEGIN routine creates and initializes the
                  entry context for later calls to NOTES$ENTRY_xxx routines.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?


               28

 











                                                              NOTES$ENTRY_BEGIN


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________




















                                                                             29

 











               NOTES$ENTRY_DELETE



               ________________________________________________________________

               NOTES$ENTRY_DELETE

                  Deletes the entry record.

               ____________________________________________________________

               Format

                  NOTES$ENTRY_DELETE  (context,input-item-list

                                           [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the entry context
                  returned by NOTES$ENTRY_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_ENTRY_NAME is required. All the
                  others are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_DELIFO
                     NOTES$K_ENTRY_NAME
                     NOTES$K_NOSIGNAL

               30

 











                                                             NOTES$ENTRY_DELETE



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$ENTRY_DELETE routine deletes the entry record.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?



                                                                             31

 











               NOTES$ENTRY_DELETE


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________




















               32

 











                                                                NOTES$ENTRY_END



               ________________________________________________________________

               NOTES$ENTRY_END

                  Deletes or deallocates the entry context.

               ____________________________________________________________

               Format

                  NOTES$ENTRY_END  (context[,input-item-list]

                                        [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the entry context
                  returned by NOTES$ENTRY_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of the following, optional item code:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                                                                             33

 











               NOTES$ENTRY_END




                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$ENTRY_END routine deletes or deallocates the entry
                  context. The context longword is zeroed.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?



               34

 











                                                                NOTES$ENTRY_END


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
























                                                                             35

 











               NOTES$ENTRY_GET



               ________________________________________________________________

               NOTES$ENTRY_GET

                  Gets information from the entry record.

               ____________________________________________________________

               Format

                  NOTES$ENTRY_GET  (context,input-item-list

                                        [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the entry context
                  returned by NOTES$ENTRY_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_ENTRY_NAME is required. All the
                  others are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CONTINUE
                     NOTES$K_ENTRY_HINT_GET_CLASS
                     NOTES$K_ENTRY_HINT_GET_KEYWORD
                     NOTES$K_ENTRY_NAME

               36

 











                                                                NOTES$ENTRY_GET



                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$ENTRY_GET routine gets information from the entry
                  record.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?


                                                                             37

 











               NOTES$ENTRY_GET


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


















               38

 











                                                          NOTES$ENTRY_GET_CLASS



               ________________________________________________________________

               NOTES$ENTRY_GET_CLASS

                  Gets information about the classes to which an entry belongs
                  (the entry specified by the most recent NOTES$ENTRY_GET call
                  for the context).

               ____________________________________________________________

               Format

                  NOTES$ENTRY_GET_CLASS  (context,input-item-list

                                              [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the entry context
                  returned by NOTES$ENTRY_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. Both are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL

                                                                             39

 











               NOTES$ENTRY_GET_CLASS



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$ENTRY_GET_CLASS routine gets information about the
                  classes to which an entry belongs (the entry specified by the
                  most recent NOTES$ENTRY_GET call for the context).

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?


               40

 











                                                          NOTES$ENTRY_GET_CLASS


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


















                                                                             41

 











               NOTES$ENTRY_GET_KEYWORD



               ________________________________________________________________

               NOTES$ENTRY_GET_KEYWORD

                  Gets information about keywords or markers for an entry.

               ____________________________________________________________

               Format

                  NOTES$ENTRY_GET_KEYWORD  (context,input-item-list

                                                [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the entry context
                  returned by NOTES$ENTRY_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. Both are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL



               42

 











                                                        NOTES$ENTRY_GET_KEYWORD



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_KEYWORD_NAME
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$ENTRY_GET_KEYWORD routine gets information about
                  keywords or markers for an entry.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?



                                                                             43

 











               NOTES$ENTRY_GET_KEYWORD


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


















               44

 











                                                             NOTES$ENTRY_MODIFY



               ________________________________________________________________

               NOTES$ENTRY_MODIFY

                  Modifies the information stored for an entry.

               ____________________________________________________________

               Format

                  NOTES$ENTRY_MODIFY  (context,input-item-list

                                           [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the entry context
                  returned by NOTES$ENTRY_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional. NOTES$K_ENTRY_NAME is
                  required. All the others are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_NEW_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOSIGNAL

                                                                             45

 











               NOTES$ENTRY_MODIFY



                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN MAP

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP




               46

 











                                                             NOTES$ENTRY_MODIFY



               ____________________________________________________________

               Description

                  The NOTES$ENTRY_MODIFY routine modifies the information
                  stored for an entry.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________








                                                                             47

 











               NOTES$ENTRY_UPDATE



               ________________________________________________________________

               NOTES$ENTRY_UPDATE

                  Updates statistics for an entry (or entries, if wildcards are
                  used).

               ____________________________________________________________

               Format

                  NOTES$ENTRY_UPDATE  (context,input-item-list

                                           [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the entry context
                  returned by NOTES$ENTRY_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_ENTRY_NAME is required. All the
                  others are optional.

                     NOTES$K_CLASS_NAME
                     NOTES$K_CONTINUE
                     NOTES$K_ENTRY_NAME
                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_DEFAULT_NAME

               48

 











                                                             NOTES$ENTRY_UPDATE



                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_RELATED_NAME

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_LAST_STATUS
                     NOTES$K_ENTRY_NAME
                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_ENTRY_UNSEEN_EST
                     NOTES$K_ENTRY_USER_AREA
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$ENTRY_UPDATE routine updates statistics for an
                  entry (or entries, if wildcards are used).

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                                                                             49

 











               NOTES$ENTRY_UPDATE


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


















               50

 











                                                              NOTES$KEYWORD_ADD



               ________________________________________________________________

               NOTES$KEYWORD_ADD

                  Creates a keyword record if both the entry name and the note-
                  ID are missing; creates a keyword reference if either the
                  entry name or the note-ID is specified.

               ____________________________________________________________

               Format

                  NOTES$KEYWORD_ADD  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the keyword context
                  returned by NOTES$KEYWORD_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_KEYWORD_NAME is required. All the
                  others are optional.

                     NOTES$K_ENTRY_NAME
                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_USER_AREA
                     NOTES$K_NOSIGNAL

                                                                             51

 











               NOTES$KEYWORD_ADD



                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_UID
                     NOTES$K_UNIENTRY

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$KEYWORD_ADD routine creates a keyword record if
                  both the entry name and the note-ID are missing; it creates a
                  keyword reference if either the entry name or the note-ID is
                  specified. If the entry name is not specified, it also adds
                  the reference to the note (if specified).

                  Note that this routine and all other keyword routines are
                  used for markers as well as keywords.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               52

 











                                                              NOTES$KEYWORD_ADD


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
























                                                                             53

 











               NOTES$KEYWORD_BEGIN



               ________________________________________________________________

               NOTES$KEYWORD_BEGIN

                  Creates and initializes the keyword context for later calls
                  to NOTES$KEYWORD_xxx routines.

               ____________________________________________________________

               Format

                  NOTES$KEYWORD_BEGIN  (context,input-item-list

                                            [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that will receive keyword context
                  information.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_NOTEFILE_CONTEXT is required. The
                  other is optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_CONTEXT

               54

 











                                                            NOTES$KEYWORD_BEGIN



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$KEYWORD_BEGIN routine creates and initializes
                  the keyword context for later calls to NOTES$KEYWORD_xxx
                  routines.

                  Note that this routine and all other keyword routines are
                  used for markers as well as keywords.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


                                                                             55

 











               NOTES$KEYWORD_BEGIN


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________






























               56

 











                                                           NOTES$KEYWORD_DELETE



               ________________________________________________________________

               NOTES$KEYWORD_DELETE

                  Deletes a keyword record if neither the entry name nor the
                  note-ID is specified. If either the entry name or the note-ID
                  is specified, this routine deletes the keyword reference;
                  and if the entry name is not specified and the note-ID is
                  specified, it also deletes the keyword reference from the
                  note.

               ____________________________________________________________

               Format

                  NOTES$KEYWORD_DELETE  (context,input-item-list

                                             [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the keyword context
                  returned by NOTES$KEYWORD_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_KEYWORD_NAME is required. All the
                  others are optional.

                     NOTES$K_ENTRY_NAME

                                                                             57

 











               NOTES$KEYWORD_DELETE



                     NOTES$K_KEYWORD_NAME
                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_UID

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$KEYWORD_DELETE routine deletes a keyword record
                  if neither the entry name nor the note-ID is specified. If
                  either the entry name or the note-ID is specified, this
                  routine deletes the keyword reference; and if the entry
                  name is not specified and the note-ID is specified, it also
                  deletes the keyword reference from the note.

                  Note that this routine and all other keyword routines are
                  used for markers as well as keywords.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               58

 











                                                           NOTES$KEYWORD_DELETE


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________






















                                                                             59

 











               NOTES$KEYWORD_END



               ________________________________________________________________

               NOTES$KEYWORD_END

                  Deletes or deallocates the keyword context.

               ____________________________________________________________

               Format

                  NOTES$KEYWORD_END  (context[,input-item-list]

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the keyword context
                  returned by NOTES$KEYWORD_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of the following, optional item code:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

               60

 











                                                              NOTES$KEYWORD_END




                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$KEYWORD_END routine deletes or deallocates the
                  keyword context. The context longword is zeroed.

                  Note that this routine and all other keyword routines are
                  used for markers as well as keywords.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


                                                                             61

 











               NOTES$KEYWORD_END


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?_____________________________________________________




































               62

 











                                                              NOTES$KEYWORD_GET



               ________________________________________________________________

               NOTES$KEYWORD_GET

                  Gets information about keywords or markers.

               ____________________________________________________________

               Format

                  NOTES$KEYWORD_GET  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the keyword context
                  returned by NOTES$KEYWORD_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional. NOTES$K_KEYWORD_NAME is
                  required. All the others are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_ENTRY_NAME
                     NOTES$K_KEYWORD_HINT_GET_NOTE
                     NOTES$K_KEYWORD_NAME
                     NOTES$K_NOSIGNAL

                                                                             63

 











               NOTES$KEYWORD_GET



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$KEYWORD_GET routine gets information about keywords
                  or markers.

                  Note that this routine and all other keyword routines are
                  used for markers as well as keywords.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

               64

 











                                                              NOTES$KEYWORD_GET


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
































                                                                             65

 











               NOTES$KEYWORD_GET_NOTE



               ________________________________________________________________

               NOTES$KEYWORD_GET_NOTE

                  Gets information about notes referenced by a keyword (the
                  keyword specified by the most recent NOTES$KEYWORD_GET call
                  for this context) or by a marker.

               ____________________________________________________________

               Format

                  NOTES$KEYWORD_GET_NOTE  (context,input-item-list

                                               [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the keyword context
                  returned by NOTES$KEYWORD_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. Both are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL

               66

 











                                                         NOTES$KEYWORD_GET_NOTE



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_NAME
                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_USER_AREA
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_UID

               ____________________________________________________________

               Description

                  The NOTES$KEYWORD_GET_NOTE routine gets information about
                  notes referenced by a keyword (the keyword specified by the
                  most recent NOTES$KEYWORD_GET call for this context) or by a
                  marker.

                  Note that this routine and all other keyword routines are
                  used for markers as well as keywords.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


                                                                             67

 











               NOTES$KEYWORD_GET_NOTE


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


























               68

 











                                                           NOTES$KEYWORD_MODIFY



               ________________________________________________________________

               NOTES$KEYWORD_MODIFY

                  Changes a keyword name.

               ____________________________________________________________

               Format

                  NOTES$KEYWORD_MODIFY  (context,input-item-list

                                             [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the keyword context
                  returned by NOTES$KEYWORD_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_KEYWORD_NAME is required. All the
                  others are optional.

                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_NEW_NAME
                     NOTES$K_KEYWORD_USER_AREA
                     NOTES$K_NOSIGNAL

                                                                             69

 











               NOTES$KEYWORD_MODIFY



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. Both are optional.

                     NOTES$K_KEYWORD_NAME
                     NOTES$K_KEYWORD_USER_AREA

               ____________________________________________________________

               Description

                  The NOTES$KEYWORD_MODIFY routine changes a keyword name.
                  References are created and deleted by calls to the NOTES$KEYWORD_
                  ADD and NOTES$KEYWORD_DELETE routines.

                  If the keyword_new_name does not exist, NOTES$KEYWORD_MODIFY
                  udates the keyword record. Otherwise, the routine effectively
                  uses NOTES$KEYWORD_GET, NOTES$KEYWORD_ADD, and NOTES$KEYWORD_
                  DELETE to copy all references from the keyword_name to the
                  keyword_new_name, and then deletes the keyword_name record.

                  Note that this routine and all other keyword routines are
                  used for markers as well as keywords.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               70

 











                                                           NOTES$KEYWORD_MODIFY


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
























                                                                             71

 











               NOTES$NOTEFILE_BEGIN



               ________________________________________________________________

               NOTES$NOTEFILE_BEGIN

                  Initiates access to a notefile (conference or Notebook).

               ____________________________________________________________

               Format

                  NOTES$NOTEFILE_BEGIN  (context,input-item-list

                                             [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that will receive notefile context
                  information (as described in the Description section).

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_NOTEFILE_FILE_NAME is required. All
                  the others are optional.

                     NOTES$K_ENTRY_OBJECT_NAME
                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_CREATE
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_MODERATE

               72

 











                                                           NOTES$NOTEFILE_BEGIN



                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_RELATED_NAME
                     NOTES$K_NOTEFILE_REPLY_ONLY
                     NOTES$K_SEEN_MAP
                     NOTES$K_USER_CREATE_KEYWORD

                  The following item codes are allowed as input items when
                  NOTES$K_NOTEFILE_CREATE is passed to the NOTES$NOTEFILE_BEGIN
                  routine.

                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_RESTRICTED
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_NOTEFILE_USER_AREA
                     NOTES$K_NOTEFILE_WRITELOCK
                     NOTES$K_USER_MODERATE

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_OBJECT_SPEC
                     NOTES$K_NOTEFILE_CREATE_TIME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FORMAT
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_REPLY_ONLY
                     NOTES$K_NOTEFILE_RESTRICTED
                     NOTES$K_NOTEFILE_RESULT_SPEC
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_NOTEFILE_USER_AREA
                     NOTES$K_NOTEFILE_WRITELOCK

                                                                             73

 











               NOTES$NOTEFILE_BEGIN



                     NOTES$K_SEEN_MAP
                     NOTES$K_SERVER_MAX_ITEM
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MODERATE

               ____________________________________________________________

               Description

                  The NOTES$NOTEFILE_BEGIN routine initiates access to a note-
                  file. It creates the notefile if so directed, and opens the
                  file for access by other routines. It creates and initializes
                  the notefile context for later calls to NOTES$NOTEFILE_xxx
                  routines, as follows:

                  The context argument is the address of a longword that will
                  receive context information. Before the call, you must set
                  the value of this longword to zero. The routine then stores
                  a nonzero context value in the longword. This value can be
                  passed to other operations. The longword must not be modified
                  by the caller. A call to the NOTES$NOTEFILE_END routine
                  releases the context and resets the longword to zero.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_ ??            Invalid entry name    Error

                  NOTES$_FAILGETVM      Failure to get        Error
                                        virtual memory

                  NOTES$_MISREQITM      Required input item   Error
                                        missing

                  NOTES$_WRONGCTX       Context argument      Error
                                        with nonzero value

                  MORE_TBS_____________________________________________________



               74

 











                                                           NOTES$NOTEFILE_BEGIN



               Example 1:
               ________________________________________________________________

               IF NOT notebook_open_flag THEN
                     inp_index = inp_initial
                     CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len)
                     CALL ITEM_LIST (inp_index,notes$k_notefile_file_name,notebook_name,default_len)
                     CALL ITEM_LIST (inp_index,notes$k_notefile_default_name,notebook_default    &
                                                      ,default_len)
                     ret_status = NOTES$NOTEFILE_BEGIN (notebook_l_ctx,inp_list,no_list)
                     GOTO 2005 UNLESS (ret_status AND ss$_normal)
               ! Prepare for getting notebook entry info
                     CALL ITEM_LIST (minus_1,notes$k_notefile_context,notebook_ctx,default_len)
                     ret_status = NOTES$ENTRY_BEGIN (entry_l_ctx,one_list,no_list)
                     notebook_open_flag = minus_1
               END IF

               ________________________________________________________________

                  This excerpt from a program in BASIC shows a call to
                  NOTES$NOTEFILE_BEGIN in preparation for getting information
                  on a Notebook entry.



















                                                                             75

 











               NOTES$NOTEFILE_END



               ________________________________________________________________

               NOTES$NOTEFILE_END

                  Deletes or deallocates notefile context.

               ____________________________________________________________

               Format

                  NOTES$NOTEFILE_END  (context[,input-item-list]

                                           [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that that contains the notefile
                  context returned by NOTES$NOTEFILE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of a single, optional item:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

               76

 











                                                             NOTES$NOTEFILE_END




                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_OBJECT_SPEC
                     NOTES$K_NOTEFILE_CREATE_TIME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FORMAT
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_REPLY_ONLY
                     NOTES$K_NOTEFILE_RESTRICTED
                     NOTES$K_NOTEFILE_RESULT_SPEC
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_NOTEFILE_USER_AREA
                     NOTES$K_NOTEFILE_WRITELOCK
                     NOTES$K_SEEN_MAP
                     NOTES$K_SERVER_MAX_ITEM
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MODERATE

               ____________________________________________________________

               Description

                  The NOTES$NOTEFILE_END routine deletes or deallocates a note-
                  file context. This routine is used to terminate access to a
                  notefile. All dynamic memory allocated by the NOTES$ routines
                  when accessing the notefile (including CLASS, ENTRY, KEYWORD,
                  PROFILE, and USER access) is deallocated. The context long-
                  word is zeroed.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?


                                                                             77

 











               NOTES$NOTEFILE_END


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


















               78

 











                                                        NOTES$NOTEFILE_GET_INFO



               ________________________________________________________________

               NOTES$NOTEFILE_GET_INFO

                  Obtains information about a notefile.

               ____________________________________________________________

               Format

                  NOTES$NOTEFILE_GET_INFO  (context,input-item-list

                                                [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the notefile context
                  returned by NOTES$NOTEFILE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of a single, optional item code:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                                                                             79

 











               NOTES$NOTEFILE_GET_INFO




                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_OBJECT_SPEC
                     NOTES$K_NOTEFILE_CREATE_TIME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FORMAT
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_REPLY_ONLY
                     NOTES$K_NOTEFILE_RESTRICTED
                     NOTES$K_NOTEFILE_RESULT_SPEC
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_NOTEFILE_USER_AREA
                     NOTES$K_NOTEFILE_WRITELOCK
                     NOTES$K_SEEN_MAP
                     NOTES$K_SERVER_MAX_ITEM
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MODERATE

               ____________________________________________________________

               Description

                  The NOTES$NOTEFILE_GET_INFO routine obtains information about
                  a notefile.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               80

 











                                                        NOTES$NOTEFILE_GET_INFO


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________






















                                                                             81

 











               NOTES$NOTEFILE_LIST



               ________________________________________________________________

               NOTES$NOTEFILE_LIST

                  Collects information on a selected group of notefiles.

               ____________________________________________________________

               Format

                  NOTES$NOTEFILE_LIST  (context,input-item-list

                                            [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that that contains the notefile
                  context returned by NOTES$NOTEFILE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of a single, optional item code:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

               82

 











                                                            NOTES$NOTEFILE_LIST




                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_OBJECT_SPEC
                     NOTES$K_NOTEFILE_CREATE_TIME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FORMAT
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_REPLY_ONLY
                     NOTES$K_NOTEFILE_RESTRICTED
                     NOTES$K_NOTEFILE_RESULT_SPEC
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_NOTEFILE_USER_AREA
                     NOTES$K_NOTEFILE_WRITELOCK
                     NOTES$K_SEEN_MAP
                     NOTES$K_SERVER_MAX_ITEM
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MODERATE

               ____________________________________________________________

               Description

                  The NOTES$NOTEFILE_LIST routine collects information on
                  a selected group of notefiles. The NOTES$NOTEFILE_LIST_
                  BEGIN routine must be called before the NOTES$NOTEFILE_LIST
                  routine. You specify the filenames in the NOTES$NOTEFILE_
                  LIST_BEGIN routine, and collect the information on successive
                  calls to NOTES$NOTEFILE_LIST until the status NOTES$_NMF is
                  returned.

                  Any output item codes specified in the call to the NOTES$NOTEFILE_
                  LIST routine must also be specified in the call to the
                  NOTES$NOTEFILE_LIST_BEGIN routine for correct operation on
                  remote conference directories.

                                                                             83

 











               NOTES$NOTEFILE_LIST





                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________













               84

 











                                                      NOTES$NOTEFILE_LIST_BEGIN



               ________________________________________________________________

               NOTES$NOTEFILE_LIST_BEGIN

                  Initiates the process of collecting notefile names for a
                  directory listing of conferences.

               ____________________________________________________________

               Format

                  NOTES$NOTEFILE_LIST_BEGIN  (context,input-item-list

                                                  [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the notefile context
                  returned by NOTES$NOTEFILE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_NOTEFILE_FILE_NAME is required. All
                  the others are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_DEFAULT_NAME
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_RELATED_NAME

                                                                             85

 











               NOTES$NOTEFILE_LIST_BEGIN



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_OBJECT_SPEC
                     NOTES$K_NOTEFILE_CREATE_TIME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FORMAT
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_REPLY_ONLY
                     NOTES$K_NOTEFILE_RESTRICTED
                     NOTES$K_NOTEFILE_RESULT_SPEC
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_NOTEFILE_USER_AREA
                     NOTES$K_NOTEFILE_WRITELOCK
                     NOTES$K_SEEN_MAP
                     NOTES$K_SERVER_MAX_ITEM
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MODERATE

               ____________________________________________________________

               Description

                  The NOTES$NOTEFILE_LIST_BEGIN routine initiates the process
                  of collecting notefile names, for a directory listing of
                  conferences. You call the NOTES$NOTEFILE_LIST_BEGIN routine
                  with the file specification, default file specification, and
                  related file specification. It performs the initialization.
                  After a successful call to NOTES$NOTEFILE_LIST_BEGIN you call
                  NOTES$NOTEFILE_LIST until the status NOTES$_NMF is returned.

               86

 











                                                      NOTES$NOTEFILE_LIST_BEGIN



                  For server performance considerations, in the output item
                  list for the NOTES$NOTEFILE_LIST_BEGIN routine you must
                  specify all the items that you specify in the call to
                  NOTES$NOTEFILE_LIST. However, the items are not returned
                  on the call to the NOTES$NOTEFILE_LIST_BEGIN routine.


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________








                                                                             87

 











               NOTES$NOTEFILE_MODIFY



               ________________________________________________________________

               NOTES$NOTEFILE_MODIFY

                  Updates or changes notefile-level information, such as the
                  title, notice of the day, and moderator.

               ____________________________________________________________

               Format

                  NOTES$NOTEFILE_MODIFY  (context,input-item-list

                                              [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the notefile context
                  returned by NOTES$NOTEFILE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTE_BEFORE_TIME
                     NOTES$K_NOTE_MARK_SEEN
                     NOTES$K_NOTE_SINCE_TIME
                     NOTES$K_NOTEFILE_MODERATE
                     NOTES$K_NOTEFILE_MODERATOR

               88

 











                                                          NOTES$NOTEFILE_MODIFY



                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_REPLY_ONLY
                     NOTES$K_NOTEFILE_RESTRICTED
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_NOTEFILE_USER_AREA
                     NOTES$K_NOTEFILE_WRITELOCK
                     NOTES$K_SEEN_MAP
                     NOTES$K_USER_CREATE_KEYWORD

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_ENTRY_OBJECT_SPEC
                     NOTES$K_NOTEFILE_CREATE_TIME
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FORMAT
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_MODERATOR
                     NOTES$K_NOTEFILE_NOTICE
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_NOTEFILE_REPLY_ONLY
                     NOTES$K_NOTEFILE_RESTRICTED
                     NOTES$K_NOTEFILE_RESULT_SPEC
                     NOTES$K_NOTEFILE_TITLE
                     NOTES$K_NOTEFILE_USER_AREA
                     NOTES$K_NOTEFILE_WRITELOCK
                     NOTES$K_SEEN_MAP
                     NOTES$K_SERVER_MAX_ITEM
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MODERATE




                                                                             89

 











               NOTES$NOTEFILE_MODIFY



               ____________________________________________________________

               Description

                  The NOTES$NOTEFILE_MODIFY routine updates or changes
                  notefile-level information, such as the title, notice of
                  the day, and moderator.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________







               90

 











                                                                 NOTES$NOTE_ADD



               ________________________________________________________________

               NOTES$NOTE_ADD

                  Adds a new note to a notefile.

               ____________________________________________________________

               Format

                  NOTES$NOTE_ADD  (context,input-item-list

                                       [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$NOTE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_MARK_SEEN
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE

                                                                             91

 











               NOTES$NOTE_ADD



                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_FILE_NAME

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP






               92

 











                                                                 NOTES$NOTE_ADD



               ____________________________________________________________

               Description

                  The NOTES$NOTE_ADD routine adds a new note (either topic
                  or reply) to a notefile. Calls to the NOTES$NOTE_ADD_TEXT
                  routine can then be used to write the text of the note.

                  The BLINK (back-link) item codes, if present, indicate the
                  note to which the reply is being written. If the BLINK item
                  codes are not specified, the note is a topic rather than a
                  reply.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


                                                                             93

 











               NOTES$NOTE_ADD_TEXT



               ________________________________________________________________

               NOTES$NOTE_ADD_TEXT

                  Adds a line of text to the note being written. After all the
                  text has been added by calls to this routine, it should be
                  called again, with the NOTES$K_TEXT_END item code specified.

               ____________________________________________________________

               Format

                  NOTES$NOTE_ADD_TEXT  (context,input-item-list

                                            [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$NOTE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL
                     NOTES$K_TEXT_END
                     NOTES$K_TEXT_STRING

               94

 











                                                            NOTES$NOTE_ADD_TEXT



                     NOTES$K_TEXT_TYPE

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP
                     NOTES$K_TEXT_STRING
                     NOTES$K_TEXT_TYPE






                                                                             95

 











               NOTES$NOTE_ADD_TEXT



               ____________________________________________________________

               Description

                  The NOTES$NOTE_ADD_TEXT routine adds a line of text to the
                  note being written. After all the text has been added by
                  calls to this routine, it should be called again, with the
                  NOTES$K_TEXT_END item code specified.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________






               96

 











                                                               NOTES$NOTE_BEGIN



               ________________________________________________________________

               NOTES$NOTE_BEGIN

                  Initiates note-level access to a currently open notefile.

               ____________________________________________________________

               Format

                  NOTES$NOTE_BEGIN  (context,input-item-list

                                         [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that will receive note context
                  information.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_NOTEFILE_CONTEXT is required. The
                  other is optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_CONTEXT


                                                                             97

 











               NOTES$NOTE_BEGIN



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$NOTE_BEGIN routine initiates note-level access to a
                  currently open notefile. It creates and initializes the note
                  context for later calls to NOTES$NOTE_xxx routines.


               98

 











                                                               NOTES$NOTE_BEGIN



                  The NOTES_NOTE_BEGIN routine must be called before any of the
                  other NOTES$NOTE_xxx routines and after the NOTES$NOTEFILE_
                  BEGIN routine has been called to open the notefile.

                  It is possible to have more than one NOTE_BEGIN/END routine
                  active in the same NOTEFILE_BEGIN/END block.

                  Note that this routine and all other keyword routines are
                  used for markers as well as keywords.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________





                                                                             99

 











               NOTES$NOTE_DELETE



               ________________________________________________________________

               NOTES$NOTE_DELETE

                  Deletes the specified topic or reply.

               ____________________________________________________________

               Format

                  NOTES$NOTE_DELETE  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$NOTE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_UID


               100

 











                                                              NOTES$NOTE_DELETE



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP










                                                                            101

 











               NOTES$NOTE_DELETE



               ____________________________________________________________

               Description

                  The NOTES$NOTE_DELETE routine deletes the specified topic or
                  reply.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________








               102

 











                                                                 NOTES$NOTE_END



               ________________________________________________________________

               NOTES$NOTE_END

                  Deletes or deallocates the note context.

               ____________________________________________________________

               Format

                  NOTES$NOTE_END  (context[,input-item-list]

                                       [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$NOTE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of the following optional item code:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                                                                            103

 











               NOTES$NOTE_END




                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$NOTE_END routine deletes or deallocates the note
                  context. The context longword is zeroed.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?



               104

 











                                                                 NOTES$NOTE_END


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


















                                                                            105

 











               NOTES$NOTE_GET



               ________________________________________________________________

               NOTES$NOTE_GET

                  Retrieves information about a note or sequence of notes.

               ____________________________________________________________

               Format

                  NOTES$NOTE_GET  (context,input-item-list

                                       [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$NOTE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_KEYWORD_NAME
                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTE_ALL_RESPONSES
                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BACK_NOTE
                     NOTES$K_NOTE_BACK_RESPONSE

               106

 











                                                                 NOTES$NOTE_GET



                     NOTES$K_NOTE_BEFORE_TIME
                     NOTES$K_NOTE_HINT_GET_KEYWORD
                     NOTES$K_NOTE_HINT_GET_TEXT
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_MARK_SEEN
                     NOTES$K_NOTE_NEXT_NOTE
                     NOTES$K_NOTE_NEXT_RESPONSE
                     NOTES$K_NOTE_NEXT_UNSEEN
                     NOTES$K_NOTE_SEARCH_STRING
                     NOTES$K_NOTE_SINCE_TIME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_UNSEEN
                     NOTES$K_NOTE_USER_AREA

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK

                                                                            107

 











               NOTES$NOTE_GET



                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP

               ____________________________________________________________

               Description

                  The NOTES$NOTE_GET routine retrieves information about a
                  note or sequence of notes. It must be called before any calls
                  to the NOTES$NOTE_GET_KEYWORD or the NOTES$NOTE_GET_TEXT
                  routines.

                  The item codes NOTES$K_NOTE_BACK_NOTE, NOTES$K_NOTE_NEXT_
                  NOTE, NOTES$K_NOTE_BACK_RESPONSE, and NOTES$K_NOTE_NEXT_
                  RESPONSE conflict with each other and with all other item
                  codes.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               108

 











                                                                 NOTES$NOTE_GET


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
































                                                                            109

 











               NOTES$NOTE_GET_KEYWORD



               ________________________________________________________________

               NOTES$NOTE_GET_KEYWORD

                  Gets the keywords associated with the current note (the note
                  specified by the last call to the NOTES$NOTE_GET routine).
                  Each call returns one keyword.

               ____________________________________________________________

               Format

                  NOTES$NOTE_GET_KEYWORD  (context,input-item-list

                                               [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$NOTE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. Both are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL

               110

 











                                                         NOTES$NOTE_GET_KEYWORD



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_KEYWORD_NAME
                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP









                                                                            111

 











               NOTES$NOTE_GET_KEYWORD



               ____________________________________________________________

               Description

                  The NOTES$NOTE_GET KEYWORD routine gets the keywords associ-
                  ated with the current note (the note specified by the last
                  call to the NOTES$NOTE_GET routine). Each call returns one
                  keyword.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________






               112

 











                                                            NOTES$NOTE_GET_TEXT



               ________________________________________________________________

               NOTES$NOTE_GET_TEXT

                  Gets the text records associated with the current note (the
                  note specified by the last call to the NOTES$NOTE_GET rou-
                  tine). Each call returns one text record.

               ____________________________________________________________

               Format

                  NOTES$NOTE_GET_TEXT  (context,input-item-list

                                            [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$NOTE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. Both are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL

                                                                            113

 











               NOTES$NOTE_GET_TEXT



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TEXT_STRING
                     NOTES$K_NOTE_TEXT_TYPE
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP








               114

 











                                                            NOTES$NOTE_GET_TEXT



               ____________________________________________________________

               Description

                  The NOTES$NOTE_GET_TEXT routine gets the text records asso-
                  ciated with the current note (the note specified by the last
                  call to the NOTES$NOTE_GET routine). Each call returns one
                  text record.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________






                                                                            115

 











               NOTES$NOTE_MODIFY



               ________________________________________________________________

               NOTES$NOTE_MODIFY

                  Modifies the attributes of a note.

               ____________________________________________________________

               Format

                  NOTES$NOTE_MODIFY  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$NOTE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NEW_ID
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_UID

               116

 











                                                              NOTES$NOTE_MODIFY



                     NOTES$K_NOTE_UNSEEN
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_FILE_NAME

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_NOTE_AUTHOR
                     NOTES$K_NOTE_BLINK_ID
                     NOTES$K_NOTE_BLINK_TITLE
                     NOTES$K_NOTE_BLINK_UID
                     NOTES$K_NOTE_CAN_REPLY
                     NOTES$K_NOTE_CREATE_TIME
                     NOTES$K_NOTE_HIDDEN
                     NOTES$K_NOTE_ID
                     NOTES$K_NOTE_NUMRECORDS
                     NOTES$K_NOTE_NUMRESPONSES
                     NOTES$K_NOTE_PEN_NAME
                     NOTES$K_NOTE_TITLE
                     NOTES$K_NOTE_TYPE
                     NOTES$K_NOTE_UID
                     NOTES$K_NOTE_USER_AREA
                     NOTES$K_NOTE_WRITELOCK
                     NOTES$K_NOTEFILE_ENTRYTOTAL
                     NOTES$K_NOTEFILE_FILE_NAME
                     NOTES$K_NOTEFILE_HIGH_UID
                     NOTES$K_NOTEFILE_LASTREV
                     NOTES$K_NOTEFILE_NUMNOTES
                     NOTES$K_SEEN_MAP





                                                                            117

 











               NOTES$NOTE_MODIFY



               ____________________________________________________________

               Description

                  The NOTES$NOTE_MODIFY routine modifies the attributes of a
                  note.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________








               118

 











                                                            NOTES$PROFILE_BEGIN



               ________________________________________________________________

               NOTES$PROFILE_BEGIN

                  Creates and initializes the profile context for later calls
                  to NOTES$PROFILE_xxx routines.

               ____________________________________________________________

               Format

                  NOTES$PROFILE_BEGIN  (context,input-item-list

                                            [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that will receive profile context
                  information.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_NOTEFILE_CONTEXT is required. The
                  other is optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_CONTEXT

                                                                            119

 











               NOTES$PROFILE_BEGIN



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_PROFILE_AUTO_DIR
                     NOTES$K_PROFILE_AUTO_UNSEEN
                     NOTES$K_PROFILE_CLASS_NAME
                     NOTES$K_PROFILE_EDITOR
                     NOTES$K_PROFILE_EDITOR_SPAWN
                     NOTES$K_PROFILE_PEN_NAME
                     NOTES$K_PROFILE_PRINT

               ____________________________________________________________

               Description

                  The NOTES$PROFILE_BEGIN routine creates and initializes
                  the profile context for later calls to NOTES$PROFILE_xxx
                  routines.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               120

 











                                                            NOTES$PROFILE_BEGIN


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________




























                                                                            121

 











               NOTES$PROFILE_END



               ________________________________________________________________

               NOTES$PROFILE_END

                  Deletes or deallocates the profile context.

               ____________________________________________________________

               Format

                  NOTES$PROFILE_END  (context[,input-item-list]

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the profile context
                  returned by NOTES$PROFILE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of the following, optional item code:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

               122

 











                                                              NOTES$PROFILE_END




                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_PROFILE_AUTO_DIR
                     NOTES$K_PROFILE_AUTO_UNSEEN
                     NOTES$K_PROFILE_CLASS_NAME
                     NOTES$K_PROFILE_EDITOR
                     NOTES$K_PROFILE_EDITOR_SPAWN
                     NOTES$K_PROFILE_PEN_NAME
                     NOTES$K_PROFILE_PRINT

               ____________________________________________________________

               Description

                  The NOTES$PROFILE_END routine deletes or deallocates the
                  profile context. The context longword is zeroed.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


                                                                            123

 











               NOTES$PROFILE_END


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


































               124

 











                                                              NOTES$PROFILE_GET



               ________________________________________________________________

               NOTES$PROFILE_GET

                  Gets the current settings of the personal profile informa-
                  tion.

               ____________________________________________________________

               Format

                  NOTES$PROFILE_GET  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the profile context
                  returned by NOTES$PROFILE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. Both are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_PROFILE_TEMPORARY


                                                                            125

 











               NOTES$PROFILE_GET



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_PROFILE_AUTO_DIR
                     NOTES$K_PROFILE_AUTO_UNSEEN
                     NOTES$K_PROFILE_CLASS_NAME
                     NOTES$K_PROFILE_EDITOR
                     NOTES$K_PROFILE_EDITOR_SPAWN
                     NOTES$K_PROFILE_PEN_NAME
                     NOTES$K_PROFILE_PRINT

               ____________________________________________________________

               Description

                  The NOTES$PROFILE_GET routine gets the current settings of
                  the personal profile information.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?



               126

 











                                                              NOTES$PROFILE_GET


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________




























                                                                            127

 











               NOTES$PROFILE_MODIFY



               ________________________________________________________________

               NOTES$PROFILE_MODIFY

                  Sets or changes personal profile information.

               ____________________________________________________________

               Format

                  NOTES$PROFILE_MODIFY  (context,input-item-list

                                             [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the profile context
                  returned by NOTES$PROFILE_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. All are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_PROFILE_AUTO_DIR
                     NOTES$K_PROFILE_AUTO_UNSEEN
                     NOTES$K_PROFILE_CLASS_NAME
                     NOTES$K_PROFILE_EDITOR
                     NOTES$K_PROFILE_EDITOR_SPAWN
                     NOTES$K_PROFILE_PEN_NAME

               128

 











                                                           NOTES$PROFILE_MODIFY



                     NOTES$K_PROFILE_PRINT
                     NOTES$K_PROFILE_TEMPORARY

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_PROFILE_AUTO_DIR
                     NOTES$K_PROFILE_AUTO_UNSEEN
                     NOTES$K_PROFILE_CLASS_NAME
                     NOTES$K_PROFILE_EDITOR
                     NOTES$K_PROFILE_EDITOR_SPAWN
                     NOTES$K_PROFILE_PEN_NAME
                     NOTES$K_PROFILE_PRINT

               ____________________________________________________________

               Description


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


                                                                            129

 











               NOTES$PROFILE_MODIFY


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________




























               130

 











                                                                 NOTES$USER_ADD



               ________________________________________________________________

               NOTES$USER_ADD

                  Verifies that there is no existing user with the specified
                  user name and node names, and creates a member record for the
                  user.

               ____________________________________________________________

               Format

                  NOTES$USER_ADD  (context,input-item-list

                                       [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$USER_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_USER_NAME is required. All the others
                  are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MAIL_ADDR

                                                                            131

 











               NOTES$USER_ADD



                     NOTES$K_USER_MODERATE
                     NOTES$K_USER_NAME
                     NOTES$K_USER_NODENAME
                     NOTES$K_USER_WRITE_BYPASS

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MAIL_ADDR
                     NOTES$K_USER_MODERATE
                     NOTES$K_USER_NAME
                     NOTES$K_USER_NODENAME
                     NOTES$K_USER_WRITE_BYPASS

               ____________________________________________________________

               Description

                  The NOTES$USER_ADD routine verifies that there is no existing
                  user with the specified user name and node names, and creates
                  a member record for the user.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

               132

 











                                                                 NOTES$USER_ADD


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
























                                                                            133

 











               NOTES$USER_BEGIN



               ________________________________________________________________

               NOTES$USER_BEGIN

                  Creates and initializes the user context for later calls to
                  NOTES$USER_xxx routines.

               ____________________________________________________________

               Format

                  NOTES$USER_BEGIN  (context,input-item-list

                                         [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that will receive user context
                  information.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_NOTEFILE_CONTEXT is required. The
                  other is optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_NOTEFILE_CONTEXT

               134

 











                                                               NOTES$USER_BEGIN



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MAIL_ADDR
                     NOTES$K_USER_MODERATE
                     NOTES$K_USER_NAME
                     NOTES$K_USER_NODENAME
                     NOTES$K_USER_WRITE_BYPASS

               ____________________________________________________________

               Description

                  The NOTES$USER_BEGIN routine creates and initializes the user
                  context for later calls to NOTES$USER_xxx routines.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?



                                                                            135

 











               NOTES$USER_BEGIN


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________




























               136

 











                                                              NOTES$USER_DELETE



               ________________________________________________________________

               NOTES$USER_DELETE

                  Verifies that the specified user exists, and deletes the
                  member record for that user.

               ____________________________________________________________

               Format

                  NOTES$USER_DELETE  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$USER_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_USER_NAME is required. All the others
                  are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_NAME
                     NOTES$K_USER_NODENAME

                                                                            137

 











               NOTES$USER_DELETE



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MAIL_ADDR
                     NOTES$K_USER_MODERATE
                     NOTES$K_USER_NAME
                     NOTES$K_USER_NODENAME
                     NOTES$K_USER_WRITE_BYPASS

               ____________________________________________________________

               Description

                  The NOTES$USER_DELETE routine verifies that the specified
                  user exists, and deletes the member record for that user.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?



               138

 











                                                              NOTES$USER_DELETE


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________




























                                                                            139

 











               NOTES$USER_END



               ________________________________________________________________

               NOTES$USER_END

                  Deletes or deallocates the user context.

               ____________________________________________________________

               Format

                  NOTES$USER_END  (context[,input-item-list]

                                       [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$USER_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of the following optional item code:

                     NOTES$K_NOSIGNAL

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

               140

 











                                                                 NOTES$USER_END




                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MAIL_ADDR
                     NOTES$K_USER_MODERATE
                     NOTES$K_USER_NAME
                     NOTES$K_USER_NODENAME
                     NOTES$K_USER_WRITE_BYPASS

               ____________________________________________________________

               Description

                  The NOTES$USER_END routine deletes or deallocates the user
                  context. The context longword is zeroed.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


                                                                            141

 











               NOTES$USER_END


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________


































               142

 











                                                                 NOTES$USER_GET



               ________________________________________________________________

               NOTES$USER_GET

                  Gets information about users.

               ____________________________________________________________

               Format

                  NOTES$USER_GET  (context,input-item-list

                                       [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$USER_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_USER_NAME is required. All the others
                  are optional.

                     NOTES$K_CONTINUE
                     NOTES$K_NOSIGNAL
                     NOTES$K_USER_MODERATE
                     NOTES$K_USER_NAME

                                                                            143

 











               NOTES$USER_GET



                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MAIL_ADDR
                     NOTES$K_USER_MODERATE
                     NOTES$K_USER_NAME
                     NOTES$K_USER_NODENAME
                     NOTES$K_USER_WRITE_BYPASS

               ____________________________________________________________

               Description

                  The NOTES$USER_GET routine gets information about users.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?


               144

 











                                                                 NOTES$USER_GET


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________






























                                                                            145

 











               NOTES$USER_MODIFY



               ________________________________________________________________

               NOTES$USER_MODIFY

                  Verifies that the specified user exists, and modifies the
                  member record for that user.

               ____________________________________________________________

               Format

                  NOTES$USER_MODIFY  (context,input-item-list

                                          [,output-item-list])

               ____________________________________________________________

               Arguments

                  context
                     VMS Usage: context
                     Type: longword (unsigned)
                     Access: modify
                     Mechanism: by reference

                  The address of a longword that contains the note context
                  returned by NOTES$USER_BEGIN.

                  input-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more item codes from the
                  following list. NOTES$K_USER_NAME is required. All the others
                  are optional.

                     NOTES$K_NOSIGNAL
                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MAIL_ADDR
                     NOTES$K_USER_MODERATE

               146

 











                                                              NOTES$USER_MODIFY



                     NOTES$K_USER_NAME
                     NOTES$K_USER_NEW_NAME
                     NOTES$K_USER_NEW_NODENAME
                     NOTES$K_USER_NODENAME
                     NOTES$K_USER_WRITE_BYPASS

                  output-item-list
                     VMS Usage: item_list_3
                     Type: longword (unsigned)
                     Access: read only
                     Mechanism: by reference

                  An item list consisting of one or more output item codes from
                  the following list. All are optional.

                     NOTES$K_USER_ACCESS_LIST
                     NOTES$K_USER_CREATE_KEYWORD
                     NOTES$K_USER_MAIL_ADDR
                     NOTES$K_USER_MODERATE
                     NOTES$K_USER_NAME
                     NOTES$K_USER_NODENAME
                     NOTES$K_USER_WRITE_BYPASS

               ____________________________________________________________

               Description

                  The NOTES$USER_MODIFY routine verifies that the specified
                  user exists, and modifies the member record for that user.

                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                                                                            147

 











               NOTES$USER_MODIFY


                  _____________________________________________________________
                  Return_Code___________Description___________Status___________

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?

                  NOTES$_?_____________________________________________________
























               148

 





















                                                                       Part III
                                                                     Appendixes
               ________________________________________________________________

 

















                                                                     Appendix A


                                                  Item List Format and Contents
               ________________________________________________________________


                  Many of the VAX Notes routines accept input parameters by
                  means of item lists rather than coding a multitude of parame-
                  ters. The item list format is identical to that used by many
                  of the VMS system services (for example, $GETJPI or $GETDVI).
                  The items in the list may be specified in any order.

                  Numeric values for the item codes are supplied with the
                  software kit in files named NOTES$ITEMDEF.*; therefore,
                  the numeric values are not defined in this document. The
                  NOTES$ITEMDEF.* files also include values for error codes.

               ____________________________________________________________

               A.1  Various Context Items

                  These items are used to pass the address of a longword con-
                  taining context information. Before calling a NOTES$xxx_BEGIN
                  routine, the value of this longword should be set to zero;
                  the routine will store a nonzero context value here, which
                  can be passed to other operations. The longword must not be
                  modified by the caller. A call to the associated NOTES$xxx_
                  END routine will release this context, and reset the longword
                  to zero.

                   o NOTES$K_CLASS_CONTEXT - Passes the CLASS context to other
                     operations.

                   o NOTES$K_ENTRY_CONTEXT - Passes the ENTRY context to other
                     operations.

                   o NOTES$K_KEYWORD_CONTEXT - Passes the KEYWORD context to
                     other operations.

                                             Item List Format and Contents  A-1

 











                   o NOTES$K_NOTE_CONTEXT - Passes the NOTE context to other
                     operations.

                   o NOTES$K_NOTEFILE_CONTEXT - Passes the NOTEFILE context to
                     other operations.

                   o NOTES$K_PROFILE_CONTEXT - Passes the PROFILE context to
                     other operations.

                   o NOTES$K_SERVER_CONTEXT - Passes the SERVER context to
                     other operations.

                   o NOTES$K_USER_CONTEXT - Passes the USER context to other
                     operations.

               ____________________________________________________________

               A.2  Item Codes

                  The codes described in Table A-1 are specified as parame-
                  ters to the NOTES$ callable routines. See the files named
                  NOTES$ITEMDEF.*, supplied with the software kit, for the
                  values assigned to these codes.

                  Table A-1:  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_CLASS_HINT_GET_      Indicates that a NOTES$CLASS_
                  ENTRY                        GET_ENTRY will be performed next
                                               (improves server performance)

                  NOTES$K_CLASS_NAME           Class name string (wildcards
                                               may be allowed, depending on the
                                               context)

                  NOTES$K_CLASS_NEW_NAME       New class name string (renames
                                               the old class)

                  NOTES$K_CLASS_USER_AREA      String of user-programmable data

                  _____________________________________________________________
                                                       (continued on next page)


               A-2  Item List Format and Contents

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_CONTINUE             Keeps returning information



                  NOTES$K_DELIF0               Delete class if empty, indicated
                                               by 1



                  NOTES$K_ENTRY_HINT_GET_      Indicates that a NOTES$ENTRY_
                  CLASS                        GET_CLASS will be performed next
                                               (improves server performance)

                  NOTES$K_ENTRY_HINT_GET_      Indicates that a NOTES$ENTRY_
                  KEYWORD                      GET_KEYWORD will be performed
                                               next (improves server perfor-
                                               mance)
               )

                  NOTES$K_ENTRY_LAST_STATUS    Longword value of the last
                                               update for the entry (update
                                               status longword)

                  NOTES$K_ENTRY_NAME           Entry name string (wildcards
                                               may be allowed, depending on the
                                               context)

                  NOTES$K_ENTRY_NEW_NAME       New entry name string (renames
                                               the old entry)

                  NOTES$K_ENTRY_OBJECT_NAME    DNS object name string for the
                                               entry
                  _____________________________________________________________
                                                       (continued on next page)







                                             Item List Format and Contents  A-3

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_ENTRY_OBJECT_SPEC    File specification string to
                                               which the DNS object name was
                                               translated

                  NOTES$K_ENTRY_UNSEEN_EST     Longword number of unseen notes

                  NOTES$K_ENTRY_USER_AREA      String of user-programmable data



                  NOTES$K_KEYWORD_HINT_GET_    Indicates that a NOTES$KEYWORD_
                  NOTE                         GET_NOTE will be performed next
                                               (improves server performance)

                  NOTES$K_KEYWORD_NAME         Keyword name string (wildcards
                                               may be allowed, depending on the
                                               context)

                  NOTES$K_KEYWORD_NEW_NAME     New keyword name string (renames
                                               the old keyword)

                  NOTES$K_KEYWORD_USER_AREA    String of user-programmable data



                  NOTES$K_NOSIGNAL             Overrides default error sig-
                                               nalling



                  NOTES$K_NOTE_ALL_RESPONSES   Indicates replies should also be
                                               returned

                  NOTES$K_NOTE_AUTHOR          Author name string
                  _____________________________________________________________
                                                       (continued on next page)





               A-4  Item List Format and Contents

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_NOTE_BACK_NOTE       Selects the previous topic

                  NOTES$K_NOTE_BACK_RESPONSE   Selects the previous reply

                  NOTES$K_NOTE_BEFORE_TIME     Selects only notes before this
                                               quadword date/time

                  NOTES$K_NOTE_BLINK_ID        Note identifier string

                  NOTES$K_NOTE_BLINK_TITLE     Topic title string

                  NOTES$K_NOTE_BLINK_UID       Longword unique note identifier

                  NOTES$K_NOTE_CAN_REPLY       Longword indicating with a value
                                               of 1 that the caller can reply

                  NOTES$K_NOTE_CREATE_TIME     Quadword date/time of note
                                               creation

                  NOTES$K_NOTE_HIDDEN          Selects or modifies hidden
                                               notes. For selection, selects
                                               hidden notes = 1, selects unhid-
                                               den notes = 0; for modifying a
                                               note, hide note = 1, unhide note
                                               = 0

                  NOTES$K_NOTE_HINT_GET_       Value of 1 indicates that a call
                  KEYWORD                      to NOTES$GET_KEYWORD is next

                  NOTES$K_NOTE_HINT_GET_TEXT   Value of 1 indicates that a call
                                               to the NOTES$GET_TEXT routine is
                                               next

                  NOTES$K_NOTE_ID              String of the note identifier or
                                               a range of notes
                  _____________________________________________________________
                                                       (continued on next page)




                                             Item List Format and Contents  A-5

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_NOTE_MARK_SEEN       Mark notes as seen, indicated by
                                               1

                  NOTES$K_NOTE_NEW_ID          String specifying the new note-
                                               ID to which the range of notes
                                               should be moved

                  NOTES$K_NOTE_NEXT_NOTE       Selects the next topic

                  NOTES$K_NOTE_NEXT_RESPONSE   Select the next reply

                  NOTES$K_NOTE_NEXT_UNSEEN     Select the next unseen note

                  NOTES$K_NOTE_NUMRECORDS      Longword number of text records
                                               in this note

                  NOTES$K_NOTE_NUMRESPONSES    Longword response number of last
                                               reply

                  NOTES$K_NOTE_PEN_NAME        Personal name string

                  NOTES$K_NOTE_SEARCH_STRING   Selects only notes containing
                                               this search string

                  NOTES$K_NOTE_SINCE_TIME      Selects only notes after this
                                               quadword date/time

                  NOTES$K_NOTE_TITLE           Title string

                  NOTES$K_NOTE_TYPE            Longword indicating the type of
                                               text in the note

                  NOTES$K_NOTE_UID             Longword unique note identifier
                  _____________________________________________________________
                                                       (continued on next page)






               A-6  Item List Format and Contents

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_NOTE_UNSEEN          Selects notes; select unseen
                                               notes = 1, select seen notes = 0

                  NOTES$K_NOTE_USER_AREA       String of user-programmable data

                  NOTES$K_NOTE_WRITELOCK       Modifies locking of notes;
                                               writelock note = 1, remove
                                               writelock on note = 0



                  NOTES$K_NOTEFILE_CREATE      Creates the specified notefile

                  NOTES$K_NOTEFILE_CREATE_     Quadword date/time of the note-
                  TIME                         file creation

                  NOTES$K_NOTEFILE_DEFAULT_    Default notefile name string
                  NAME

                  NOTES$K_NOTEFILE_ENTRYTOTAL  Total number of topics and
                                               replies

                  NOTES$K_NOTEFILE_FILE_NAME   Notefile name string

                  NOTES$K_NOTEFILE_FORMAT      Longword indicating notefile
                                               format

                  NOTES$K_NOTEFILE_HIGH_UID    Longword of highest used note
                                               UID

                  NOTES$K_NOTEFILE_LASTREV     Quadword date/time of the last
                                               notefile revision
                  _____________________________________________________________
                                                       (continued on next page)







                                             Item List Format and Contents  A-7

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_NOTEFILE_MODERATE    Changes moderator status for
                                               the notefile; attain moderator
                                               status = 1, cancel moderator
                                               status = 0

                  NOTES$K_NOTEFILE_MODERATOR   Moderator name string

                  NOTES$K_NOTEFILE_NOTICE      Notice string

                  NOTES$K_NOTEFILE_NUMNOTES    Longword note number of the last
                                               topic in the notefile

                  NOTES$K_NOTEFILE_RELATED_    Related name string for the
                  NAME                         notefile

                  NOTES$K_NOTEFILE_REPLY_ONLY  Conference in which only autho-
                                               rized users may enter topics,
                                               indicated by 1

                  NOTES$K_NOTEFILE_RESTRICTED  Modifies or determines whether
                                               user access is restricted; only
                                               authorized users may participate
                                               = 1, any user may participate =
                                               0

                  NOTES$K_NOTEFILE_RESULT_     Resultant file name specifica-
                  SPEC                         tion string of the notefile

                  NOTES$K_NOTEFILE_TITLE       Notefile title string

                  NOTES$K_NOTEFILE_USER_AREA   String of user-programmable data

                  NOTES$K_NOTEFILE_WRITELOCK   Notefile writelocked against new
                                               notes, indicated by 1
                  _____________________________________________________________
                                                       (continued on next page)





               A-8  Item List Format and Contents

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________



                  NOTES$K_PROFILE_AUTO_DIR     Modifies or determines the
                                               automatic directory setting;
                                               automatic directory = 1, no
                                               automatic directory = 0

                  NOTES$K_PROFILE_AUTO_UNSEEN  Modifies or determines the auto-
                                               matic unseen setting; automatic
                                               unseen = 1, no automatic unseen
                                               = 0

                  NOTES$K_PROFILE_CLASS_NAME   String of default class name to
                                               use

                  NOTES$K_PROFILE_EDITOR       Editor name string

                  NOTES$K_PROFILE_EDITOR_      Flag to indicate whether the
                  SPAWN                        editor must be spawned; Spawn
                                               editor = 1, callable editor = 0

                  NOTES$K_PROFILE_PEN_NAME     Personal name string

                  NOTES$K_PROFILE_PRINT        String of default print quali-
                                               fiers to apply; allows the user
                                               to define defaults for the PRINT
                                               command

                  NOTES$K_PROFILE_TEMPORARY    Indicates that the specified
                                               profile settings are temporary,
                                               and should not be stored


                  _____________________________________________________________
                                                       (continued on next page)






                                             Item List Format and Contents  A-9

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_SEEN_MAP             String indicating which notes
                                               have been seen. User programs
                                               may not interpret this byte
                                               string, except that a null
                                               string indicates that no notes
                                               have been seen





                  NOTES$K_SERVER_MAX_ITEM      Longword value of the high-
                                               est item code that the server
                                               supports

                  NOTES$K_TEXT_END             Indicates the end of the note
                                               text for a note being added

                  NOTES$K_TEXT_STRING          Text record string in a note

                  NOTES$K_TEXT_TYPE            Longword type of the text record



                  NOTES$K_UNIENTRY             Unique by entry (for markers)


                  _____________________________________________________________
                                                       (continued on next page)












               A-10  Item List Format and Contents

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_USER_ACCESS_LIST     String of node::user-name pairs
                                               for this user

                  _____________________________________________________________
                                                       (continued on next page)




































                                            Item List Format and Contents  A-11

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_USER_CREATE_KEYWORD  For a conference, modifies or
                                               determines whether any user may
                                               create keywords: only users with
                                               CREATE_KEYWORDS privilege may
                                               create keywords = 1 (default),
                                               any user may create keywords
                                               = 0; for a member, determines
                                               whether the member has CREATE_
                                               KEYWORDS privilege: may create
                                               keywords = 1, may not create
                                               keywords = 0 (default)

                  NOTES$K_USER_MAIL_ADDR       User's mailing address string

                  NOTES$K_USER_MODERATE        Modifies or determines whether
                                               user may moderate the note-
                                               file; may moderate = 1, may not
                                               moderate = 0

                  NOTES$K_USER_NAME            User name string (wildcards may
                                               be allowed, depending on the
                                               context)

                  NOTES$K_USER_NEW_NAME        New user name string (renames
                                               the user)

                  NOTES$K_USER_NEW_NODENAME    Changes the node names string

                  _____________________________________________________________
                                                       (continued on next page)











               A-12  Item List Format and Contents

 











                  Table A-1 (Cont.):  Item Codes
                  _____________________________________________________________
                  Item_Code____________________Description_____________________

                  NOTES$K_USER_NODENAME        Node names string (comma-
                                               separated), which, together
                                               with the user name, indicates
                                               which processes may access this
                                               (private) notefile

                  NOTES$K_USER_WRITE_BYPASS    User may write to write-locked
                                               conference, reply-only confer-
                  _____________________________ence,_and_write-locked_topic____
































                                            Item List Format and Contents  A-13

 

















                                                                     Appendix B


                                                                 Sample Program
               ________________________________________________________________


                  The BASIC program presented in this appendix extracts unseen
                  notes from the notefile (or notefiles) specified interac-
                  tively by the user, and writes the note headings and text
                  to a VMS text file. Each specified notefile must be an entry
                  in the user's Notebook. The entire notefile is checked for
                  unseen notes; ranges of notes cannot be specified.

                  There are five parts to this program:

                   1.ITEMDEF.BAS-Definitions used for creating item lists

                   2.NOTEDEF.BAS-Definitions of callable routine entrypoints

                   3.NOTES$ITEMDEF.BAS-Definitions of constants for callable
                     routine

                   4.EXTRACT_NOTE.BAS-Main program to extract unseen notes

                   5.ITEM_LIST.BAS-Subprogram to enter items into item lists

                  In ITEMDEF.BAS, separate item list formats are set up for an
                  empty item list (no_list), an item list with only one item in
                  it (one_list), an input item list (inp_list), and an output
                  item list (out_list). This is required for specifying input
                  and output item lists for the callable routines. The inp-list
                  and out-list item lists allow a maximum of 15 entries to be
                  passed. The no-list and one-list item lists are for those
                  routines that do not require more than one parameter.

                  The definition file NOTES$ITEMDEF.BAS, which is provided with
                  the software kit, contains the definitions (numeric values)
                  of the item codes. Definition files for other languages
                  are also provided with the software kit; following is the
                  complete list:

                                                            Sample Program  B-1

 











                   o NOTES$ITEMDEF.ADA

                   o NOTES$ITEMDEF.BAS

                   o NOTES$ITEMDEF.FOR

                   o NOTES$ITEMDEF.H

                   o NOTES$ITEMDEF.MAR

                   o NOTES$ITEMDEF.PAS

                   o NOTES$ITEMDEF.PLI

                   o NOTES$ITEMDEF.R32

                   o NOTES$ITEMDEF.SDL

                  Only the item codes used by the EXTRACT_NOTE.BAS program are
                  included in the sample program.

                  The part NOTEDEF.BAS contains definitions for the error
                  codes used in the EXTRACT_NOTE.BAS program. A complete list
                  of error codes and their values is provided in the file
                  NOTES$ITEMDEF.BAS.

                  In the main program EXTRACT_NOTE.BAS, it is important to
                  note the order in which the VAX Notes routines are called.
                  First, the NOTES$NOTEFILE_BEGIN routine is called to open
                  the notefile specified by the entry name supplied by the user
                  (or the first entry name matching the user's input if that
                  input included a wildcard). As long as the notefile remains
                  open, any work can be performed on the data in that notefile.
                  In the program EXTRACT_NOTE.BAS, this work consists only of
                  extracting unseen notes. The NOTES$NOTEFILE_BEGIN routine is
                  called in the segment beginning with line 1104.

                  In the segment beginning with line 1106, the NOTES$NOTE_GET
                  routine is called to make sure there are unseen notes to
                  get. If so, an output file (NOTES.TXT) is opened, and the
                  conference heading information is formatted and written to
                  the output file.

                  A loop is set up within segments beginning with lines 1108
                  and 1109 to get all the text for all unseen notes in the
                  currently open notefile. The NOTES$NOTE_GET routine returns
                  only the note heading information. In the segment beginning
                  with line 1109, the NOTES$NOTE_GET_TEXT is called repeatedly
                  for each line of text for the note retrieved with NOTES$NOTE_
                  GET. (Note text is retrieved one record or line at a time.)

               B-2  Sample Program

 











                  Once all the text for the note is extracted and written to
                  the output file (NOTE.TXT), the program gets the next unseen
                  note and repeats this process until all unseen notes in the
                  file have been extracted.

                  Finally, the notefile is closed (line 1202), and the program
                  checks to see whether the user specified another notefile. If
                  so, the loop starting at line 1104 is executed again. If not,
                  the program ends.

                  You must create a command procedure for linking as follows:

                    $ LINK yourfile, SYS$INPUT:/OPTION
                      SYS$LIBRARY:NOTES$SHARE/SHARE
                    $ EXIT

               Example B-1:  Sample BASIC Program
               ________________________________________________________________

               --------------------------------------------------------------------------------
               ITEMDEF.BAS
               --------------------------------------------------------------------------------

                       DECLARE BYTE CONSTANT max_item_index = 14
                       DECLARE BYTE CONSTANT max_item_entries = (max_item_index+1%)*3%

               ________________________________________________________________
                                                       (continued on next page)

















                                                            Sample Program  B-3

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

                       !------------------------------------------------------------------!
                       !                                                                  !
                       ! Common RECORD descriptor for an item list of 15 items            !
                       !                                                                  !
                       !------------------------------------------------------------------!
                       RECORD ITEM_LIST_DESCRIPTOR
                         GROUP item (max_item_index)
                           VARIANT
                           CASE
                               WORD buffer_length
                               WORD item_code
                               LONG buffer_address
                               LONG return_length_address
                           CASE
                               LONG terminator
                           END VARIANT
                         END GROUP
                         LONG FILL
                       END RECORD

                       !------------------------------------------------------------------!
                       !                                                                  !
                       ! Common RECORD descriptor for a single item list                  !
                       !                                                                  !
                       !------------------------------------------------------------------!
                       RECORD ONE_LIST_DESCRIPTOR
                               WORD buffer_length
                               WORD item_code
                               LONG buffer_address
                               LONG return_length_address
                               LONG FILL
                       END RECORD

                       !------------------------------------------------------------------!
                       !                                                                  !
                       ! MAP command for sharing of memory                                !
                       !                                                                  !
                       !------------------------------------------------------------------!

               ________________________________________________________________
                                                       (continued on next page)

               B-4  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

                       MAP (itemls)    LONG no_list,                                   &
                                       ONE_LIST_DESCRIPTOR one_list,                   &
                                       ITEM_LIST_DESCRIPTOR inp_list,                  &
                                       ITEM_LIST_DESCRIPTOR out_list

               ________________________________________________________________
                                                       (continued on next page)



































                                                            Sample Program  B-5

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               --------------------------------------------------------------------------------
               NOTEDEF.BAS
               --------------------------------------------------------------------------------

                       %INCLUDE "NOTEITEMS"

                       DECLARE LONG CONSTANT                                   &
                                       NOTES$_NO_SUCH_NOTE = 66830642,         &
                                       NOTES$_NO_MORE_NOTES = 66822176,        &
                                       NOTES$_NO_MORE_ENTRIES = 66822160,      &
                                       NOTES$_NO_MORE_TEXT = 66822184

                       EXTERNAL LONG FUNCTION                                  &
                                       NOTES$NOTEFILE_BEGIN,                   &
                                       NOTES$NOTEFILE_END,                     &
                                                                               &
                                       NOTES$ENTRY_BEGIN,                      &
                                       NOTES$ENTRY_GET,                        &
                                       NOTES$ENTRY_END,                        &
                                                                               &
                                       NOTES$NOTE_BEGIN,                       &
                                       NOTES$NOTE_GET,                         &
                                       NOTES$NOTE_GET_TEXT,                    &
                                       NOTES$NOTE_END

               --------------------------------------------------------------------------------
               NOTEITEMS.BAS
               --------------------------------------------------------------------------------

               ________________________________________________________________
                                                       (continued on next page)











               B-6  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               declare long constant NOTES$K_NOSIGNAL = 1
               !  Setting this on a BEGIN operation disables signals
               ! -----------------------------*/
               declare long constant NOTES$K_TEXT_STRING = 2
               ! -----------------------------*/
               declare long constant NOTES$K_NOTE_AUTHOR = 6
               declare long constant NOTES$K_NOTE_BLINK_ID = 10
               declare long constant NOTES$K_NOTE_CREATE_TIME = 12
               declare long constant NOTES$K_NOTE_ID = 14
               declare long constant NOTES$K_NOTE_NUMRECORDS = 17
               declare long constant NOTES$K_NOTE_NUMRESPONSES = 18
               declare long constant NOTES$K_NOTE_PEN_NAME = 19
               declare long constant NOTES$K_NOTE_TITLE = 23
               declare long constant NOTES$K_NOTE_UNSEEN = 25
               ! -----------------------------*/

               ________________________________________________________________
                                                       (continued on next page)
























                                                            Sample Program  B-7

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               declare long constant NOTES$K_NOTEFILE_CONTEXT = 28
               ! -----------------------------*/
               declare long constant NOTES$K_CONTINUE = 38
               ! -----------------------------*/
               declare long constant NOTES$K_ENTRY_NAME = 39
               ! -----------------------------*/
               declare long constant NOTES$K_NOTEFILE_CREATE_TIME = 46
               declare long constant NOTES$K_NOTEFILE_DEFAULT_NAME = 47
               declare long constant NOTES$K_NOTEFILE_ENTRYTOTAL = 48
               declare long constant NOTES$K_NOTEFILE_FILE_NAME = 49
               declare long constant NOTES$K_NOTEFILE_LASTREV = 52
               declare long constant NOTES$K_NOTEFILE_NOTICE = 55
               declare long constant NOTES$K_NOTEFILE_NUMNOTES = 56
               declare long constant NOTES$K_NOTEFILE_RESULT_SPEC = 59
               declare long constant NOTES$K_NOTEFILE_TITLE = 60
               ! -----------------------------*/
               declare long constant NOTES$K_SEEN_MAP = 71
               ! -----------------------------*/
               declare long constant NOTES$K_NOTE_BLINK_TITLE = 79
               declare long constant NOTES$K_NOTE_HINT_GET_TEXT = 82
               ! -----------------------------*/

               --------------------------------------------------------------------------------
               EXTRACT_NOTE.BAS
               --------------------------------------------------------------------------------

               1       !
                       ! Sample program using the VAX Notes callable routines to
                       ! extract all UNSEEN notes from an ENTRY in your NOTEBOOK.
                       !
                       OPTION TYPE = EXPLICIT

                       %INCLUDE "ITEMDEF"            ! Item list RECORD definitions
                       %INCLUDE "NOTEDEF"            ! VAX Notes entry points and constants

                       EXTERNAL LONG CONSTANT SS$_NORMAL
                       EXTERNAL LONG FUNCTION SYS$ASCTIM, SYS$GETMSG

                       MAP (cnstnt)    STRING  zero$0                  = 4,            &
                                               plus$1                  = 4,            &
                                               minus$1                 = 4

               ________________________________________________________________
                                                       (continued on next page)

               B-8  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

                       MAP (cnstnt)    LONG    zero,                   ! binary  0%    &
                                               plus_1,                 ! binary  1%    &
                                               minus_1                 ! binary -1%

                       MAP (contxt)    STRING  note_ctx                = 4,            &
                                               entry_ctx               = 4,            &
                                               notefile_ctx            = 4,            &
                                               notebook_ctx            = 4

               ________________________________________________________________
                                                       (continued on next page)































                                                            Sample Program  B-9

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

                       MAP (contxt)    LONG    note_l_ctx,                             &
                                               entry_l_ctx,                            &
                                               notefile_l_ctx,                         &
                                               notebook_l_ctx

                       MAP (integr)    STRING  notefile_entrytotal     = 4,            &
                                               notefile_numnotes       = 4,            &
                                               note_numresponses       = 4,            &
                                               note_numrecords         = 4,            &
                                               note_type               = 4

                       MAP (integr)    LONG    notefile_l_entrytotal,                  &
                                               notefile_l_numnotes,                    &
                                               note_l_numresponses,                    &
                                               note_l_numrecords,                      &
                                               note_l_type

                       MAP (stryng)    STRING  notefile_create_time    = 8,            &
                                               notefile_lastrev_time   = 8,            &
                                               note_create_time        = 8,            &
                                         WORD  notefile_result_spec_len,               &
                                       STRING  notefile_result_spec    = 254,          &
                                         WORD  notefile_title_len,                     &
                                       STRING  notefile_title          = 80,           &
                                         WORD  notefile_notice_len,                    &
                                       STRING  notefile_notice         = 80,           &
                                         WORD  notefile_file_name_len,                 &
                                       STRING  notefile_file_name      = 254,          &
                                         WORD  notefile_seen_map_len,                  &
                                       STRING  notefile_seen_map       = 2048,         &
                                         WORD  note_author_len,                        &
                                       STRING  note_author             = 32,           &
                                         WORD  note_pen_name_len,                      &
                                       STRING  note_pen_name           = 64,           &
                                         WORD  note_title_len,                         &
                                       STRING  note_title,             = 80,           &
                                         WORD  note_blink_title_len,                   &
                                       STRING  note_blink_title        = 80,           &
                                         WORD  note_id_len,                            &
                                       STRING  note_id                 = 16,           &

               ________________________________________________________________
                                                       (continued on next page)

               B-10  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________
                                         WORD  note_blink_id_len,                      &
                                       STRING  note_blink_id           = 16,           &
                                         WORD  note_text_len,                          &
                                       STRING  note_text               = 512

               ________________________________________________________________
                                                       (continued on next page)




































                                                           Sample Program  B-11

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

                       MAP (scrtch)      LONG  ret_status, junk_status,                &
                                         WORD  msg_text_len,                           &
                                       STRING  msg_text                = 256

                       DECLARE BYTE    inp_index, out_index

                       DECLARE WORD    i, default_len

                       DECLARE LONG    notebook_open_flag, output_open_flag

                       DECLARE STRING                                                  &
                                       last_note_id,                                   &
                                       left_part, mid_part, right_part,                &
                                       entry_name, note_range,                         &
                                       notebook_name, notebook_default, notefile_default

                       DECLARE BYTE CONSTANT                                           &
                                       line_len = 80,                                  &
                                       inp_initial = 1,                                &
                                       out_initial = 16

                       DECLARE STRING CONSTANT                                         &
                                       notes$notebook = "NOTES$NOTEBOOK",              &
                                       notes$notebook_default = "SYS$LOGIN:.NOTE",     &
                                       notes$notefile_default = "NOTES$LIBRARY:.NOTE"

                       DECLARE LONG FUNCTION                                           &
                                       fnREPORT_ERROR (LONG)

                       DECLARE STRING FUNCTION                                         &
                                       fnCENTER_LINE (STRING),                         &
                                       fnLEFT (STRING,STRING),                         &
                                       fnRIGHT (STRING,STRING),                        &
                                       fnMID (STRING,STRING,STRING),                   &
                                       fnUNQUOTE (STRING),                             &
                                       fnPLURAL (LONG,STRING,STRING,STRING),           &
                                       fnASCII_DATE (STRING),                          &
                                       fnFORMAT_HEADING (STRING,STRING,STRING)

               ________________________________________________________________
                                                       (continued on next page)

               B-12  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               1000    ! Initialize error handler and useful constants
                       ON ERROR GOTO 19000
                       zero = 0%
                       plus_1 = 1%
                       minus_1 = -plus_1
                       notebook_name = notes$notebook
                       notebook_default = notes$notebook_default
                       notefile_default = notes$notefile_default
                       note_range = "*.*"
                       default_len = minus_1

               1100    ! Main loop to request entry name(s)
                       PRINT "Enter entry name";
                       LINPUT entry_name
                       entry_name = fnUNQUOTE(entry_name)
                       GOTO 19020 UNLESS LEN(entry_name)

               1101    ! First open notebook to find which entry
                       IF NOT notebook_open_flag THEN
                               inp_index = inp_initial
                               CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len)
                               CALL ITEM_LIST (inp_index,notes$k_notefile_file_name,notebook_name,default_len)
                               CALL ITEM_LIST (inp_index,notes$k_notefile_default_name,notebook_default    &
                                                                ,default_len)
                               ret_status = NOTES$NOTEFILE_BEGIN (notebook_l_ctx,inp_list,no_list)
                               GOTO 2005 UNLESS (ret_status AND ss$_normal)
                       ! Prepare for getting notebook entry info
                               CALL ITEM_LIST (minus_1,notes$k_notefile_context,notebook_ctx,default_len)
                               ret_status = NOTES$ENTRY_BEGIN (entry_l_ctx,one_list,no_list)
                               notebook_open_flag = minus_1
                       END IF

               ________________________________________________________________
                                                       (continued on next page)








                                                           Sample Program  B-13

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               1103    ! Get notebook entry info
                       inp_index = inp_initial
                       CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len)
                       CALL ITEM_LIST (inp_index,notes$k_entry_name,entry_name,default_len)
                       out_index = out_initial
                       CALL ITEM_LIST (out_index,notes$k_notefile_file_name                                 &
                                                                ,notefile_file_name,notefile_file_name_len)
                       CALL ITEM_LIST (out_index,notes$k_seen_map,notefile_seen_map,notefile_seen_map_len)
                       ret_status = NOTES$ENTRY_GET (entry_l_ctx,inp_list,out_list)

               ________________________________________________________________
                                                       (continued on next page)






























               B-14  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               1104    ! Opening entry notefile
                       WHILE (ret_status AND ss$_normal)
                           PRINT "Extracting UNSEEN notes from "                                             &
                                                + LEFT$(notefile_file_name,notefile_file_name_len)
                           inp_index = inp_initial
                           CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len)
                           CALL ITEM_LIST (inp_index,notes$k_notefile_default_name,notefile_default,default_len)
                           CALL ITEM_LIST (inp_index,notes$k_notefile_file_name,notefile_file_name           &
                                                                ,notefile_file_name_len)
                           CALL ITEM_LIST (inp_index,notes$k_seen_map,notefile_seen_map,notefile_seen_map_len)
                           out_index = out_initial
                           CALL ITEM_LIST (out_index,notes$k_notefile_create_time,notefile_create_time       &
                                                                ,default_len)
                           CALL ITEM_LIST (out_index,notes$k_notefile_lastrev,notefile_lastrev_time,default_len)
                           CALL ITEM_LIST (out_index,notes$k_notefile_entrytotal,notefile_entrytotal,default_len)
                           CALL ITEM_LIST (out_index,notes$k_notefile_numnotes,notefile_numnotes,default_len)
                           CALL ITEM_LIST (out_index,notes$k_notefile_result_spec,notefile_result_spec       &
                                                                ,notefile_result_spec_len)
                           CALL ITEM_LIST (out_index,notes$k_notefile_title,notefile_title,notefile_title_len)
                           CALL ITEM_LIST (out_index,notes$k_notefile_notice,notefile_notice,notefile_notice_len)
                           ret_status = NOTES$NOTEFILE_BEGIN (notefile_l_ctx,inp_list,out_list)
                           GOTO 2005 UNLESS (ret_status AND ss$_normal)
               1105    ! Prepare for reading notes
                           CALL ITEM_LIST (minus_1,notes$k_notefile_context,notefile_ctx,default_len)
                           ret_status = NOTES$NOTE_BEGIN (note_l_ctx,one_list,no_list)
                           GOTO 1202 UNLESS (ret_status AND ss$_normal)
               1106    ! Now we can start getting notes
                           inp_index = inp_initial
                           CALL ITEM_LIST (inp_index,notes$k_nosignal,plus$1,default_len)
                           CALL ITEM_LIST (inp_index,notes$k_note_id,note_range,default_len)
                           CALL ITEM_LIST (inp_index,notes$k_note_unseen,plus$1,default_len)
                           CALL ITEM_LIST (inp_index,notes$k_note_hint_get_text,plus$1,default_len)
                           out_index = out_initial
                           CALL ITEM_LIST (out_index,notes$k_note_id,note_id,note_id_len)
                           CALL ITEM_LIST (out_index,notes$k_note_author,note_author,note_author_len)
                           CALL ITEM_LIST (out_index,notes$k_note_pen_name,note_pen_name,note_pen_name_len)
                           CALL ITEM_LIST (out_index,notes$k_note_title,note_title,note_title_len)
                           CALL ITEM_LIST (out_index,notes$k_note_create_time,note_create_time,default_len)

               ________________________________________________________________
                                                       (continued on next page)

                                                           Sample Program  B-15

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________
                           CALL ITEM_LIST (out_index,notes$k_note_numresponses,note_numresponses,default_len)
                           CALL ITEM_LIST (out_index,notes$k_note_numrecords,note_numrecords,default_len)
                           CALL ITEM_LIST (out_index,notes$k_note_blink_id,note_blink_id,note_blink_id_len)
                           CALL ITEM_LIST (out_index,notes$k_note_blink_title,note_blink_title               &
                                                                 ,note_blink_title_len)
                           ret_status = NOTES$NOTE_GET (note_l_ctx,inp_list,out_list)
                           GOTO 1201 if (ret_status = notes$_no_such_note)
                           last_note_id = LEFT$(note_id,note_id_len)

               ________________________________________________________________
                                                       (continued on next page)
































               B-16  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               1107    ! Open output file for extracts (if not already opened)
                           IF NOT output_open_flag THEN
                                OPEN "NOTE.TXT" FOR OUTPUT AS FILE #3%                 &
                                               ,SEQUENTIAL VARIABLE                    &
                                               ,ALLOW NONE                             &
                                               ,ACCESS SCRATCH                         &
                                               ,RECORDSIZE 512%                        &
                                               ,DEFAULTNAME "SYS$LOGIN:NOTE.TXT"
                                output_open_flag = minus_1
                           ELSE PRINT #3%, FF
                           END IF
                        ! format notefile header
                           PRINT #3%, fnCENTER_LINE("<<< "     &
                                               + LEFT$(notefile_result_spec,notefile_result_spec_len) + " >>>")
                           PRINT #3%, fnCENTER_LINE("-< " + LEFT$(notefile_title,notefile_title_len) + ">-")
                           PRINT #3%, fnFORMAT_HEADING("Created: " + fnASCII_DATE(notefile_create_time) &
                                               ,fnPLURAL(notefile_l_numnotes,"topic","s","")   &
                                               ,"Updated: " + fnASCII_DATE(notefile_lastrev_time))
                           PRINT #3%, fnCENTER_LINE("-< "      &
                                               + LEFT$(notefile_notice,notefile_notice_len) + " >-") &
                                                                       IF (notefile_notice_len)

               ________________________________________________________________
                                                       (continued on next page)


















                                                           Sample Program  B-17

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               1108     ! Continue reading notes until no more
                            WHILE (ret_status <> notes$_no_more_notes)
                               IF (fnLEFT(last_note_id,".") <> fnLEFT(note_id,".")) THEN
                                       PRINT #3%, FF
                               ELSE    PRINT #3%
                               END IF
                               last_note_id = LEFT$(note_id,note_id_len)
                        ! Format note header
                               PRINT #3%, STRING$(line_len,ASCII("="))
                               IF (POS(last_note_id,".0",1%) = zero) THEN
                                       right_part = fnRIGHT(last_note_id,".") + " of "           &
                                                                + NUM1$(note_l_numresponses)
                                       mid_part = LEFT$(note_blink_title,note_blink_title_len)
                               ELSE    mid_part = LEFT$(note_title,note_title_len)
                                       note_title_len = zero
                                       IF (note_l_numresponses = zero) THEN
                                               right_part = "No replies"
                                       ELSE    right_part = fnPLURAL(note_l_numresponses,"repl","ies","y")
                                       END IF
                               END IF
                               PRINT #3%, fnFORMAT_HEADING("Note "+last_note_id,mid_part,right_part)
                               left_part = LEFT$(note_author,note_author_len)
                               left_part = left_part + ' "' + LEFT$(note_pen_name,note_pen_name_len) + '"' &
                                                                       IF (note_pen_name_len)
                               PRINT #3%, fnFORMAT_HEADING(left_part,SP                &
                                                       ,fnPLURAL(note_l_numrecords,"line","s","") &
                                                       + "  " + fnASCII_DATE(note_create_time))

               ________________________________________________________________
                                                       (continued on next page)












               B-18  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

                               PRINT #3%, STRING$(line_len,ASCII("-"))
                               PRINT #3%, fnCENTER_LINE("-< " + LEFT$(note_title,note_title_len) + ">-") &
                                                                       IF (note_title_len)
                               PRINT #3%

                               inp_index = inp_initial
                               CALL ITEM_LIST (inp_index,notes$k_continue,plus$1,default_len)
                               CALL ITEM_LIST (zero,notes$k_text_string,note_text,note_text_len)
                               ret_status = NOTES$NOTE_GET_TEXT (note_l_ctx,inp_list,one_list)

               1109    ! Continue reading the text of the note until no more
                               WHILE (ret_status <> notes$_no_more_text)
                                       PRINT #3%, LEFT$(note_text,note_text_len)
                                       ret_status = NOTES$NOTE_GET_TEXT (note_l_ctx,inp_list,one_list)
                               NEXT
                               ret_status = NOTES$NOTE_GET (note_l_ctx,inp_list,out_list)
                           NEXT

               1201    ! Finish with note context
                           junk_status = NOTES$NOTE_END (note_l_ctx,no_list,no_list)

               1202    ! Close the notefile
                           junk_status = NOTES$NOTEFILE_END (notefile_l_ctx,no_list,no_list)

               1203    ! Try for another wildcard entry
                           junk_status = fnREPORT_ERROR(notes$_no_more_notes)
                           CALL ITEM_LIST (minus_1,notes$k_continue,plus$1,default_len)
                           out_index = out_initial
                           CALL ITEM_LIST (out_index,notes$k_notefile_file_name               &
                                                    ,notefile_file_name,notefile_file_name_len)
                           CALL ITEM_LIST (out_index,notes$k_seen_map,notefile_seen_map,notefile_seen_map_len)
                           ret_status = NOTES$ENTRY_GET (entry_l_ctx,one_list,out_list)
                       NEXT

               2005    ! Output any unexpected error
                       junk_status = fnREPORT_ERROR(notes$_no_more_entries)
                       GOTO 1100

               ________________________________________________________________
                                                       (continued on next page)


                                                           Sample Program  B-19

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               15000   ! User defined functions

                       DEF STRING fnCENTER_LINE (STRING x)
                       fnCENTER_LINE = SPACE$((line_len-LEN(x)+1%)/2%) + x
                       END DEF

                       DEF STRING fnLEFT(STRING x, STRING y)
                       fnLEFT = LEFT$(x,POS(x,y,1%)-1%)
                       END DEF
                       DEF STRING fnRIGHT(STRING x, STRING y)
                       fnRIGHT = RIGHT$(x,POS(y+x,y,LEN(y)+1%))
                       END DEF

                       DEF STRING fnMID (STRING x, STRING y, STRING z)
                       fnMID = fnLEFT(fnRIGHT(x,y)+z,z)
                       END DEF

                       DEF STRING fnUNQUOTE (STRING x)
                       x = EDIT$(x,4%+32%+8%+16%+128%+256%)
                       IF (ASCII(x) = ASCII('"')) OR (ASCII(x) = ASCII("'")) THEN
                               x = MID$(x,2%,LEN(x)-2%) IF (ASCII(x)=ASCII(MID$(x,LEN(x),1%)))
                       END IF
                       fnUNQUOTE = x
                       END DEF

                       DEF STRING fnPLURAL(LONG n, STRING x, STRING y, STRING z)
                       y = z IF (n = 1%)   ! singular
                       fnPLURAL = NUM1$(n) + SP + x + y
                       END DEF

                       DEF STRING fnASCII_DATE(STRING x)
                       DECLARE STRING time_string
                       time_string = SPACE$(24%)
                       junk_status = SYS$ASCTIM(,time_string,x BY REF,)
                       fnASCII_DATE = LEFT$(time_string,17%)
                       END DEF
                       DEF STRING fnFORMAT_HEADING(STRING x, STRING y, STRING z)
                       y = fnCENTER_LINE(y)
                       x = x + MID$(y,LEN(x)+1%,LEN(y))
                       fnFORMAT_HEADING = x + SPACE$(line_len-LEN(x)-LEN(z)) + z
                       END DEF

               ________________________________________________________________
                                                       (continued on next page)

               B-20  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

                       DEF LONG fnREPORT_ERROR (LONG e)
                       IF (ret_status <> e) THEN
                               junk_status = SYS$GETMSG(ret_status BY VALUE,msg_text_len,msg_text,15% BY VALUE,)
                               PRINT LEFT$(msg_text,msg_text_len) IF (junk_status AND ss$_normal)
                       END IF
                       END DEF

               ________________________________________________________________
                                                       (continued on next page)

































                                                           Sample Program  B-21

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

               19000 ! Error recovery
                       RESUME 19010
               19010   PRINT ERR;ERL;'"' + ERT$(ERR) + '"' UNLESS (ERR = 11%)
               19020   ! Finish with entry context
                       junk_status = NOTES$ENTRY_END (entry_l_ctx,no_list,no_list)
               19030   ! Close notebook
                       junk_status = NOTES$NOTEFILE_END (notebook_l_ctx,no_list,no_list)
               19040   ! Close output file
                       CLOSE #3%
               32767   END

               --------------------------------------------------------------------------------
               ITEM_LIST.BAS
               --------------------------------------------------------------------------------

               1       SUB ITEM_LIST (BYTE indx, WORD code, STRING entry, WORD rlen)

                       OPTION TYPE = EXPLICIT

                       %INCLUDE "ITEMDEF"            ! Item list RECORD definitions

                       DECLARE BYTE lcl_indx
                       DECLARE WORD buff_len
                       DECLARE LONG buff_adr, rlen_loc, ret_status

                       EXTERNAL LONG FUNCTION STR$ANALYZE_SDESC

                       ret_status = STR$ANALYZE_SDESC (entry,buff_len,buff_adr)

                       rlen_loc = LOC(rlen) IF (rlen <> -1%)   ! -1 = don't care

                       SELECT indx
                          CASE -1% TO 0%                       ! -1 = input, 0 = output/input
                               IF indx THEN
                                      rlen_loc = 0%
                                      buff_len = rlen IF (rlen < buff_len) IF (rlen>= 0%)
                               ELSE   rlen = 0% IF rlen_loc
                               END IF
                               one_list::item_code             = code
                               one_list::buffer_length         = buff_len
                               one_list::buffer_address        = buff_adr
                               one_list::return_length_address = rlen_loc

               ________________________________________________________________
                                                       (continued on next page)

               B-22  Sample Program

 











               Example B-1 (Cont.):  Sample BASIC Program
               ________________________________________________________________

                         CASE 1% TO 15%                        ! input item list
                               buff_len = rlen IF (rlen < buff_len) IF (rlen>= 0%)
                               lcl_indx = indx - 1%
                               inp_list::item(lcl_indx)::item_code             = code
                               inp_list::item(lcl_indx)::buffer_length         = buff_len
                               inp_list::item(lcl_indx)::buffer_address        = buff_adr
                               inp_list::item(lcl_indx)::return_length_address = 0%
                               inp_list::item(lcl_indx+1%)::terminator = 0%            &
                                                       IF (lcl_indx < max_item_index)
                               indx = indx + 1%
                         CASE 16% TO 30%                       ! Output item list
                               rlen = 0% IF rlen_loc
                               lcl_indx = indx - 16%
                               out_list::item(lcl_indx)::item_code             = code
                               out_list::item(lcl_indx)::buffer_length         = buff_len
                               out_list::item(lcl_indx)::buffer_address        = buff_adr
                               out_list::item(lcl_indx)::return_length_address = rlen_loc
                               out_list::item(lcl_indx+1%)::terminator = 0%            &
                                                       IF (lcl_indx < max_item_index)
                               indx = indx + 1%
                       END SELECT

               32767   END SUB

               ________________________________________________________________

















                                                           Sample Program  B-23

 

















                                                                     Appendix C


                                                                       Messages
               ________________________________________________________________


                  (TBS)































                                                                  Messages  C-1

 




















                                                                      Index
               ________________________________________________________________


               C___________________________    Entry routines (Cont.)

               Callable routines                 NOTES$ENTRY_GET_KEYWORD,
                 calling sequence, 1-9             42
                 continuable operations,         NOTES$ENTRY_MODIFY, 45
                    1-11                         NOTES$ENTRY_UPDATE, 48
                 description, 1-8              Error reporting, 1-10
                 diagrams, 1-11
                 error reporting, 1-10         H___________________________
                 high-level interface, 1-1     High-level interface, 1-1
               Calling sequence, 1-9
               Class routines                  I
                 NOTES$CLASS_ADD, 3            ____________________________
                 NOTES$CLASS_BEGIN, 6          Item codes, A-2
                 NOTES$CLASS_DELETE, 9         Item lists, 1-9
                 NOTES$CLASS_END, 12
                 NOTES$CLASS_GET, 15           K___________________________
                 NOTES$CLASS_GET_ENTRY, 18     Keyword routines, 5-1
                 NOTES$CLASS_MODIFY, 21          NOTES$KEYWORD_ADD, 51
               Continuable operations, 1-11      NOTES$KEYWORD_BEGIN, 54

               E___________________________      NOTES$KEYWORD_DELETE, 57
               Entry routines                    NOTES$KEYWORD_END, 60
                 NOTES$ENTRY_ADD, 24             NOTES$KEYWORD_GET, 63
                 NOTES$ENTRY_BEGIN, 27           NOTES$KEYWORD_GET_NOTE, 66
                 NOTES$ENTRY_DELETE, 30          NOTES$KEYWORD_MODIFY, 69

                 NOTES$ENTRY_END, 33           M___________________________
                 NOTES$ENTRY_GET, 36           Marker routines
                 NOTES$ENTRY_GET_CLASS, 39

                                                                        Index-1

 






          Marker routines (Cont.)         NOTES$ENTRY_MODIFY, 4-7, 45
            See Keyword routines          NOTES$ENTRY_UPDATE, 4-8, 48
                                          NOTES$KEYWORD_ADD, 5-2, 51
          N___________________________    NOTES$KEYWORD_BEGIN, 5-2, 54
          Notefile format, 1-3            NOTES$KEYWORD_DELETE, 5-3,
          Notefile routines                  57
            NOTES$NOTEFILE_BEGIN, 72      NOTES$KEYWORD_END, 5-2, 60
            NOTES$NOTEFILE_END, 76        NOTES$KEYWORD_GET, 5-4, 63
            NOTES$NOTEFILE_GET_INFO,      NOTES$KEYWORD_GET_NOTE, 5-4,
               79                            66
            NOTES$NOTEFILE_LIST, 82       NOTES$KEYWORD_MODIFY, 5-5,
            NOTES$NOTEFILE_LIST_BEGIN,       69
               85                         NOTES$NOTEFILE_BEGIN, 2-3,
            NOTES$NOTEFILE_MODIFY, 88        72
          Note routines                     examples, 74
            NOTES$NOTE_ADD, 91            NOTES$NOTEFILE_END, 2-5, 76
            NOTES$NOTE_ADD_TEXT, 94       NOTES$NOTEFILE_GET_INFO,
            NOTES$NOTE_BEGIN, 97             2-5, 79
            NOTES$NOTE_DELETE, 100        NOTES$NOTEFILE_LIST, 2-7, 82
            NOTES$NOTE_END, 103           NOTES$NOTEFILE_LIST_BEGIN,
            NOTES$NOTE_GET, 106              2-6, 85
            NOTES$NOTE_GET_KEYWORD,       NOTES$NOTEFILE_MODIFY, 2-5,
               110                           88
            NOTES$NOTE_GET_TEXT, 113      NOTES$NOTES procedure
            NOTES$NOTE_MODIFY, 116          argument attributes, 1-2
          NOTES$CLASS_ADD, 3-2, 3             (table)
          NOTES$CLASS_BEGIN, 3-2, 6         condition values returned
          NOTES$CLASS_DELETE, 3-3, 9          by, 1-2
          NOTES$CLASS_END, 3-2, 12          declaring, 1-2
          NOTES$CLASS_GET, 3-3, 15          format, 1-2
          NOTES$CLASS_GET_ENTRY, 3-4,     NOTES$NOTE_ADD, 6-4, 91
             18                           NOTES$NOTE_ADD_TEXT, 6-5, 94
          NOTES$CLASS_MODIFY, 3-4, 21     NOTES$NOTE_BEGIN, 6-3, 97
          NOTES$ENTRY_ADD, 4-4, 24        NOTES$NOTE_DELETE, 6-5, 100
          NOTES$ENTRY_BEGIN, 4-3, 27      NOTES$NOTE_END, 6-4, 103
          NOTES$ENTRY_DELETE, 4-5, 30     NOTES$NOTE_GET, 6-6, 106
          NOTES$ENTRY_END, 4-3, 33        NOTES$NOTE_GET_KEYWORD, 6-8,
          NOTES$ENTRY_GET, 4-5, 36           110
          NOTES$ENTRY_GET_CLASS, 4-6,     NOTES$NOTE_GET_TEXT, 6-8,
             39                              113
          NOTES$ENTRY_GET_KEYWORD,        NOTES$NOTE_MODIFY, 6-9, 116
             4-7, 42

          Index-2

 






          NOTES$PROFILE_BEGIN, 7-2,       User routines
             119                            NOTES$USER_ADD, 131
          NOTES$PROFILE_END, 7-2, 122       NOTES$USER_BEGIN, 134
          NOTES$PROFILE_GET, 7-3, 125       NOTES$USER_DELETE, 137
          NOTES$PROFILE_MODIFY, 7-3,        NOTES$USER_END, 140
             128                            NOTES$USER_GET, 143
          NOTES$USER_ADD, 8-3, 131          NOTES$USER_MODIFY, 146
          NOTES$USER_BEGIN, 8-2, 134
          NOTES$USER_DELETE, 8-4, 137
          NOTES$USER_END, 8-2, 140
          NOTES$USER_GET, 8-4, 143
          NOTES$USER_MODIFY, 8-5, 146

          P___________________________

          Profile routines
            NOTES$PROFILE_BEGIN, 119
            NOTES$PROFILE_END, 122
            NOTES$PROFILE_GET, 125
            NOTES$PROFILE_MODIFY, 128
          Program sample, B-1

          R___________________________

          Record
            access, 1-6
            class, 1-7
            conference header, 1-5
            entry, 1-7
            keyword, 1-6
            member, 1-5
            note header, 1-6
            note text, 1-6
            profile, 1-7

          S___________________________

          Sample program, B-1
          Seen/unseen map, 1-8

          U___________________________

          UID key layout, 1-4
          Unseen notes, extracting,
             B-1

                                                                   Index-3
