2018-08-19 00:09:53 +05:30

246 lines
8.7 KiB
VimL
Executable File

" Vim syntax file
" Language: PIC16F84 Assembler (Microchip's microcontroller)
" Maintainer: Aleksandar Veselinovic <alexa@cliffhanger.com>
" Last Change: 2001 May 10
" URL: http://SOLAIR.EUnet.yu/~aleksav/vim/syntax/pic.vim
" Revision: 1.0
" Modifications
" Language: Add support to PIC18fxx2 Assembler (Microchip's microcontroller)
" Modifications:Diego Belotti <dbelotti@adinet.com.uy>
" Last Change: 2003 Ago 26
" Revision: 2.0
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case match
syn keyword picTodo NOTE TODO XXX contained
syn case ignore
syn match picIdentifier "[a-z_$][a-z0-9_$]*"
syn match picLabel "^[A-Z_$][A-Z0-9_$]*"
syn match picLabel "^[A-Z_$][A-Z0-9_$]*:"me=e-1
syn match picASCII "A\='.'"
syn match picBinary "B'[0-1]\+'"
syn match picDecimal "D'\d\+'"
syn match picDecimal "\d\+"
syn match picHexadecimal "0x\x\+"
syn match picHexadecimal "H'\x\+'"
syn match picHexadecimal "[0-9]\x*h"
syn match picOctal "O'[0-7]\o*'"
syn match picComment ";.*" contains=picTodo
syn region picString start=+"+ end=+"+
" Inicio del 16f84
syn keyword picRegister INDF TMR0 PCL STATUS FSR PORTA PORTB
syn keyword picRegister EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL
syn keyword picRegister FSR TRISA TRISB EECON1 EECON2 INTCON OPTION
" Register --- bits
" STATUS
syn keyword picRegisterPart IRP RP1 RP0 TO PD Z DC C
" PORTA
syn keyword picRegisterPart T0CKI
syn match picRegisterPart "RA[0-4]"
" PORTB
syn keyword picRegisterPart INT
syn match picRegisterPart "RB[0-7]"
" INTCON
syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
" OPTION
syn keyword picRegisterPart RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
" EECON2
syn keyword picRegisterPart EEIF WRERR WREN WR RD
" INTCON
syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
" OpCodes...
syn keyword picOpcode ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ
syn keyword picOpcode IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF
syn keyword picOpcode BCF BSF BTFSC BTFSS
syn keyword picOpcode ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE
syn keyword picOpcode RETLW RETURN SLEEP SUBLW XORLW
syn keyword picOpcode GOTO
" Directives
syn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG
syn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC
syn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND
syn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF
syn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND
syn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET
syn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR
syn keyword picDirective VARIABLE WHILE INCLUDE
syn match picDirective "#\=UNDEFINE"
syn match picDirective "#\=INCLUDE"
syn match picDirective "#\=DEFINE"
" Fin del 16f84
" Inicio del PIC 18Fxx2
" Regisers
syn keyword picRegister TOSU TOSH TOSL STKPTR PCLATU PCLATH PCL TBLPTRU TBLPTRH TBLPTRL TABLAT
syn keyword picRegister PRODH PRODL INTCON INTCON2 INTCON3 INDF0 POSTINC0 POSTDEC0 PREINC0 PLUSW0
syn keyword picRegister FSR0H FSR0L WREG INDF1 POSTINC1 POSTDEC1 PREINC1 PLUSw1 FSR1H FSR1L BSR
syn keyword picRegister INDF2 POSTINC2 POSTDEC2 PREINC2 PLUSw2 FSR2H FSR2L STATUS TMR0H TMR0L
syn keyword picRegister T0CON OSCCON LVDCON WDTCON RCON TMR1H TMR1L T1CON TMR2 PR2 T2CON SSPBUF
syn keyword picRegister SSPADD SSPSTAT SSPCON1 SSPCON2 ADRESH ADRESL ADCON0 ADCON1 CCPR1H CCPR1L
syn keyword picRegister CCP1CON CCPR2H CCPR2L CCP2CON TMR3H TMR3L T3CON SPBRG RCREG TXREG TXSTA
syn keyword picRegister RCSTA EEADR EEDATA EECON2 EECON1 IPR2 PIR2 PIE2 IPR1 PIR1 PIE1 TRISE
syn keyword picRegister TRISD TRISC TRISB TRISA LATC LATD LATB LATA PORTE PORTD PORTC PORTB PORTA
"Register BITS
" STKPTR
syn keyword picRegisterPart STKFUL STKUNF
" INTCON
syn keyword picRegisterPart GIE GIEH PEIE GIEL TMR0IE T0IE INT0IE INT0E RBIE TMR0IF T0IF INT0IF INT0F RBIF
" INTCON2
syn keyword picRegisterPart NOT_RBPU RBPU INTEDG0 INTEDG1 INTEDG2 TMR0IP T0IP RBIP
" INTCON3
syn keyword picRegisterPart INT2IP INT1IP INT2IE INT2IP INT2IF INT1IF
" STATUS
syn keyword picRegisterPart N OV Z DC C
" T0CON
syn keyword picRegisterPart TMR0ON T08BIT T0CS T0SE PSA T0PS2 T0PS1 T0PS0
" OSCCON
syn keyword picRegisterPart SCS
" LVDCON
syn keyword picRegisterPart IRVST LVDEN LVDL3 LVDL2 LVDL1 LVDL0
" WDTCON
syn keyword picRegisterPart SWDTE SWDTEN
" RCON
syn keyword picRegisterPart IPEN NOT_RI RI NOT_TO TO NOT_PD PD NOT_POR POR NOT_BOR BOR
" T1CON
syn keyword picRegisterPart RD16 T1CKPS1 T1CKPS0 T1OSCEN NO_T1SYNC T1SYNC T1INSYNC TMR1CS TMR1ON
" T2CON
syn keyword picRegisterPart TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0
" SSPSTAT
syn keyword picRegisterPart SMP CKE D I2C_DAT NOT_A NOT_ADDRESS D_A DATA_ADDRESS P I2C_STOP S I2C_START R I2C_READ NOT_W NOT_WRITE R_W READ_WRITE UA BF
" SSPCON1
syn keyword picRegisterPart WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0
" SSPCIN2
syn keyword picRegisterPart GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN
" ADCON0
syn keyword picRegisterPart ADCS1 ADCS0 CHS2 CHS1 CHS0 GO NOT_DONE DONE GO_DONE ADON
" ADCON1
syn keyword picRegisterPart ADFM ADCS2 PCFG3 PCFG2 PCFG1 PCFG0
" CCP1CON
syn keyword picRegisterPart DC1B1 CCP1X DC1BC0 CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0
" CCP2CON
syn keyword picRegisterPart DC2B1 CCP2X DC2B0 CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0
" T3CON
syn keyword picRegisterPart RD16 T3CCP2 T3CKPS1 T3CKPS0 T3CCP1 NOT_T3SYNC T3SYNC T3INSYNC TMR3CS TMR3ON
" TXSTA
syn keyword picRegisterPart CSRC TX9 NOT_TX8 TX8_9 TXEN SYNC BRGH TMRT TX9D TXD8
" RCSTA
syn keyword picRegisterPart SPEN RX9 RC9 NOT_RC8 RC8_9 SREN CREN ADDEN FERR OERR RX9D RCD8
" IPR2
syn keyword picRegisterPart EEIP BCLIP LVDIP TMR3IP CCP2IP
" PIR2
syn keyword picRegisterPart EEIF BCLIF LVDIF TMR3IF CCP2IF
" PIE2
syn keyword picRegisterPart EEIE BCLIE LVDIE TMR3IE CCP2IE
" IPR1
syn keyword picRegisterPart PSPIP ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP
" PIR1
syn keyword picRegisterPart PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF
" PIE1
syn keyword picRegisterPart PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE
" TRISE
syn keyword picRegisterPart IBF OBF IBOV PSPMODE TRISE2 TRISE1 TRISE0
" EECON1
syn keyword picRegisterPart EEPGD CFGS FREE WRERR WREN WR RD
" PORTA
syn match picRegisterPart "RA[0-6]"
syn match picRegisterPart "AN[0-4]"
syn keyword picRegisterPart VREFM VREFP T0CKI SS LVDIN OSC2 CLKO
" PORTB
syn match picRegisterPart "RB[0-7]"
syn keyword picRegisterPart INT0 INT1 INT2 CCP2A
" PORTC
syn match picRegisterPart "RC[0-7]"
syn keyword picRegisterPart T1OSO T1CKI T1OSI CCP2 CCP1 SCK SCL SDI SDA SDO TX CK RX
" PORTD
syn match picRegisterPart "RD[0-7]"
syn match picRegisterPart "PSP[0-7]"
" PORTE
syn match picRegisterPart "RE[0-2]"
syn match picRegisterPart "AN[5-7]"
syn keyword picRegisterPart RD WR CS
" CONFIG
syn match picDirective "_CONFIG[1-7]L"
syn match picDirective "_CONFIG[1-7]H"
syn keyword picDirective _DEVID1 _DEVID2
syn match picDirective "_IDLOC[0-7]"
" OPCODES
syn keyword picOpcode ADDWF ADDWFC ANDWF CLRF COMF CPFSEQ CPFSGT CPFSLT DECF DECFSZ DCFSNZ INCF
syn keyword picOpcode INCFSZ INFSNZ IORWF MOVF MOVFF MOVWF MULWF NEGF RLCF RLNCF RRCF RRNCF SETF
syn keyword picOpcode SUBFWB SWAPF TSTFSZ XORWF BCF BSF BTFSC BTFSS BTG BC BN BNC BNN BNOV BNZ
syn keyword picOpcode BOV BRA BZ CALL CLRWDT DAW GOTO NOP POP PUSH RCALL RESET RETFIE RETLW RETURN
syn keyword picOpcode SLEEP ADDLW ANDLW IORLW LFSR MOVLB MOVLW MULLW RETLW SUBLW XORLW
syn keyword picOpcode TBLRD* TBLRD*+ TBLRD*- TBLRD +* TBLWT* TBLWT*+ TBLWT*- TBLWT+*
" DIRECTIVES
" The same as the 16f84
" Fin del 18fxx2
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_pic16f84_syntax_inits")
if version < 508
let did_pic16f84_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink picTodo Todo
HiLink picComment Comment
HiLink picDirective Statement
HiLink picLabel Label
HiLink picString String
HiLink picOpcode Keyword
HiLink picRegister Structure
HiLink picRegisterPart Special
HiLink picASCII String
HiLink picBinary Number
HiLink picDecimal Number
HiLink picHexadecimal Number
HiLink picOctal Number
HiLink picIdentifier Identifier
delcommand HiLink
endif
let b:current_syntax = "pic"
" vim: ts=8