Oh, of course I wouldn't recommend ITS for real work today. I wouldn't recommend DOS for real work today, either. But hacking isn't always "real work", per se: sometimes it's just tinkering, experimenting, learning, or pushing the system to its limits, etc. Hacking is an opportunity to be knowledgeable, intelligent, creative, and productive at the same time. You could say that, when it comes to hacking, Unix-like systems are like coloring books, in that they're already partially created for you, and whatever you come up with has to fit within that pre-defined framework. ITS and DOS, on the other hand, are more like a blank sheet of graph paper ;)

Here are some resources for DOS:

Ralf Brown's Interrupt List is very handy when doing low-level DOS programming: http://www.cs.cmu.edu/~ralf/files.html

The Intel architecture reference manuals, too: http://www.intel.com/content/www/us/en/processors/architectu...

Delorie Software maintains a linklist for assorted documentation: http://www.delorie.com/djgpp/doc/

You'll want a good assembler, too, even if you wind up writing most of your code in a high-level language. GNU as ("gas") is okay, but I prefer the Flat Assembler ("fasm"), the Netwide Assembler ("nasm"), or Yasm (... "yasm"). I think you can still get MASM from Microsoft, but I don't know if recent versions still support DOS targets. You can probably also find older versions of MASM and TASM online somewhere.

Sometimes I'll do my coding directly in DOS, if only for the nostalgia. You might have better luck using more modern tools for development and cross-compiling or cross-assembling. If you want some higher-level DOS tools, here's a (partial) rundown of what I've used:

For real-mode (16-bit) programming, it's hard to beat Borland's old "Turbo" line of tools. Borland used to have a "museum" site where you could download old versions of Turbo C, Turbo C++, and Turbo Pascal for DOS for free. I don't know if the museum is still around, but you should be able to find copies of the tools. There's also Pacific C which is freely available and includes a somewhat Turbo C++-style IDE (but with a different color scheme), and OpenWatcom, which is open-source nowadays and comes with a decent vi clone. I remember a few FORTHs for DOS, too; PC Forth was pretty nice. Might be able to find that somewhere on the 'net still.

For protected-mode (32-bit) programming, I'd recommend DJGPP (Delorie's GNU tools for DOS, including GCC, gmake, and gas), FreePascal, and/or FreeBasic. If I recall correctly, they all include a suitable DPMI server (a.k.a. DOS extender) to provide DOS syscalls in protected mode. OpenWatcom can target protected mode, too; its extender DOS4GW has not been open-sourced with the rest of the system (at least, it wasn't a few years ago). Regardless, DOS4GW is a solid extender and was very popular once upon a time.

Some even-higher-level languages run fine in DOS, too. Lua comes to mind, and I remember messing with Logo, Tcl, Common Lisp, and Scheme on DOS before (XLISP comes to mind). I think DJGPP might have a Perl interpreter for DOS, but since I've never liked Perl, my memory may be hazy on that one ;)

FreeDOS also has a package repository with loads of software including development tools.

I'm not aware of any tools for doing long-mode (64-bit) programming on DOS. I'd assume you'd at the very least either need a DPMI-type thing for long-mode (LPMI?), or you'd need to essentially rewrite all of the BIOS and DOS services in 64-bit code (and at that point, you probably might as well just be doing bare metal).