home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: InfoMgt
/
InfoMgt.zip
/
MJOG.ZIP
/
MJOG.DOC
next >
Wrap
Text File
|
1991-03-26
|
31KB
|
769 lines
MJOG 2.16/2.16P
MJOG is a simple program that can help jog your memory for
important dates (mjog = Memory JOGger). You can use MJOG to
create a small file containing birthdays, appointments, etc.,
and it will remind you of them as far in advance as you wish.
MJOG is a nice program to put in your AUTOEXEC.BAT.
MJOG 2.xx is the DOS version; MJOG 2.xxP is the OS/2 version.
The two versions are identical except that one runs under DOS
and one under OS/2.
Version 2 is a complete rewrite of the program. It is much
more flexible than previous versions. The basic changes are:
-- Flexible reminder dates (remind on day of week, day
of month, etc.).
-- "Cleanup" is no longer required; obsolete entries are
automatically deleted.
-- You can delete reminders without editing the data file.
-- You can temporarily "forget" a recurring reminder after
it has been taken care of.
-- You can define different lookahead periods for each
reminder.
-- More flexible configuration.
| marks changes in recent versions.
Starting up
-----------
MJOG keeps a small text file for your appointments and
reminders. You should decide where you want to keep this
before running MJOG the first time. If you don't specify where
it goes, MJOG will create a file called MJOG.DAT in the current
directory.
If you want to use a different name and/or directory, set the
environment variable MJOG as follows:
SET MJOG=FILE:d:\path\filename
For example:
SET MJOG=FILE:c:\misc\mjog.txt
Do this before running MJOG. Note that there are additional
options for the MJOG variable, as described below.
Adding appointments to your calendar
------------------------------------
To add a date to your calendar file (or to create a new file if
there isn't one already), just type
MJOG date text
where date is a reminder date and text is the reminder text.
MJOG's date scheme is very flexible; see the section called
"Specifying dates."
Here are some examples of entering reminders:
mjog tue Dentist 3pm
(See the dentist next Tuesday)
mjog 4/14 Dinner with CPA
(Meet with your CPA next April 14th)
mjog every 4/15 Income taxes due
(Pay taxes every April 15th)
mjog 8/15/* Income taxes REALLY due
(Note that * is a wildcard--same as "EVERY 8/15")
mjog today 1pm Lunch with Neville & Benito.
(Have lunch today at 1 PM)
Displaying reminders
--------------------
To have MJOG display your reminders, just run it:
MJOG
It will display all reminders for the next ten days. You can
change the number of days MJOG "looks ahead" as described below.
If you add a /P switch:
MJOG /P
MJOG will pause after it displays any reminders. It will not
pause if there are no reminders to display.
Displaying a calendar
---------------------
You can have MJOG display a calendar of the current month:
MJOG /L
If you want a calendar for a different month, use:
MJOG /L(mm/yy)
For example:
MJOG /L(6/89)
This would display a calendar for June, 1989.
Specifying dates
----------------
MJOG is quite flexible on dates. You can specify days of the
week, months, days of the month, and years, and you can use
"wildcards" to create reminders that repeat regularly.
There are two kinds of reminders. "Floating" reminders recur
periodically (for example, the 1st of every month, every Monday,
every April 15th). "Fixed" reminders refer to one specific date
(for example, 12/15/89).
Here are the two generic date formats:
TODAY
EVERY dow mm/dd/yy
where EVERY is a keyword that forces the date to float; DOW is a
day of the week; and MM, DD, and YY represent a month, day of
the month ("DOM"), and year, respectively. All fields are
optional, but you must specify enough for MJOG to be able to
determine a valid date. We'll describe partial and wildcard
date specifications shortly.
The DOW, if present, must be one of the following three-letter
abbreviations:
Mon Tue Wed Thu Fri Sat Sun
Case is not significant (e.g., "mon", "Mon", and "MON" are all
OK).
All fields can be wildcards, and some can be omitted in certain
combinations. Here are the details:
1. Month, Year, DOM wildcards: an asterisk (*) is a
wildcard; it allows the field to float. Examples:
12/25/* (December 25th of any year)
12/*/* (any date in any December)
4/*/89 (any date in April, 1989)
*/15/* (the 15th of every month)
*/1/89 (the 1st of every month in 1989)
*/*/* (every day)
2. Month, Year, DOM partial specifications: in some cases
you can omit fields of the MM/DD/YY specification. These are
the valid partial date formats:
MM/YY
Shorthand for MM/*/YY
Example: "12/89" = "12/*/89"
MM/DD
The next occurrence of the month and DOM. If
entered on 6/9/89:
"7/15" = "7/15/89"
"4/15" = "4/15/90"
DD
Means the next occurrence of the specified DOM. If
entered on 6/12/89:
"12" = "6/12/89"
"13" = "6/13/89"
"11" = "7/11/89"
Note that the MM/DD and DD formats are fixed reminders--they
represent one specific date. MM/YY, however, is a floating
reminder--it represents any day in the specified month.
3. DOW wildcards: you can make the DOW a wildcard by simply
omitting it. Do not use an asterisk.
4. EVERY: this is a keyword that forces the date
specification to float. Examples:
every 12/25 (same as 12/25/*)
every 15 (same as */15/*)
every tue (every Tuesday)
every 12/89 (same as 12/*/89)
This sounds much more complicated than it really is. In
practice, you will find it quite natural. Here are some
examples of valid date specifications. Where "shorthand" is
used, the equivalent full specification is shown in parentheses
(MM, DD, and YY represent specific numbers):
every thu Every Thursday (THU */*/*)
thu Next Thursday (THU MM/DD/YY)
17 The next 17th of the month (MM/17/YY)
4/89 Every day of April, 1989 (4/*/89)
12/15 The next December 15 (12/15/YY)
every 12/15 Every December 15 (12/15/*)
thu 12/89 Every Thursday in 12/89 (THU 12/*/89)
mon */*/89 Every Monday in 1989
*/15/* 15th of every month
*/15/90 15th of every month in 1990
1/*/* Every day of every January
every 17 17th of every month (*/17/*)
9/14/89 September 14, 1989
today Today!
Note that if your date specification consists solely of a DOW,
MJOG will not include today, even if it is the same DOW. For
example, if you enter
MJOG tue dentist 9:30
MJOG will assume that you mean NEXT Tuesday, even if today is
Tuesday. If you really mean today, use
MJOG today dentist 3pm
If you use EVERY with a DOW, MJOG will include the current date:
MJOG every tue Luncheon in the grass
In this case, MJOG will display the reminder for today (if today
is Tuesday).
Finally, note that you can enter a DOW and a DOM, but they must
match correctly. For example:
tue 1/3/89 is OK: 1/3/89 is a Tuesday
tue 1/4/89 is invalid (no such date)
tue */7/* will display a reminder on any 7th that is a
Tuesday, but will give error messages for
other 7ths.
Changing the "lookahead" date
-----------------------------
Normally, MJOG will look ahead ten days. This means that it
will display any reminders that will occur within the next ten
days (including today).
You can change MJOG's lookahead date by using the /n switch,
where n is the number of days you want to look ahead. For
example:
MJOG /180
This will display any reminders coming up within the next six
months. Note that you can permanently change the lookahead
period via the MJOG environment variable (see below).
You can also specify individual ("local") lookahead dates for
each reminder by using a /n switch when you define it. For
example:
MJOG /30 every 4/15 Income taxes due!
This will display your income tax reminder one month in advance,
while other reminders remain set at the usual ten days.
To be precise, the lookahead date is how many days IN ADVANCE
you want to be reminded. If you only want to be reminded on the
actual day of the memo, use /0. The maximum lookahead value is
65534 days.
Note that MJOG will only display a reminder once, even if it
occurs multiple times within the lookahead period. For example,
if you have
mjog every Fri 9am staff meeting
and you run MJOG /30, only the first weekly staff meeting will
be displayed.
If you specify a global lookahead on the command line, MJOG will
use the longer of the two lookahead periods for those reminders
that also have "local" lookaheads. For example, if you have:
mjog /20 3/2/* Patty's birthday
mjog /60 4/15/* Taxes due
(specifying a 20-day lookahead for the birthday and a 60 day
lookahead for taxes) and you then do:
mjog /45
MJOG will use a 45-day lookahead for the birthday and a 60-day
lookahead for the taxes.
| Displaying a different year
| ---------------------------
| Some people like to use MJOG as a "this day in history" tool,
| displaying interesting things that have occurred on the current
| date in years past:
|
| MJOG /0 5/10/* Churchill becomes Prime Minister, 1940
|
| This works well, except that the reminder always shows up with
| the current date:
|
| Wed 5/10/89 Churchill becomes Prime Minister, 1940
|
| The date "Wed 5/10/89" has no particular significance in this
| context; it is simply an artifact of the way MJOG works.
|
| The /Y switch allows you to specify a different year for
| display; just follow it with a full 4-digit year. For example:
|
| MJOG /0 /Y1940 5/10/* Churchill becomes Prime Minister
|
| On May 10, this will be displayed:
|
| Fri 5/10/1940 Churchill becomes Prime Minister
|
| Any year from 1 A.D. is valid. Note that, for years prior to
| the adoption of the Gregorian calendar, the displayed day of the
| week may differ from the day as recorded in history. The
| Gregorian calendar was adopted by the British Empire (including
| the American colonies) on September 14, 1752, and by other
| countries at various times.
Deleting reminders
------------------
When a reminder is obsolete (i.e., when the date of a fixed-date
reminder has passed), MJOG will automatically delete it. To
delete a floating reminder or a fixed reminder before its date
has been reached, you can either edit the MJOG data file with
your text editor and manually delete it, or you can have MJOG
delete it via the command:
MJOG /D [date] [text]
You must include enough of the date and/or text to uniquely
identify the reminder. For example, if you have a note:
MJOG Tue Call for dentist appointment
you could delete it by using:
MJOG /D dentist
or
MJOG /D Tue
if and only if the word "dentist" does not appear in any other
reminder (first example) or if you have no other reminders for
next Tuesday (second example). You can make the deletion
unambiguous by including more text or by specifying the date and
some text:
MJOG /D tue dentist
MJOG /D call for dentist
If you use a date, you do not have to use the same format as the
original entry, but you must specify it so that it evaulates to
the correct date. For example, if you had originally used:
MJOG 6/20/89 Call dentist for appointment
you could use:
MJOG /D Tue dentist
if next Tuesday is 6/20/89. In other words, that command would
work from Tuesday 6/13/89 through Monday 6/19/89. Prior to
6/13/89 or on 6/20, you'd have to specify the date more
accurately. Here are several examples:
MJOG /D 6/20/89 dentist (always OK)
MJOG /D 6/20 dentist (anytime from 6/21/88-6/20/89)
MJOG /D 20 dentist (OK 6/1/89-6/20/89)
MJOG /D TODAY dentist (OK on 6/20/89 only)
If there is no way to make a reminder selection unambiguous
(i.e., if two reminders in file are identical), the only way to
remove one of them is by editing the file.
Forgetting reminders
--------------------
After you've taken care of a floating reminder, it's useful to
be able to "forget" it until the next occurrence. For example,
suppose you have:
MJOG EVERY 10/19 Mom's birthday
You'll be reminded every year, prior to October 19, that it's
time to take care of the birthday. After you've sent her the
keys to that new car (say, on October 15), there's not much
point to the reminder remaining active. But you don't want to
delete it, either, because you're going to have to buy another
new car next year. All you want to do is forget it for this
year.
MJOG allows you to forget the reminder in this fashion:
MJOG /F [date] [text]
The date and/or text are specified exactly as for deleting a
reminder (above). For example:
MJOG /F 10/19
MJOG /F 19 birthday
When you do this, MJOG adds a special note to the reminder in
the file, telling it to forget the reminder until a specific
date has passed. Assuming that you issue the above command in
1989, MJOG would change the reminder in file to:
MJOG /~10/19/89 10/19/* Mom's birthday
MJOG will then ignore this reminder until AFTER 10/19/89, at
which time the /F note will be removed and the reminder will
again become active (for 1990).
The /~MM/DD/YY format is a special one that MJOG uses for
itself. It appears only in the data file, and you should
probably not enter it by hand. If you insist on doing so, it
must be in EXACTLY that format. In particular, the date must be
explicit--it can contain no wildcards, missing elements, or days
of the week.
Displaying MJOG version
-----------------------
MJOG does not display its version/copyright notice when it is
just listing reminders (it would detract from the display). It
does display the notice when any maintenance is performed on the
reminder file (new reminders, deletes, forgets, etc.) and when
an error is detected.
If you need to check your version number manually, use the /V
switch:
MJOG /V
Parameter specifications
------------------------
MJOG is fairly flexible about how you enter parameters, but
there are a few rules you must follow.
1. Switches cannot be combined and must be separated from each
other by at least one space:
Legal: MJOG /L /50
Illegal: MJOG /L/50
Illegal: MJOG /L50
Switches can be introduced by either a slash (/) or a hyphen
(-).
2. The keyword EVERY, if present, must precede the date/DOW:
Legal: mjog every tue
Illegal: mjog 12/15 every
3. MJOG assumes that the reminder text begins with first word it
finds that doesn't look like one of these:
"EVERY" (unless date has already appeared)
"TODAY" (unless date has already appeared)
/switch
-switch
day-of-week specification
date specification
That's fairly simple. About the only time you can get into
trouble with the text is if your date specification is a DOW
only (no date) and the reminder text begins with a number:
mjog tue 3 wise men arrive, Heathrow 0730
MJOG will think the "3" is a date specification. It does have
some special logic built in; numbers that meet any of these
criteria are assumed NOT to be dates (and thus to begin the
reminder text):
Any number that is three or more digits in length.
Any number containing a colon (:).
Any number that is followed by "AM" or "PM"
Therefore, all of these would be OK:
mjog tue 0730 3 wise men arrive, Heathrow
mjog tue 9:00 staff meeting
mjog tue 9am staff meeting
mjog fri 10667 Brambley Court, meet Spiro
4. When a date is in the format nn/nn, it could be either MM/DD
or MM/YY. MJOG assumes that it is MM/YY if the second number is
larger than 31, else MM/DD.
5. Years can be specified either as YY or as YYYY ("89" or
"1989"). MJOG accepts dates from 1981-2010. Years are always
displayed as YY, except for /Y switch years, which are displayed
as YYYY.
The MJOG data file
------------------
The file that MJOG uses (usually called MJOG.DAT) is a standard
ASCII text file containing all active reminders. You can edit
it, if you wish, with your text editor or your word processor in
non-document mode.
MJOG updates the file by itself whenever a reminder is added,
"forgotten", deleted, or obsoleted. Note that MJOG uses a
standard format for its dates when writing the data file, so
they might not look exactly as they did when entered. For
example, "every 15" is the same as "*/15/*"; MJOG will always
use the latter, no matter how you entered it.
You can prevent MJOG from automatically deleting obsolete
reminders from the file via the NOUPDATE field in the MJOG
environment variable (see below).
You can force MJOG to update the file with a /U parameter:
MJOG /U
/U overrides NOUPDATE if both are present.
Whenever MJOG updates the file for any reason, it is sorted in
order of next occurrence date. In other words, the memos will
appear in the file in the order they will appear on the screen.
Each line of the file is in a specific format:
(mm/dd/yy) /~mm/dd/yy /nn dow mm/dd/yy text
The mm/dd/yy in parentheses is the date of the next occurrence
of the memo. The remainder of the line should be familiar: the
"forget-until" date, local lookahead, DOW, reminder date, and
reminder text. Many of these fields may be missing from any
single line, but everything will be lined up in columns.
If you edit the data file by hand, the next-occurrence date (in
parentheses) need not be present. However, if it is, it must be
enclosed in parentheses, and it must be the first item on the
line.
The MJOG environment variable
-----------------------------
The MJOG environment variable allows you to permanently change a
few items of MJOG's configuration. These include the name and
location of the data file, the screen attributes (colors) to be
used, where to display the calendar, and the lookahead period.
The specific syntax is:
MJOG=FILE:<filename> ATTRIB:<attribs> CAL:<coords> LOOK:<nn>
NOUPDATE
All are optional (but you obviously must specify at least one of
them). The formats are as follows:
FILE: The exact path and filename of the data file. For
example:
FILE:c:\misc\mjog.dat
ATTRIB: A list of screen attributes in ANSI format. ANSI.SYS
or equivalent must be loaded to use this feature [under OS/2,
MJOG does not check to ensure that this is true!]. You specify
three attributes: normal, highlight, and exit. Highlight is
used for highlighted displays, which includes any reminders for
today or tomorrow and the current date on the calendar. Normal
is used for all other displays. Exit is the attribute the
system will be using when MJOG finishes. Attributes are
specified using the numeric sequence ANSI.SYS uses to specify
colors. For example, "1" turns on the highlight attribute (the
ANSI sequence is <Esc>[1m), so you'd use "1" for highlighted
video; "34;43" would set blue-on-yellow (ANSI is <Esc>[34;43m).
The three attribute fields are separated by commas. Examples:
ATTRIB:0,1,0 (for a mono display)
Normal = white on black
Hilite = bright white on black
Exit = white on black
ATTRIB:34;43,33;44,34;43 (color display)
Normal = blue on yellow
Hilite = yellow on blue
Exit = blue on yellow
CAL: the X,Y coordinates where you want the upper left hand
corner of the calendar to appear. The standard coordinates are
56,2, and the upper left corner of the screen is 0,0. Example:
CAL:20,15
This would cause the calendar to appear at column 20 of line 15.
LOOK: changes the global lookahead period from ten days to
something else. Example:
LOOK:7
This would change the lookahead period to seven days.
NOUPDATE: If "NOUPDATE" is found in the variable, MJOG will not
perform automatic deletion of memos that are obsolete (i.e.,
fixed reminders whose date has passed). The file will be only
updated when you add, "forget", or manually delete a reminder.
The /U command line switch overrides NOUPDATE and causes MJOG
to delete any obsolete memos.
To create the environment variable, issue a SET MJOG= statement
before running MJOG (probably in AUTOEXEC.BAT). For example:
SET MJOG=FILE:c:\mjog.dat ATTRIB:0,1,0 CAL:10,2 LOOK:7 NOUPDATE
If you see the DOS message "Out of environment space", you must
increase the space allocated for your environment. For example,
under current versions of DOS, DOS 3.x or later, you could add
the following to your CONFIG.SYS:
SHELL=c:\command.com c:\ /p /e:512
This obviously assumes that your copy of COMMAND.COM is located
in C:\, and it would give you 512 bytes of environment space.
Compatibility with previous versions
------------------------------------
We've made every effort to keep MJOG version 2 compatible with
earlier versions.
The old MJOGDIR and MJOGXY environment variables are still
supported. If the new MJOG variable and one or both of the old
variables are present, MJOG will override MJOGDIR and MJOGXY (if
MJOG contains FILE: and CAL: fields respectively).
The old -C switch is no longer necessary and is ignored if
present (cleanup is now automatic).
Use on non-IBM-compatible systems (DOS version)
-----------------------------------------------
All features of MJOG except the calendar display can be used on
any MSDOS machine.
If you have a non-compatible MSDOS machine and wish to use the
calendar:
1. You must have ANSI.SYS or equivalent installed.
2. Your ANSI device driver must support the CPR (Cursor
Position Report) sequence. On receipt of the sequence
<esc>[6n, the device driver should report the current
cursor position via standard input.
3. You must specify an attribute set (using the MJOG
environment variable).
If you are not using an IBM-compatible machine and use the
calendar without taking the above steps, the results will be
unpredictable. MJOG will use system interrupt 10h for cursor
movement; interrupt 10h is BIOS video service on IBM-compatible
systems, but may not be on others.
Switch summary
--------------
The full list of available switches is as follows:
/# Alter lookahead days to #.
/D Delete a reminder (include date/text to identify).
/F Forget a reminder (include date/text to identify).
/L[(m/y)] Display a calendar [for month MM/YY].
/P Pause after reminders.
/U Force a file update (counters NOUPDATE).
/V Display version number.
/Y# Specifies a year for display.
Release history
---------------
Version 2.16P 03/27/91
-- OS/2 release of version 2.16
Version 2.16 02/04/89
-- Corrects errors in calendar displays
Version 2.15 02/02/89
-- Fixes some problems with the ATTRIBute set. One of these
problems could cause the calendar display to hang up or
repeat endlessly.
-- Fixes some problems with /Deleting and /Forgetting
reminders.
-- Adds /Y switch.
-- Allows larger data files
Version 2.10 01/05/89
-- Fixes several problems with local lookahead.
-- Formats MJOG data file into columns and adds
next-occurrence date to each line.
-- Adds /U and /P switches.
-- Adds TODAY keyword.
-- DOW-only memos now assumed not to include today.
-- Adds NOUPDATE field to MJOG variable.
-- Numerous internal changes to reduce memory requirements
and possibilities of stack overflow.
Version 2.00 12/20/88
Initial public release of version 2.
Copyright/License/Warranty
--------------------------
This document and the program file MJOG.EXE ("the software") are
copyrighted by the author. The copyright owner hereby licenses
you to: use the software; make as many copies of the program
and documentation as you wish; give such copies to anyone; and
distribute the software and documentation via electronic means.
There is no charge for any of the above.
However, you are specifically prohibited from charging, or
requesting donations, for any such copies, however made; and
from distributing the software and/or documentation with
commercial products without prior permission. An exception is
granted to not-for-profit user's groups, which are authorized to
charge a small fee (not to exceed $7) for materials, handling,
postage, and general overhead. NO FOR-PROFIT ORGANIZATION IS
AUTHORIZED TO CHARGE ANY AMOUNT FOR DISTRIBUTION OF COPIES OF
THE SOFTWARE OR DOCUMENTATION, OR TO INCLUDE COPIES OF THE
SOFTWARE OR DOCUMENTATION WITH SALES OF THEIR OWN PRODUCTS.
THIS INCLUDES A SPECIFIC PROHIBITION AGAINST FOR-PROFIT
ORGANIZATIONS DISTRIBUTING THE SOFTWARE, EITHER ALONE OR WITH
OTHER SOFTWARE, AND CHARGING A "HANDLING" OR "MATERIALS" FEE OR
ANY OTHER SUCH FEE FOR THE DISTRIBUTION. NO FOR-PROFIT
ORGANIZATION IS AUTHORIZED TO INCLUDE THE SOFTWARE ON ANY MEDIA
FOR WHICH MONEY IS CHARGED.
The software is intended for personal use only and should not be
used in a commercial, institutional, or governmental environment
with prior permission of the copyright owner.
No copy of the software may be distributed or given away without
this document, and this notice must not be removed.
There is no warranty of any kind, and the copyright owner is not
liable for damages of any kind. By using this free software,
you agree to this.
The software and documentation are:
Copyright (C) 1985, 1986, 1987, 1988 by
The Cove Software Group
Christopher J. Dunford
P.O. Box 1072
Columbia, Maryland 21044
(301) 992-9371
CompuServe 76703,2002 [IBMNET]