Skip to main content
515 votes

Why did moving the mouse cursor cause Windows 95 to run more quickly?

This is because of a flaw in the way Windows 95 generates events, and the fact that many applications are event driven. Windows 95 applications often use asynchronous I/O, that is they ask for some ...
user's user avatar
  • 15.2k
279 votes
Accepted

Why does trying to break into the NT 3.1 kernel reboot my 486DX4 machine?

Short explation The Windows NT 3.1 kernel is incompatible with enhanced 486 processors. Specifically, it is incompatible with 486 processors providing the CPUID instructions. Kernel debugging works ...
Michael Karcher's user avatar
201 votes
Accepted

Why does the infamous "ENGAGERIDLEYMOTHERFUCKER" Metroid password break NES emulators?

Let's take a look at the code! A few seconds of Googling led me to a high-quality annotated disassembly by Kent Hansen and Nick Mikstas: https://www.metroid-database.com/source-code/ Whenever the user ...
NobodyNada's user avatar
  • 5,464
109 votes

Why did moving the mouse cursor cause Windows 95 to run more quickly?

Yes, it's a real effect resulting in causing a measurable speed up and can be reproduced at will: Try opening a large file with Notepad on a contemporary machine. The window must not be full screen. ...
Raffzahn's user avatar
  • 224k
88 votes
Accepted

What made Windows Me so crash-prone?

I am unsure about what made it so crash prone To start with, it wasn't. Windows ME was not much different from 98SE and on its own as stable as its predecessor. The only plausible thing I could ...
Raffzahn's user avatar
  • 224k
69 votes

Why does Windows 1.01 crash at the splash screen?

This is a botched version check error message. Windows 1.x was designed to run under MS-DOS 2.0, 3.0 and 3.10; to ensure it only runs under one of these, it performs a version test on its host DOS. ...
user3840170's user avatar
  • 23.1k
58 votes
Accepted

Why does the kill-screen glitch occur in Pac-man?

There are only seven fruit in Pac-man. The way the game calculates the number of fruit to draw is as follows: LD A,(#4E13): Load the level number (at memory address 0x4E13) into A. INC A: Increment A....
wizzwizz4's user avatar
  • 18.6k
53 votes

Was memory corruption a common problem in large programs written in assembly language?

Coding in assembly is brutal. Rogue pointers Assembly languages rely even more on pointers (through address registers) so you can't even rely on the compiler or static analyzing tools to warn you ...
Jean-François Fabre's user avatar
50 votes

In the classic "Windows 98 crashes live on CNN" video, why does the BSOD appear so oddly?

VGA graphics and text modes have different scan rates. The Windows desktop runs in some graphics mode (looks like 640x480, likely 60 Hz) while the BSoD is in text mode (720x400 at 70 Hz). The adapter ...
Zac67's user avatar
  • 3,914
43 votes

How did anti-Y2K-bug boards work?

From a CNN article I found about one such card: Most pre-1997 PCs had real-time clock chips ticking off six-digit dates (mm-dd-yy) translated by the BIOS into eight-digit dates indicating the proper ...
user3840170's user avatar
  • 23.1k
42 votes

Why did moving the mouse cursor cause Windows 95 to run more quickly?

It wasn't just Windows 95, but Windows 3.x as well, even though they work very differently. Other answers talk about pre-emptive multitasking, so let's first clarify this: Window 3.x was using ...
Thomas's user avatar
  • 3,842
42 votes

How can I play QBasic Nibbles on a modern machine?

The problem is simple. At initialisation, Nibbles measures the time it takes to perform 1000 empty iterations of a FOR loop with a DOUBLE counter in order to determine how many such iterations are ...
user3840170's user avatar
  • 23.1k
39 votes

How can I play QBasic Nibbles on a modern machine?

DOSBox, with the default CPU speed of 3000 cycles on this Linux box, runs nibbles.bas without problems.
scruss's user avatar
  • 21.6k
34 votes

Why does the infamous "ENGAGERIDLEYMOTHERFUCKER" Metroid password break NES emulators?

Fundamentally these 'passwords' aren't really passwords as such, but map back to a string of bits that control the state of the game - so it's more of a string representation of the current state of ...
Doc's user avatar
  • 441
29 votes
Accepted

Why is MS-DOS not able to read partitions starting at logical sector 0?

This is a consequence of a buggy overflow check. Internally, MS-DOS uses logical block addressing to access file systems. Since version 4.0, MS-DOS uses 32 bits for sector addresses in order to ...
user3840170's user avatar
  • 23.1k
27 votes

Why did moving the mouse cursor cause Windows 95 to run more quickly?

The reason is because of how WM_TIMER is limited to 15.6ms intervals by default. If you call SetTimer() with a 1ms interval it will still be called in 15.6ms intervals. WM_TIMER drives a lot of stuff ...
Tinic Uro's user avatar
  • 279
25 votes

Was memory corruption a common problem in large programs written in assembly language?

I spent most of my career writing assembler, solo, small teams and large teams (Cray, SGI, Sun, Oracle). I worked on embedded systems, OS, VMs, and bootstrap loaders. Memory corruption was seldom if ...
jack bochsler's user avatar
24 votes

Why did Pokémon Red have so many overflow bugs?

Overflow doesn't mean what you think. That flag exposes the internal ALU carry from bit 6 -> bit 7. It's needed when you are handling the most significant byte of a 2-complement number, because you ...
Janka's user avatar
  • 2,192
24 votes

Why did Pokémon Red have so many overflow bugs?

I cannot speak about Pokémon in particular, but as a programmer for ~30 years, I'll answer thus: either laziness, incorrect assumption, or surprise. Laziness After an operation that overflows, you ...
John Burger's user avatar
  • 1,335
23 votes

Why did moving the mouse cursor cause Windows 95 to run more quickly?

Raymond Chen from Microsoft has a great answer on his blog: One danger of the MsgWaitForMultipleObjects function is calling it when there are already messages waiting to be processed, because ...
rwbaskette's user avatar
22 votes
Accepted

How did the C64 lockup bug and its workarounds work?

It’s good ol’ buffer overflow. I diagnosed this in VICE. It turns out that supercat’s hunch that this is caused by clobbering a register of the CIA chip is mostly correct (they only got the register ...
user3840170's user avatar
  • 23.1k
20 votes
Accepted

Why would an implementation of getwd call mktemp?

If you look into the source code for SunOS 4.1.4, available online, getwd() is not a simple function. It actually walks up the directory tree, performing all sorts of wonderful tasks to get the name ...
paxdiablo's user avatar
  • 4,742
19 votes

Was memory corruption a common problem in large programs written in assembly language?

Simple idiotic errors abound in assembly, no matter how careful you are. It turns out that even stupid compilers for poorly-defined high level languages (like C) constrain a huge range of possible ...
RETRAC's user avatar
  • 13.7k
18 votes

Why did moving the mouse cursor cause Windows 95 to run more quickly?

Arguably, this is a common bug in early software based on an event-processing loop rather than a Windows bug: if some DD-paths of the loop only process a single event, then every time when two events ...
Dmitry Grigoryev's user avatar
17 votes
Accepted

Intel 386 multiply bug

Software can identify those early steppings on the 386 by checking whether the XBTS and/or IBTS instruction can be executed, since these instructions were dropped in later chip revisions. Software ...
tofro's user avatar
  • 35k
16 votes

Why do sprites lag behind a scrolling map in first-generation Pokémon games?

Lacking meaningful research avenues, I started surveying YouTube videos, and I think I managed to mine some insights even from that scant evidence. Here is what I found out: The issue is apparently ...
user3840170's user avatar
  • 23.1k
14 votes

Was memory corruption a common problem in large programs written in assembly language?

I wrote the original garbage collector for MDL, a Lisp like language, back in 1971-72. It was quite a challenge for me back then. It was written in MIDAS, an assembler for the PDP-10 running ITS. ...
Walter Mitty's user avatar
  • 6,138
14 votes
Accepted

What is the CoCo "Head Banger bug" and what is the "fix"?

I posted this question because I had those thoughts, and then spent ages going through multiple dead ends until I finally found it (my Google-fu is on the fritz). So that I don't have to go through ...
John Burger's user avatar
  • 1,335
14 votes

Why did Pokémon Red have so many overflow bugs?

I think your premise is wrong. Firstly "overflow" in most cases doesn't mean pure arithmetic overflow, it means overflow of some other limit, checking said limits would require more than a single ...
Peter Green's user avatar
  • 2,912
14 votes
Accepted

Is this a bug or an allowed Pascal behavior?

The ISO 7185 Pascal standard, section 6.4.3.5 "File-types", says (my emphasis): There shall be a file-type that is denoted by the required structured-type-identifier text. The structure of ...
dirkt's user avatar
  • 27.4k

Only top scored, non community-wiki answers of a minimum length are eligible