Subj : Patch for Silver Xpress "Bug" dates
To : All
From : AKAcastor
Date : Tue May 21 2024 07:03 pm
I wrote a small (1 byte) patch to fix "Bug" dates in Silver Xpress - XPBUGPAT.ZIP can be found in file area 4 (cracks) of Another Millennium BBS (another.tel).
(text file follows)
Chris/akacastor
-----------------------------------------------------------------------------
Patch for Silver Xpress "Bug" dates by akacastor 2024-05-21 [ AP Class ]
-----------------------------------------------------------------------------
Tested on Silver Xpress 5.03M1 door, Silver Xpress 4.01 real mode reader,
and Silver Xpress 4.01 protected mode reader.
This patch fixes display of dates > 2000 in Silver Xpress. Without the patch,
any dates after the year 2000 are displayed with "Bug" instead of month.
The patch is applied by running XPBUGPAT.BAT, which uses CHANGE.EXE to
patch the Silver Xpress executable file.
usage: XPBUGPAT XPREAD.EXE
When the patch is applied successfully, "Done: 1 patches applied." will
be printed. If the executable has already been patched, 0 patches will
be applied.
-----------------------------------------------------------------------------
What does the patch do?
-----------------------------------------------------------------------------
The Silver Xpress code contains a subroutine that checks dates to see if they
are valid, and in case of an invalid date the word "Bug" is printed instead of
the correct month. All dates after the year 2000 are considered invalid, and
thus trigger the "Bug" dates.
Below is disassembly of the relevant part of the subroutine that checks dates.
An arrow marks the line with a 'cmp' comparing the year to 2000, followed by a
'jbe' which will jump if the year is below or equal to 2000.
By patching the instruction "81 7E F4 D0 07" to "81 7E F4 D0 70", the maximum
allowed year is changed from 2000 to 28,880. This should give us a bit more
time. :)