home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
games
/
nudaypc4.zip
/
NEWDAYPC.DOC
next >
Wrap
Text File
|
1988-10-17
|
21KB
|
344 lines
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
= 'NewDay/PC' by Mike Ratledge - East Bay X-Change 803/723-6430 or 577-9845 =
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
= Version 4.0 - Released Oct 16th, 1988 - (C)CopyRight 1988 =
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
This program performs similar functions, and will accept the same datafiles
as "Today" (Patricks Kincaid original history program). I wrote "NewDayPC"
because I really liked Patricks program, but was unable to use it on my BBS
due to file-sharing conflicts. At the time I released "Today/PC II vers 1.0",
Patrick had not changed his program in several years, and I assumed it was a
'dead' project for him. Patrick decided that my program was "too similar" in
name, so I decided to change it to NewDay/PC with this version (4.0).
Listing of enhancements in reverse order...
What's new in version 4.0:
Name Change (NewDay/PC) Starting with version 4.0, this program has been
renamed "NewDay/PC" in order to cause less confusion with Patrick Kincaid's
Today program.
Slight Mod: (Check for .EXE) Since I have renamed the program "NEWDAYPC"
I now look for either NEWDAYPC.EXE or TODAY.EXE instead of TODAY & TODAYPC2
.EXE files for the file-sharing test. In other words - you can rename this
program "TODAY.EXE" and the file-sharing check still works - but you can't
use the old "TODAYPC2.EXE" name any more - it doesn't check for that one.
This only effects people running under multi-tasking or networking software.
Enhancement: (Date 'spanning') You may enter a span of dates in columns
2-5 and 6-9 for either "R"- or "Y"-type events. These are only validated if
columns 2 & 3 as well as columns 6 & 7 contain a value between '01' to '12'.
Note that the leading zero *is* important! Without them, it thinks you are
using a year instead of a date span. "Y"- & "R"-type events will highlite
and display the remaining days duration of the spanned event, i.e. "5 Days".
Also note that this makes *no* attempt to "span years" - in other words, the
date in columns 6-9 *must* be greater than the one in columns 2-5 for it to
work! This method of designating spanned dates allows us to use spans for
any period without losing the year except for years 1001 to 1031, 1101 to
1130 and 1201 to 1231 (if you can think of a better way to do it, please let
me know). In other words - "0910" in 6-9 is interpreted as the 10th day of
the 9th month, but " 910" is the year.
New Compiler: (TP5) This version is compiled under Turbo Pascal 5.0.
Clarification: (BBS Use) You *must* use the ENTER parameter if you run
NewDay/PC as a bulletin board 'DOOR' or external program. Otherwise, the
program is looking for a keypress, which must come from the local keyboard
instead of allowing redirection from the STDIN where the user is located
(in other words: "I can't 'peek' into the keyboard buffer on the remote")!
Also, the TIMED parameter does not work when using DOS redirection to allow
BBS usage for the same reason. For example: "NewDayPC Enter #10" to show
up to 10 "E" and "S" events at random and force <ENTER> (or <CR>).
Enhancement: (Re: Random) This version displays a single-line message
if you use the randomization paramter (i.e. #xx) which tells you you're only
getting a random sampling of "At Most xx Birthdays and Historical Events".
Enhancement: (Day Countdown) As mentioned above, if you use "spanned
dates" in a "Y"-type event (your personal reminders), it will display the
remaining time before the last date in the span as "xx Days" in reverse
video, similar to the way it displays the number of years since a birthdate
or historical event. It bleats at you if today is the last day of the span.
What's new in version 3.0:
Enhancement: (Aging dates) The program will display the "age" or years
since an event if it's less than 1000 years old. Birthdays also have name
of the individual highlighted, as well. The "age" is displayed as three
digits following the year, and the words "In " have been eliminated from
every line, slightly shortening the line to allow for the addition of the
age/years field. Unlike in version 2.0, both types of dates (birthdates,
and the events in history) are aged, but as before, you can eliminate this
by using the NOAGES parameter.
Enhancement: (More color control) You can now specify from one to six
colors using the COLORS(xxxxxx) command-line parameter. Positions 1 to 4
are the colors for each of the four message types (B, R, S & Y). The fifth
position is for the highlighting of the birthday names. Position number six
is for the reverse video background color which indicates the age or years
since an event. You may also select the defaults for certain colors without
specifying them in the parameter - i.e. "COLORS(----w)" would use the default
colors for everything except the names of birthday people, which would be
white. You specify each of the colors as in version 2, by using the first
letter of the screen color (Red, Blue, Green, Yellow, Cyan, Magenta, White).
Defaults are magenta for the birthday names and yellow for reverse video age.
Revision: (TODAY8??.ARC files) The monthly database files no longer have
to be re-sorted to work with the program, since they are now being colated in
ascending alphabetic order on the first 9 columns by Bruce Goldman.
Enhancement: (Eliminating Database Entries) You may replace the entry-type
(first character) of anything in the database with any character other than
the "B", "R", "S" & "Y" flags, and the entry will be completely ignored. This
way, you could take your text editor and block out the Civil War dates, or the
hockey scores and still retain the full database in case you change your mind.
Change: (<ENTER> no longer required) The default for this version is like
the original program - you can hit any key (instead of only the <Enter> key).
If you want the feature of only accepting the <Enter> key for use with a BBS,
a new command-line parameter "ENTER" will give you that (it was the default).
Bug Repair: (EOF handling) Noone ever noticed, but it was possible before
for the last event in the monthly file to be ignored if the .OWN file ran out
first. I noticed it while testing very short files, and fixed the problem.
I didn't like the end result of the addition of the aging for birthdays in
version 2.0, so I went back and changed the format of the display slightly
to allow for a little more room on each line, while still retaining aging,
and adding it to dates other than birthdates (thanks Bruce!).
What was new in version 2.0:
----------------------------
Enhancement: (Event handling) Fourth message type 'Y' which is for your
own special reminders. The only difference is that they show up last, with
"exact match" highlighting like that done for 'R'-type events.
Enhancement: (Birthdate Ages) By default, ages (or how old they *would*
be) is shown for anyone that was born less than 100 years ago. If you don't
want this, you can have them displayed like before with parameter "NOAGES".
You may wish to shorten some of the longer entries ( > 62 chars ) to avoid
having them "spill over" onto the next line (only affects birthdates!), but
I'm working on another enhancement to "Today/PC II" which will eliminate the
problem by changing the format of each line slightly. (Look for this new
version sometime around the end of July). (See above for changes!)
Enhancement: (Selecting Screen Colors) You now may specify the different
colors used for the four message types. "COLORS(brsy)" replacing 'brsy' with
the first letter of the color you want (White, Blue, Magenta, Yellow, Green,
Cyan or Red). Here's an example: COLORS(BCGY) selects Blue for birthdays,
Cyan for reminders, Green history events and Yellow for personal reminders.
Note that using "-" for the any of the colors tells the program to use its
default color there. "COLORS(xxxx)" is ignored if "NOCOLOR" is selected!
(See above for further refinement as of version 3.0 and later)
Enhancement: (Parameter) "TIMED" indicates that you wish to wait no more
than 45 seconds between screen displays. In the timed mode, <CTRL-K> is
accepted for <CTRL-C> to avoid conflicts with other software.
Enhancement: (Compatibility) You may rename TODAYPC2.EXE to TODAY.EXE
and the "ONCE" parameter will still work, as well as the check for sharing
under DOS 3.0+ - previously, they worked with file named TODAYPC2.EXE only.
My "ONCE" parameter does *not* require you to be in the same sub-directory
as the .EXE file - it will find it on the PATH or if called with a pathname.
Bug-Repair: (Screen Handling) If you <CTRL-"C"> out of the page break
or end "Wait", you don't get black on black (invisible) when in color mode.
Revision: (TODAY8??.ARC) Expanded monthly updates from Bruce Goldman! A
new list is released each month after the calendar month is over.
Change: No TODAY.xxx history files with program update.
Change: "NOPAUSE" parameter defeats the "WAIT" parameter.
Although I've never had a bug reported by any user of Today/PC II, it is
possible that some unexpected combination of events may produce an error! If
this does happen, TODAY/PC2 will automatically do a traceback through stack
code to show the calling procedure tree and addresses. Please include this
information if you report a bug! (It appears similar to the error message
normally seen in a failed "Turbo Pascal" program, except it will contain at
least three or four sets of codes instead of one address & error number.)
This program was written as part of a series of utilities for TComm Bulletin
Board SysOps. The program originally designed by Patrick Kincaid known as
"Today" (which was written in 1986) was my inspiration. I have taken his
concept and extended it to accommodate my needs as a SysOp and to give a way
to handle files larger than 50K and with more than 60 entries per date, as
well as to incorporate full DOS 3+ (network-compatible) file-sharing for the
multi-user Bulletin Board Systems. The filesize isn't limitted at all, as a
matter of fact - you can use as large a database as you wish, with as many
entries per day as you can find! Multiple concurrent accesses to databases
are supported for networks, as well. Note that in a multi-user environment,
it would be unadvisable to use the "ONCE" option and expect it to work with
any consistency, since multiple stations would update the file timestamp.
The actual data displayed by "Today/PC II" is taken from files compiled by
Bruce T Goldman and distributed by him on bulletin boards as TODAY8??.ARC in
twelve files - one for each month of the year updated at end of that month.
All the formats & parameters in the original program ("TODAY") written by
Patrick work the same as before, and there are quite a few new parameters, as
well (See below). The basic coding of the input database is discussed in
later in this document. I explain the new features and coding changes, too
- or if you don't like to read, type "TodayPC2 help" for a fast 'tutorial'.
In order to keep the main .ARChive size down to a minimum, I stopped adding
the TODAY.OWN and TODAY.APR database files. All of the TODAY.XXX monthly
databases (properly re-sorted versions of TODAY81, 82, 83 & 84) are available
for download from my bulletin board at the numbers listed above.
NOTE:
I use a simple parsing routine to check the command-line parameters, and I
don't recognize mixed-case parameters - just all upper- or lower-case letters
on the command-line. Color parameters may be mixed upper and lower, though.
Changes and Additions & Good News:
1) There is _no_ limit on the size of the input files, and you will
see all dates completely sorted in sequence and merged from both the monthly
database file and the TODAY.OWN file. There is a limit of 255 characters on
each line, but anything over 72 characters causes the display to wrap, unless
it's ANSI escape sequences for color control, for example. By the way - you
can change the colors any way you like by inserting ANSI sequences in your
database(s). Version two supports user-selected colors for message texts.
2) ANSI Color is used by default. If you want no color, simply add
the new command-line parameter "NOCOLOR". See note below about adding color
if you plan to add your list to the master database I will maintain.
3) Support for 43-line and 50-line text modes for EGA & VGA displays
respectively is provided by new command-line parameters "LINE43" & "LINE50".
Note that you must already be in the particular 43- or 50-line mode when you
use LINE43 or LINE50, since it does _not_ switch video modes! You may also
use a "NOPAUSE" parm for output redirected to a file, or you'll have to hit
the newline several times to get it to complete (and you won't see any prompt
either!). Note: NOPAUSE implies "NOWARN" (below).
4) The "*" heading lines are no longer required and actually any
line beginning with '*' is completely ignored. Included for compatibility.
5) A new "!" control-line in the file, which must be the first line
allows you to put a description or custom message into your TODAY.XXX files.
The description is limited to 50 characters per line, excess is ignored. You
may have multiple description lines, as long as they are the first lines.
6) The DOS environment is searched for the string "TODAY", and if it
is found, the program changes directories to the path therein before execution
and changes back to the current drive/path when finished. This allows you to
have NEWDAYPC.EXE on you DOS "Path" and the TODAY.XXX database files stored in
any subdirectory. Actually, extending the concept a bit, you could have many
different sets of TODAY.XXX input files, distinguished by the sub-directory in
which they reside. In order to use this feature, you must use the DOS "Set"
command like this: SET TODAY=C:\UTIL\TODAY You may alternatively use the
command-line parameter "=pathname" to specify the sub-directory. The "=" parm
overrides the "TODAY" environment setting, if any.
7) If you give an alternate date on the command-line, the welcome
message is slightly different, and day-of-the-week matching is not performed.
8) If you give a full eight-digit date in the TODAY.XXX file input,
and it matches today's date, the line is highlighted and beeps as displayed.
This allows you to put true reminders for specific dates into your .OWN file.
It also beeps when it displays them, so you can actually put your future dates
into the "R" reminder lines with a specific date, and you'll definitely get
reminded! If you put an eight-digit date on an "R" line, it will be displayed
as "19xx ..." like the other lines unless it matches exactly. You can use
this in any section, but it really only makes sense in the 'reminders'.
9) By default, a help line is displayed telling you the lines/page
selected & that you can hit <Ctrl-S> to pause, <Ctrl-Q> to resume or <Ctrl-C>
to quit. You can eliminate this by using another new command-line parameter,
"NOWARN". NOWARN is implied by NOPAUSE above.
10) Two 16K buffers for the input files. This causes "NewDay/PC"
to eat up a little more real estate memory-wise than it's predecessor. (64k)
It might also make the start-up a little slow on floppy-only machines.
11) The way "ONCE" is handled is a little bit unorthadoxed! It works
by updating the file "NEWDAYPC.EXE" directory entry to show that it was last
updated today. This does not write any new information to the file - simply
updates the date for the file's directory entry. It will find the .EXE file
by looking first in the current directory, then in the directory it started
in (under DOS 3.0+ only), and finally your "PATH" in the environment. This
is not a trojan program - nothing will be changed except the date!
12) Full DOS 3.0+ file-sharing capabilities for multi-node bulletin
boards and network installations. Again, this works by finding NEWDAYPC.EXE
and trying to lock the file if you're running DOS 3 or later. For both this
feature to work, and for the "ONCE" function to work, you must not rename the
.EXE file and you should not write-protect it either. Note that both of the
functions require DOS 3+ in order to properly work when run from in another
sub-directory without using the DOS "PATH". They work with any DOS version
when you use the PATH or switch to the directory where the .EXE is located
before you run "NewDay/PC".
What next?
In version 4, I plan to add a feature to allow for random sampling of the
date, in other words, you will be able to limit the number of birthdates and
events in history displayed (and see a different sampling) for each run. I
also plan to (finally) add support for TCommNet Bulletin Boards to allow the
program to call the user by name, and automatically detect non-color callers.
If someone will get me the specs for allowing a program to run as a "DOOR"
in PCBoard, I'll be happy to produce an interface or whatever is required. I
do not know what is necessary to implement this, since my TCommNet BBS will
run anything I want as a "DOOR"-like program - it runs "NewDay/PC" directly.
Now, some examples:
NEWDAYPC CLEAR WAIT LINE43 will display using ANSI Color, 43-lines per
page, clear the screen before starting and wait for <Enter> when through.
NEWDAYPC NOCOLOR NOWARN will give you "almost" the same display as the
old program - no color and no help message.
NEWDAYPC CLEAR LINE50 0430 will use 50-line VGA text mode, clear screen
before beginning, and lookup April 30th, instead of the current date.
NEWDAYPC NOPAUSE =E:\BIN\USR\TODAY > TODAY.OUT will place the output into
the file "TODAY.OUT" in the current directory, and read the TODAY.XXX files
from the directory E:\BIN\USR\TODAY.
NEWDAYPC ONCE will cause the program to either run normally, and to update
it's own date (the first time each day), or it will simply quit without any
output at all if the date on NEWDAYPC.EXE matches the current date.
NEWDAYPC ENTER COLORS(---wbw) TIMED CLEAR will force you to use <Enter>
between pages/screens, change the default colors for "Y" entries to white,
birthday names to blue and the reverse video ages to white. Each pause will
last no more than 45 seconds, and the screen will be cleared before starting.
NEWDAYPC NOAGES will eliminate the new-style aging displays.
This program is written in Turbo-Pascal 5.0, along with Turbo Power "Turbo
Professional 4.0" using the Brief 2.1 program editor. Several questions
about the program design may come to mind. I'll try and address the most
likely ones: 1) Why use ANSI Color? I used ANSI in conjunction with STDOUT
so that the output could be redirected to a file, and also redirected to a
COM port on a bulletin board system. 2) Why only two files, still? I don't
see the need for more, since you can now have any size for both input files
and as many daily events as you wish. You may also have multiple sets of
TODAY.XXX files in different sub-directories by using either the SET TODAY=
environment string, or using the "=pathname" command-line parameter. This
program does a running merge of both input files (assuming TODAY.OWN exists)
and it would be rather nasty to do multi- one-to-one file matching, anyway.
3) Why do you make us hit <Enter> instead of any key? Again, bulletin board
is my reasoning there, too. I frequently see a little line noise even when
calling in from home to my system. Accepting only <Enter> makes it less
likely to continue the display if you're getting a burst of line-noise.
I would like to suggest a couple of additions to the database. How about
someone writing up a good TODAY.R&R (Rock & Roll) history? or "Charleston"?
If you put together a new input file for "NewDay/PC", please upload it to
my East Bay X-Change BBS, I will get it to Bruce Goldman for inclusion into
the next series of monthly database files.
Mike Ratledge
As always - my programs respond to user input and desires. If there is a
feature you'd like to see implemented in "NewDay/PC", just let me know!
Of course if I add *every* feature *everybody* wants, the program would
soon become unusable - but anything reasonable and that is compatible with
previous releases will be considered!