I question whether this is really a Kip Irvine book question. But since I'm learning MASM from his book it is certainly the impetus for most of my questions. He doesn't make it 100% clear where things like prototypes, constants, equates, etc, should officially be placed. My general belief for where these things are 'acceptable' to place is mostly at the beginning of source files outside of .code and .data segments.
But I also have a gripe about Microsoft's MASM and the way it reports errors. Sometimes, it will tell you when you need a .model directive and what not. But if you place any constants, equates, prototypes or PUBLIC (and related EXTERN) directives prior to the .model directives you get linker errors about unresolved symbols.
So, it seems that in the world of Microsoft assembly language, that a few directives must precede all others when building a multi-module project. This was not made 100% clear in the book to my recollection.
Sub-question: Is Microsoft's Macro Assembler the impetus for this websites existence? Or is MASM being used more generally? I don't see Microsoft's name much anywhere on the website.