* .version: bumped version to 2.5.6 (pic14 ABI changed)
[fw/sdcc] / device / lib / pic / libsdcc / macros.inc
index 5ab3874eb382c3f16a9072dbd5b75218979d9e90..79294b7199b1e608a86dd9251e67109c33165170 100644 (file)
@@ -1,3 +1,17 @@
+; -----------------------------------------------
+; --- extern declared SFRs
+; -----------------------------------------------
+       extern _STATUS
+       extern _FSR
+       extern _INDF
+       extern _PCLATH
+       extern _PCL
+
+C      EQU     0
+DC     EQU     1
+Z      EQU     2
+IRP    EQU     7
+       
 ; -----------------------------------------------
 ; --- generic pointer access helpers
 ; -----------------------------------------------
@@ -8,35 +22,35 @@ GPTRTAG_CODE EQU     0x80
 ; setup FSR to point to (STK00:STK01)
 setup_fsr      macro
        movf    STK01, W
-       movwf   FSR
+       movwf   _FSR
        ; select indirectly addressed bank
-       bcf     STATUS, IRP
+       bcf     _STATUS, IRP
        btfsc   STK00, 0
-       bsf     STATUS, IRP
+       bsf     _STATUS, IRP
        endm
 
 ; increment FSR, update IRP on bank crossings
 ; FIXME: update IRP if FSR is reset to 0...
 inc_fsr                macro
-       incf    FSR, F
+       incf    _FSR, F
        endm
 
 ; dispatch according to gptr type
 select_routine macro   dataptr, codeptr
        ; __data pointer tag: 0x00
        xorlw   GPTRTAG_DATA
-       btfsc   STATUS, Z
+       btfsc   _STATUS, Z
        goto    dataptr
        ; __code pointer tag: 0x80
        xorlw   (GPTRTAG_DATA ^ GPTRTAG_CODE)
-       btfsc   STATUS, Z
+       btfsc   _STATUS, Z
        goto    codeptr
        endm
 
 check_data     macro   dataptr
        ; __data pointer tag: 0x00
        xorlw   GPTRTAG_DATA
-       btfsc   STATUS, Z
+       btfsc   _STATUS, Z
        goto    dataptr
        endm