Tiny C Compiler

...
  • Так и не будут реализованы потому что KolibriOS не поддерживает шелл, мне надо виртуальная их реализация.
  • Может стоит выложить metcc на svn? До http://shade.msu.ru/~msu-se/ достучаться бывает проблемно... (может он и выложен но найти я его не смог :/ )
  • Да, сейчас с шейдом проблемы... Надеюсь на скорый приезд админа.
  • Victor
    http://diamondz.land.ru/metcc.zip (будет обновляться по мере возможности)
    O01eg
    А может быть, стоит подумать над поддержкой шелла в Колибри? Всё-таки командная строка - вещь полезная.
  • diamond
    если не секрет, чем ты собирал metcc? у меня на tcc (про оптимизацию кода которого я ничего хорошего не слышал..) получилось 177 Кб. Халявин на gcc получил около 60 кб.
  • Выложенный архив я взял у самого Халявина... пересобирать metcc пока не пробовал.
    Ушёл к умным, знающим и культурным людям.
  • Ошибся. Это исходный tcc весит 66 кб. Тогда интересно почему он начинает весить почти в 5 раз больше.
  • 1. В файле start.asm ошибка. Параметрв в main)() передаются неправильно. Надо заменить на

    Code: Select all

        push argv
        push [argc]
        call main
        add esp, 8         ;можно оставить на будущее
    
    .exit:
    
    2. Пока лучше командную строку не разбивать. Не знаю ошибка или так задумано но sysxtree передавая путь к файлу дополняет имя файла до 8 символов, то есть wav_12.wav превратится в <путь>wav_12<2 пробела>.wav Это создает проблемы с обработкой.
  • с обработкой где? имхо это проблема сугубо sysxtree
  • Я делаю mp3 плеер. Для начала решил переписать ac97wav на С и сделать плеер на его основе. Получается что если разбирать командную строку, то argv[1] - полный путь к файлу но без расширения, а argv[2] - расширение и их надо снова собирать, что неудобно.
  • Я конечно понимаю что это неудобно но не лучше ли исправить sysxtree. Если логически рассуждать, раз sysxtree так делает значит это надо ядру так передавать... и коос имхо таких примеров много... дают костыль накладывают гипс и бинтуют с надеждой сделать в будущем "правильно".
    Кроме того ты легко можешь изменить 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 и некоторые другие,которые я реализовал ввиде ассемблерных вставок,- отлично работают.

    А у вас чтение файлов и клавиатура работают ?
  • Попробуй не IDA, а HDasm (на wasm.ru есть)
  • Who is online

    Users browsing this forum: No registered users and 3 guests