if you need a g and m code card here
http://www.haascnc.com/custserv_updates.asp#custserv
but you need to replace your M30 with M99 because when it reaches the end of the program it will stop and reset not move to the next work zero. Your M30 will then be placed in your M98 call program.
it may be simpler to make a sub-routine call for 4 work zeros with in the program so you will not have to worry about one being on the hard drive and the other not.
If you do it this way follow the same as described by pit202 but put it at the top of your program and use M97 not M98 and your P number calls a N line number with in the program