You dont need to edit anything inside that object, to do what you want to do. You just need to scale whatever you send to time inlet. The specific example you give with 256 samples and then use 128 samples is pretty easy:
If you set the delay write delay time to the 256 samples and you want to set a delay time of 128 samples you can do it like this:
Beside that you can probably find some object that converts samples to krate values, so you can set the values with real numbers. I think Sir Sick Sik maybe has got one called sss/timers/Clock2Timing. Try it out. It actualle needs some trigger inputs and then it calculates the speed from the time between 2 triggers. But I think you can probably hack that object, bypass the trigger values and simply just type in the values in samples.
Sorry I cant give you a meaningful explanation for this, someone else with a deeper understanding of code have to give you that one, but YES... all the bitshifting also drove me nuts to start with. But I think it has to do with that Axoloti is a board with very limited resources and bitshifting values to a smaller scale saved memory, CPU etc.... But don't hang for this, I am just thinking out loud, hehe
Regarding the bitshifting, I would advice you to use some of the display objects, so you can see what is actually going on when you bitshift.