1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: PIC16F84 Assembler (Microchip's microcontroller) 3071d4279SBram Moolenaar" Maintainer: Aleksandar Veselinovic <[email protected]> 4071d4279SBram Moolenaar" Last Change: 2003 May 11 5071d4279SBram Moolenaar" URL: http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim 6071d4279SBram Moolenaar" Revision: 1.01 7071d4279SBram Moolenaar 889bcfda6SBram Moolenaar" quit when a syntax file was already loaded 989bcfda6SBram Moolenaarif exists("b:current_syntax") 10071d4279SBram Moolenaar finish 11071d4279SBram Moolenaarendif 12071d4279SBram Moolenaar 13071d4279SBram Moolenaarsyn case match 14071d4279SBram Moolenaarsyn keyword picTodo NOTE TODO XXX contained 15071d4279SBram Moolenaar 16071d4279SBram Moolenaarsyn case ignore 17071d4279SBram Moolenaar 18071d4279SBram Moolenaarsyn match picIdentifier "[a-z_$][a-z0-9_$]*" 19071d4279SBram Moolenaarsyn match picLabel "^[A-Z_$][A-Z0-9_$]*" 20071d4279SBram Moolenaarsyn match picLabel "^[A-Z_$][A-Z0-9_$]*:"me=e-1 21071d4279SBram Moolenaar 22071d4279SBram Moolenaarsyn match picASCII "A\='.'" 23071d4279SBram Moolenaarsyn match picBinary "B'[0-1]\+'" 24071d4279SBram Moolenaarsyn match picDecimal "D'\d\+'" 25071d4279SBram Moolenaarsyn match picDecimal "\d\+" 26071d4279SBram Moolenaarsyn match picHexadecimal "0x\x\+" 27071d4279SBram Moolenaarsyn match picHexadecimal "H'\x\+'" 28071d4279SBram Moolenaarsyn match picHexadecimal "[0-9]\x*h" 29071d4279SBram Moolenaarsyn match picOctal "O'[0-7]\o*'" 30071d4279SBram Moolenaar 31071d4279SBram Moolenaar 32071d4279SBram Moolenaarsyn match picComment ";.*" contains=picTodo 33071d4279SBram Moolenaar 34071d4279SBram Moolenaarsyn region picString start=+"+ end=+"+ 35071d4279SBram Moolenaar 36071d4279SBram Moolenaarsyn keyword picRegister INDF TMR0 PCL STATUS FSR PORTA PORTB 37071d4279SBram Moolenaarsyn keyword picRegister EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL 38071d4279SBram Moolenaarsyn keyword picRegister FSR TRISA TRISB EECON1 EECON2 INTCON OPTION 39071d4279SBram Moolenaar 40071d4279SBram Moolenaar 41071d4279SBram Moolenaar" Register --- bits 42071d4279SBram Moolenaar 43071d4279SBram Moolenaar" STATUS 44071d4279SBram Moolenaarsyn keyword picRegisterPart IRP RP1 RP0 TO PD Z DC C 45071d4279SBram Moolenaar 46071d4279SBram Moolenaar" PORTA 47071d4279SBram Moolenaarsyn keyword picRegisterPart T0CKI 48071d4279SBram Moolenaarsyn match picRegisterPart "RA[0-4]" 49071d4279SBram Moolenaar 50071d4279SBram Moolenaar" PORTB 51071d4279SBram Moolenaarsyn keyword picRegisterPart INT 52071d4279SBram Moolenaarsyn match picRegisterPart "RB[0-7]" 53071d4279SBram Moolenaar 54071d4279SBram Moolenaar" INTCON 55071d4279SBram Moolenaarsyn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 56071d4279SBram Moolenaar 57071d4279SBram Moolenaar" OPTION 58071d4279SBram Moolenaarsyn keyword picRegisterPart RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 59071d4279SBram Moolenaar 60071d4279SBram Moolenaar" EECON2 61071d4279SBram Moolenaarsyn keyword picRegisterPart EEIF WRERR WREN WR RD 62071d4279SBram Moolenaar 63071d4279SBram Moolenaar" INTCON 64071d4279SBram Moolenaarsyn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 65071d4279SBram Moolenaar 66071d4279SBram Moolenaar 67071d4279SBram Moolenaar" OpCodes... 68071d4279SBram Moolenaarsyn keyword picOpcode ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ 69071d4279SBram Moolenaarsyn keyword picOpcode IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF 70071d4279SBram Moolenaarsyn keyword picOpcode BCF BSF BTFSC BTFSS 71071d4279SBram Moolenaarsyn keyword picOpcode ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE 72071d4279SBram Moolenaarsyn keyword picOpcode RETLW RETURN SLEEP SUBLW XORLW 73071d4279SBram Moolenaarsyn keyword picOpcode GOTO 74071d4279SBram Moolenaar 75071d4279SBram Moolenaar 76071d4279SBram Moolenaar" Directives 77071d4279SBram Moolenaarsyn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG 78071d4279SBram Moolenaarsyn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC 79071d4279SBram Moolenaarsyn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND 80071d4279SBram Moolenaarsyn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF 81071d4279SBram Moolenaarsyn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND 82071d4279SBram Moolenaarsyn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET 83071d4279SBram Moolenaarsyn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR 84071d4279SBram Moolenaarsyn keyword picDirective VARIABLE WHILE INCLUDE 85071d4279SBram Moolenaarsyn match picDirective "#\=UNDEFINE" 86071d4279SBram Moolenaarsyn match picDirective "#\=INCLUDE" 87071d4279SBram Moolenaarsyn match picDirective "#\=DEFINE" 88071d4279SBram Moolenaar 89071d4279SBram Moolenaar 90071d4279SBram Moolenaar" Define the default highlighting. 9189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 92071d4279SBram Moolenaar 93*f37506f6SBram Moolenaarhi def link picTodo Todo 94*f37506f6SBram Moolenaarhi def link picComment Comment 95*f37506f6SBram Moolenaarhi def link picDirective Statement 96*f37506f6SBram Moolenaarhi def link picLabel Label 97*f37506f6SBram Moolenaarhi def link picString String 98071d4279SBram Moolenaar 99*f37506f6SBram Moolenaar"hi def link picOpcode Keyword 100*f37506f6SBram Moolenaar"hi def link picRegister Structure 101*f37506f6SBram Moolenaar"hi def link picRegisterPart Special 102071d4279SBram Moolenaar 103*f37506f6SBram Moolenaarhi def link picASCII String 104*f37506f6SBram Moolenaarhi def link picBinary Number 105*f37506f6SBram Moolenaarhi def link picDecimal Number 106*f37506f6SBram Moolenaarhi def link picHexadecimal Number 107*f37506f6SBram Moolenaarhi def link picOctal Number 108071d4279SBram Moolenaar 109*f37506f6SBram Moolenaarhi def link picIdentifier Identifier 110071d4279SBram Moolenaar 111071d4279SBram Moolenaar 112071d4279SBram Moolenaarlet b:current_syntax = "pic" 113071d4279SBram Moolenaar 114071d4279SBram Moolenaar" vim: ts=8 115