LIST ; f18inc.inc Utilities for PIC16f84 Bjorn Bringert NOLIST ; saves W and STATUS push MACRO SaveStatusTo, SaveWTo movwf SaveWTo ; Copy W to TEMP register, swapf STATUS, W ; Swap status to be saved into W movwf SaveStatusTo ; Save status to STATUS_TEMP register ENDM ; loads W and STATUS pull MACRO SaveStatusTo, SaveWTo swapf SaveStatusTo, W ; Swap nibbles in STATUS_TEMP register ; and place result into W movwf STATUS ; Move W into STATUS register ; (sets bank to original state) swapf SaveWTo, F ; Swap nibbles in W_TEMP and place result in W_TEMP swapf SaveWTo, W ; Swap nibbles in W_TEMP and place result into W ENDM ; set f to a literal ; Status affected: None movlf MACRO file, literal movlw literal movwf file ENDM ; if (M(file) == literal) goto toAdr bOnEqual MACRO file, literal, toAdr movf file,W sublw literal btfsc STATUS,Z goto toAdr ENDM ; if (M(file) != literal) skip next instr skipIfNE MACRO file, literal movf file,W sublw literal btfsc STATUS,Z ENDM ; EEPROM base address EEPROM equ H'2100' ; reads a word from data EEPROM memory ; and puts it in W ; assumes that Bank 0 is selected ; Arguments: ; eeprom_adr (0x00-0x3f) in W read_eeprom MACRO movwf EEADR ; Address to read bsf STATUS, RP0 ; Bank 1 bsf EECON1, RD ; EE Read bcf STATUS,RP0 ; Bank 0 movf EEDATA, W ; W = EEDATA ENDM LIST