pic.vim 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. " Vim syntax file
  2. " Language: PIC16F84 Assembler (Microchip's microcontroller)
  3. " Maintainer: Aleksandar Veselinovic <alexa@cliffhanger.com>
  4. " Last Change: 2001 May 10
  5. " URL: http://SOLAIR.EUnet.yu/~aleksav/vim/syntax/pic.vim
  6. " Revision: 1.0
  7. " Modifications
  8. " Language: Add support to PIC18fxx2 Assembler (Microchip's microcontroller)
  9. " Modifications:Diego Belotti <dbelotti@adinet.com.uy>
  10. " Last Change: 2003 Ago 26
  11. " Revision: 2.0
  12. " For version 5.x: Clear all syntax items
  13. " For version 6.x: Quit when a syntax file was already loaded
  14. if version < 600
  15. syntax clear
  16. elseif exists("b:current_syntax")
  17. finish
  18. endif
  19. syn case match
  20. syn keyword picTodo NOTE TODO XXX contained
  21. syn case ignore
  22. syn match picIdentifier "[a-z_$][a-z0-9_$]*"
  23. syn match picLabel "^[A-Z_$][A-Z0-9_$]*"
  24. syn match picLabel "^[A-Z_$][A-Z0-9_$]*:"me=e-1
  25. syn match picASCII "A\='.'"
  26. syn match picBinary "B'[0-1]\+'"
  27. syn match picDecimal "D'\d\+'"
  28. syn match picDecimal "\d\+"
  29. syn match picHexadecimal "0x\x\+"
  30. syn match picHexadecimal "H'\x\+'"
  31. syn match picHexadecimal "[0-9]\x*h"
  32. syn match picOctal "O'[0-7]\o*'"
  33. syn match picComment ";.*" contains=picTodo
  34. syn region picString start=+"+ end=+"+
  35. " Inicio del 16f84
  36. syn keyword picRegister INDF TMR0 PCL STATUS FSR PORTA PORTB
  37. syn keyword picRegister EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL
  38. syn keyword picRegister FSR TRISA TRISB EECON1 EECON2 INTCON OPTION
  39. " Register --- bits
  40. " STATUS
  41. syn keyword picRegisterPart IRP RP1 RP0 TO PD Z DC C
  42. " PORTA
  43. syn keyword picRegisterPart T0CKI
  44. syn match picRegisterPart "RA[0-4]"
  45. " PORTB
  46. syn keyword picRegisterPart INT
  47. syn match picRegisterPart "RB[0-7]"
  48. " INTCON
  49. syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
  50. " OPTION
  51. syn keyword picRegisterPart RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
  52. " EECON2
  53. syn keyword picRegisterPart EEIF WRERR WREN WR RD
  54. " INTCON
  55. syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
  56. " OpCodes...
  57. syn keyword picOpcode ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ
  58. syn keyword picOpcode IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF
  59. syn keyword picOpcode BCF BSF BTFSC BTFSS
  60. syn keyword picOpcode ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE
  61. syn keyword picOpcode RETLW RETURN SLEEP SUBLW XORLW
  62. syn keyword picOpcode GOTO
  63. " Directives
  64. syn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG
  65. syn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC
  66. syn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND
  67. syn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF
  68. syn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND
  69. syn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET
  70. syn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR
  71. syn keyword picDirective VARIABLE WHILE INCLUDE
  72. syn match picDirective "#\=UNDEFINE"
  73. syn match picDirective "#\=INCLUDE"
  74. syn match picDirective "#\=DEFINE"
  75. " Fin del 16f84
  76. " Inicio del PIC 18Fxx2
  77. " Regisers
  78. syn keyword picRegister TOSU TOSH TOSL STKPTR PCLATU PCLATH PCL TBLPTRU TBLPTRH TBLPTRL TABLAT
  79. syn keyword picRegister PRODH PRODL INTCON INTCON2 INTCON3 INDF0 POSTINC0 POSTDEC0 PREINC0 PLUSW0
  80. syn keyword picRegister FSR0H FSR0L WREG INDF1 POSTINC1 POSTDEC1 PREINC1 PLUSw1 FSR1H FSR1L BSR
  81. syn keyword picRegister INDF2 POSTINC2 POSTDEC2 PREINC2 PLUSw2 FSR2H FSR2L STATUS TMR0H TMR0L
  82. syn keyword picRegister T0CON OSCCON LVDCON WDTCON RCON TMR1H TMR1L T1CON TMR2 PR2 T2CON SSPBUF
  83. syn keyword picRegister SSPADD SSPSTAT SSPCON1 SSPCON2 ADRESH ADRESL ADCON0 ADCON1 CCPR1H CCPR1L
  84. syn keyword picRegister CCP1CON CCPR2H CCPR2L CCP2CON TMR3H TMR3L T3CON SPBRG RCREG TXREG TXSTA
  85. syn keyword picRegister RCSTA EEADR EEDATA EECON2 EECON1 IPR2 PIR2 PIE2 IPR1 PIR1 PIE1 TRISE
  86. syn keyword picRegister TRISD TRISC TRISB TRISA LATC LATD LATB LATA PORTE PORTD PORTC PORTB PORTA
  87. "Register BITS
  88. " STKPTR
  89. syn keyword picRegisterPart STKFUL STKUNF
  90. " INTCON
  91. syn keyword picRegisterPart GIE GIEH PEIE GIEL TMR0IE T0IE INT0IE INT0E RBIE TMR0IF T0IF INT0IF INT0F RBIF
  92. " INTCON2
  93. syn keyword picRegisterPart NOT_RBPU RBPU INTEDG0 INTEDG1 INTEDG2 TMR0IP T0IP RBIP
  94. " INTCON3
  95. syn keyword picRegisterPart INT2IP INT1IP INT2IE INT2IP INT2IF INT1IF
  96. " STATUS
  97. syn keyword picRegisterPart N OV Z DC C
  98. " T0CON
  99. syn keyword picRegisterPart TMR0ON T08BIT T0CS T0SE PSA T0PS2 T0PS1 T0PS0
  100. " OSCCON
  101. syn keyword picRegisterPart SCS
  102. " LVDCON
  103. syn keyword picRegisterPart IRVST LVDEN LVDL3 LVDL2 LVDL1 LVDL0
  104. " WDTCON
  105. syn keyword picRegisterPart SWDTE SWDTEN
  106. " RCON
  107. syn keyword picRegisterPart IPEN NOT_RI RI NOT_TO TO NOT_PD PD NOT_POR POR NOT_BOR BOR
  108. " T1CON
  109. syn keyword picRegisterPart RD16 T1CKPS1 T1CKPS0 T1OSCEN NO_T1SYNC T1SYNC T1INSYNC TMR1CS TMR1ON
  110. " T2CON
  111. syn keyword picRegisterPart TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0
  112. " SSPSTAT
  113. 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
  114. " SSPCON1
  115. syn keyword picRegisterPart WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0
  116. " SSPCIN2
  117. syn keyword picRegisterPart GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN
  118. " ADCON0
  119. syn keyword picRegisterPart ADCS1 ADCS0 CHS2 CHS1 CHS0 GO NOT_DONE DONE GO_DONE ADON
  120. " ADCON1
  121. syn keyword picRegisterPart ADFM ADCS2 PCFG3 PCFG2 PCFG1 PCFG0
  122. " CCP1CON
  123. syn keyword picRegisterPart DC1B1 CCP1X DC1BC0 CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0
  124. " CCP2CON
  125. syn keyword picRegisterPart DC2B1 CCP2X DC2B0 CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0
  126. " T3CON
  127. syn keyword picRegisterPart RD16 T3CCP2 T3CKPS1 T3CKPS0 T3CCP1 NOT_T3SYNC T3SYNC T3INSYNC TMR3CS TMR3ON
  128. " TXSTA
  129. syn keyword picRegisterPart CSRC TX9 NOT_TX8 TX8_9 TXEN SYNC BRGH TMRT TX9D TXD8
  130. " RCSTA
  131. syn keyword picRegisterPart SPEN RX9 RC9 NOT_RC8 RC8_9 SREN CREN ADDEN FERR OERR RX9D RCD8
  132. " IPR2
  133. syn keyword picRegisterPart EEIP BCLIP LVDIP TMR3IP CCP2IP
  134. " PIR2
  135. syn keyword picRegisterPart EEIF BCLIF LVDIF TMR3IF CCP2IF
  136. " PIE2
  137. syn keyword picRegisterPart EEIE BCLIE LVDIE TMR3IE CCP2IE
  138. " IPR1
  139. syn keyword picRegisterPart PSPIP ADIP RCIP TXIP SSPIP CCP1IP TMR2IP TMR1IP
  140. " PIR1
  141. syn keyword picRegisterPart PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF
  142. " PIE1
  143. syn keyword picRegisterPart PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE
  144. " TRISE
  145. syn keyword picRegisterPart IBF OBF IBOV PSPMODE TRISE2 TRISE1 TRISE0
  146. " EECON1
  147. syn keyword picRegisterPart EEPGD CFGS FREE WRERR WREN WR RD
  148. " PORTA
  149. syn match picRegisterPart "RA[0-6]"
  150. syn match picRegisterPart "AN[0-4]"
  151. syn keyword picRegisterPart VREFM VREFP T0CKI SS LVDIN OSC2 CLKO
  152. " PORTB
  153. syn match picRegisterPart "RB[0-7]"
  154. syn keyword picRegisterPart INT0 INT1 INT2 CCP2A
  155. " PORTC
  156. syn match picRegisterPart "RC[0-7]"
  157. syn keyword picRegisterPart T1OSO T1CKI T1OSI CCP2 CCP1 SCK SCL SDI SDA SDO TX CK RX
  158. " PORTD
  159. syn match picRegisterPart "RD[0-7]"
  160. syn match picRegisterPart "PSP[0-7]"
  161. " PORTE
  162. syn match picRegisterPart "RE[0-2]"
  163. syn match picRegisterPart "AN[5-7]"
  164. syn keyword picRegisterPart RD WR CS
  165. " CONFIG
  166. syn match picDirective "_CONFIG[1-7]L"
  167. syn match picDirective "_CONFIG[1-7]H"
  168. syn keyword picDirective _DEVID1 _DEVID2
  169. syn match picDirective "_IDLOC[0-7]"
  170. " OPCODES
  171. syn keyword picOpcode ADDWF ADDWFC ANDWF CLRF COMF CPFSEQ CPFSGT CPFSLT DECF DECFSZ DCFSNZ INCF
  172. syn keyword picOpcode INCFSZ INFSNZ IORWF MOVF MOVFF MOVWF MULWF NEGF RLCF RLNCF RRCF RRNCF SETF
  173. syn keyword picOpcode SUBFWB SWAPF TSTFSZ XORWF BCF BSF BTFSC BTFSS BTG BC BN BNC BNN BNOV BNZ
  174. syn keyword picOpcode BOV BRA BZ CALL CLRWDT DAW GOTO NOP POP PUSH RCALL RESET RETFIE RETLW RETURN
  175. syn keyword picOpcode SLEEP ADDLW ANDLW IORLW LFSR MOVLB MOVLW MULLW RETLW SUBLW XORLW
  176. syn keyword picOpcode TBLRD* TBLRD*+ TBLRD*- TBLRD +* TBLWT* TBLWT*+ TBLWT*- TBLWT+*
  177. " DIRECTIVES
  178. " The same as the 16f84
  179. " Fin del 18fxx2
  180. " Define the default highlighting.
  181. " For version 5.7 and earlier: only when not done already
  182. " For version 5.8 and later: only when an item doesn't have highlighting yet
  183. if version >= 508 || !exists("did_pic16f84_syntax_inits")
  184. if version < 508
  185. let did_pic16f84_syntax_inits = 1
  186. command -nargs=+ HiLink hi link <args>
  187. else
  188. command -nargs=+ HiLink hi def link <args>
  189. endif
  190. HiLink picTodo Todo
  191. HiLink picComment Comment
  192. HiLink picDirective Statement
  193. HiLink picLabel Label
  194. HiLink picString String
  195. HiLink picOpcode Keyword
  196. HiLink picRegister Structure
  197. HiLink picRegisterPart Special
  198. HiLink picASCII String
  199. HiLink picBinary Number
  200. HiLink picDecimal Number
  201. HiLink picHexadecimal Number
  202. HiLink picOctal Number
  203. HiLink picIdentifier Identifier
  204. delcommand HiLink
  205. endif
  206. let b:current_syntax = "pic"
  207. " vim: ts=8