tandy put their sound chip on the 1A interrupt?
-
I want a girl with a short skirt and loooong BUTTONS!
hah, I love DOS programmers.
This code mallocs 65516 bytes in a loop until malloc returns zero. -
hah, I love DOS programmers.
This code mallocs 65516 bytes in a loop until malloc returns zero.totally normal part of starting program: allocate all the RAM in the system.
I mean, it's DOS. There's nothing else running that could possibly call malloc. So why not?
-
totally normal part of starting program: allocate all the RAM in the system.
I mean, it's DOS. There's nothing else running that could possibly call malloc. So why not?
You also have to remember that it's not going to succeed more than, like, 6-8 times?
There's just not that much memory in the system that this can touch, since it's not supporting any of the endless varieties of breaking the 640k barrier -
You also have to remember that it's not going to succeed more than, like, 6-8 times?
There's just not that much memory in the system that this can touch, since it's not supporting any of the endless varieties of breaking the 640k barrierthere's a story on Old New Thing somewhere about Windows 95 accidentally breaking a DOS game, because it did this same trick of allocating all the memory, but since Win95 was running as the DPMS, it meant it had access to all of windows 95's virtual memory. including the swap.
So instead of mallocing all 8mb or whatever your 486 had, it malloced all that and then tried to use up YOUR ENTIRE HARD DRIVE, slowly.
-
there's a story on Old New Thing somewhere about Windows 95 accidentally breaking a DOS game, because it did this same trick of allocating all the memory, but since Win95 was running as the DPMS, it meant it had access to all of windows 95's virtual memory. including the swap.
So instead of mallocing all 8mb or whatever your 486 had, it malloced all that and then tried to use up YOUR ENTIRE HARD DRIVE, slowly.
And then it crashed because it didn't expect to succeed that many times. It had a fixed array of handles to memory, and it overflowed because it was run on a system with HUNDREDS OF MEGABYTES OF RAM, which is clearly impossible and unthinkable
-
And then it crashed because it didn't expect to succeed that many times. It had a fixed array of handles to memory, and it overflowed because it was run on a system with HUNDREDS OF MEGABYTES OF RAM, which is clearly impossible and unthinkable
I think the solution was that win95 just defaults DOS programs to maxing out at 16mb. It won't let them allocate more than that unless you adjust the EXE options
-
I think the solution was that win95 just defaults DOS programs to maxing out at 16mb. It won't let them allocate more than that unless you adjust the EXE options
this game runs mostly in a 16 color mode, with some high-end modes being basically 16-colors within 64 or 256 colors, right?
SO WHY DOES IT USE 16-BIT INTEGERS FOR COLOR INDICES?
-
this game runs mostly in a 16 color mode, with some high-end modes being basically 16-colors within 64 or 256 colors, right?
SO WHY DOES IT USE 16-BIT INTEGERS FOR COLOR INDICES?
I'm not sure if anyone has ever designed a paletted graphics system that uses more than 256 colors. Probably at some point someone thought it was a good idea.
-
I'm not sure if anyone has ever designed a paletted graphics system that uses more than 256 colors. Probably at some point someone thought it was a good idea.
note to self: patch out the Romani slur in one of the hints for Budapest
EDIT: both of them
-
note to self: patch out the Romani slur in one of the hints for Budapest
EDIT: both of them
This game was released in 1990 but it has a hint that refers to the currency of Brazil as the "cruzado". But in 1989, it had been replaced by the cruzado novo. Clearly someone was using an out of date encyclopedia!
-
This game was released in 1990 but it has a hint that refers to the currency of Brazil as the "cruzado". But in 1989, it had been replaced by the cruzado novo. Clearly someone was using an out of date encyclopedia!
(Brazil has had 3/4 currency changes since then, depending on how you count it)
-
(Brazil has had 3/4 currency changes since then, depending on how you count it)
I'm thinking of dumping a list of all the hints in this game and calculating how many of them are wrong by now.
-
I'm thinking of dumping a list of all the hints in this game and calculating how many of them are wrong by now.
like, most of the flag clues. do you know how many countries have changed their flags since 1989? LOTS OF THEM
-
like, most of the flag clues. do you know how many countries have changed their flags since 1989? LOTS OF THEM
The description of Hungary says it's bordered by Czechoslovakia, Austria, Yugoslavia, Romania, and the Soviet Union.
Two of those are still right!
-
The description of Hungary says it's bordered by Czechoslovakia, Austria, Yugoslavia, Romania, and the Soviet Union.
Two of those are still right!
so I fly into Reykjavík, and immediately sleep for 8 hours. In the morning, I can go to either the airport or the hotel, but it'll take 3 hours to get to either.
Question: where am I right now, if I'm not at the hotel or the airport?
-
so I fly into Reykjavík, and immediately sleep for 8 hours. In the morning, I can go to either the airport or the hotel, but it'll take 3 hours to get to either.
Question: where am I right now, if I'm not at the hotel or the airport?
They initialized the SoundBlaster DSP backwards.
You're supposed to send a 0 to the reset port, wait 3 microseconds, send a 1, then wait up to 100 microseconds for an 0xAA to show up on the data port.They instead send a 1, then a 0, then immediately start trying to read the data port.
-
They initialized the SoundBlaster DSP backwards.
You're supposed to send a 0 to the reset port, wait 3 microseconds, send a 1, then wait up to 100 microseconds for an 0xAA to show up on the data port.They instead send a 1, then a 0, then immediately start trying to read the data port.
they read from the ports instead of measuring time, because that'll take a certain amount of time on x86. I'm too tired to confirm if their timing logic is sound. It's possible they're just assuming the PC is slow enough that it'll wait long enough
-
they read from the ports instead of measuring time, because that'll take a certain amount of time on x86. I'm too tired to confirm if their timing logic is sound. It's possible they're just assuming the PC is slow enough that it'll wait long enough
I bet broderbund bought this sound code. It feels completely different: This was either compiled on a different compiler or was written in assembly.
-
I bet broderbund bought this sound code. It feels completely different: This was either compiled on a different compiler or was written in assembly.
yeah a compiler doesn't just start using CF to return bools instead of AX. This is assembly.
-
yeah a compiler doesn't just start using CF to return bools instead of AX. This is assembly.
they're passing single bytes to functions! C widens integer parameters to a word, so on a 16bit system, they're passed in 16-bit registers.