I do not use utility.library for parsing tags at all. This is almost all what i use (and it is a bit customized for some tricks I do):
Code:
get_a_tag move.l (a2)+,d0
beq.b .rts
move.l (a2)+,d1
cmp.l #3,d0 ; return anything that is bigger 3
bgt.b .rts
; system tags
cmp.l #TAG_IGNORE,d0
beq.b get_a_tag
cmp.l #TAG_MORE,d0
beq.b .more
cmp.l #TAG_SKIP,d0
beq.b .skip
.rts rts
.skip lsl.l #3,d1
add.l d1,a2
bra.b get_a_tag
.more move.l d1,a2
bra.b get_a_tag