createc.vi
来自「开放源码的编译器open watcom 1.6.0版的源代码」· VI 代码 · 共 40 行
VI
40 行
#
#read asm source file
#
read %1.asm
#
# convert each asm source line to c pragma aux line
#
if ( %2 == "K3D" )
%s/^.*$/extern void p\#( void );\n#pragma aux p\# = ".586p" ".K3D" ".387" "&"\nvoid r\#( void ) { p\#(); }
elseif ( %2 == "MMX" )
%s/^.*$/extern void p\#( void );\n#pragma aux p\# = ".586p" ".MMX" ".387" "&"\nvoid r\#( void ) { p\#(); }
elseif ( %2 == "XMM" )
%s/^.*$/extern void p\#( void );\n#pragma aux p\# = ".686p" ".XMM" ".387" "&"\nvoid r\#( void ) { p\#(); }
elseif ( %2 == "XMM2" )
%s/^.*$/extern void p\#( void );\n#pragma aux p\# = ".686p" ".XMM2" ".387" "&"\nvoid r\#( void ) { p\#(); }
elseif ( %2 == "XMM3" )
%s/^.*$/extern void p\#( void );\n#pragma aux p\# = ".686p" ".XMM3" ".387" "&"\nvoid r\#( void ) { p\#(); }
else
%s/^.*$/extern void p\#( void );\n#pragma aux p\# = ".486p" ".387" "&"\nvoid r\#( void ) { p\#(); }
endif
#
# C++ open
#
insert
>#ifdef __cplusplus
>extern "C" {
>#endif
>int x;
.
#
# C++ close
#
$ append
>#ifdef __cplusplus
>}
>#endif
.
write! %1.c
quit!
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?