[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Serious Pascal help needed
A2MG writes ...
>
> To anyone who is familiar with Apple Pascal:
>
> The following is a message which will appear in tomorrow's mail group. I am
> posting it here in the hope that someone who knows Apple Pascal can help us.
>
> The problem is the Year 2000 update for Quicken. Quicken rejects years earlier
> than 68 when it is entered as the date of a check. Enter 00 as the year, and an
> annoying error message pops up. A few of us have been looking at this for
> several months, with little progress.
>
> So far, we have been able to allow the data entry of the year 00 by filtering
> out what appears to be a GOTO near the place where the annoying error message
> is in the code. However, the program doesn't implement it. Instead, it takes on
> a year like 70 or 72 or some other residue. So we are filtering out not only
> the less than 68 code (which is good), but we are also prohibiting the posting
> in memory of the entire date (which is bad). Close, but no cigar.
>
....
> We do not know how they transfer the Pascal code to a ProDos scenario. However,
> that is not important. All we need is to locate that 68. We have already tried
> various searches like $44 C9, and every possible combination thereof.
>
> We do not have source code. We are looking at it with Block Warden.
....
Probably, you mean C9 44 (compare Accumulator contents with the
value $44). It's a decent try. However, if the test is in 6502 machine
code, you might be looking for something like A9 44 CD xx xx or some
indirect reference or a comparison which involves the X or Y register.
If $44 is the lowest acceptable year, the check value may be $43. There
are many ways to do such a test.
One thing; 1968 is a strange value to choose as the lowest
permitted year. About its only special feature is that 2000 - 1968 = 32.
This suggests the possibility of a data structure with 32 members and
some sort of date conversion and mapping of years ($00 = 1968, ..., $1F
= 1999). Just a guess; perhaps it will help.
Rubywand