@database AnnoE.guide
@node main "Anno documentation"


@{fg shine}@{b}    _______________________________________________________________________@{ub}@{fg text}


			       @{b}ANNO 1.20@{ub}

			  (c) Copyright 2001
			  by Jürgen Klawitter

			       FREEWARE

@{b}    _______________________________________________________________________@{ub}

			    @{"Requirements  " link "Requirements"}
			    @{"Start         " link "Start"}
			    @{"Installation  " link "Installation"}
			    @{"The data file " link "Data"}
			    @{"Date types    " link "Types"}
			    @{"User interface" link "Interface"}
			    @{"Author        " link "Author"}



Was does ANNO ?
===============

ANNO is a calendar program that helps to organize your personal dates.
It orders the dates of a year chronologically and displays them in a list
window. Dates of different actuality are marked by different background
colors which can be chosen by you.

ANNO is easy to use. Dates can be changed, deleted or added instantly
without a special editor program.

ANNO is @{i}no@{ui} commodity, waiting in the background and popping up
requesters when time has come. You have to call it in order to be informed
about the next dates.

ANNO has been programmed in assembler, is rather short (11 K actually)
and doesn't need much memory. Only system libraries are used.
@endnode

@node Requirements


System requirements
===================

ANNO needs OS 2.04 (V37) or higher. For localized names of weekdays and
months locale.library V38+ is necessary. But ANNO works without
locale.library, too.

    @{" next " link "Start"}
@endnode

@node Start


Start
=====

ANNO can be started from shell or Workbench. If you start it from shell
the following arguments can be given, but it is more comfortable to use
the configuration file @{"ENV:anno.prefs" link "Installation"} to adapt ANNO to your needs.

DATA/K	    provides the name of the data file which contains the dates
	    to be displayed. This is a simple ASCII file which can be
	    written with an editor, but it can be installed by ANNO too
	    when you first use it. The format of the data file is explained
	    in the chapter @{"The dates" link "Data"}.

FONT/K	    sets the font to be used, e.g. FONT topaz.font/11.
	    The number after "/" is the font size. The font must be
	    @{i}nonproportional!@{ui}

PENS/K	    defines the pens to be used for the display. ANNO uses 7 colors
	    to mark events of different actuality. If your Workbench has
	    enough pens ANNO can look rather colorful.
	    If you don't specify PENS default colors will be used.

	    The pens must be specified in a special order, each separated
	    from the next by a dot or comma. If you have a Workbench with
	    4 colors, you can use pen numbers 0-3, with 8 colors 0-7 and
	    with 256 colors 0-255.

	    If you don't know which pen produces which color use a palette
	    program like FullPalette. Now the meaning of the different
	    pens:

	    order    meaning		       default (Palette)
	    ---------------------------------------------------------
	      1      normal text	       Text
	      2      normal background	       Background
	      3      background for	       Bright Edges
		     daily events
	      4      background for events     Bright Edges
		     of current day
	      5      text color for events     Active Window Titles
		     of current week
	      6      background vor events     Active Window Titlebar
		     of current week
	      7      background for events     Active Window Titlebar
		     of next week

	    With a Workbench of the 4 standard colors the sequence would
	    be 1.0.2.2.1.3.3 (black.gray.white.white.black.blue.blue).
	    If you are satisfied with this you need not use PENS.
	    Example for 256 available colors:
	    PENS 1.19.109.2.1.168.170

YEAR/N	    determines which year is indicated after start of the program.
	    The key word may be omitted. The years 2000 - 2099 may be
	    abbreviated as 0 - 99. YEAR 0 is thus 2000. In this way the
	    oldest year that can be indicated is the year 100. The upper
	    limit is year 3200.

	    If no year has been indicated ANNO shows the dates of the
	    current year. It is, however, no problem to shift from there
	    into different years.

	    It is important to know that according to the selected year
	    the days of the week and the dates related to Easter are
	    calculated either according to the Gregorian or to the Julian
	    calendars. The limit is the year 1583 from when on the Gregorian
	    calendar was exclusively valid in all catholic countries.
	    It was introduced in October 1582.

    @{" next " link "Installation"}

@endnode

@node Installation


Installation
============

The programm can be copied to any place whatever, e.g. to C: or into the
WBStartUp directory. Furthermore 2 files are needed which ANNO looks for
after start:

    - the configuration file ENV:anno.prefs
    - the data file that is to say the file which contains the dates to be
      shown.

If no data file has as yet been installed an almost empty window appears
which merely shows the date of the actual day.

Both files are normal ASCII files and can be installed with an editor.
The configuration file anno.prefs must also be copied to ENVARC: in order
to be available after every system start.

The entries in anno.prefs correspond to the Shell arguments:

		@{" DATA " link "Start"9}
		@{" FONT " link "Start"15}
		@{" PENS " link "Start"19}

For each entry you have to use a new line. Comments may be inserted at
any place whatever after a semicolon.

;example for anno.prefs
DATA=s:anno.data	;Name/path of the @{"data file" link "Data"}
FONT=topaz.font/11
PENS=1.0.2.2.2.3.2	;for a Workbench of 4 colors

    @{" next " link "Data"}

@endnode

@node Data


The data file
=============

This is the file that contains the dates one wants to be reminded of.
It can be written with an editor, one can, however, also enter date by
date via the GUI of ANNO.

For each date a separate line has to be written which starts with a date
and then after a blank space continues with the text related to the date
(start of holidays, meeting with Anna, dental appointment...).

The text can have a maximal length of 120 characters. The window of ANNO
permits the representation of 40 characters only, therefor any longer text
will be wrapped at word boundaries. You may also force wordwrapping by
using the sign "|". Example:

24.12.00 Chrismas Eve|15 h prepare the presents|16 h distribution of presents

This would produce the following display:

 Sun 24.Dec  Chrismas Eve
	     15 h prepare presents
	     16 h distribution of presents


You my adopt the following list of holidays as a basis for your personal
data file. The meaning of the used date formats will be explained in chapter
@{"Date types" link "Types"}.

;--------------------------------- clip -----------------------------
1.1.	  New Year's Day
6.1.	  Epiphany
14.2.	  Valentine
E-48	  Carnival Sunday
E-47	  Mardi Gras
E-46	  Ash Wednesday
E-7	  Palm Sunday
E-3	  Maundy Thursday
E-2	  Good Friday
E+0	  EASTER
1.5.	  Labor Day
2.Sun.5.  Mother's day
E+39	  Ascension of Christ
E+49	  WHITSUN
E+60	  Feast of Corpus Christi
5.So.3	  +1h, summer time
5.So.10   -1h, winter time
5.Thu.11. Thanksgiving Day
A-14	  Memorial Day
A-11	  Penitential and Prayer Day
A-7	  Death Sunday
A+0	  1.Advent
A+7	  2.Advent
A+14	  3.Advent
A+21	  4.Advent
24.12.	  Christmas Eve
25.12.	  CHRISTMAS
31.12.	  New Year's Eve
;--------------------------------- clip -----------------------------

    @{" next " link "Types"}

@endnode

@node Types


Date types
==========

ANNO accepts 5 types of dates where the first four ones can be varied
in length (see below):

    - normal date consisting of day, month and year
    - date related to Easter
    - date related to 1st Advent
    - date related to a weekday
    - daily date

The components of a date must be separated from each other by any
nonnumerical character except the space character. The space serves as
separator between date and the corresponding text. So, for example "1st of
may 2002" may be entered as follows:

    1.5.02 or 1.5.2002 or 01-05-02 oder 1/5/02 etc.

The order day/weekday - month - year is obligatory and cannot be varied.
Day or weekday have always to be specified, month or month and year can be
omitted. The more components of a date you omit the more often it appears
in the displayed list:

    date with year    -> appears only in the specified year
    date without year -> appears annually
    day only	      -> appears monthly
    weekday only      -> appears weekly
    "*" only          -> appears daily

In the following survey some abbreviations are used:
    d = day of the month (1-31)
    m = number of the month (1-12)
    y = year
    E = Easter Sunday
    A = 1st Advent
    wd= weekday, abbreviated¹
    Today=current day

¹)
The abbreviations to be used for weekdays are those used by ANNO in the
main window. If localisation is not possible (OS less than V38) you have
to use the english abbreviations (Mon,Tue...Sun) else those of your
own language.


			@{b}Survey of date types@{ub}
			--------------------


Date type	Format			Comment
=========================================================================
Normal date	d.m.y			also d-m-y or d/m/y possible

Examples	23.3.01 		Appears only in 2001
					The weekday is calculated by ANNO

		1.5.			The year has been omitted here,
		24.12.			appears therefor every year.
					Holydays, anniversaries etc. with
					constant dates can be defined in
					this way.

		15.			Month and year have been omitted,
					appears therefor monthly.
					Weekday and month are substituted
					by ANNO. Will be displayed only
					in the list of the current year
					and from Today on.
		31.			If d > length of current month
					then d is the last day of month:
					31.Jan, 28./29.Feb(if leap year),
					30.Apr, 31.May...
-------------------------------------------------------------------------
Date with	n.wd.m.y		means: nth weekday in month m
weekday 				and year y

Examples	1.Thu.10.01		First Thuesday in October 2001

		1.Thu.10.		First Thuesday in October of every
					year

		5.Sun.3.		Last Sunday in March of every year
					The last weekday of a month can be
					achieved by setting n=5 or higher.

		2.Wed			2nd Wednesday of every month from
					Today on. If this weekday has
					passed away in the current month
					next month will be taken.

		Wed			every Wednesday
					If Wednesday has already passed
					away in the current week Wednesday
					of the next week will be displayed.
-------------------------------------------------------------------------
Daily		*			appears every day but only in the
					current year's list and always above
					Today.
					This format can be used for urgent
					affairs which must be done as soon
					as possible.

Example 	* buy new shoes
-------------------------------------------------------------------------
Easter		E+/-n.y 		means: Easter Sunday plus or minus
dependant				n days in year y


Examples	E+0.02			Easter Sunday in 2002
		E+0			Easter Sunday of every year
		E+1			Easter Monday "    "    "
		E-2			Good Friday   "    "    "
		E+49			Whitsun       "    "    "
-------------------------------------------------------------------------
Advent		A+/-n.y 		means: 1st Advent +/- n days
dependant				in year y

Examples	A+7.01			2nd Advent in 2001

		A+21			4th Advent of every year

All this may appear rather complicated but unfortunately it cannot be
done any easier than that. Furthermore you are likely to use the majority
of the data types either not at all or only once when installing the
data file.

    @{" next " link "Interface"}

@endnode

@node "Interface"


User interface
==============

ANNO opens a window that displays the dates of the selected year as an
ordered list. In case that no data file exists as yet only one single line
with the date of the actual day and text "Today" is presented.

The height of the window is limited to 25 lines. If the list of dates is
longer you can go through with the cursor keys or with the scroll gadget
on right hand edge. If the year displayed is the current one the segment
with the actual dates will be presented in the following order:

    daily dates
    today's dates
    dates of the current week
    dates of the following week

In case that there are no dates for today a line with the current date
will be produced internally.

@{b}Use of mouse buttons@{ub}

1. Click with left mouse button -> Edit, delete a date
-------------------------------
Click on the line you want to modify. A requester will pop up which lets you
choose among "Delete", "Edit" and "Cancel". When the modification is done
the word "modified" appears in the window title bar.

2. Shift-click with left mouse button -> Swap/Move lines
-------------------------------------
The order of lines @{i}with the same date@{ui} can be changed by shift-clicking
on a line. This line will then move one position up, the line above will
move one position down. Repeatedly shift-clicking on a line moves it to the
top, repeatedly shift-clicking beneath a line moves it to the bottom.

3. Click with right mouse button -> Show difference
--------------------------------
When clicking on a line a requester shows the difference of a date in days
from today and - in brackets - the number of the week in the year currently
presented.


@{b}The Gadgets@{ub}


   [-]		1 year back

   [Open]	open another data file
		The first date in this file determines the year which
		will be presented.

   [Print]	enables the printing or saving of the list of dates for
		the year presented. In order to print you have to enter
		"PRT:" else a file name. If your printer is online PRT:
		is the default.
		If the year shown is the current one you can restrict
		the printing to the most actual dates (daily, today,
		this week, next week). Click on [*] or press RAmiga-*
		to achieve this else the whole year will be printed.

   [Add]	add a new date

   [2001]	This field shows the year whose dates are actually shown.
		After clicking on this field or pressing the key "Y"
		you can enter another year.

   [Find]	find a string in the data file
		The search is case insensitive. If found the corresponding
		entry is shown and you can choose among "Next", "Show"
		and "Cancel". If you opt for "Show" the segment of the
		year's list will be presented to which the respective date
		belongs.

   [M]		Monthly survey
		Shows calendars of the current month and the following one.
		Dates occuring in the year's list (today, this week, next
		week) are marked by the appropriate background colors.
		Exception: Dates after next week are marked by the
		background color for daily events.

   [D]		find out weekday or date
		You have to enter a date according to the date formats
		acceptable to ANNO. Example: "e+0.01" gives the date of
		Easter Sunday 2001 (Sun 15.04.2001).
		Additionally the Julian date for years after 1583 is
		calculated.

   [I]		Information about
		- the data file currently loaded
		- number of total dates
		- annual dates
		- dates in the year indicated:
		-----------------------------
		- daily dates
		- today's dates
		- dates of the current week
		- dates of the following week

   [?]		Version, author and address

   [*]		jumps to the current year and shows the section with
		the daily dates.

   [+]		1 year on

Every gadget has its key equivalent which is identical with the first
character of the gadget text.

With the keys Q and Esc you can leave the program. If datas have been
changed you'll be asked whether you want to save.

   @{b}Further key commands:@{ub}

   Help 		table of key commands
   .			search as with key "F"
   Cursor up		1 line up
   Cursor down		1 line down
   Cursor left		to beginning of the year's list
   Cursor right 	to the end of the year's list
   Space		one page down
   Shift-Cursor down	same as Space
   Backspace		one page back
   Shift-Cursor up	same as Backspace

All key commands which move through the year's list automatically switch
to the next/previous year when the bottom/top of the list is reached.

    @{" next " link "Author"}

@endnode

@node Author

Bug reports, suggestions, postcards may be sent to the following address:


			      Jürgen Klawitter
			      Südendstr. 28
			      D-12169 Berlin
			      Germany

    @{" back " link "main"}


@endnode
