README.md







DTC - The Desk Top Calender

Mitch Wyle

December 1982

Version 1: REVISED BY GCE




The idea here is to automate an appointment calender. Most
appointment calenders give only one of Month-At-A-Glance,
Week-At-A-Glance, or Day-At-A-Glance. DTC is an attempt to
give all of these functions in a paperless, fast, menu-driven
format.

This release has had considerable work done to it to make it a
more general tool. See the addendum for the extras.

Among the features I would like to see added:


- Year-At-A-Glance in 132 column mode with
two rows of six months each

- Menu option(s) to print out appointments,
in day, week, month format

- Support for non VT-100 terminals
(general cursor positioning calls)


DTC is one of a number of Paperless Office programs I have
been developing for two years. Other related programs are
an on-line telephone directory, an electronic mail system, an
automatic "While You Were Out" message taker which spawns
mail directives, Memo and Form letter templates and programs,
and software tools for writers in a business environment.

Is there a DECUS sig for Office Automation?

Please call me with your problems and suggestions. I am very
new at programming in Fortran in the DEC world. I have
already developed the paperless office package on a Honeywell
Level 6 running Ultimate. Source code is in PROC and Data
Basic.

Hope to hear from someone,

Mitchell F. Wyle
Data Systems Supervisor,
NUS Pittsburgh Radiological Laboratory
5350 Campbells Run Rd.
Pittsburgh, PA 15205
(412) 788-1080 x405

Revision 1: Glenn C. Everhart

I have added a few extras to the program to make it more
usable and fix a few small bugs. The following has been
done:

* Date bugs in displaying weeks at the beginnings of months
are fixed.
* The E in Evening now is a pseudo time and gets displayed as
17:00 on the weekly summary. You can enter evening appointments
using the D command with E for time. (EV works OK too.)
* Most commands are accepted in lower case or upper case.
* Commands T (Today), R (Reminder), and C (Calendar) correspond
to Day, Week, and Month exactly but cause DTC to exit after
they are executed. This permits them to be used from MCR
with instant exit, thus to be placed into login.cmd files for
an "auto reminder" service.
* Time ranges may be input (so long as it is done with no format
errors) in the form hh:mm>h2:m2 (e.g. 09:00>15:30) which will
replicate the appointment part of the line into DTC.DAT
over the indicated range.
* Purge of old appointments (clear out appointments from before
a given date, defaulting to today)
* Reverse display of week/month times permitting FREE times to
be found and displayed rather than occupied ones (potentially
for a group of people)
* A second level of data files, permitting an appointment file
to contain pointers (1 level deep) to other files which can be
searched as well as the first
* Multiple appointment files, changeable on command (permitting
"private" appointment calendars)
* Scheduling of appointments in multiple files (useful for setting
up meetings or maintaining multiple files)
* Lookup for free times of length n * 30 minutes (where n is any
number in the range 1 to 18) over a week period; display of
times is made in Week format. Valid start times for meetings of
given lengths are shown.

This distribution kit includes the following files:

DTC.ULB - Universal library with Fortran source code
- and DTC.HLP which DTC needs to be in [1,2]

DTC.OLB - Object library containing DTC object code

DTCF.TSK - Task image of DTC for PDP-11's with
floating point processor

DTCN.TSK - Task image of DTC for machines without
floating point processor

DTC.DAT - Empty text file for appointments

README.1ST - This file


You will have to extract the help file DTC.HLP from the universal
library DTC.ULB, and put it in [1,2]. DTC needs [1,2]DTC.HLP to
execute the H option from its menu.

>LBR DTC.HLP=DTC.ULB/EX:HLP
>PIP SY:[1,2]DTC.HLP=DTC.HLP

The tape is an ANSI tape with the following contents:
1. All source and help files of the second revision of DTC
2. DTCOLD.BCK - an RMSBCK container file of the original DTC
submission
3. DTCNEW.BCK - an RMSBCK container file of the new DTC submission
(in case of bad files on tape...)

New commands:

P [mmddyy] - Removes all appointments from current calendar file
whose date is BEFORE the date specified. If no date
is specified, today's is assumed.
N(command) (for example
NW [mmddyy] )
- Displays FREE time instead of scheduled time in week or
month formats. Not deemed useful for Day format, so left
out there.
F filename - Closes current calendar file (defaults to DTC.DAT
initially) and opens filename instead
S [mmddyy hh:mm[>hh:mm]] appointment/meeting
- Schedules appointment /meeting at the given time.
If current calendar file contains pointers to other files
(see below; year=99 and appointment part has 'filename='
in it) then each of those gets a notice of the appointment
or meeting added to it as well as the current calendar.
Otherwise only the current calendar file is updated in the
D format.
L [mmddyy] nn - Locate a period of nn half-hours in the week containing
mmddyy. Displays the free time in week format. Used to
schedule meetings. nn must be 01 thru 18 and is clamped
to this range

POINTERS in CALENDAR FILES
The calendar file format is sequential records of the format:

YYMMDDTTTappointment text of 60 characters length

in which every record has this form, and the time TTT is in the range
(for correct files) of
080 through 170 (for 08:00 through 17:00). The third digit is always
either 3 or 0 as well, since DTC only schedules half hour periods.
Indirection is accomplished by editing your calendar file
(with any editor) or just entering an "appointment" for year 99 (by which
time somebody should have hacked some more on this to fix it up not
to mess up real appointments). The text of the "appointment" should
be just filespec=, with the = sign as the terminator of the file spec.
This will lead to the file you specified being opened and treated as
if it existed inside your own calendar file (except you need to use
the S function rather than the D function to enter appointments in
it as well as your own.)

CAVEATS:
DTC is a bit touchy about illegal inputs. Be sure you input
the mmddyy in the format given (i.e. July 4, 1983 is entered as
just "070483", NOT as "7/4/83" or "7483" or anything else. If
DTC seems to generate weird displays, edit DTC.DAT (or whatever
else is your calendar file) and remove or edit lines in which the
date or time are in illegal format.

To use DTC, you need to create an empty DTC.DAT file
first (and also any other calendar files you expect to need.)
The simplest way to do this in RSX is to use the command

PIP DTC.DAT=NL:

and in VMS

MCR PIP DTC.DAT=NL:

but any method will do, including using an editor to set it up. Don't
be alarmed about occasional open file errors; most have been fixed
but just re-run DTC if any still show up; they don't corrupt your
calendar file. I haven't seen any for awhile, so don't think many
(if any) remain, but I could have missed a spot where a redundant
close is needed. You may fix if need be.