VOGONS


First post, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

I've been playing with some old DOS BBS door games recently for nostalgic purposes, and I've come across a few that are not Y2K-compliant.

Does anyone know if there is a TSR or something that can hijack the DOS interrupt for getting the date so that it can, say, subtract 20 years from the current year and return that to the program?

Edit: I should mention that I am running these in an NTVDM in Windows XP, as the BBS software is 32-bit Windows.

Reply 1 of 6, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

I'm sure such software exists – back in the day it was sometimes a useful means of circumventing software that would stop working after thirty days. Unfortunately I cannot recall what any of those programs were called. 😒

Reply 3 of 6, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Here's a simple TSR program, pass it the number of years (1-99) to subtract, e.g. YEARSUB 20. It handles the INT 1A/04 and INT 21/2A functions, but does nothing about reading the date through CMOS registers. Source code included.

Reply 4 of 6, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Thanks! It seemed to work for the games' setup when I ran in a command.com prompt (versus a cmd.exe one). I'll find out tomorrow if it's working for the games themselves.

Edit: What assembler/linker did you use?

Reply 5 of 6, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author
HunterZ wrote:

What assembler/linker did you use?

A86, but MASM or TASM and their linkers should have no problem with it, selecting tiny model with switches if need be.

Reply 6 of 6, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Thanks.

Looks like it's working, as the affected games ran their daily maintenance when logging in just after midnight. Previously they couldn't tell that the day had rolled over because the year was off the end of what they could track. Now they think it's 1995, which is about the last time that I actually played them 😀