1" Vim syntax file 2" Language: PIC16F84 Assembler (Microchip's microcontroller) 3" Maintainer: Aleksandar Veselinovic <[email protected]> 4" Last Change: 2003 May 11 5" URL: http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim 6" Revision: 1.01 7 8" quit when a syntax file was already loaded 9if exists("b:current_syntax") 10 finish 11endif 12 13syn case match 14syn keyword picTodo NOTE TODO XXX contained 15 16syn case ignore 17 18syn match picIdentifier "[a-z_$][a-z0-9_$]*" 19syn match picLabel "^[A-Z_$][A-Z0-9_$]*" 20syn match picLabel "^[A-Z_$][A-Z0-9_$]*:"me=e-1 21 22syn match picASCII "A\='.'" 23syn match picBinary "B'[0-1]\+'" 24syn match picDecimal "D'\d\+'" 25syn match picDecimal "\d\+" 26syn match picHexadecimal "0x\x\+" 27syn match picHexadecimal "H'\x\+'" 28syn match picHexadecimal "[0-9]\x*h" 29syn match picOctal "O'[0-7]\o*'" 30 31 32syn match picComment ";.*" contains=picTodo 33 34syn region picString start=+"+ end=+"+ 35 36syn keyword picRegister INDF TMR0 PCL STATUS FSR PORTA PORTB 37syn keyword picRegister EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL 38syn keyword picRegister FSR TRISA TRISB EECON1 EECON2 INTCON OPTION 39 40 41" Register --- bits 42 43" STATUS 44syn keyword picRegisterPart IRP RP1 RP0 TO PD Z DC C 45 46" PORTA 47syn keyword picRegisterPart T0CKI 48syn match picRegisterPart "RA[0-4]" 49 50" PORTB 51syn keyword picRegisterPart INT 52syn match picRegisterPart "RB[0-7]" 53 54" INTCON 55syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 56 57" OPTION 58syn keyword picRegisterPart RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 59 60" EECON2 61syn keyword picRegisterPart EEIF WRERR WREN WR RD 62 63" INTCON 64syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 65 66 67" OpCodes... 68syn keyword picOpcode ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ 69syn keyword picOpcode IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF 70syn keyword picOpcode BCF BSF BTFSC BTFSS 71syn keyword picOpcode ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE 72syn keyword picOpcode RETLW RETURN SLEEP SUBLW XORLW 73syn keyword picOpcode GOTO 74 75 76" Directives 77syn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG 78syn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC 79syn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND 80syn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF 81syn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND 82syn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET 83syn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR 84syn keyword picDirective VARIABLE WHILE INCLUDE 85syn match picDirective "#\=UNDEFINE" 86syn match picDirective "#\=INCLUDE" 87syn match picDirective "#\=DEFINE" 88 89 90" Define the default highlighting. 91" Only when an item doesn't have highlighting yet 92 93hi def link picTodo Todo 94hi def link picComment Comment 95hi def link picDirective Statement 96hi def link picLabel Label 97hi def link picString String 98 99"hi def link picOpcode Keyword 100"hi def link picRegister Structure 101"hi def link picRegisterPart Special 102 103hi def link picASCII String 104hi def link picBinary Number 105hi def link picDecimal Number 106hi def link picHexadecimal Number 107hi def link picOctal Number 108 109hi def link picIdentifier Identifier 110 111 112let b:current_syntax = "pic" 113 114" vim: ts=8 115