Board.KolibriOS.org
http://board.kolibrios.org/

Помогите новичку
http://board.kolibrios.org/viewtopic.php?f=2&t=684
Page 73 of 76

Author:  Leency [ Fri Nov 04, 2016 4:56 pm ]
Post subject:  Re: Помогите новичку

0CodErr wrote:
Leency, молодец, прикольно :)

Там, кстати, на сайте есть ещё picolzo, его тоже не трудно портировать, по крайней мере, оно у меня запускалось в PELoad
http://www.c--sphinx.narod.ru/FILES/picolzo.zip

Спасибо.

У меня на Win10 x64 не запустилось.
PELoad тоже не смог http://prntscr.com/d306ij
Как оно выглядит?

Author:  0CodErr [ Fri Nov 04, 2016 5:04 pm ]
Post subject:  Re: Помогите новичку

Leency, а, так я более новую версию kernel32 не выкладывал, оказывается.

Вообще, на сайте там написано
Quote:
picolzo.zip (4k) Библиотека сжатия данных методом LZO от Kai-Hong Chen.

Вот так по идее должно запускаться
Quote:
Usage: testLZO filename

Вот из picolzo.h--
Quote:
/* picoLZO.h-- The fast data compression functions from miniLZO,
rewrite and rename to use in Sphinx C-- by Kai-Hong Chen.
Quote:
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.

Author:  0CodErr [ Fri Nov 04, 2016 8:42 pm ]
Post subject:  Re: Помогите новичку

Leency, можно ещё в starfield сделать звёзды разноцветные с изменяющимся цветом. И сделать скринсэйвер из неё. Тогда вообще надолго можно залипнуть :)

Author:  Leency [ Mon Nov 07, 2016 8:46 pm ]
Post subject:  Re: Помогите новичку

Порт http://c--sphinx.narod.ru/FILES/vc.zip

http://prntscr.com/d4a5e2
Дизайнер, который смог консоль и даже смог сделать кросскомпиляцию приложения WIN32 / Kolibri.
Но не смог понять почему цвет фона и текста не закрашивается. Есть какая-то магия в функции WriteConsoleOutputAttribute()

Attachments:
vfc_kos.zip [57.43 KiB]
Downloaded 158 times

Author:  0CodErr [ Mon Nov 07, 2016 8:57 pm ]
Post subject:  Re: Помогите новичку

Leency, о прикольно :D
Spoiler: Show
Attachment:
1.PNG
1.PNG [ 51.52 KiB | Viewed 7342 times ]
А что это и зачем?

Author:  Leency [ Mon Nov 07, 2016 9:22 pm ]
Post subject:  Re: Помогите новичку

это Diff tool. Визуальное сравнение двух текстовых файлов. Вот только подсветка пока что не работает.

Author:  punk_joker [ Mon Nov 07, 2016 11:45 pm ]
Post subject:  Re: Помогите новичку

О, полезная утилита будет.

Author:  GerdtR [ Tue Nov 08, 2016 2:07 am ]
Post subject:  Re: Помогите новичку

Всё, или шарики за ролики заехали, или одно из двух. Аж не знаю в какую тему писать, поэтому сюда.
Итак. Загрузочная флешка, запускал в 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: Show
Attachment:
qwe.GIF
qwe.GIF [ 54.21 KiB | Viewed 7314 times ]


Attachments:
0.ZIP [1.8 KiB]
Downloaded 156 times

Author:  Serge [ Fri Nov 11, 2016 10:49 am ]
Post subject:  Re: Помогите новичку

GerdtR
А ядро поддерживает относительные пути ?

Author:  CleverMouse [ Fri Nov 11, 2016 5:31 pm ]
Post subject:  Re: Помогите новичку

GerdtR
Code:
   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, в которой ты сам же прочитал текущую папку.

Author:  GerdtR [ Fri Nov 11, 2016 6:59 pm ]
Post subject:  Re: Помогите новичку

Да, имел) Короче, явно не в ядре дело, после исправления всё как положено работает (Serge, да, полностью поддерживает). Вот cmm не хочет открывать относительные пути. Пробовал просто в main'е писать fopen("../lib/font.h", "rb") и файл не открывался, хотя он был на месте. Пока выяснил, что fopen никак не открывает файлы, если путь начинается с "..", хотя путь "lib/../font.h" нормально обрабатывается, так же как и ./font.h .

Author:  CleverMouse [ Fri Nov 11, 2016 8:45 pm ]
Post subject:  Re: Помогите новичку

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 устанавливает текущий цвет, который будет использован для последующего вывода.

Author:  Leency [ Sat Nov 19, 2016 3:11 pm ]
Post subject:  Re: Помогите новичку

CleverMouse
Спасибо, дизайнер смог.

Attachments:
vfc_its_alive.png
vfc_its_alive.png [ 192.62 KiB | Viewed 7180 times ]

Author:  barbar89 [ Sun Jan 28, 2018 10:58 pm ]
Post subject:  Re: Помогите новичку

Здравствуёте, извините если вопрос нубский, в ассемблере мало опыта имею. Я хотел модифицировать стандартный екзампл, чтобы он не звук издавал, а менял строчку вот что я изменил:
Code:
;после 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


программа собирается но не работает(строка не меняется). Не подскажите где я мог ошибиться?

Author:  Siemargl [ Sun Jan 28, 2018 11:59 pm ]
Post subject:  Re: Помогите новичку

Ты ошибаешься в косвенной адресации и в размере операндов. Смотри отладчиком MTDBG - там все наглядно видно.

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

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

Page 73 of 76 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/