Помогите новичку

Applications development, KoOS API questions
  • Leency, а, так я более новую версию kernel32 не выкладывал, оказывается.

    Вообще, на сайте там написано
    picolzo.zip (4k) Библиотека сжатия данных методом LZO от Kai-Hong Chen.
    Вот так по идее должно запускаться
    Usage: testLZO filename
    Вот из picolzo.h--
    /* picoLZO.h-- The fast data compression functions from miniLZO,
    rewrite and rename to use in Sphinx C-- by Kai-Hong Chen.
    picolzo_compress(byte *src,dword src_len,byte *dst,dword *dst_len,byte *wrkmem);
    picolzo_decompress(byte *src,dword src_len,byte *dst,dword *dst_len,NULL);
    Её можно портировать просто, и будет без PELoad запускаться в KolibriOS.
  • Leency, можно ещё в starfield сделать звёзды разноцветные с изменяющимся цветом. И сделать скринсэйвер из неё. Тогда вообще надолго можно залипнуть :)
  • Порт http://c--sphinx.narod.ru/FILES/vc.zip

    http://prntscr.com/d4a5e2
    Дизайнер, который смог консоль и даже смог сделать кросскомпиляцию приложения WIN32 / Kolibri.
    Но не смог понять почему цвет фона и текста не закрашивается. Есть какая-то магия в функции WriteConsoleOutputAttribute()
    Attachments
    vfc_kos.zip (57.43 KiB)
    Downloaded 417 times
    Из хаоса в космос
  • Leency, о прикольно :D
    Spoiler:
    1.PNG
    1.PNG (51.52 KiB)
    Viewed 15462 times
    А что это и зачем?
  • это Diff tool. Визуальное сравнение двух текстовых файлов. Вот только подсветка пока что не работает.
    Из хаоса в космос
  • О, полезная утилита будет.
    to infinity and beyond
  • Всё, или шарики за ролики заехали, или одно из двух. Аж не знаю в какую тему писать, поэтому сюда.
    Итак. Загрузочная флешка, запускал в QEMU, видит флешку как /hd0/1, всё отлично, флешка в FAT32. Все файлы читаются и пишутся. Всё началось с того, что c-- отказывазывался читать файл ../lib/font.h(именно такой путь шёл в open(..) ), хотя он есть. Тогда написал на фасме микроутилиту, читает файл если есть или пишет error, если его нет. Помещаю в папку /hd0/1/cmm/0/textreader. Запускаю, и он его не открывает. Хотя файл есть. В папке ../lib есть файл font.h. Скопировал весь каталог lib в папку /hd0/1/boot , утилиту запускал из /hd0/1/boot/en-us, то есть относительные пути те же, ../lib/font.h также должен открываться - проверяю и он открывается. А из textreader - не открывается. И другие файлы ../lib/* также не открываются, если текущий каталог заканчивается на textreader.
    Вот только что выяснил: текущий каталог 1234567 - ../lib/* открываются, а в 12345678 - уже нет. Зависит от количества символов, видимо.
    В приложении исходник утилиты на всякий случай.
    Spoiler:
    qwe.GIF
    qwe.GIF (54.21 KiB)
    Viewed 15434 times
    Attachments
    0.ZIP (1.8 KiB)
    Downloaded 393 times
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • GerdtR
    А ядро поддерживает относительные пути ?
  • GerdtR

    Code: Select all

    	mov	dword[fss+16],mybuf
    	mov	[fss+16],0
    	mov	dword[fss+21],myfile
    ...
    fss db 25
    mybuf rb 4096
    
    Ты, наверное, имел в виду fss+20 и rb 25? А так fss накладывается на mybuf, в которой ты сам же прочитал текущую папку.
    Сделаем мир лучше!
  • Да, имел) Короче, явно не в ядре дело, после исправления всё как положено работает (Serge, да, полностью поддерживает). Вот cmm не хочет открывать относительные пути. Пробовал просто в main'е писать fopen("../lib/font.h", "rb") и файл не открывался, хотя он был на месте. Пока выяснил, что fopen никак не открывает файлы, если путь начинается с "..", хотя путь "lib/../font.h" нормально обрабатывается, так же как и ./font.h .
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • Leency wrote:Порт http://c--sphinx.narod.ru/FILES/vc.zip

    http://prntscr.com/d4a5e2
    Дизайнер, который смог консоль и даже смог сделать кросскомпиляцию приложения WIN32 / Kolibri.
    Но не смог понять почему цвет фона и текста не закрашивается. Есть какая-то магия в функции WriteConsoleOutputAttribute()
    WriteConsoleOutputAttribute устанавливает сразу пачку разных цветов - для первой позиции цвет attrs[0], для второй attrs[1] и так далее до того, сколько цветов ей указали. con_set_flags устанавливает текущий цвет, который будет использован для последующего вывода.
    Сделаем мир лучше!
  • CleverMouse
    Спасибо, дизайнер смог.
    Attachments
    vfc_its_alive.png
    vfc_its_alive.png (192.62 KiB)
    Viewed 15300 times
    Из хаоса в космос
  • Здравствуёте, извините если вопрос нубский, в ассемблере мало опыта имею. Я хотел модифицировать стандартный екзампл, чтобы он не звук издавал, а менял строчку вот что я изменил:

    Code: Select all

    ;после start
    mov ebx, message ;адрес message в ebx
    mov eax, iter ;адрес итератора в ebx
    mov [eax], ebx; по адресу записанному в eax(iter) записать содержимое ebx(адрес message)
    
    ;............ далее в key после mcall 2
    movzx ebx, [iter] ;запишем в ebx значение iter(адрес message + кол-во вызовов)
    mov [ebx], ah; записываем по адресу который находится в ebx код полученной клавиши
    add ebx, 1;увеличиваем адрес на 1(в следующий раз ссылаемся на следующую букву)
    mov eax, iter; адрес итератора в ebx
    mov[eax], ebx; по адресу записанному в eax(iter) записать содержимое ebx(адрес message)
    ; рядом message я написал iter db 1
    программа собирается но не работает(строка не меняется). Не подскажите где я мог ошибиться?
  • Ты ошибаешься в косвенной адресации и в размере операндов. Смотри отладчиком MTDBG - там все наглядно видно.

    Команд в нем немного - легко разобраться

    bp 54 - поставит точку останова на второй кусок кода
  • Who is online

    Users browsing this forum: No registered users and 4 guests