Tiny C Compiler
-
эти stderr и stdout ещё никак вроде и не реализованы... про остальное я не очень понял.
Так и не будут реализованы потому что KolibriOS не поддерживает шелл, мне надо виртуальная их реализация.
Может стоит выложить metcc на svn? До http://shade.msu.ru/~msu-se/ достучаться бывает проблемно... (может он и выложен но найти я его не смог :/ )
Да, сейчас с шейдом проблемы... Надеюсь на скорый приезд админа.
Victor
http://diamondz.land.ru/metcc.zip (будет обновляться по мере возможности)
O01eg
А может быть, стоит подумать над поддержкой шелла в Колибри? Всё-таки командная строка - вещь полезная.
http://diamondz.land.ru/metcc.zip (будет обновляться по мере возможности)
O01eg
А может быть, стоит подумать над поддержкой шелла в Колибри? Всё-таки командная строка - вещь полезная.
diamond
если не секрет, чем ты собирал metcc? у меня на tcc (про оптимизацию кода которого я ничего хорошего не слышал..) получилось 177 Кб. Халявин на gcc получил около 60 кб.
если не секрет, чем ты собирал metcc? у меня на tcc (про оптимизацию кода которого я ничего хорошего не слышал..) получилось 177 Кб. Халявин на gcc получил около 60 кб.
Выложенный архив я взял у самого Халявина... пересобирать metcc пока не пробовал.
Ушёл к умным, знающим и культурным людям.
Ошибся. Это исходный tcc весит 66 кб. Тогда интересно почему он начинает весить почти в 5 раз больше.
1. В файле start.asm ошибка. Параметрв в main)() передаются неправильно. Надо заменить на
2. Пока лучше командную строку не разбивать. Не знаю ошибка или так задумано но sysxtree передавая путь к файлу дополняет имя файла до 8 символов, то есть wav_12.wav превратится в <путь>wav_12<2 пробела>.wav Это создает проблемы с обработкой.
Code: Select all
push argv
push [argc]
call main
add esp, 8 ;можно оставить на будущее
.exit:
с обработкой где? имхо это проблема сугубо sysxtree
Я делаю mp3 плеер. Для начала решил переписать ac97wav на С и сделать плеер на его основе. Получается что если разбирать командную строку, то argv[1] - полный путь к файлу но без расширения, а argv[2] - расширение и их надо снова собирать, что неудобно.
Я конечно понимаю что это неудобно но не лучше ли исправить sysxtree. Если логически рассуждать, раз sysxtree так делает значит это надо ядру так передавать... и коос имхо таких примеров много... дают костыль накладывают гипс и бинтуют с надеждой сделать в будущем "правильно".
Кроме того ты легко можешь изменить start.asm для "правильной" обработки параметров, но включать этот изменённый файл в metcc в качестве основного имхо не правильно
Кроме того ты легко можешь изменить start.asm для "правильной" обработки параметров, но включать этот изменённый файл в metcc в качестве основного имхо не правильно
Используйте последнюю версию sysxtree, переписанную на 70-ю функцию - там нет таких проблем.
Кто-нибудь пробовал серьёзно пюзать metcc ?
Я решил написать простую программу,читающую текстовый файл.Программа использует функции:
fopen,fclose,fgetc.Написал я эту програмку,но она у меня не работала(fgetc ничего не возвращала).Скомпилировал код под Linux при помощи GCC - всё отлично работает.
Тогда я стал дизассемблировать код и исследовать его.В коде был вызов 58 функции,но что-то более конкретное разглядеть не удалось.Код выдаваемый metcc какой-то мудрёный и даже IDA до конца правильно не смого его дизассемблировать.
Целый день я убил на то,чтобы разобраться в причине(почему файл не читается) ,но так и не понял в чём дело.
Такме у меня не заработала обработка клавиатуры._msys_get_key() возвращает один и то-же код - 50.Пробовал писать свою версию _msys_get_key() но всё равно возвращается неправильные коды(к примеру 8230).А вот функции PutImage,Clock и некоторые другие,которые я реализовал ввиде ассемблерных вставок,- отлично работают.
А у вас чтение файлов и клавиатура работают ?
Я решил написать простую программу,читающую текстовый файл.Программа использует функции:
fopen,fclose,fgetc.Написал я эту програмку,но она у меня не работала(fgetc ничего не возвращала).Скомпилировал код под Linux при помощи GCC - всё отлично работает.
Тогда я стал дизассемблировать код и исследовать его.В коде был вызов 58 функции,но что-то более конкретное разглядеть не удалось.Код выдаваемый metcc какой-то мудрёный и даже IDA до конца правильно не смого его дизассемблировать.
Целый день я убил на то,чтобы разобраться в причине(почему файл не читается) ,но так и не понял в чём дело.
Такме у меня не заработала обработка клавиатуры._msys_get_key() возвращает один и то-же код - 50.Пробовал писать свою версию _msys_get_key() но всё равно возвращается неправильные коды(к примеру 8230).А вот функции PutImage,Clock и некоторые другие,которые я реализовал ввиде ассемблерных вставок,- отлично работают.
А у вас чтение файлов и клавиатура работают ?
Попробуй не IDA, а HDasm (на wasm.ru есть)
Who is online
Users browsing this forum: No registered users and 1 guest