I haven't had any messages from the list for two days so I don't know if anyone caught the error (or even got the previous post which may have been inadvertently duplicated - sorry). ;Subtract two byte literal. ;At exit, C = 0 if result is negative sub_word_literal: macro aaa, lll movlw low (~lll + 1) addwf aaa+1, f movlw high ((~lll + 1) & h'ffff') skpnc addlw 1 skpnc skpz addwf aaa, f endm There must be a better way! -- Bob Fehrenbach Wauwatosa, WI bfehrenb@execpc.com