На днях пришла в голову идея как писать программы и портировать их под другие системы, с минимальными изменениями исходников. Идея вот в чем, создать заголовочные файлы(типа 'bsd.inc', 'linux.inc', 'windows.inc') с описаниями функций api(сообщений оп. систем и т.п.),в которых этим функциям соотнесены мнемонически понятные имена, одинаковые во всех инклудах(типа: print,'WriteConsoleA'-для windows; print,'printf'-для unix и т.п.). Так что в исходниках можно будет менять только имена инклудов. Не думаю, что это пройдет с графическими приложениями(типа оконными), но с консольными очень даже может быть.
я розвияю FASMLIB. я говорю па русски очень плохо. FASMLIB ест точно што ти говориш. посмотри http://fasmlib.x86asm.net