void loop(){
EXEC(Hold0);
}
First, all upper case names are reserved, by convention, for constants that are #defined into existence. That is certainly not the case here.
Second, the name tells us NOTHING about what the function does.
Third, it is pointless to have a function that does nothing but call another function. One of them is redundant. It isn't loop().
Fourth, the indenting in the rest of your code sucks. Use Tools + Auto Format BEFORE posting any more code.