Re:They don't make 'em like that any more: Borland Turbo Pas...
by LorenPechtel on Sunday November 08, 2026 @11:37AM
(#50414747)
I don't really think you need to understand the whole stack. Rather, you need to understand at least one level deeper than whatever you are using.
Back in the days of Turbo Pascal you had to know what you were looking at when the memory modified breakpoint went off and you got dumped to the assembly level. And you really had to understand it to deal with the 200mhz bug (there weren't convenient solutions at hand when I first hit it) or when I ended up making extensive modifications to the real mode support in the DPMI mode--never saw that mentioned anywhere. It was nasty--the library was fundamentally flawed and clearly had never actually been used as it declared real mode pointers as "pointer"--which had a very high chance of causing a segment error when the compiler emitted code that copied them by loading them into a segment:offset then storing them. And the debugger was flawed: in single step mode it was emulating, not executing. And the emulation would correctly "execute" an invalid segment register load.
Now, though, in C# I have yet to have any reason to look at assembly.
Back in the days of Turbo Pascal you had to know what you were looking at when the memory modified breakpoint went off and you got dumped to the assembly level. And you really had to understand it to deal with the 200mhz bug (there weren't convenient solutions at hand when I first hit it) or when I ended up making extensive modifications to the real mode support in the DPMI mode--never saw that mentioned anywhere. It was nasty--the library was fundamentally flawed and clearly had never actually been used as it declared real mode pointers as "pointer"--which had a very high chance of causing a segment error when the compiler emitted code that copied them by loading them into a segment:offset then storing them. And the debugger was flawed: in single step mode it was emulating, not executing. And the emulation would correctly "execute" an invalid segment register load.
Now, though, in C# I have yet to have any reason to look at assembly.