; -!- emf -!- ; This is part of the JASSPA MicroEmacs macro files ; Copyright (C) 1999-2002 JASSPA (www.jasspa.com) ; See the file me.emf for copying and conditions. ; ; Created: 99/03/28 ; Synopsis: ASSEMBLER X86 mode hook ; Authors: Pedro Gomes ; define-macro fhook-asmx86 set-variable $buffer-mask "luh1" @# buffer-initialize "asmx86" buffer-initialize-hooks !emacro ; buffer-setup variables set-variable .fhook-asmx86.name "x86 Assembler" set-variable .fhook-asmx86.setup ® "/history" "fhook/asmx86" "dfghnopx" set-variable .fhook-asmx86.setup-mask "adefghikmnoptux" set-variable .fhook-asmx86.comment "|;||;|; | ;||" ; setup.asmx86 folding support set-variable .fhook-asmx86.fold-open "^proc " set-variable .fhook-asmx86.fold-close "^}" set-variable .fhook-asmx86.fold-mopen "1" !if ¬ &exist .hilight.asmx86 set-variable .hilight.asmx86 &pinc .hilight.next 1 ; set up the osd tool menu & help dialog set-variable .osd.asmx86-help &pinc .osd.next 1 set-variable .osd.asmx86-tool &pinc .osd.next 1 !endif !if ¬ &exist .hilight.asmx86 set-variable .hilight.asmx86 &pinc .hilight.next 1 !endif !if &and &sin "h" .fhook-asmx86.setup &band .hilight.flags 0x02 ; Highlight Assembler Mode 0 hilight .hilight.asmx86 0 $global-scheme hilight .hilight.asmx86 0 "^\\s *\\{#.*" .scheme.comment hilight .hilight.asmx86 0 "\\\\." $global-scheme hilight .hilight.asmx86 4 "\"" "\"" "\\" .scheme.string hilight .hilight.asmx86 0 "'.'" .scheme.quote hilight .hilight.asmx86 0 "'\\\\.'" .scheme.quote hilight .hilight.asmx86 0 "'\\\\'" .scheme.error hilight .hilight.asmx86 0 "'\\\\''" .scheme.quote !if &band .hilight.flags 0x04 hilight .hilight.asmx86 0 "^\\s *\\{proc\\s +\w+" .scheme.function !endif hilight .hilight.asmx86 0 "^\\w+\\}:" .scheme.link ; Preprocessor hilight .hilight.asmx86 1 "\\.386" .scheme.prepro hilight .hilight.asmx86 1 "\\.data" .scheme.prepro hilight .hilight.asmx86 1 "\\.code" .scheme.prepro hilight .hilight.asmx86 1 "\\.data" .scheme.prepro hilight .hilight.asmx86 1 "\\.model" .scheme.prepro hilight .hilight.asmx86 1 "\\.stack" .scheme.prepro hilight .hilight.asmx86 1 "\\.else" .scheme.prepro hilight .hilight.asmx86 1 "\\.endif" .scheme.prepro hilight .hilight.asmx86 1 "\\.if" .scheme.prepro hilight .hilight.asmx86 1 "include" .scheme.prepro hilight .hilight.asmx86 1 "includelib" .scheme.prepro hilight .hilight.asmx86 1 "codeseg" .scheme.prepro hilight .hilight.asmx86 1 "compact" .scheme.prepro hilight .hilight.asmx86 1 "dataseg" .scheme.prepro hilight .hilight.asmx86 1 "large" .scheme.prepro hilight .hilight.asmx86 1 "flat" .scheme.prepro hilight .hilight.asmx86 1 "ideal" .scheme.prepro hilight .hilight.asmx86 1 "proto" .scheme.prepro hilight .hilight.asmx86 1 "tiny" .scheme.prepro hilight .hilight.asmx86 1 "addr" .scheme.prepro hilight .hilight.asmx86 1 "align" .scheme.prepro hilight .hilight.asmx86 1 "assume" .scheme.prepro hilight .hilight.asmx86 1 "end" .scheme.prepro hilight .hilight.asmx86 1 "endm" .scheme.prepro hilight .hilight.asmx86 1 "endp" .scheme.prepro hilight .hilight.asmx86 1 "ends" .scheme.prepro hilight .hilight.asmx86 1 "equ" .scheme.prepro hilight .hilight.asmx86 1 "extrn" .scheme.prepro hilight .hilight.asmx86 1 "group" .scheme.prepro hilight .hilight.asmx86 1 "dup" .scheme.prepro hilight .hilight.asmx86 1 "option" .scheme.prepro hilight .hilight.asmx86 1 "invoke" .scheme.prepro hilight .hilight.asmx86 1 "label" .scheme.prepro hilight .hilight.asmx86 1 "macro" .scheme.prepro hilight .hilight.asmx86 1 "nothing" .scheme.prepro hilight .hilight.asmx86 1 "offset" .scheme.prepro hilight .hilight.asmx86 1 "proc" .scheme.prepro hilight .hilight.asmx86 1 "use16" .scheme.prepro hilight .hilight.asmx86 1 "use32" .scheme.prepro ; Operators hilight .hilight.asmx86 1 "+" .scheme.operator hilight .hilight.asmx86 1 "-" .scheme.operator hilight .hilight.asmx86 1 "/" .scheme.operator hilight .hilight.asmx86 1 "*" .scheme.operator ; hilight .hilight.asmx86 1 "ah" .scheme.operator hilight .hilight.asmx86 1 "al" .scheme.operator hilight .hilight.asmx86 1 "ax" .scheme.operator hilight .hilight.asmx86 1 "bh" .scheme.operator hilight .hilight.asmx86 1 "bl" .scheme.operator hilight .hilight.asmx86 1 "bp" .scheme.operator hilight .hilight.asmx86 1 "bx" .scheme.operator hilight .hilight.asmx86 1 "ch" .scheme.operator hilight .hilight.asmx86 1 "cl" .scheme.operator hilight .hilight.asmx86 1 "cs" .scheme.operator hilight .hilight.asmx86 1 "cx" .scheme.operator hilight .hilight.asmx86 1 "dl" .scheme.operator hilight .hilight.asmx86 1 "ds" .scheme.operator hilight .hilight.asmx86 1 "dx" .scheme.operator hilight .hilight.asmx86 1 "eax" .scheme.operator hilight .hilight.asmx86 1 "ebp" .scheme.operator hilight .hilight.asmx86 1 "ebx" .scheme.operator hilight .hilight.asmx86 1 "ecx" .scheme.operator hilight .hilight.asmx86 1 "edx" .scheme.operator hilight .hilight.asmx86 1 "eip" .scheme.operator hilight .hilight.asmx86 1 "eds" .scheme.operator hilight .hilight.asmx86 1 "ecs" .scheme.operator hilight .hilight.asmx86 1 "dh" .scheme.operator hilight .hilight.asmx86 1 "es" .scheme.operator hilight .hilight.asmx86 1 "esp" .scheme.operator hilight .hilight.asmx86 1 "fs" .scheme.operator hilight .hilight.asmx86 1 "esi" .scheme.operator hilight .hilight.asmx86 1 "gs" .scheme.operator hilight .hilight.asmx86 1 "ip" .scheme.operator hilight .hilight.asmx86 1 "sp" .scheme.operator hilight .hilight.asmx86 1 "ss" .scheme.operator hilight .hilight.asmx86 1 "stack" .scheme.operator ; Keywords hilight .hilight.asmx86 1 "add" .scheme.keyword hilight .hilight.asmx86 1 "and" .scheme.keyword hilight .hilight.asmx86 1 "call" .scheme.keyword hilight .hilight.asmx86 1 "casemap" .scheme.keyword hilight .hilight.asmx86 1 "cmp" .scheme.keyword hilight .hilight.asmx86 1 "dec" .scheme.keyword hilight .hilight.asmx86 1 "div" .scheme.keyword hilight .hilight.asmx86 1 "enter" .scheme.keyword hilight .hilight.asmx86 1 "idiv" .scheme.keyword hilight .hilight.asmx86 1 "imul" .scheme.keyword hilight .hilight.asmx86 1 "inc" .scheme.keyword hilight .hilight.asmx86 1 "je" .scheme.keyword hilight .hilight.asmx86 1 "jg" .scheme.keyword hilight .hilight.asmx86 1 "jge" .scheme.keyword hilight .hilight.asmx86 1 "jl" .scheme.keyword hilight .hilight.asmx86 1 "jle" .scheme.keyword hilight .hilight.asmx86 1 "jmp" .scheme.keyword hilight .hilight.asmx86 1 "jne" .scheme.keyword hilight .hilight.asmx86 1 "jng" .scheme.keyword hilight .hilight.asmx86 1 "jnge" .scheme.keyword hilight .hilight.asmx86 1 "jnl" .scheme.keyword hilight .hilight.asmx86 1 "jnle" .scheme.keyword hilight .hilight.asmx86 1 "jnz" .scheme.keyword hilight .hilight.asmx86 1 "jz" .scheme.keyword hilight .hilight.asmx86 1 "leave" .scheme.keyword hilight .hilight.asmx86 1 "locals" .scheme.keyword hilight .hilight.asmx86 1 "mov" .scheme.keyword hilight .hilight.asmx86 1 "movsz" .scheme.keyword hilight .hilight.asmx86 1 "movzx" .scheme.keyword hilight .hilight.asmx86 1 "mul" .scheme.keyword hilight .hilight.asmx86 1 "neg" .scheme.keyword hilight .hilight.asmx86 1 "not" .scheme.keyword hilight .hilight.asmx86 1 "pop" .scheme.keyword hilight .hilight.asmx86 1 "or" .scheme.keyword hilight .hilight.asmx86 1 "push" .scheme.keyword hilight .hilight.asmx86 1 "ret" .scheme.keyword hilight .hilight.asmx86 1 "retf" .scheme.keyword hilight .hilight.asmx86 1 "retn" .scheme.keyword hilight .hilight.asmx86 1 "return" .scheme.keyword hilight .hilight.asmx86 1 "shl" .scheme.keyword hilight .hilight.asmx86 1 "shr" .scheme.keyword hilight .hilight.asmx86 1 "sub" .scheme.keyword hilight .hilight.asmx86 1 "test" .scheme.keyword hilight .hilight.asmx86 1 "xor" .scheme.keyword hilight .hilight.asmx86 1 "ja" .scheme.keyword hilight .hilight.asmx86 1 "jae" .scheme.keyword hilight .hilight.asmx86 1 "jb" .scheme.keyword hilight .hilight.asmx86 1 "jbe" .scheme.keyword hilight .hilight.asmx86 1 "jna" .scheme.keyword hilight .hilight.asmx86 1 "jnae" .scheme.keyword hilight .hilight.asmx86 1 "jnb" .scheme.keyword hilight .hilight.asmx86 1 "jnbe" .scheme.keyword ; Types hilight .hilight.asmx86 1 "byte" .scheme.type hilight .hilight.asmx86 1 "db" .scheme.type hilight .hilight.asmx86 1 "dd" .scheme.type hilight .hilight.asmx86 1 "dq" .scheme.type hilight .hilight.asmx86 1 "dw" .scheme.type hilight .hilight.asmx86 1 "dword" .scheme.type hilight .hilight.asmx86 1 "near" .scheme.type hilight .hilight.asmx86 1 "far" .scheme.type hilight .hilight.asmx86 1 "public" .scheme.type hilight .hilight.asmx86 1 "ptr" .scheme.type hilight .hilight.asmx86 1 "seg" .scheme.type hilight .hilight.asmx86 1 "segment" .scheme.type hilight .hilight.asmx86 1 "short" .scheme.type hilight .hilight.asmx86 1 "word" .scheme.type ; hilight constants, e.g. numbers !if &band .hilight.flags 0x08 hilight .hilight.asmx86 1 "[[:digit:]]+" .scheme.constant hilight .hilight.asmx86 1 "-[[:digit:]]+" .scheme.constant hilight .hilight.asmx86 1 "0[xX][[:xdigit:]]+" .scheme.constant !endif !endif !if &sin "d" .fhook-asmx86.setup 0 indent .hilight.asmx86 0 10 indent .hilight.asmx86 n "{" 4 indent .hilight.asmx86 o "}" -4 indent .hilight.asmx86 e "\"" "\"" "\\" indent .hilight.asmx86 b "\\[" "]" indent .hilight.asmx86 b "(" ")" indent .hilight.asmx86 c "\\\\\\s " 10 indent .hilight.asmx86 i ";" !endif ml-write "[Intel x86 Assembler file hook loaded]" ; load in user extensions if found !force execute-file "myasmx86"