Yikes! Working in SR6, but that doesn't help you. Let's see, we want to create rows out of thin air. Crosstable can do that, but since it's all in one field, I don't see a way to take advantage of that. We can also create rows with a while loop, and it looks like we can solve it that way.
sub2: LOAD subfield(F1,';',iterno()) as field2 RESIDENT test WHILE len(subfield(F1,';',iterno()));