The history of calling conventions, part 3

Okay, here we go: The 32-bit x86 calling conventions. (By the way, in case people didn’t get it: I’m only talking in the context of calling conventions you’re likely to encounter when doing Windows programming or which are used by Microsoft compilers. I do not intend to cover calling conventions for other operating systems or…


Budget cuts strike Swedish radio

Alas, budget cuts over at Sveriges Radio have reduced the staff of Klartext, the Swedish news program presented in easy Swedish, from three to two, so they won’t be able to provide text summaries of the radio show. I had been using the summaries to help me fill in the gaps I had missed, but…


The history of calling conventions, part 2

Foreshadowing: This information will actually be useful in a future discussion. Well, not the fine details, but you may notice something that explains… um… it’s hard to describe. Just wait for it. Curiously, it is only the 8086 and x86 platforms that have multiple calling conventions. All the others have only one! Now we’re going…


Words I’d like to ban in 2004

It seems to be fashionable to do a “top words” list this time of year. We have Google 2003 Zeitgeist, Top Yahoo! Searches 2003, Merriam-Webster’s Words of the Year for 2003,’s Top Ten Words of 2003, Lake Superior State University’s Banished Words List for 2004; still waiting for the American Dialect Society’s choice for…


Why does the copy dialog give such horrible estimates?

Because the copy dialog is just guessing. It can’t predict the future, but it is forced to try. And at the very beginning of the copy, when there is very little history to go by, the prediction can be really bad. Here’s an analogy: Suppose somebody tells you, “I am going to count to 100,…


The history of calling conventions, part 1

The great thing about calling conventions on the x86 platform is that there are so many to choose from! In the 16-bit world, part of the calling convention was fixed by the instruction set: The BP register defaults to the SS selector, whereas the other registers default to the DS selector. So the BP register…


Don’t trust the return address

Sometimes people ask, “So I know how to get my return address [use the _ReturnAddress() intrinsic]; how do I figure out what DLL that return address belongs to?” Beware. Even if you figure out which DLL the return address belongs to [use Get­Module­Handle­Ex(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS)], that doesn’t mean that that is actually the DLL that called you….


College football commercialized? What ever gave you that idea?

This has got to be some sort of record for “Longest official name of a sponsored college football game”: The Gaylord Hotels Music City Bowl Presented by Bridgestone, which proclaims that “the Gaylord Hotels Music City Bowl Presented By Bridgestone is Nashville’s Holiday Tradition”.


How to stop delivery of telephone books

Like many of you (I suspect), I don’t use the paper telephone book. If I want to look something up, I go online. Yet every year I get a dozen different telephone books. I don’t like them because a telephone book sitting on my front porch screams, “Rob this house! Nobody’s home!” Besides, it’s a…