
            PortCal - Portfolio Calendar for Windows 3.0
			   Version 2.1
		Created Using Microsoft Visual Basic


First the nasty stuff:
  This program is freeware and may be freely copied.  There is no 
warranty, expressed or implied, on either this program or the 
original Microsoft sample code which may be included within it.

Now that that's out of the way --

I have found that the Portfolio makes a wonderful peripheral to my 
desktop PC.  I do work on the PC, and when I have to leave my office, 
I simply take important files with me on the PF.  I like to use the 
built-in applications on the Portfolio, as they work fairly well, and 
they take up zero RAM on my limited file storage space.

However, I could not find any program that will let me use the 
file(s) maintained by the Portfolio's calendar program.  There are 
alot of nice calendar programs for the PC, but none were quite what I 
wanted.  I wanted, well, the Portfolio's calendar under Windows.  So 
I wrote one.

This program was written using Microsift Visual Basic.  All Visual 
Basic programs require the file VBRUN100.DLL.  If you  don't have 
Visual Basic, this file can be obtained from the Visual Basic 
Library in the Microsoft Languages Forum on CompuServe. (The file
should be in the same directory as Windows itself.)

To install PortCal in Windows:
 (1) Copy PORTCAL.EXE to the WINDOWS subdirectory (or other desired 
directory)
 (2) Open the Program Manager, and select the Program Group that you 
wish to contain PortCal
 (3) Select New... from the file menu
 (4) Select "Program Item" and click OK
 (5) In the Description field, type "Portfolio Calendar"
 (6) Click "Browse", and use the dialog box to find PORTCAL.EXE.  
Click OK
 (7) The pathname and filename for PortCal should now be in the 
Command Line field.  Click on OK to install the PortCard icon.
 (8) The Portfolio Calendar icon should now be in your selected 
group.  (You may have to scroll the window around a bit to find it.)
 (9) If you relocate the Portfolio Icon within the window, and you 
wish to save that position, select Save Changes the next time you 
exit Windows
 Further information on installing programs can be found in the
Microsoft Windows User's Guide

To have Portcal launch automatically when a .DRY file is "run":
 (1) Use the File Manager to locate a .DRY file.  Click once on the 
file to highlight it.
 (2) Select "Associate..." from the file menu.
 (3) Type PORTCAL.EXE in the dialog box.  (If PORTCARD.EXE is in a 
directory not in your PATH, then you will have to type the full 
pathname for PORTCARD.)
(4) Click OK.
 Further information on the File Manager can be found in the
Microsoft Windows User's Guide

To get Windows to automatically launch PortCal upon startup:
 (Note:  It seems silly to autolaunch PortCal without autoloading a 
file, so these instructions assume you want to do that.)
(1) If you have not performed the previous steps, do them now.
(2) Use the Windows Notepad to open the file WIN.INI.  It will be in 
your Windows directory
(3) Fairly early in the file, you will find two lines, reading:
  run=
  load=
(4) After the word run=, put a blank and the name of the .DRY file 
you want loaded.  If there is already something after run=, just tack 
the name of your .DRY file on the end of the line.  Be sure to have 
only one blank between filenames, or Windows will report an error on 
startup.  If your .DRY file is not in your path, be sure to use a 
full pathname.
(5) If you want PortCal to startup as an icon, use the load= line 
instead of the run= line.
Example:  I keep my calendar on a memory card, and have a PC Card 
Drive installed as drive D:.  I want PortCal to autostart and load 
that file, so my WIN.INI file has the following:
 run= nwpopup.exe d:\schedule.dry
Notice that there was already a file on the line (nwpopup.exe), so I 
put mine on the end.

Also note that in the above example, if I do not have a card in the 
card drive when I start Windows, Windows will report a system error 
on drive D.  I can insert the card at that time, or tell Windows to 
"cancel" my request, in which case PortCal will not be loaded.

If you've done the above properly, the next time you start Windows, 
PortCal will automatically run.  Further information in the WIN.INI
file can be found in the file WININI.TXT, which was copied to your
WINDOWS directory when you installed Windows.

-----------------------------
To use PortCal:

Start it like any other Windows Program.  The main Window will 
display.  On the left is the calendar display, and on the right is 
the edit area and the event display.


The Calendar Display
On the left is a one-month calendar display.  Above the calendar is 
listed the Month and Year displayed.  Both month and year are pull-down
menus. You can use them to display any month.  (The year menu 
always ranges from one year in the past to 9 years in the future.)
At the top of each menu is the entry "(now)", which will 
automatically switch the view to today's date.

In the calendar, days with events scheduled are underlined.  Note 
that recurring events will only show up as the next "recurrence" 
time.  (This is the same as the Portfolio)

On the right side of the screen is the daily display.  The currently 
displayed date is shown.  If there is a "Headline" for that day (An 
event with a date but no time), it will show up next to the date.  
There can be only one headline per day, the same as the Portfolio.

Underneath the Headline/Date display is the event display.  If you 
have any events for that day, they will show up here.  Unlike the 
Portfolio, it will only show one day's events.  (I did that because I 
like it better that way.)  All events will be in the form:
 @d 13:40 Event Description
This is exactly like the Portfolio's display, except that an "@" 
symbol is used to indicate an alarm instead of the musical note.  The 
letter indicates a daily event.  The letters are the same as the 
Portfolio:
 d - daily
 w - weekly
 n - weekday (non-weekend)
 m - monthly
 y - yearly

The standard windows controls (minimize, maximize, etc) are in their 
usual places.  You can resize the window to any size.  There is a
"minimum size", and if yo try to size the window smaller, it will
snap back to it's smallest allowed size.  The text boxes on the right
side of the window will resize to accomodate the new window size.

If there are more events for a date than will fit in the event box, a
vertical scroll bar will appear in the event box.  

Above the date display area is the edit area.  It consists of an 
alarm checkbox, a recurring pull-down menu, and an edit box.

To select a date for display:
 Type the date in the edit box and press Enter.
 -or-
 Use the mouse and click on the date in the calendar.  (The currently 
selected day is in italics).  If you click on a date at the end of 
the previous month or the beginning of the next month, the calendar 
will change to display the month you clicked.
 -or-
Press the Home key to display today's date.

To enter a new headline:
 Type the headline in the edit box and Press Enter.  The headline 
will be entered for the displayed date.
You can also use the form:
     mm/dd/yy headline
 The date will switch to the selected date, and the headline will be 
entered. (The date format varies depending on your Control Panel
settings.)

To enter a timed event:
 Do the same as the headline event, but specify a time.  For example:
    13:00 Have lunch with Don
will enter the appointment at 1pm of the displayed date.
    6/30 3p Report due
will enter the appointment at 3pm on June 30 of the current year.

In most cases, if you type an entry without hitting Enter, then click 
the mouse on the headline box, the event will be entered for you.

To specify an alarm event, click the Alarm checkbox before completing 
your entry.  Headlines cannot have alarms.

To specify a recurring event, use the Recurring list box to select 
your recurring interval before completing your entry.  Both headlines 
and events can be recurring.


To modify an existing event:
Double-click on the headline or event.  It will be copied to the edit 
area.  Make your changes and click the headline window (or press 
Enter)

To delete an event
  For both headlines and time events, you can double-click on the 
event to bring it into the edit window.  Then erase the text and 
Press Enter.
 For time events only, you can single-click the event to highlight 
it, then press the Delete key.

To delete old events
  Select Delete Old... from the Edit menu.  A dialog box will appear,
allowing you to enter an "old entry" date.  (The date defaults to two
weeks prior to today's date.)  Enter the date and click OK.  All
non-recurring events older than the date specified will be deleted.

Moving an entry:
 Double-click the entry (single-clicking also works 
for time entries), and select Move from the Edit menu.  Fill in the 
new date and time and click OK. (Headlines will have no time.)
 -or-
 If you only want to change the date (but not the time), click once
the event or headline you wish to change.  A small black box will
appear in the narrow strip between the event display and the calendar
display.  Move the mouse over the box, and press and hold the left
mouse button.  Drag the box over the new date in the calendar and
release the mouse button.  The entry will be moved to the new date.
  If you hold down the Ctrl key while you do this, the entry will be
copied instead of moved.

Alarms
 Alarms will go off as long as PortCal is running.  A dialog box will 
appear with the date, time, and event.  Press OK to dismiss the box.

Searching
 You can search for an event by its text.  From the search menu, 
select Find.  Type in the string you want to find.  Upper/lower case
is not important. Use the radio buttons to select the starting point 
of the search. (Earliest point in time, or strting from the displayed
date.)  Press OK.
 If you want to keep searching, select Find Again from the Search
menu (or press F3).

  You can also view the entire list of events (much like the
Portfolio's display).  Simply select List from the Search menu, and
a new window will open with the entire list of events.  Double-click
event of your choice, and you will return to the main window with your
selected day as the day shown in the event area.


Menus
 
File / New - Clears the calendar to start anew.
File / Open... Brings up a dialog box to select a file.  The file 
will be loaded, wiping out whatever's there.
File / Refresh - Re-reads the current file from disk, replacing whatever
is in memory.  Handy for PC Card Drive owners who yank the card out
of their PCs to take it into a meeting.
File / Save - saves the current file.  If it is a new file, it works 
the same as "Save As..."
File / Save As... Let's you specify a filename for saving.
File / Exit - Quits Portcal

Edit / Cut, Copy, Paste, Delete, Select All - Standard Clipboard 
functions.  Only available while using the Edit Box.

Edit / Move - Moves the currently selected event.
Edit / Delete Old... Deletes all non-recurring events older than the
specified date.

Search/Find - Lets you search for a specific string.
Search/Find Again - In case your first search didn't go far enough.
Search/List - Shows the entire list of events (not just one day).

Links/...  Enables connection to PortCard.  A description of the feature
 can be found in the file WinPort.TXT

About / About PortCard - The credits.

Messages
 Save Curent Changes? (Yes/No/Cancel) - You attempted Exit, New, or
Open and the current file has changes that haven't been saved. (The
changes could be your entries, or a recurring entry that was moved.)
	 Yes - Saves the file
	 No - Does not save the file
	 Cancel - Cancels the New, Open, or Exit.

Replace headline? (Yes/No) You entered a headline for a date that 
already has one.

The headline could not be moved because there is already a headline
for that date (OK).  - Only one headline is allowed for any date.

One or more recurring headlines had to be moved due to a conflict 
with another headline (OK) - Headlines can be recurring, but only one 
headline per day is allowed.  This can cause a conflict when recurring
headlines are resolved during file load.  
PortCal will move headlines one or more "recurrences" into the future 
to resolve the conflict.

One or more recurring events had to be moved due to the different
number of days in each month (OK) - PortCal attempted to move a
monthly or yearly event to a month/year that resulted in an illegal
date, such as September 31 or February 29 (during a non-leap year).  The
event was rescheduled for the last valid day of the target month.  This
message normally appears during file load, but could also appear after
an alarm goes off (if the alarm is a recurring event).

A word about recurring events:
In PortCal (and the PortFolio) recurring events are entered only 
once.  When the event has past, it gets moved to the next recurrence 
time.
Like the Portfolio, PortCal moves recurring events during file load 
ONLY.  The only exception to this is Alarms.  If a recurring event 
has an alarm that event only will get moved after the alarm goes off 
(or during file load).

Date/Time formats:
 The Headline box will always display as "Month dd, yyyy". Times will 
always be displayed as hh:mm.  However, when entering dates and times 
you can very flexible.  Dates and times will be parsed in a variety 
of formats, depending on how much information you enter and the 
settings of your Control Panel.
When entering a date in the main edit box, do not use a format that 
requires blanks.  PortCal only checks single words (defined by 
blanks) to determine if they are dates or times.

Other notes: Maximum - 500 Events



Enhancements/Bug Fixes: 

In version 2.1
  The Repeat drop-down menu was changed.  Weekday is now Non-Weekend, and
None is now -None-.  This enabled you to select any item using the
keyboard (by pressing the key of the first character). 

  Support for a DDE connection to PortCard has been added.  Details can
be found in the file WINPORT.TXT

  After a successful find, the event window would not show any events
occurring before the found event on the same day.  This has been fixed.

  The capability of moving or copying an entry using the mouse has been
added.

  Many menu choices have had Keyboard equivalents added.  (Differences
between Windows and the Portfolio made it difficult or confusing to use
the same "hot keys".  Therefore, Windows conventions (where known) were 
used in deciding which keys to use.

  If an alarm message was already being displayed when a second alarm 
should go off, the second alarm would be skipped.  This has been fixed
such that the second alarm will go off as soon as the first message has
been acknowledged.

  The About Box (minus the OK button) will appear during startup.  It
will vanish when the startup processing is completed.


In version 2.0
  Added the Search/List menu and associated function.

  Fixed a bug in weekly recurring events.  If you loaded a file, and
the weekly event was for the current day but an earlier time, the
event would not move to the next week.

  Fixed an end-of month problem for monthly and yearly recurring
events.  Previously, if a recurring event was for the 31st of the month,
and was "moved" to a month with only 30 days in it, an error would occur.
Now the event is moved to the last day of the shorter month, and a
message is displayed.

  There were several instances in which the Calendar display would not
update automatically to reflect changes in the schedule.  These have
been fixed.

  The Delete Old feature has been added.

  Under certain conditions, using the Control Box to quit PortCal instead
of the File/Exit menu selection would cause the window and icon to disappear,
but the program would remain in the Task Manager.  Additionally, when the
Control Box was used, PortCal would not prompt you to Save Changes.  These
have been fixed.

  The Find command would always start at the oldest scheduled event instead
of the currently displayed date, regardless of the user selection.  This
has been fixed.

  If a date was typed in the Edit Box whose year was out-of range for the
Calendar's "Year" menu, an error would occur that would abort the program.
Now, the year menu will display a blank year until the selected date is
within range again.



Well, that's about it.  Send me your comments, suggestions, and bug 
reports.  I make no promises, though, as I work on this in my spare
time (of which I seem to have very little.)

Enjoy!

Brian Johnson
CompuServe: 72366,1710
MCI: 306-1475
Internet: BDJ@ssw.com

