The part about hex coding on the TI-68k series was answered pretty well by Zeroko, so I'll focus on the other parts
A"shell" in TI-Z80 / TI-eZ80 parlance happens to be called a "kernel" on the TI-68k series. Both names are equally inappropriate for the infrastructure which provides additional functionality to assembly programs (e.g. libraries, crash recovery in some cases) or file explorers.
On the TI-68k series, "kernel-"based programming lost the
war by 2005, partially due to the slightly decreased ease of use (the need to install an additional program), but probably more due to the instability of the early kernels (DoorsOS !) and kernel-based programs on newer hardware and software (*), as well as the activism of several powerful "kernel" foes. Clearly, I used to be one of those; when I grew older and wiser, I came to adopt a slightly more balanced stance on kernels
The only option for a TI-68k kernel is PreOS, which superseded all previous kernels while keeping great compatibility with them, and provided expanded features of its own. With PreOS, you don't need KerNO.
There are two classes of TI calculators based on a 68000 processor:
* all non-Plus 92 models (92, 92 II, E, etc.);
* the 92+, 89, V200, 89T.
Due to the fact that the former class has no table of system functions ("ROM_CALLs"), it's much harder to program in assembly, and comparatively few assembly programs have targeted the 92, even before the 89 and 92+ replaced it, partially because those were the early days of Fargo and assembly programming on the TI-68k series.
Still, there's greater homogeneity between even the 92-class models and the newer models than between one TI-Z80 generation to the next, and great homogeneity between the 92+ / 89 / V200 / 89T. In fact, "TI-68k series" sometimes covers just the later models.
For coding on the calculator side, you could use GTC and SIDE. Make sure to archives copies of your progress often enough, though: neither has great stability. The older cc and as have lower capabilities and not better stability, AFAIK.
For coding on the computer side, the most usable option remains GCC4TI. Despite the portability and build system improvements, which are one of the classes of work performed since GCC4TI was forked from its dead ancestor, its heavily patched GCC 4.1.2 is getting ever more brittle for newer toolchains. At this point, it's probably better to use a VM for an older Linux distro, e.g. Debian 8 "Jessie" or possibly the soon-to-be-unmaintained Debian 9 "Stretch", to build a GCC which can reliably generate code.
GCC4TI inherited an environment-specific linker, and various other things which do not work on any other common toolchain. Standard COFF or ELF GCC + binutils are strongly incompatible with existing GCC4TI C headers.
Programming on the computer side gives access to emulators; the only adequate choice for a developer-oriented emulator is TIEmu (and by all means, the version without GDB support !). Even JM's improved version of Virtual TI ("VTI") doesn't provide reasonably accurate support of HW1 89 and 92+, it's missing some important blocks for HW2 89 / 92+ (e.g. the RAM execution protection, so it's easy to make a program launcher which works on VTI but crashes real calculators hard), and it doesn't support the V200 or 89T at all. VTI is easier to install, though, especially on newer computers.
*: fiddling with internal system variables at hard-coded addresses is a horrible coding practice. It worked for a while on the 92 and early 89 / 92+ OS versions, but then TI started moving OS variables from one release to the next...