I made a couple of changes to your patch. Hope you don't mind. I eliminated the if statements in your subpatch... I have been taught that they are evil and I generally stay away from them ;)
I also got rid of the sprintf object. sprintf creates a new entry into the symbol table each time it is used. If you are running the patch for a while (albeit a long while), you will fill up the table... again, I was taught to stay away from it unless absolutely necessary or there is a small amount of strings to be created. so I just store the numbers and then connect it up to a jit.cellblock for a quick readout...
Nice one MIB - I should be well aware that both [if] and [sprintf] can be 'clunky', or at least improved upon using other objects/processes (I've been lurking here long enough!), so thanks for the heads-up, and for taking the time to chip away at my relative noob-osity....lessness.
ps "hope you don't mind".....the raison d'etre for posting/sharing is to seek improvements, so thanks again; the use of jit.cellblock blew me away!