I prototyped my portions in dosbox for convenience. Development environment was Turbo Assembler 3.2 (the one that comes with Borland Pascal 7), Turbo Debugger, make, etc. For testing time-critical portions (for example, the loader initializes the 120Hz music with the first interrupt firing just beyond the active display area), I FTP'd code over to my 5160 using mTCP and an Intel Etherexpress 8/16. I chose a period-accurate assembler because I wanted to maintain the ability to debug symbolically on the actual hardware. (I learned later that one modern assembler (fasm?) may have the ability to output symbolic debug info in a TD or codeview-friendly format, but I still like TA for some of its high-level convenience features.)