[NameNet]

NameNet and the Time Machine

[April 1997 sees the latest revision of Roger Derry's program. Nothing dramatic, he says, mainly some bug fixes and a few enhancements. However he does wonder if he knows something that the physicists do not. Ed]

By Roger Derry

Stephen Hawkin is wrong! There are people out there with time machines! What is more they own Ataris and use NameNet. How else can you explain a telephoned bug report that NameNet could not cope with the year 2000?

Will January 1st 2000, aka 01/01/00, be the end of time? You have read the protestations of doom; business crashing to a halt on that day as the memory and code economies made by main-frame programmers in the 50s and 60s come home to roost. But what about our own dear Atari? Well NameNet 4.200 has been millennium-fixed and is fine thank you very much but what about Atari software in general?

Theoretically there should not be a problem. The date is kept by the various operating systems as an offset from 1980, so going from 1980+19 to 1980+20 should not be too much of a problem.

Er, actually it depends on how your software decodes the date. Quite a bit seems to have a vital line of code missing. It controls a carry from the units to the tens; the transition from 89 to 90 goes fine. What has been forgotten is a line dealing with a carry from the tens to the hundreds.

Come the end of the millennium, the HiSoft compiler that I use for NameNet has a date routine that produces "01-01-20:0" instead of "01-01-2000". January 1st 2010 produces "01-01-;0". Internally the date is correct. It is just the display that is wrong.

What is going on here? Well a brief look at an ASCII table shows the answer.

 char     code 
 "0"       48 
 "1"       49 
 "2"       50 
 "3"       51 
 "4"       52 
 "5"       53 
 "6"       54 
 "7"       55 
 "8"       56 
 "9"       57 
 "0"       58 
 ":"       59 
 ";"       60 

The tens figure is being incremented above "9" rather than being reset to zero as required by a decimal number display. The line of code to do this is missing. This behaviour is manifested by other software so I don't think this is unique to HiSoft.

As far as NN is concerned it was a relatively simple matter to intercept the date display and input routines to put in a millennium fix to make it "Year 2000 compliant".

Mind you, we have had a narrow escape regarding February 29th 2000. Yes there will be one. I bet most programmer's did not even think about the rule where century years are NOT leap years. However they have been saved by a provision of a 1751 Act of Parliament becoming active for the very first time: the leap year exception is itself excepted every 400 years. As the 'Act substituting the Gregorian for the Julian Calendar'so lucidly puts it:

"That the several years of our Lord 1800, 1900, 2100, 2200, 2300, or any other hundredth year of our Lord, which shall happen in time to come, except only every four hundredth year of our Lord, whereof the year of our Lord 2000 shall be the first, shall not be esteemed or taken to be bissextile or leap years, but shall be taken to be common years, consisting of 365 days, and no more; and the years of our Lord 2000, 2400, 2800, and every four hundred year of our Lord, from the year of our Lord 2000 inclusive, and also all other years of our Lord, which by the present supputation are esteemed to be bissextile or leap years, shall for the future, and in all times to come, be esteemed and taken to be bissextile or leap years, consisting of 366 days, in the same sort or manner as in now used with respect to every fourth year of our Lord."

Now is that all clear? [As mud! Ed]

OK, after that little diversion, what else has NameNet 4.200 got apart from a 1997 copyright date? Well there have been a number of enhancements, but the one I find most useful is the output to merge file now allows a degree of conditional output of the name.

As you may know, I am a confirmed user of the old Calligrapher Document processor. Its mail merge allows conditional merging which I have always found useful for adding appropriate spacing and controlling the "salutation" on a letter so that, if I were ever to mail shot AtariPhile's esteemed editors, they would be properly greeted as "Dear Colin" and "Dear Kev" and "Dear Domhnall" and not "Dear Mr Fisher-McAllum" and "Dear Mr Beardsworth" and "Dear Mr Dods". However Papyrus is not clever in this regard, neither are most mail merge programs.

While I was making the changes, I have documented using NameNet to mail merge with Papyrus. I have also supplied a "name" file so that fields can be called by name rather than number within the papyrus document. If the name file box is pointed towards the supplied NN_NAME.NAM then the fields can be identified using the names:

 name
 first name
 title
 initials
 addr1
 addr2
 addr3
 addr4
 addr5
 addr6
 addr7
 postcode
 family
 serial number
 preferred name
 misc
 record separator

I still use Calligrapher most of the time. My main use for Papyrus is when I want to use fonts not covered by the twenty or so I have for Calligrapher and so have to use True Type ones. I am, though, starting to use Papyrus for labels.

Although the merge file output defaults to a setting suitable for Calligrapher, the same output can be used by Papyrus by setting it to:

 "One field per line.
 Exactly 17___ fields per record."

 or

 User defined format

 Field separator CR LF
 Data separator ~ CR LF
 Quote character '"'

The output to merge file set up dialogue has additional buttons labelled NAME SPACES, PREF NAME and ADD NAME

While Calligrapher has conditional merging, Papyrus does not. This means that formatting spaces where the title and/or initials are going to be used becomes problematic. To overcome this NameNet will, if the NAME SPACES button is selected, add a trailing space to the title and first name and a leading space to the initials provided the relevant field is not empty. This means that text using merge fields of:


<title><first name><name><initial>,
for, say the first line of an address labels, will, and depending on the field data, reproduce as

 Mr Derry,
 Roger Derry,
 Mr Roger Derry,
 Roger Derry MIBS,
 Mr Roger Derry MIBS

(It's "Member of the Institute of Broadcast Sound" if you were wondering).

Alternatively the PERSONAL NAME button causes the preferred name field to be filled on a conditional basis so that:

if the field is not blank then there is no change

If the field is blank then
        if there is a title this will be copied to here

                if there is no title but there is text in the first name 
                fields then this will be copied here

if the ADD NAME button is selected then the NAME field is added, separated by a space.

this means that a salutation set up as:

Dear
can reproduce as:

                                                Original
 Resulting text     Title   1st Name  Name      Pref Name
 --------------     -----   -------   ----      ---------
 Dear Mr Miller      Mr               Miller

 Dear Derek                  Derek    Miller

 Dear Mr Miller      Mr      Derek    Miller

 Dear Dusty                  Derek    Miller    Dusty

 Dear Mr Miller      Mr      Derek    Miller    Dusty

Other changes in NameNet 4.200 include:

The number of subsidiary data files (introduced with NameNet 4) can be increased from 3 to 6. They can now be selected directly by using the function keys.

 f1 -    Normal            shift     Toggle normal/flat
 f2 -    wiped/concealed
 f3 -    nn1
 f4 -    nn2
 f5 -    nn3
 f6 -    nn4
 f7 -    nn5
 f8 -    nn6
 f9 -    compact
 f10-    Quit

ERASE MODE

With very large NameNet data files there can be a delay deleting an entry with a large number of links. The new "erase mode" can be set to a value which causes the old entry and links merely to be hidden rather than deleted. This does mean that the file will get even bigger. However the file can be compacted, losing the "erased" entries, by pressing F9. The value given to the erase mode controls the size of file that will be affected. A value of 1 will cause file entries always to be erased rather than deleted. A Value of 100,000 would caused entries to be erased only in files longer than 100,000 bytes. A value of 0 switches off the option.

A bonus is that there is now a "Block erase" option. If you filter your NameNet file so that a group of entries you no longer want are the current entries, then block erase will step through from the on-screen entry to the end, erasing each entry. If you have strong nerves you can just rely on holding down the right mouse button exit from the sequence when the last entry you want to erase is shown as having been removed.

There is now an option to force dialling via Mercury, even for local calls. This is useful if you are using its cost centre codes to log calls for charging to clients.

Clicking on the "Blank screen" menu item while holding down control disconnects the mouse, so that only pressing a key restores the screen. This can be useful if you are working at the same desk as the computer but not actually using it.

If you are creating a link and the link search string is empty then the last search string to be used is substituted.

NameNet uses a key file to provide full facilities. Your personal key is available for £15. However if you say the magic sentence "I saw it mentioned in AtariPhile" then you can have it for £12 [Nice one, thanks Roger - Ed]. The actual program is available from various PD libraries and, by modem, from 42BBS and the atari.st conference on Cix. Alternatively I will send you a demo disk for £3. This cost will be deducted from any subsequent registration fee.

Contact: Roger Derry, 38 Leopold Road, Bristol, BS6 5BS, UK,
E-Mail: rderry@cix.compulink.co.uk
Price: See Above