OR> 2-Feb-04 07:25 Andy Mozzhevilov wrote to Maxim Polyanskiy:
MP>>> нужна хорошая файловая система! MP>>> В исходниках на АСМ.
AM>> на каком?
MP>>> В идеале Fat12/16/32 совместимая.
AM>> На Си можно найти без проблем в и-нете, имхо. OR> Понимаешь, тут проблема есть. Если бы оно было уже скомпилировано, OR> то он бы его идой посмотрел и за пару дней переписал бы на асме гораздо OR> компактнее и эффективнее. Но эти подлиые сишники в интернете исходники OR> выкладывают.
Не удержался, вставлю таки и свои 5коп :-)
Для начала нескромный вопрос к MP - а сколько Вам лет? (сорри, если задел) Ваша приверженность к асму прямо-таки дышит юношеским максимализмом. Я не хочу сказать ничего обидного - узнаю себя лет так 10 назад :-) Тогда Ваши посты вполне могли быть моими :-)
Кто-то из известных в IT людей (уж не помню кто): "Кто в молодости не писал на ассемблере - тот не имеет сердца, а кто продолжает писать на нем в зрелые годы - тот не имеет головы". Студентом я не признавал ничего кроме ассемблера - жизнь была проста и удивительна - MACRO-11 (на любимой СМ-4 под отличной RSX-11 v4.1, или RT-11FB/SJ на ДВК), хотя ему была вполне неплохая альтернатива в виде FORTRAN-IV (Cи компиляторы я пробовал разные порты с Unix - это была целая проблема найти их - тогда программы носили на ленточных бобинах, но нормального Си у меня не было) или классический PASCAL (но этот был довольно громоздок). Правда и серьезных проектов не было - редко превышался объем в 2К строк (сейчас это вообще детский объем).
Ну с i8080/Z80 и машинами типа Орион/ZX тоже все понятно - больших проектов также не было (только не надо про АОНы тех времен - сиротские 8К дизасмились в сиротские же 3К строк), хотя я ухитрился для себя написать аналог экранного редактора TED (тяжелое наследие RSX-11 :-) Я был ограничен размером исходного текста ("файла" на ORDOS :-) в 48К, поэтому это был шедевр - без комментариев, без пустых полей меток, трехбуквенные метки :-) и прочие прелести. Любопытно, что вторую половину проекта я редактировал в его же ранних версиях :-) Небольшой, что-то около 6К строк, как помнится.
Потом появился "Поиск-1", правда, сразу с дисководом. Потом первые PC. Но тут у меня уже были уважительные причины использовать ассемблер - в-основном, я занимался организацией многозадачности на MS-DOS, уже "не по детски" - с фоновым файловым вводом-выводом, с разделением XMS и железяками. Конечно это можно было написать на C, но, как я позже выяснил для этого надо гораздо больше профессионализма - нужно очень хорошо знать свой компилятор и грамотно писать ассемблерные вставки для выполнения соглашений по вызовам. Потом был виртуальный монитор для 386-го - тоже без асма трудно - да и не было тогда 32-битных компиляторов.
Когда я прочитал про API Win16 (хотя сначала OS/2, просто книгу хорошую купил) я был искренне возмущен - "ну кАзлы, блин, где мое любимое int 21H с раскладкой параметров в регистры!!" :-) А потом пошел серьезный эмбеддинг - в 1993-ем написали первый кассовый аппарат, на ассемблере x86, запихнули его в 16К. (Всего-то было 500К исходников) даже отладили и запустили. НО: рынок не спит, динамически меняется и никто годами не будет ждать пока "самый_крутой_программист на_ассемблере" удосужится внести изменения в свою "самую_крутую_и_быструю асмовую_программу" а потом будет еще годами с умным видом искать баги. НУЖНО ЗДЕСЬ И СЕЙЧАС!!!. Да и функциональность требовалось расширять и улучшать. Тогда я поупирался-поупирался и СВЕРШИЛОСЬ - BC 3.1 был заставлен генерировать ROMABLE код. Для особо упрямых (в моем лице :-) был оставлен небольшой кусок асма - работа собственно с железом (+прерывания +начальный старт) - 10% от проекта и все были довольны. Особенно я был потрясен пару лет спустя когда за ОДИН ДЕНЬ 100К строк сишного кода было перенесено на другую платформу (x86->AVR) (я до этого месяц возился с переписыванием железячных функций на новом асме)
Ну а собственно написать эту стори меня сподвигло упоминание FAT - это был мой первый проект на С для эмбеддед системы - было две недели времени, нужно было написать примитивы для FAT12/16 на AT45. Ну начал я очень бодро - на асме, через пару дней мне стало грустновато - довольно скучно пересылать DWORD-ы на AVR, в ход пошли так любимые GS макросы, потом и с ними стало грустно. Появилась предательская мысль "а может C - это не так уж и плохо" :-).
Последний гвоздь "в коробочку" с асмом был забит два месяца назад - был заказ на сложный VxD (там получились мегабайты сишных исходников), до этого на Win9X я изощрялся на асме - API VMM очень этому способствует, но тут я очень оценил VС + VTOOLSD. Мне плевать, что там оверхед, главное, чтобы лично у моего серого органического процессора оверхеда не было :-) Проект с такой сложной логикой - на асме не поднять.
Итого: я _ОЧЕНЬ_ люблю ассемблер, работал с ним на десятке архитектур, можно сказать - фанат, но основную работу я делаю на _C_ - поскольку это _УДОБНЕЕ_ и в конечном счете _ВЫГОДНЕЕ_. Понимание этого приходит не сразу - и, как видно по конфе - не ко всем :-)
Сорри за столь длинной повествование - настроение просто нерабочее что-то :-)