If PredSpec is an atom (i.e. no arity is given), then a predicate with that name is printed, and if there are more than one predicate defined (i.e. same name but different arities), then these different predicates will be printed by backtracking.
This predicate is intended as a replacement for the lower level als/1, which performs the same function. The differences are that the abstract instruction names are printed in a more human oriented form (rather than the internal names used by ECLiPSe), and labels and their references are printed symbolically. Note that the predicate is implemented via the disasm/3 predicate of the library, and hence the same restrictions applies: it cannot be used to print the code for dynamic predicates.