If oyu have access to HAAS operators manual , G150 is fully explained.Maybe on HAAS website
www.haascnc.com. If not let me know , I can post it tommorow from my manual.
G01Z.01F50. is just safe way to get .010 above part, and can be omitted.
G150 and so on , executes pocketing of profile defined in subprogram O502.
By adding X-4.Y-6.(watch out for decimal point, if you new in this) in the command G150 and defining new contour of another pocket by for example O503 you can do another pocket.
Not knowing how familiar are you with basic G codes, especially G90 and G91
is kind of hard to help.
Basicly command G150 works like this
You must tell in this command what is you pocket contour , by calling subroutine Pxxx, establish entry point by defining position X Y, how deep is the pocket by value of Z, what kind of step you going to use on pocketing, and other parameters like tool compensation, Z step(Q value) , return point (R),etc.
Good luck