$Hmak

$L05$<DATA BASE: $>
$L07It contains         records and     indexes.
$L09Indexes:
$F01

$L15$<INTRODUCTION $>

   The CDMAK program operates in a conversational mode and allows the user
to find a specific record or a group of records which meets search conditions.
The search results can be displayed, printed or saved in a external file for
further processing.

    This HELP describes main operations available for the CDMAK's user.

$Hmak
$<GLOSSARY $>
      Using CDMAK program you will find the following terms (terms treated
separately in the glossary are highlighted):

$(Browsing$)          A way of locating $(records$) using $(record system number$).

$(Data base$)         The set of $(fields$) and $(subfields$) which can occur
   $(structure$)      in $(records$). Data base structure can be viewed by pressing
		  F1 and again F1 or Shift + F1.

$(Display format$)    A format in which $(records$) are displayed. The
   $((mask)$)         user can modify (ad hoc) display format by $(masking$).

$(Field$)             The sequence of $(subfields$) within a $(record$); each
		  field has its own unique name.

$(Finding$)           A process by which the user locates a group of $(records$)
		  by browsing $(indexes$) and pointing some $(values$).

$(Index$)             A set of $(values$) extracted (in a predefined way) from
		  one or more $(subfields$) of all $(records$). Indexes are
		  mainly used for speeding the $(search$) process.

$Hmak
$(List of marked$)    A set created by the program during a $(marking$) process.
   $(records$)        The list contains $(record system numbers$).

$(Marking$)           A process of selection some $(records$) for further use.

$(Mask$)              See $(Display format$).

$(Masking$)           A process of modificaton the $(display format$). By masking
		  the user can eliminate displaying some $(fields$),
		  $(subfields$) or their names.

$(Query$)             A set of conditons specified by the user, used for $(searching$).

$(Record$)            A bibliographic record, e.g. collection of $(fields$)
		  describing one or more bibliographic items.

$(Record system$)     A unique number assigned by the system to each $(record$).
   $(number$)         It is often abbreviated to "system number".

$(Searching$)         A process by which the user locates a group of $(records$)
		  by specifying a $(query$).

$Hmak
$(Subfield$)          The smallest (from the CDMAK's point of view) unit of
		  information; any $(value$) is always stored in a subfield.
		  Each subfield has its own name, unique within the $(field$).

$(System number$)     See $(Record system number$).

$(Value$)             A sequence of characters stored in a $(subfield$),
		  displayed in $(index$), or used in user's $(query$).

$(Wildcard$)          A special character used in a $(query$) as follows:

		     - The asterisk [*] represents any number of characters,

		     - The question mark [?] represents one character.


$Hmak
$<INDEXES $>
   Each index contains data of the specific category (e.g. names of authors,
titles, subjects etc.). The user can view definition of indexes by pressing
F1 key while displaying any help.

   All entries of each index are fixed length, therefore they may be truncated.
The following rules apply when creating an index entry from a subfield value:

	*  Only letters (incl. polish letters), digits and spaces (blanks)
	   are taken into account.
	*  All other characters are treated as spaces.
	*  Small letters are converted to capital letters.
	*  Groups of spaces are treated as one space.
	*  Initial and ending spaces are ignored.

$<MAIN MENU $>
   After opening the data base the Main Menu apears on the screen and
shows available functions. The user chooses one of them by:

     - setting up the arrow beside the proper line of menu (UP or DOWN ARROW)
       and pressing ENTER or
     - pressing the function key given in the proper line or
     - pressing the highlighted letter key.

$Hmak
$<REMINDING $>
   Sometimes the CDMAK requires to enter a name of file, index, field or
subfield; in many cases you can type the question mark (?) (sometimes with
ending Enter), and in response the program displays existing names. The file
name must be a valid DOS filename.

$<MENU BAR $>
   In many cases at the bottom of the screen is displayed (abbreviated)
meaning of some keys during the current operation. For more information you
should use help function.

$<HELP $>
   Very often you can call the help funktion (by pressing F1 key, sometimes
letter "h"); This function displays comments for current operation. The text
is devided into pages, you can move to other page by pressing PgDn, PgUP, "N",
"P" or "+n" or "-n" (n - number of pages to be skipped).

   When displaying any help you can press F1 or Shift + F1 to obtain the
description of indexes and data base.

$Hmak
$<OPERATION INTERRUPTION $>
   The user ends the operation usually by pressing F10 or Ctrl + F10 key;
the same way he can interrupt the operation, which takes to much time
(e.g. searching in some cases).

$<MESSAGES $>
   CDMAK program displayes various messages on the screen. They can be:

      - auxiliary information: they require no response and usually they
	disapear after a short time,

      - important information: the user ought to accept it by pressing the
	proper key (usually ESC),

      - questions: you must answer to them.

$<SOUND SIGNAL $>
   You can switch the signal Off or On by pressing "D" when displaying any help
text; if the signal is switched On you can see the character $\0F at the bottom
of any help text; The sound accompanies usually some messages.

$Hmak
$<POLISH LETTERS $>

   Polish letters can be processed using Mazovia or Latin-2 code or in special
mode called "without polish letters" (polish letters are translated into
corresponding latin letters); the user chooses the code:

      - executing DOS command SET MAK=M, SET MAK=L lub SET MAK=B,

			      or

      - executing the program with the option: CDMAK M, CDMAK L or CDMAK B
	(this overwrites the SET option),

			      or

      - choosing the proper option after starting the program.

   To enter and diplay polish letters you should use special drivers; in the
absence of such drivers the CDMAK enters Alt + a, Alt + c, ... Alt + z as
corresponding polish letters; it does so only for small letters, however small
and capital letters mean the same for searching.

$Hmak
$<FOREIGN LETTERS $>
   Foreign letters (as german "a" with two dots above) are coded as three
characters: the tilde (~), diacritic code and the corresponding latin letter.
The tilde and diacritic code are dropped in indexes and ommited in comparison
(searching). The way of displaying these characters depends on the mask. The
table below shows some diacritic codes:

   ~0  accent grave                      ~'  accent aigu
   ~1  dash (^) above                    ~:  two dots (like ..) above
   ~2  tilde (~) above                   ~"  quotation-mark (") above
   ~3  line (like -) above               ~#  underline (like _) below
   ~4  arch (lower half of o) above      ~-  arch (upper half of o) above
   ~5  inverted dash (like v) above
   ~6  circle (like small o) above       ~;  inverted coma up and behind
   ~7  apostrophe (') behind             ~*  inverted coma up and before
   ~8  dot (.) below                     ~.  dot (.) above
   ~9  cedille

   Besides above:
   ~/a, ~/A means Danish ae, AE
   ~/e, ~/E means Danish oe, OE
   ~ss, ~sS means German ss, SS

$Hmak
$<GREEK LETTERS $>
   Greek letters are coded as three characters: the tilde (~), dash (^) and
a latin letter. In indexes and in comparison only the latin letter is taken
into account. The way of displaying greek letters depends on the mask.

$<SPECIAL CHARACTERS $>
   Special characters are coded as follows:

   ~~  tilde (~)                         ~=  not equal
   ~<  not greater                       ~>  not lower
   ~)  upper index                       ~(  lower index
   ~C  grade (for example centigrade)    ~%  1/10 of %
   ~&  paragraph                         ~S  both-side arrow
   ~L  left arrow                        ~P  right arrow
   ~!  inverted exclamation mark         ~?  inverted question mark
   ~D  lower quotation mark              ~G  upper quotation mark
   ~$  pound (english currency)

   These characters are dropped in indexes and ommited in comparison.
The way of displaying these characters depends on the mask.


$Hmas
$<MASKING $>While masking the user defines fields and subfields to be displayed
(plus sign) or omitted (minus sign). Moreover, he can change the mode of
displaying field and subfield names. All changes in mask are temporary only.

key                         action
--------------------------------------------------------------------------
F1                          Help
Arrows, PgDn, PgDn,         Move the cursor
   Home, Ctrl + Home,
   End,  Ctrl + End,
   Tab,  Shift + Tab,
   F4, F5
+ for field name            display the field with all subfields
+ for subfield name         display the subfield (if the field is displayed)
- for field name            omit the field and all its subfields
- for subfield name         omit the subfield
# (hash)                    All fields and subfields to be displayed
= (equal sign)              All fields and subfields to be omitted
F2 (F3)                     Show the previous (next) display format
Shift + F3                  Show the display format specified by number
F6                          Toggle the option DISPLAY / OMIT all names
F9                          Cancel, don't change the mask
F10                         Accept the mask, exit

$Hust
$<MEANING OF KEYS $>

key                           action
--------------------------------------------------------------------------
F1                     Help
Arrows, PgUp, PgDn,    Move the cursor. NOTE: to move the cursor to the
   Home, Ctrl + Home,     position of relation opetator press "Home" twice
   End,  Ctrl + End,
   Tab, Shift + Tab
Ins                    Toggle the option INSERT/REPLACE for inserted text
Esc, a string          The text typed before the space is the beginning of the
   of characters          field name, the text after the space is the beginning
   (may containe          of the subfield name; add the specified subfield (if
   one space),            it doesn't exist) and move the cursor to it
   Enter
Esc, Esc               Set up the condition "for any subfield"
Enter                  Make searching, counting or marking
F2 (F3)                Show the previous (next) query
Ctrl + F2              Display connected index (if it exists)
Shift + F3             Show the query specified by number

						       $< to be continued $>

$Hust
						       $< continuation $>

key                           action
--------------------------------------------------------------------------
F4 (F5)                Add the condition with the next (previous) name and
			  move the cursor to it (see note for "next" and
			  "previous")
Shift + F4             Add the condition with the last (first) subfield name
   (Shift + F5)           of the next (previous) field and move cursor to it
Shift + F6             Add the line with the same name and move cursor to it
F6                     Toggle the option AND/OR
F7                     Toggle the option SEARCH/COUNT/MARK
Shift + F7             Toggle the option COUNT/DON'T COUNT; if counting is on
			  the asterisk apears before the word COUNT
F8                     Compress the query and save it in the external file
Alt + F8               Save (wihout compressing) the query in the external file
F9                     Resign, set the query from the beginning
F10                    Exit
Ctrl + F10             Exit to main menu

$Hust
$<QUERY $>
   Each query is a combination of 1 to 15 conditions, linked together with AND
or OR. Each condition is displayed in one line and consists of: NAME, OPERATOR
and VALUE. Each of these parts has its own place in the condition's line. Each
query can be saved in the external file for future use.

$<NAME $>
   The name means any index name, field name, field / subfield name or the text
"any subfield" (the whole record). Names are gruped as follows:
     - index names,
     - indexed subfield names,
     - the whole field names and not indexed subfield names.

   These goups define terms "next name" and "previous name" (see description
of F4 and F5 in MEANING OF KEYS).

   The following rules apply when displaying the name:
      - index name is displayed in one column in reverse mode,
      - field name is displayed always in reverse mode,
      - subfield name is displayed as asterisks if the condition applies for
	the whole field,
      - subfield name is displayed in reverse mode if the subfield is indexed,
      - "any subfield" is displayed in reverse mode.

$Hust
$<OPERATORS $>
   The operator defines relation between the name and the value.

symbol                       meaning
-------------------------------------------------------------------------
=    There is a subfield containing the given value
>    There is a subfield containing the value > than the given value
>=   There is a subfield containing the value > or equal to the given value
<    There is a subfield containing the value < than the given value
<=   There is a subfield containing the value < or equal to the given value
#    There is a subfield containing the value different to the given value
!    There is no subfield containing the value equal to the given value
+    The subfield (field) apears in record.
-    The subfield (field) doesn't apear in record.
*    The subfield (field) apears twice or more.
1    The subfield (field) apears once and only once.
@    There is a subfield containing the value that fits the given value
	(with the wildcards).
^    There is a subfield containing the value that doesn't fit the given value
	(with the wildcards).

NOTE: characters > and < mean higher and lower in alphabetical order.

$Hust
Some remarks about operators
----------------------------
   1. Each condition dealing with index can contain the operator =, >,
      >=, < or <=.

   2. Condition with operator =, <, <=, #, @ or ^ and with no value is deleted.

   3. Each condition containing operator > or >= and no value to compare
      is treated as containing empty value (i.e. value is equal to one space).

   4. The +, -, * and 1 operators require no value.

   5. If a condition dealing with index contains the operator =, then no other
      index-connected condition may have other operator.

   6. If no index-connected condition contains operator =, then (only one, with
      an exception given below) condition for index with >, >=, < or <= opera-
      tor may exist. Exception (for AND only): it is allowed to define two
      conditions for the same index, one with operator < or <=, and the other
      one with operator > or >=.

   7. If conditions are connected by "OR", all conditions must concern either
      indexes or subfields.

$Hust
$<VALUE $>
   The value (not used for operators +, -, * and 1) is used to compare with the
value pointed by name. For operators  =, >, >=, <, <= i # value may contain
spaces, leters and digits only; for @ i ^ value may contain any character.

   Before comparing values from the record and from the query are processed
as follows:

   1. For operators =, >, >=, <, <= i #
	  - small letters are replaced by capitals,
	  - character ~ and the character which follows are discarded,
	  - non-letters and non-digits are replaced by space,
	  - sequences of spaces are replased by single space,
	  - space at the beginning and at the end are discarded.

   2. For operators @ i ^
	  - small letters are replaced by capitals,
	  - spaces at the end are discarded.

$Hust
$<APPENDING NEW CONDITIONS $>

   The following rules apply when creating new conditions:

      - new condition is always appended at the end of query,

      - if the last condition in the query is empty (no value) and isn't
	connected to index, the new condition replaces the last one,

      - if there is too many conditions (over 15) the query is compressed (if
	possible); otherwise en error occurs.

$Hsz1
$<MEANING OF KEYS $>

key                           action
--------------------------------------------------------------------------
F1                     Help
Up and down arrows,    Scroll the text up or down.
   PgUp, PgDn,
   Home, Ctrl + Home,
   End,  Ctrl + End,
F2 (F3)               Change the display format to the previous (next) one.
Shift + F3            Change the display format to the one specified by number.
Ctrl + F3             Define the way of displaying the record.
F4 or minus sign [-]  Display the previous record.
F5 or plus sign [+]   Display the next record.
   or Enter
Shift + F4            Skip n records backwards (forwards).
   (Shift + F5)
F6                    Mark the record (if not marked) or unmark (otherwise)
			 (doesn't work if records marked FROM - TO).
Shift + F6            Display the parent record or the child (if exists).
Ctrl + F6             Display the child record or the parent (if exists).
Alt + F6              Mark all child records (if exist).
						       $< to be continued $>

$Hsz1
						       $< continuation $>

key                           action
--------------------------------------------------------------------------
F8                    Display the conditions of query.
Shift + F8            Print the record.
Alt + F8              Set up width of the screen.
F9                    Display the record with its subordinates (if any exist).
F10                   Interrupt the operation or stop to display records.
Ctrl + F10            Return to the Main Menu.

$<SEQUENCE OF RECORD DISPLAYING $>
   Records can be viewed one by one, forwards or backwards. The sequence
depends on the way in which records were chosen.

$Hsz2

$<MEANING OF KEYS $>

key                           action
--------------------------------------------------------------------------
F1                     Help
Up and down arrows,    Scroll the text up or down.
   PgUp, PgDn,
   Home, End
F6                    Mark the record (if not marked) or unmark (otherwise)
			 (doesn't work if records marked FROM - TO).
Shift + F6            Display the parent record (if exists).
Shift + F8            Print the record.
Alt + F8              Set up width of the screen.
F10                   Stop to display record.
Ctrl + F10            Return to the Main Menu.


$Hsz3

$<MEANING OF KEYS $>

key                           action
--------------------------------------------------------------------------
F1                     Help
Up and down arrows,    Scroll the text up or down.
   PgUp, PgDn,
   Home, End
F6                    Mark the record (if not marked) or unmark (otherwise)
			 (doesn't work if records marked FROM - TO).
Ctrl + F6             Display the child record (if exists).
Shift + F8            Print the record.
Alt + F8              Set up width of the screen.
F10                   Stop to display record.
Ctrl + F10            Return to the Main Menu.

$Hszl
   The user can display marked records as the continuous text. The records
are displayed succesively, in the current mask, the empty line separates each
record in the text. Because of technical reasons records are grouped, therefore
some operations may be limited to current group (for example Home).

$<MEANING OF KEYS $>
key                           action
--------------------------------------------------------------------------
F1                     Help
Up and down arrows,    Scroll the text up or down.
   PgUp, PgDn,
   Home, Ctrl + Home,
   End,  Ctrl + End,
   Enter, "+" or "-"
F2 (F3)               Change the display format to the previous (next) one.
Shift + F3            Change the display format to the one specified by number.
Ctrl + F3             Define the way of displaying the record.
Shift + F8            Print the group.
Alt + F8              Set up width of the screen (start from the next group).
F10                   Stop to display records.

$Hin1
   The index names are displayed. Values of the pointed index are displayed
in the window at the right side of the screen. To view the whole index you
should chose the proper index and press Enter.

$<MEANING OF KEYS $>
keys                              action
-----------------------------------------------------------------------------
F1                              Help.
Home, End, F4, F5,              Move arrow to other index.
   tab, Shift + tab,
   up and down arrow
any letter                      Move arrow to the index name which begins with
				   the letter (case not sensitive).
Ctrl + Home, Ctrl + End         Scroll index values.
   PgUp, PgDn,
   left and right arrow
Esc + string of chars. +        Display index values from given text.
   Enter
asterisk [*]                    Display index values from the previous text.
F10                             Return to the Main Menu.
Alt + F10                       Move to the search with the conditions being
				   preserved.

$Hin2
$<MEANING OF KEYS $>
key                         action
----------------------------------------------------------------------------
F1                         Help.
arrows,                    Move the bar and / or scroll the text up or down.
   PgUp, PgDn,
   Home, Ctrl + Home,
   End,  Ctrl + End,
any text, ENTER or ESC     Display the index beginning with the value which
			      is equal or higher to the text; store the text if
			      it ends with ENTER.
asterisk [*]               Display the index beginning with the stored text.
plus or minus sign         Display the index beginning with the next or previous
   [+ or -]                   value containing the last stored text.
F2 (F3)                    Display the previous (next) index.
Shift + F2 (Shift + F3)    Skip n indexes backwards or forwards.
Ctrl +  F2 (Ctrl  + F3)    Display previous (next) index with the same name.
F4                         Cancel the last condition.
F5                         Append the following condition to the query: the
			      searched value is equal to the current value.

						       $< to be continued $>

$Hin2
						       $< continuation $>
key                               action
--------------------------------------------------------------------------
Shift + F5             Append the following condition to the query: the searched
			  value is greater or equal (if first condition) or
			  lower or equal (if second condition) to the current
			  value.
F6 or ENTER            Search for records that match the query.
Shift + F6 or Ins      Mark records that match the query.
Alt + F6               Set up counters. Display only the values which number of
			  occurrences fit the specific limits; it acts only if
			  counting (see Shift + F7) is On and if a whole page is
			  beeing displayed; the last value is always displayed.
F7                     Count occurrences of the current value.
Shift + F7             Toggle COUNT/DON'T COUNT occurences of values; if COUNT
			  is On, the asterisk appears after the word "COUNT".
Ctrl  + F7             Toggle COUNT/DON'T COUNT records before searching;
			  if COUNT is On, the asterisk or hash sign appears
			  before the word "COUNT" (the count is displayed
			  before the the first record if "*" is displayed).

						       $< to be continued $>

$Hin2
						       $< continuation $>
key                               action
--------------------------------------------------------------------------
Alt + F7                 Toggle AND/OR for the query. The toggle box is
			    displayed if two or more conditions are set up.
F8                       Remind me the conditons set up before.
F9                       Cancel all conditions set up before.
F10 or Alt + F10         Interrupt to count or stop to browse the index.
Ctrl + F10               Return to the main menu.

$<BROWSING INDEX $>
   Index values are displayed in alphabetical (including polish letters)
sequence, sometimes with record counters. Index can be viewed forwards and
backwards.

   While browsing the index one can search or mark some records. If records
are to be pointed by one value one should put the bar on this value and press
Enter (for searching) or Ins (for marking). If records are to be pointed by
more than one value the proper query must be defined: bar should be put on each
of these values and F5 key should be pressed. After the whole query has been
defined Enter or Ins key should be pressed. The query can be reminded by
pressing F8 key.

$Hin3
$<MEANING OF KEYS $>

key                         action
----------------------------------------------------------------------------
F1                         Help.
arrows,                    Move the bar and / or scroll the text up or down.
   PgUp, PgDn,
   Home, Ctrl + Home,
   End,  Ctrl + End,
any text, ENTER            Display the index beginning with the value which
			      is equal or higher to the text.
asterisk [*]               Display the index beginning with the previous text.
Enter or F6                Insert the value into condition.
F10                        Quit.

$Hkry
$L01The following query has been defined:
No query.
$F02

$Hlis
   Some records may be marked for future use. So called "List of marked records"
may contain either numbers of marked records (individual marking) or number of
first and last marked record (group marking or marking from - to). When indivi-
dual marked record is displayed, its record number is followed by an asterisk.

   List of individual marked records may be stored in an external file; stored
list may be modified by the user and may be read by the program. List of group
marked records is always cancelled when returning to the main menu.

   Individual marking may by done:

     - by converting group marking to individual,

     - by pressing F6 key when displaying the unmarked record,

     - by pressing INS key when displaying any index,

     - by choosing the proper option when searching,

     - by reading a list from an external file.

   Deleting the record number from the list may by done by pressing F6 when
the record is beeing displayed or by cancelling the whole list.


$Hlis
$<SEARCHING USING LIST OF MARKED RECORDS $>
   When records are marked individually, one can call the search operation;
search results depend on the chosen option (SEARCH/COUNT/MARK) and on the type
of searching: sequential or using indexes:

		sequential search                index searching
		==========================================================

SEARCH/COUNT    displaying / counting            displaying / counting
		FROM THE LIST                    FROM THE BASE

MARKING         ERASING records which            ADDING records which
		don't match the query            match the query
		FROM THE LIST                    TO THE LIST

$<SORTING MARKED RECORDS $>
   The user can sort individually marked records according to a key composed
of from 1 to 15 subfields. If any subfield appears more then once in the
record, the sortkey takes into account only its first occurence. The sort
changes the sequence in the list, not in the base. Sorting requires possibility
of creating, writing and reading the file in the current directory.

