



                             2000 Check Ver, 2.0



 Please read the operating instructions and notes before using this product.

 ***************************************************************************



This program is intended to run on IBM or IBM compatible P.C.s with MS DOS

3.3 or above, Windows3.x, Windows95 or Windows98 operating systems.



2000 Check will:

Test your P.C. for Millennium compliance by ensuring that the date provided

by the P.C. clock will automatically roll-over to the correct date at the

turn of the century, the 28th of February 2000 and the 28th of February 2040.

Test all years between 1999 and 2041 for date recognition and retrieval.

Ensure the system clock recognizes all leap years between 1999 and 2041.

Install a permanent fix into non compliant P.C.s.

Record individual test results on the P.C.s hard disk.  (MM?INFO.TXT)

Produce a millennium compliance certificate. 

Displays the test result on your computer screen.



This document is divided into the following sections.



1:   Operating instructions

2:   Post installation messages

3:   General notes

4:   Mm?info.txt file description

5:   The meaning of time and how it all began.

6:   BIOS patch information

7:   2000 Check test sequence




                             ********************



[1]                         Operating Instructions.



This product consists of the following files Y2kCHECK.EXE, Y2kCHECK.PIF and

Y2kORDER.TXT, you can download them from a web site and copy them as often

as you like, you can even run 2000 CHECK and test any IBM compatible personal

computer free of charge if you adhere to the following conditions.



1: You must read and accept the licensing and disclaimer statement.



2: You may not re-sale or in any way profit from the re-sale of this product.



3: You must purchase a key for each and every computer you intend to repair

   by installing the BIOS patch incorporated within this product.



This product can be installed on floppy disk, hard disk or network server.

To start the program, type Y2kCHECK from the directory containing the

program files or use the Windows RUN option. 



You will be asked to accept the license conditions by entering the key.

Keys can be obtained from the web site. and will allow you to run the

program as often as you like on one computer. If you would rather test

the computer prior to purchasing a key (recommended) enter 9999 and the

program will perform a test (but not a fix) free of charge.



The program will run, test and assuming you have purchased a fix, repair

non compliant computers.



                             ********************



[2]                       Post installation messages.



When the P.C. is re-started it will display a message, informing the user

of the equipment's hardware compliance level. The message will appear in 

one of two colors, and remain visible for three seconds.

Usually a green message indicating the P.C. is millennium compliant, will

be displayed. A red message will indicate a possible hardware compliance 

problem.

Equipment that required the installation of a software patch to make it

millennium compliant will be tested to ensure the patch is installed and

operational. In the unlikely event that this proves not to be the case, a 

red warning message will be displayed. 



                             ******************** 



[3]                             General notes.



If you are using a multiple application operating system such as windows

please ensure all other applications have terminated. 



All printouts use standard ASCII characters and are formatted for 64 lines

per page with a carriage return at the end of each line and a form feed

on the 64th line.



                             ********************



[4]                      MM_INFO.TXT file description

      

This file is written to the hard disk of the P.C. under test, and remains

there as a permanent record of the test results.



MM_INFO.TXT contains the following information.



P.C. ID number:

Test Date:

Test Time:

BIOS creation date:

Test results:



                             ********************



[5]                 The meaning of time and how it all began.



When the P.C. was first produced it did not contain a time of day clock,

instead, the user was required to enter the date and time when the P.C.

was switched on.

To provide the P.C. with date and time functions the date and time you

entered was converted to a number, which corresponded to the elapsed time

since time zero, which to a P.C., is the 1st of January 1980 at 00:00 hours

( try setting your P.C. date to 1979 ).

This number is regularly updated by an internal clock pulse as long as the

P.C. remains switched on.



When a program requires to know the date or time, it merely requests the

operating system to convert this number into the correct date/time format

and supply it to the calling program.

This clock is generally known as the System or DOS Clock and most, but not

all, programs derive their date and time from this source.



From the launch of the IBM PC/AT, P.C.s have been equipped with a time of

day clock, which is known as the Real Time Clock or RTC. This clock is

powered by an internal battery which maintains the date and time even when

the P.C, is switched of.

When the P.C. is switched on instead of asking you to enter the date and

time, it asks the RTC to provide it.



This is a somewhat simplified version, in actual fact the RTC regularly

updates specific locations in what is known as non volatile memory or

CMOS RAM, and these locations are read by instructions issued by BIOS,

which in turn may be answering a request from the operating system (DOS)

to provide this information.



The BIOS (Basic Input Output System) is a set of routines which convert

the commands issued by the operating system into commands that the hardware

can understand, you might consider BIOS as a translator between standard

operating system requests and the continually evolving P.C. hardware.



Most but not all BIOS routines reside in a chip or chips on the P.C.

mother board, and in modern P.C.s can be re-written to provide updates or

correct errors in previous versions.



So if that's how it works, what's the problem ?



There are lots of problems but they all stem from two basic facts.



1: The programmer has access to two sources of date and time which may or

may not be the same.



2: Software programmers, BIOS programmers and hardware designers have all

taken the century part of the date for granted and neglected to consider

the implications of getting it wrong.



Consider the following.

To the BIOS the initial source of date and time is actually the CMOS RAM,

which stores time and date as a set of binary coded decimal numbers in

various predefined locations. These locations can be read one at a time by

BIOS issuing in/out instructions. To save time the BIOS may not bother

reading byte 50 (the century byte) but instead assume it to be 19, or the

RTC may decide that this byte is always 19 and not update it, or the RTC may

update it but only at power on time (not so good for P.C.s that are never

switched off), or the BIOS may in fact read all information, but fail to

update the system clock correctly. Add to this the possibility that the

programmer may have decided to use the RTC as his source of date and time

instead of the system clock, (2000 Check uses both) and you have some idea

of the possible sources of error.



Further complications arise from the fact that the year 2000 is actually a

leap year so the 29th of February 2000 must also be recognized as a valid

date.



Now on the practical side you might think that a P.C. of one manufacturer

and model will be the same as the next, so if one is millennium compliant

then so must the next ! Not so ! Manufacturers may use completely different

mother boards or BIOS in seemingly identical P.C.s and seemingly identical

board may use different chip vendors.



The only way to test a P.C. for millennium compliance is to test each and

every one of them with a program such as 2000 Check. Setting dates by hand,

switching them off, waiting a few minutes and them switching them on again

is both time consuming and inaccurate (RTCs that update the CMOS RAM century

byte only at power on time, would not be detected using this method and you

run the risk of immobilizing your P.C. by exceeding program expire dates).



                             ********************



[6]                         BIOS patch information



Most non-compliant computers can be made compliant by installing the BIOS

patch supplied with this software.



                              WARNING !!!



The BIOS patch file MM_PATCH.COM is tailored to run on individual computers,

you must use 2000 Check to install this patch, do NOT copy this file to

another computer.



          Technical information on BIOS patching (simplified):



MM_PATCH.COM is actually a Device Driver with a small memory resident portion

of approximately 350 bytes, which remains in memory and intercept system calls

to the RTC (Real Time Clock).

Date information returned by the RTC is examined by mm_patch. If the date is

between 1900 and 1979 the century is assumed to be wrong and is changed to

20 before returning it to the operating system.

The rational for this is any date prior to 1980 will be considered illegal by

DOS and the most likely explanation is the century byte has not been changed

by the RTC or that BIOS has failed to retrieve the century byte from CMOS RAM.



                 Patch installation notes and problems:



2000 Check will add the "device=mm_patch.com" command to the end of the

config.sys file and save the original file as config.qct.



The patch will not be installed if:



1:  It does not fix the problem.



2:  It is already installed.



3:  The computer has no hard disk (networked diskless P.C.s).



4:  The 9999 key is used to test the computer.



                             ********************



[7]                      2000 Check test sequence:



    Computers are checked in the following way using ROM and System BIOS

    interrupts.



1:  The Real Time Clock is set to one second before midnight on the

    31/12/1999



2:  Two seconds later the Real Time Clock is read and compared with

    01/01/2000



    These two steps ascertain whether the Real Time Clock is capable of

    rolling over to the next century and whether BIOS is capable of setting

    and retrieving the correct date.



    If this test is OK then go to step 5:  otherwise,

    

3:  The Real Time Clock is set to 01/01/2000



4:  The Real Time Clock is read and compared with  01/01/2000



    This is to ascertain whether the Real Time Clock century byte can be

    manually set and whether BIOS will report the change.



    If this test fails then go to step 14: otherwise.



5:  The Real Time Clock is set to one second before midnight on the

    28/02/2000



6:  Two seconds later the Real Time Clock is read and compared with

    29/02/2000



    These two steps ascertain whether the Real Time Clock is capable of

    rolling over to the 29th of February 2000 and whether BIOS is capable

    of setting and retrieving the correct date.



    If this test is OK then go to step 9:  otherwise.



7:  The Real Time Clock is set to 29/02/2000



8:  The Real Time Clock is read and compared with  29/02/2000



    This is to ascertain whether the Real Time Clock can be manually set

    to the 29th of February 2000 and whether BIOS will report the change.



    Go to step 14: 



9:  The Real Time Clock is set to one second before midnight on the

    28/02/2040



10: Two seconds later the Real Time Clock is read and compared with

    29/02/2040



    These two steps ascertain whether the Real Time Clock is capable of

    rolling over to the 29th of February 2040 and whether BIOS is capable

    of setting and retrieving the correct date.



    If this test is ok then go to step 13: otherwise.



11: The Real Time Clock is set to 29/02/2040



12: The Real Time Clock is read and compared with  29/02/2040



    This is to ascertain whether the Real Time Clock can be manually set

    to the 29th of February 2040 and whether BIOS will report the change.



    go to step 14:



13: If steps 2, 6 and 10 were OK then test the ability of RTC/CMOS memory

    to save and retain century information, thus ensuring compatibility with

    programs that use direct R.T.C. calls. 



14: The System Clock Counter and the Real Time Clock are set to the same

    day and month in the year 1999.



15: The System Clock and Real Time Clock are read and compared with the

    reference date.

   

    If this test is ok, the previous two steps are repeated for each year

    from 2000 until 2041.

    This ensures the System Clock and Real Time Clock can be set to, and

    will return correct dates for each year in the range 1999 to 2041 and

    the system clock will recognize all leap years within that range.



16: Depending on the results of the previous tests 2000 check may ask to

    install a BIOS patch and re-test the computer. If so the previous

    fifteen steps are repeated with the patch installed.



17: Update reports and restore all times and dates to their correct values. 



                             ********************




                                     END.

