;Bügelt die lästige C-Inversion bei Subtraktion
;und verwendet die modernen bra-Sprünge, nicht goto
skpb macro ;Aussetzen wenn Subtraktion Überlauf generierte
skpnc
endm
skpnb macro ;Aussetzen wenn Subtraktion keinen Überlauf generierte
skpc
endm
brb macro lbl ;Springen wenn Subtraktion Überlauf generierte
skpnb
bra lbl
endm
brc macro lbl ;Springen wenn Addition Überlauf generierte
skpnc
bra lbl
endm
brnb macro lbl ;Springen wenn Subtraktion keinen Überlauf generierte
skpb
bra lbl
endm
brnc macro lbl ;Springen wenn Addition keinen Überlauf generierte
skpc
bra lbl
endm
brz macro lbl ;Springen wenn Null
skpnz
bra lbl
endm
brnz macro lbl ;Springen wenn nicht Null
skpz
bra lbl
endm
loop macro reg,lbl ;Schleifenfuß
decfsz reg,f
bra lbl
endm
movlwf macro co,reg ;Konstante in Register laden
movlw co
movwf reg
endm
movlwf2 macro co,reg ;16-Bit-Konstante laden
movlwf high(co),reg+1
movlwf low(co),reg
endm
addlwf2 macro co,reg ;16-Bit-Konstante + W laden
addlw low(co)
movwf reg
movlwf high(co),reg+1
endm
movfwf macro s,d
movfw s
movwf d
endm
movfwf2 macro s,d
movfwf s,d
movfwf s+1,d+1
endm
Detected encoding: UTF-8 | 0
|