////////////////////////////////////////////////////////////////////////////// // // x86 Assembly highlighter written by Eden Kirin, eden.kirin@inet.hr // ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// // language name Language: PIC Assembler ////////////////////////////////////////////////////////////////////////////// // default file filter // note: if more than one extension is associated, eg: // C/C++ files (*.c,*.cpp,*.h,*.hpp)|*.c;*.cpp;*.h;*.hpp Filter: PIC Assembler files (*.as,*.asm)|*.as;*.asm ////////////////////////////////////////////////////////////////////////////// // help file which will be invokend when F1 is pressed HelpFile: ////////////////////////////////////////////////////////////////////////////// // language case sensitivity // 0 - no // 1 - yes CaseSensitive: 0 ////////////////////////////////////////////////////////////////////////////// // comment type: LineComment - comment to the end of line // BlockCommentBeg - block comment begin, it could be // multiline // BlockCommentEnd - block comment end LineComment: ; BlockCommentBeg: BlockCommentEnd: ////////////////////////////////////////////////////////////////////////////// // identifier characters // note: characters shouldn't be delimited, except arrays // array of chars could be defined as from_char..to_char IdentifierBegChars: a..z A..Z _%@. IdentifierChars: a..z A..Z _ 0..9 ? ////////////////////////////////////////////////////////////////////////////// // numeric constants begin characters // note: characters shouldn't be delimited, except arrays // array of chars could be defined as from_char..to_char // number always starts with 0..9 except when NumConstBeg // defines other NumConstBegChars: 0..9 ////////////////////////////////////////////////////////////////////////////// // numeric constants characters // note: characters shouldn't be delimited, except arrays // array of chars could be defined as from_char..to_char // number always starts with 0..9 except when NumConstBeg // defines other NumConstChars: 0..9 abcdefhABCDEFH ////////////////////////////////////////////////////////////////////////////// // escape character EscapeChar: ////////////////////////////////////////////////////////////////////////////// // keyword table // note: delimited with spaces, lines could be wrapped // you may divide keywords into two groups which can be // highlighted differently // op codes KeyWords1: // 12 BIT LITERAL & CONTROL ANDLW CALL CLRWDT GOTO IORLW MOVLW OPTION RETLW SLEEP TRIS XORLW // 12 BIT CORE BYTE ORIENTED FILE REGISTER OPERATIONS ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF // 12 BIT CORE BIT ORIENTED FILE REGISTER OPERATIONS BCF BSF BTFSC BTFSS // 12/14 BIT CORE SPECIAL INSTRUCTION MNEMONICS ADDCF ADDDCF B BC BDC BNC BNDC BNZ BZ CLRC CLRDC CLRZ LCALL LGOTO MOVFW NEGF SETC SETDC SETZ SKPC SKPDC SKPNC SKPNDC SKPNZ SKPZ SUBCF SUBDCF TSTF // (ADDITIONAL FOR 14 BIT ARCH) // 14 BIT LITERAL & CONTROL ADDLW RETFIE RETURN SUBLW // 14 BIT CORE BYTE ORIENTED FILE REGISTER OPERATIONS // (ADDITIONAL FOR 17CXXX) // 16 BIT CORE DATA MOVE MOVFP MOVLB MOVLP MOVPF MOVWF TABLRD TABLWT TLRD TLWT // 16 BIT CORE ARITH & LOGIC INSTRUCTIONS ADDWFC DAW MULLW MULWF NEGW RLCF RLNCF RRCF RRNCF SETF SUBWFB // 16 BIT CORE BIT HANDLING BTG // 16 BIT CORE PROGRAM CONTROL CPFSEQ CPFSGT CPFSLT DCFSNZ INFSNZ LCALL TSTFSZ // 16 BIT CORE SPECIAL CONTROL CLRWT // (ADDITIONAL FOR 18CXXX) // 16 BIT CORE DATA MOVE DAW LFSR MOVLB // 16 BIT CORE MEMORY TBLRD TBLWT // 16 BIT CORE CONTROL BC BN BNC BNN BNOV BNZ BOV BRA BZ POP PUSH RCALL RESET // 16 BIT CORE FILE REGISTER COMF CPFSEQ CPFSGT CPFSLT MOVFF NEGF SETF SUBFWB // registers KeyWords2: PORTA PORTB PORTC PORTD PORTE PORTF PORTG PORTH TRISA TRISB TRISC TRISD TRISE TRISF TRISG TRISH TMR0 PCL STATUS FSR PCLATH INTCON PIE1 PIE2 PIR1 PIR2 TMR1L TMR1H T1CON TMR2 T2CON SSPBUF SSPCON CCPR1L CCPR1H CCP1CON RCSTA TXREG RCREG CCPR2L CCPR2H CCP2CON ADRESH ADRESL ADCON0 ADCON1 OPTION_REG PCON SSPCON2 PR2 SSPADD SSPSTAT TXSTA SPBRG EEDATA EEADR EEDATH EEADRH EECON1 EECON2 // PIC18 BASIC SFRs PRODH PRODL TOSU TOSH TOSL STKPTR PCLATU PCLATH PCL TBLPTRU TBLPTRH TBLPTRL TABLAT INDF0 POSTINC0 POSTDEC0 PREINC0 PLUSW0 FSR0H FSR0L INDF1 POSTINC1 POSTDEC1 PREINC1 PLUSW1 FSR1H FSR1L INDF2 POSTINC2 POSTDEC2 PREINC2 PLUSW2 FSR2H FSR2L WREG BSR STATUS INTCON INTCON2 INTCON3 KeyWords3: // CONTROL CONSTANT #DEFINE END EQU #INCLUDE ORG PROCESSOR RADIX SET #UNDEFINE VARIABLE // CONDITIONAL ASSEMBLY ELSE ENDIF ENDW IF IFDEF IFNDEF WHILE // DATA __BADRAM CBLOCK __CONFIG DA DATA DB DE DT DW ENDC FILL __IDLOCS __MAXRAM RES // LISTING ERROR ERRORLEVEL LIST MESSG NOLIST PAGE SPACE SUBTITLE TITLE // MACROS ENDM EXITM EXPAND LOCAL MACRO NOEXPAND // OBJECT FILE BANKISEL BANKSEL CODE EXTERN GLOBAL IDATA PAGESEL UDATA UDATA_ACS UDATA_OVR UDATA_SHR ////////////////////////////////////////////////////////////////////////////// // string delimiter: StringBegChar - string begin char // StringEndChar - string end char // MultilineStrings - enables multiline strings, as perl // has it StringBegChar: " StringEndChar: " MultilineStrings: 0 ////////////////////////////////////////////////////////////////////////////// // use preprocessor: 0 - no // 1 - yes // note: if yes, '#' and statements after it will be // highlighted with Preprocessor defined colors UsePreprocessor: 0 ////////////////////////////////////////////////////////////////////////////// // highlight line: 0 - no // 1 - yes // note: if yes, current line will be highlighted CurrLineHighlighted: 0 ////////////////////////////////////////////////////////////////////////////// // colors // note: first value is foreground, second is background color // and third (optional) represents font attribute: // B - bold // I - italic // U - underline // S - strike out // attributes can be combined: eg. B or BI // as value, it could be used any standard windows color: // clBlack, clMaroon, clGreen, clOlive, clNavy, // clPurple, clTeal, clGray, clSilver, clRed, clLime, // clYellow, clBlue, clFuchsia, clAqua, clLtGray, // clDkGray, clWhite, clScrollBar, clBackground, // clActiveCaption, clInactiveCaption, clMenu, clWindow, // clWindowFrame, clMenuText, clWindowText, clCaptionText, // clActiveBorder, clInactiveBorder, clAppWorkSpace, // clHighlight, clHighlightText, clBtnFace, clBtnShadow, // clGrayText, clBtnText, clInactiveCaptionText, // clBtnHighlight, cl3DDkShadow, cl3DLight, clInfoText, // clInfoBk // as value, it could be used hex numeric constant too: // $BBGGRR - BB: blue, GG: green, RR: red, eg: $FF6A00 SpaceCol: clWindowText clWindow Keyword1Col: clNavy clWindow Keyword2Col: clPurple clWindow Keyword3Col: clBlue clWindow IdentifierCol: clWindowText clWindow CommentCol: clGray clWindow NumberCol: clRed clWindow StringCol: clMaroon clWindow SymbolCol: clGray clWindow PreprocessorCol: clBlue clWindow SelectionCol: clWhite clNavy CurrentLineCol: clBlack clYellow OverrideTxtFgColor: 0