






			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.
