summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/pic.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/pic.vim')
-rw-r--r--runtime/syntax/pic.vim114
1 files changed, 114 insertions, 0 deletions
diff --git a/runtime/syntax/pic.vim b/runtime/syntax/pic.vim
new file mode 100644
index 0000000..bcb01f4
--- /dev/null
+++ b/runtime/syntax/pic.vim
@@ -0,0 +1,114 @@
+" Vim syntax file
+" Language: PIC16F84 Assembler (Microchip's microcontroller)
+" Maintainer: Aleksandar Veselinovic <aleksa@cs.cmu.com>
+" Last Change: 2003 May 11
+" URL: http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim
+" Revision: 1.01
+
+" quit when a syntax file was already loaded
+if 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=+"+
+
+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"
+
+
+" Define the default highlighting.
+" Only when an item doesn't have highlighting yet
+
+hi def link picTodo Todo
+hi def link picComment Comment
+hi def link picDirective Statement
+hi def link picLabel Label
+hi def link picString String
+
+"hi def link picOpcode Keyword
+"hi def link picRegister Structure
+"hi def link picRegisterPart Special
+
+hi def link picASCII String
+hi def link picBinary Number
+hi def link picDecimal Number
+hi def link picHexadecimal Number
+hi def link picOctal Number
+
+hi def link picIdentifier Identifier
+
+
+let b:current_syntax = "pic"
+
+" vim: ts=8