correctly set flags for add sp
flag manipulation for add hl
JP (HL) means jump to the address stored in the HL registers.

Confusingly the (HL) syntax for every other instruction means 'the value stored at the memory address in HL'