home *** CD-ROM | disk | FTP | other *** search
- The 'PrintDiary' program prints a desk_diary showing nearly a
- complete month on each page. It inserts a blank half-page to help
- synchronise the dates with the 4-week pages. Days can annotated with
- personalised anniversary-dates, calculated-ages etc.
-
-
- It was first written on a BBC Model B and used successfully for
- 5 years; it was then rewritten in 1992 in Basic 5 on an A3000 and is
- now suitable for Archimedes computers.
-
-
- The program has no GOTO instructions and it was developed using
- DeskEdit from Risc User. I strongly recommend Deskedit for writing
- letters and editing programs. 'PrintDiary' controls the printer
- directly ie: no driver is needed; it was tested using an Epson FX-80.
-
-
- To change fonts or adjust for incompatible printers, alter the Print
- Procedures at the end of the program. Refer to the corresponding
- control codes for your own printer. Note that a pitch of 12 lines/inch
- is set-up instead of the default 6 lines/inch. Vertical tabulation is
- set to give a half-page tab and one allowing printing just below the
- perforations. Reversing is also necessary.
-
- 11 inch x 241 mm fanfold paper is normally used.
-
-
- Follow the Set-up Procedure Below to adjust for each year:
-
- 1. Set the year, and its variable holidays in the Diary-dates DATA
- statements at the End of the Program.
-
- 2. Other items are controlled when the program is run eg:
-
- 3. Set opt%=0 & 1 for Previews to check raw data, messages, and
- dates.
-
- 4. Then Set opt%=4 for the Final Print which takes about 50 minutes.
-
- 5. opt%=3 will give a partial print if your printer fouls up (my
- Epson never has).
-
- 6. For a detailed screen-only preview, use a printing option but
- reply N (=NO) when asked to confirm that the printer is on.
-
-
-
- There is a Full Data Description followed by live data at the End of
- the Program; it is copied here for convenience:
-
-
- This Data-list is correct for 1993.
- Those dates already decided for 1994 are included with
- condition-numbers which will activate them when Diary-year 1994 is
- selected.
-
- Dates for 1992 have been left in as examples; they can be removed now.
- You will need to replace my Birthdays and other Anniversaries with
- events that you need to remember; it takes some effort but it lasts
- for years when you've done it.
-
- The program initialises the printer to suit itself and restores it to
- normal on exit. The printer will reverse-step over the perforations
- and the initialisation is for a page which is only half-a-fanfold-page
- in length. This will be cancelled when a print ends normally but a
- paper foul-up will leave the printer wondering where it is.
-
- Read the following notes and experiment in one of the non-printing
- preview modes. Then print a summary of the special dates and check it
- thoroughly again and again. Leave it overnight in case you have any
- more bright ideas.
-
- You can print replacement sections but its better to go for one good
- print only. Ensure that you have at least 13 sheets of fanfold and a
- good ribbon before the full printout.
-
- The Data-list is headed by the Diary-year number in long or short
- form, ie: 93 or 1993, 0 or 00 or 2000, 7 or 2007, 29 or 2029.
-
- Thereafter the data is read in sets of 3 integers followed by a
- string. The order is: Month, Date, Condition, Message-string.
-
- Comments following the string to the line-end will be ignored
- providing that they are alpha-only.
-
- TAKE CARE WITH COMMENTS OR (BETTER) AVOID THEM ALTOGETHER
-
- After the Year-number, the First-number is the Month-number:
- The Month-number must rise from 0 (or more) to 13 (or less); 0 means
- Dec of year before Diary-year, 1 is Jan of Diary-year; 13 means Jan of
- year after Diary-year. A Month-number can be missed out but one cannot
- be inserted out of order.
-
- The Second-number is the Date-number:
- This is checked to be in range 0 - 31 only.
- A message could be set against Feb 30 but it would never be printed.
- Dates do not have to be in ascending order; they can be out of order.
-
- The Third-number is the Condition-number (let's call it C):
- Absolute values of C greater than say 2000 will probably not be
- useful. The effect of C depends upon how many digits it has and its
- sign.
-
- Consider positive (+ve) values of C:
-
- C values from 0 to 99 (1 or 2 digits), cause messages to be printed
- in the matching year only:
- eg If C=94 message printed in Diary-year 1994 only
- If C= 6 message printed in Diary-year 2006 only
- If C=28 message printed in Diary-year 2028 only.
-
- C values from 100 to 999 (3 digits), cause messages to be printed in
- any Diary-year. All 3-digit numbers have the same effect; choose
- one and stick to it. I use 111 because it is easy to type.
-
- C values from 1000 upwards (4+ digits), cause messages to be printed
- in any Diary-year and they are immediately followed by an integer
- number calculated by the program.
-
- The number makes sense if thought of as the 'age' of a person or the
- 'age' of an item.
- For this to be useful the value of C will be either:
- the year-of-birth of the person whose birthday occurs on that day,
- or the year-of-acquisition of the item whose anniversary it is.
-
-
- Example 1:
-
- If Sarah was born on Aug 24th 1982, the following data might be
- suitable:
-
- DATA 8, 24, 1982, "Sarah is "
-
- In the Diary for 1994 (say), this would print the reminder:
-
- 'Sarah is 12' for the appropriate date ie Aug 24th.
-
-
- Example 2:
-
- If your car (or dog) was acquired (born) on Dec 29th 1977, consider:
-
- DATA 12, 29, 1977, "Rover is "
-
- In the Diary for 1994 (say), this would print the reminder:
-
- 'Rover is 17' for Dec 29th 1994.
-
-
- To include a corresponding message in the December of the outgoing
- year (in this case 1993), you will need to put it into the
- overlapping month called Month 0 at the start of the diary.
- To do this, you could add:
-
- DATA 0, 29, 1977, "Rover is "
-
- In the Diary for 1994 (say), this would print the reminder:
-
- 'Rover is 16' for Dec 29th 1993.
-
- Dec 93 appears at the start of the '94 Diary.
- Dec 94 appears at the end of the '94 Diary; followed by Jan 95.
-
-
-
- Now Consider negative (-ve) values of C:
- Negative values of C mark dates as 'Special dates'
- Special dates included in the data-list, can be excluded from the
- your print-out by an option at run-time. This enables you to
- prevent personal messages from being included in a diary being
- printed for a friend.
-
- The action of C depends on its size, just the same as for +ve
- values. In fact you simply calculate the value of C required
- normally, and then preface it by a minus-sign: '-'
-
- Example 3:
-
- The dates above are made special and put in order:
-
- DATA 0, 29, -1977, "Rover is "
- DATA 8, 24, -1982, "Sarah is "
- DATA 12, 29, -1977, "Rover is "
-
- Now I can stop these messages from appearing in a Diary that I am
- printing for a friend, I can choose to include them or exclude
- them at run-time just prior to printing.
-
-
- End the Data-list with 'bogus' Month-number, ie a number in the
- position of a Month-number but obviously too big ie greater than 13.
-
- I use 999 but anything > 13 will do
-
- The rest of the line can be blank or can contain comment.
-
-
- Finally, a note on Holidays:
-
- Christmas and New-year Holidays are sometimes difficult.
-
- When Christmas or Boxing Day falls on a Saturday or Sunday the
- following Monday and perhaps Tuesday will be a Holiday. This can
- be thunk out (my personal past-tense of the verb to think) or
- ignored.
-
- Other Holidays are easy because they are mainly Mondays.
- I never use the term 'Bank Holiday' because I have no great liking
- for banks and I don't wish to spoil MY HOLIDAY by thinking that I am
- indebted to a bank for it. In your diary you can call these days
- whatever you like.
-
- The live data copied from the program follows:
-
- :
- DATA 93
- :
- DATA 0, 25, 111, "Christmas" Dec of year before Diary year
- DATA 0, 26, 111, "Boxing"
- DATA 0, 29, -1977, "Rover is " Program adjusts age to year before
- DATA 0, 21, 111, "Shortest Day"
- :
- DATA 1, 1, 111, "New Year" Jan
- DATA 1, 1, 92, "New Leap Year"
- DATA 1, 1, 96, "New Leap Year"
- DATA 1, 3, 94, "Holiday"
- DATA 1, 2, 95, "Holiday"
- DATA 1, 10, -1900, "Granny might be "
- DATA 1, 20, -1980, "Big Joe will be "
- :
- DATA 2, 8, -1966, "Peter is " Feb
- DATA 2, 14, 111, "Valentine"
- DATA 2, 20, -1987, "Little Joe will be "
- DATA 2, 23, 93, "Shrove/Pancake"
- DATA 2, 15, 94, "Shrove/Pancake"
- :
- DATA 3, 3, 92, "Shrove/Pancake" Mar
- DATA 3, 10, -111, "Fido's Birthday"
- DATA 3, 20, 111, "Spring Equinox"
- DATA 3, 28, 92, "Clocks Forward"
- DATA 3, 27, 93, "Clocks Forward" Provisional date
- DATA 3, 26, 94, "Clocks Forward" Provisional date
- DATA 3, 29, 92, "Mothers Day"
- DATA 3, 21, 93, "Mothers Day"
- DATA 3, 13, 94, "Mothers Day"
- :
- DATA 4, 17, 92, "Good Friday" Apr
- DATA 4, 9, 93, "Good Friday"
- DATA 4, 1, 94, "Good Friday"
- DATA 4, 19, 92, "Easter"
- DATA 4, 20, 92, "Easter"
- DATA 4, 11, 93, "Easter"
- DATA 4, 12, 93, "Easter"
- DATA 4, 3, 94, "Easter"
- DATA 4, 4, 94, "Easter"
- DATA 4, 29, -1967, "R"
- DATA 4, 2, -1981, "M"
- :
- DATA 5, 1, 111, "Pay Water Bill" May
- DATA 5, 4, 92, "Mayday"
- DATA 5, 3, 93, "Mayday"
- DATA 5, 2, 94, "Mayday"
- DATA 5, 10, -111, "Catto's Birthday"
- DATA 5, 25, 92, "Spring"
- DATA 5, 31, 93, "Spring"
- DATA 5, 30, 94, "Spring"
- :
- DATA 6, 10, -1973, "Sue is " Jun
- DATA 6, 21, 111, "Longest Day"
- DATA 7, 29, -1986, "Richard is " Jly
- DATA 7, 30, -1982, "Robert will be "
- :
- DATA 8, 24, -1982, "Sarah is " Aug
- DATA 8, 31, 92, "Late Summer"
- DATA 8, 30, 93, "Late Summer"
- DATA 8, 29, 94, "Late Summer"
- :
- DATA 9, 10, -111, "MOT" Sep
- DATA 9, 22, 92, "Autumn Equinox"
- DATA 9, 23, 93, "Autumn Equinox"
- DATA 9, 23, 94, "Autumn Equinox"
- :
- DATA 10, 1, 111, "Pay Water Bill" Oct
- DATA 10, 24, 92, "Clocks Back"
- DATA 10, 30, 93, "Clocks Back" Provisional date
- DATA 10, 31, 94, "Clocks Back" Provisional date
- :
- DATA 11, 5, 111, "Bonfire" Nov
- DATA 11, 5, -1983, "Bonfire, Daniel is "
- :
- DATA 12, 21, 111, "Shortest Day" Dec
- DATA 12, 25, 111, "Christmas"
- DATA 12, 26, 111, "Boxing"
- DATA 12, 28, 92, "Holiday"
- DATA 12, 28, 93, "Holiday"
- DATA 12, 27, 93, "Holiday"
- DATA 12, 27, 94, "Holiday"
- DATA 12, 29, -1977, "Rover is "
- :
- DATA 13, 1, 111, "New Year" Jan of year following Diary year
- DATA 13, 1, 96, "New Leap Year"
- :
- DATA 999 End of Data
-