Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Dec 06, 2019 3:08 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 1119 posts ]  Go to page Previous 150 51 52 53 5475 Next
Author Message
PostPosted: Tue Apr 09, 2013 9:26 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
SVN r.3462 решает проблему с падением.

Leency wrote:
Проблема у меня при указании параметра Х. Если он 0 или 2 рисует такое. При 10 чёрный фон ("надписи" не видно). При 36, как и должно быть - падает. QEMU, последнее ядро.

А ты выведи не "-----", а допустим "AAAAAA" и сразу поймешь, что происходит искажение вывода, если не править еще и ф.65. А если не править одновременно размер буфера выделяемый по malloc, то возможно получить page fault как для ф.4, так и для ф.65.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Apr 09, 2013 9:30 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5067
Я ни разу не вводил "-----". В теме раз 5 сверкал исходник и тебе его ещё пару раз кидал, мог бы хоть раз обратить внимание на текст.

_________________
Через тернии к звездам


Top
   
PostPosted: Tue Apr 09, 2013 9:55 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Leency wrote:
Я ни разу не вводил "-----". В теме раз 5 сверкал исходник и тебе его ещё пару раз кидал, мог бы хоть раз обратить внимание на текст.

Тогда я не понимаю чего ты от меня хочешь?
Quote:
Продолжаю мучить 4 функцию. Переписал на православный асм и всё равно падает:

В моем ассемблерном исходнике который я написал по мотивам твоего кода, выложенного в самом первом сообщении, проблем с выводом не наблюдается. Если ты в нем получишь те эффекты, которые ты пытаешься показать, то я буду разбирать ситуацию.
Attachment:
f4img.7z [6.97 KiB]
Downloaded 71 times

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Fri Apr 12, 2013 6:52 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5067
Смотрю семинар по ОС деву от главного разработчика ядра ReactOS Брагина и кажется до меня начинает доходить что есть квант времени для процесса.

Рассмотрим случай, когда мы имеем два процесса запущенных одновременно и выводящих в консоль цифры от 1 до 9000.
Ровно через 3 секунды вывод останавливается. Так вот программа, которая будет иметь больший квант времени напечатает больше цыфр?

_________________
Через тернии к звездам


Top
   
PostPosted: Fri Apr 12, 2013 6:59 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Цифры - от 1 до 9. 1 до 9000 - это числа. :)


Top
   
PostPosted: Fri Apr 12, 2013 7:08 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5067
SoUrcerer wrote:
Цифры - от 1 до 9. 1 до 9000 - это числа. :)
Возьми с полки пирожок :)

_________________
Через тернии к звездам


Top
   
PostPosted: Fri Apr 12, 2013 7:53 pm 
Offline

Joined: Sat Dec 08, 2012 8:45 pm
Posts: 62
Leency wrote:
Смотрю семинар по ОС деву от главного разработчика ядра ReactOS Брагина и кажется до меня начинает доходить что есть квант времени для процесса.

Рассмотрим случай, когда мы имеем два процесса запущенных одновременно и выводящих в консоль цифры от 1 до 9000.
Ровно через 3 секунды вывод останавливается. Так вот программа, которая будет иметь больший квант времени напечатает больше цыфр?


ну... как сказать... во первых кванты обычно одинаковые, а приоритет влияет на чистоту выдачи кванта
во вторых кванты очень мелкие, так что разница не настолько уж и ощутима за 3 секунды то.
но теоретически таки да, если я конечно правильно понимаю, что процессы запущены из одного исполняемого файла. если нет - то тут ещё и насколько коды программ оптимальны оттносительно друг-друга (т.е. можно ли сказать что один оптимальнее другого)

_________________
Муравьиным спиртом советую натереть!


Top
   
PostPosted: Mon Apr 22, 2013 12:37 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Можно ли сейчас узнать размер свободного пространства на жёстком диске?
Здесь http://websvn.kolibrios.org/filedetails.php?repname=Kolibri+OS&path=%2Fkernel%2Ftrunk%2Fdocs%2Fsysfuncr.txt#line-3038 написано, что можно:
Spoiler: Show
Code:
  * для жёсткого диска: база и раздел определяются подфункциями 7 и 8
    функции 21:
    * eax = 0 (успех)
    * ebx = общее число кластеров
    * ecx = число свободных кластеров
    * dword [fileinfo] = размер кластера (в байтах)

А здесь http://websvn.kolibrios.org/filedetails.php?repname=Kolibri+OS&path=%2Fkernel%2Ftrunk%2Ffs%2Ffs.inc#line-175 вот так:
Spoiler: Show
Code:
  fs_info:                      ;start of code - Mihasik
        push    eax
        cmp     [eax+21], byte 'r'
        je      fs_info_r
        cmp     [eax+21], byte 'R'
        je      fs_info_r
        mov     eax, 3          ;if unknown disk
        xor     ebx, ebx
        xor     ecx, ecx
        xor     edx, edx
        jmp     fs_info1
  fs_info_r:
        call    ramdisk_free_space;if ramdisk
        mov     ecx, edi        ;free space in ecx
        shr     ecx, 9          ;free clusters
        mov     ebx, 2847       ;total clusters
        mov     edx, 512        ;cluster size
        xor     eax, eax        ;always 0
  fs_info1:
        pop     edi
        mov     [esp+36], eax
        mov     [esp+24], ebx    ; total clusters on disk
        mov     [esp+32], ecx    ; free clusters on disk
        mov     [edi], edx       ; cluster size in bytes
        ret                      ;end of code - Mihasik

Для рамдиска-то работает:
Spoiler: Show
Image

Пока нового API нет, хотел хотя бы так попробовать.


Top
   
PostPosted: Thu May 02, 2013 5:42 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 457
Мне нужно, что бы fasm вкомпилил процедуры типа proc - endp. Загвоздка вот в чём: в самой проге они не используются и потому fasm их просто выкидывает. А мне нужно что бы вкомпилил.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
PostPosted: Thu May 02, 2013 6:21 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
GerdtR, можно написать вместо
Code:
proc MyProc
ret
endp
просто метку
Code:
MyProc:
ret


Top
   
PostPosted: Fri May 03, 2013 4:56 am 
Offline
User avatar

Joined: Tue May 08, 2007 12:44 am
Posts: 346
GerdtR wrote:
Загвоздка вот в чём: в самой проге они не используются и потому fasm их просто выкидывает. А мне нужно что бы вкомпилил.

Скомпиль их отдельно в бинарь, а потом включи директивой file. Только про смещения не забывай.

_________________
Разработчик языка программирования Кантор


Top
   
PostPosted: Sat May 04, 2013 9:03 pm 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 457
Слыхал, что 68.19 умеет грузить PE либы. Попробовал - не получилось( Вообще есть какой способ PE либу загрузить?

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
PostPosted: Sun May 05, 2013 10:53 am 
Offline

Joined: Sat Dec 08, 2012 8:45 pm
Posts: 62
GerdtR wrote:
Слыхал, что 68.19 умеет грузить PE либы. Попробовал - не получилось


Либы - т.е. .lib? Имеются ввиду .obj , если я правильно помню
+ ещё какие зависимости у этой либы

Quote:
Вообще есть какой способ PE либу загрузить?

Ну... можно и свой загрузчик сделать, а если имеется ввиду таки .dll то порыться в коде раеактос или вайн, скопировать тамошний загрузчик

_________________
Муравьиным спиртом советую натереть!


Top
   
PostPosted: Sun May 05, 2013 11:14 am 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 457
Да, .dll, вроде виндовых. Т. е. библиотеки в PE формате сама Колибри грузить не умеет?

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
PostPosted: Sun May 05, 2013 1:32 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
GerdtR
viewtopic.php?f=2&t=32&start=175
Serge wrote:
Добро пожаловать в DLL hell!

Фунция 68.19 - загрузить DLL. ecx - указатель на путь к библиотеке.
Возвращаемое значение - логический номер DLL в случае успеха или 0.

http://infinity-sound.narod.ru/console.7z - пример DLL
консоли.

ДЛЛ может состоять из нескольких COFF секций. Кождая DLL должна иметь таблицу экспортируемых функций. Метка EXPORTS должна быть объявлена public. Обязательная функция stdcall START должна вызываться с параметром state=1 после загрузки DLL и state=-1 перед выгрузкой. Функция должна вернуть ненулевое значение в случае успхе или ноль в случае неудачи. Каждая DLL должна содержать номер версии (экспоруемое имя 'version'). Младшее слово версии - текущая версия DLL, старшее слово - минимальная совместимая версия. Программа может работать с DLL если требуемая версия не больше текущей и не меньше совместимой. Таблица EXPORTS состоит из пар двойных слов. Первое - указатель на строку с именем переменной, второе значение. Экспортироваться могут не только адреса функций но и непосредственные данные как в случае с 'version'. В файл testcon2 добавлены две вспомогательные функции для работы с DLL. get_proc возвращает адрес экспортируемой переменной sz_name. link связывает библиотеку и программу. Для этого необходима таблица импортируемых функций (в примере imports). link заменяет адреса строк с именами функций на значения полученные после вызовов get_proc

sysfuncr.txt wrote:
Code:
======================================================================
============= Функция 68, подфункция 19 - загрузить DLL. =============
======================================================================
Параметры:
  * eax = 68 - номер функции
  * ebx = 19 - номер подфункции
  * ecx = указатель на ASCIIZ-строку с полным путём к DLL
Возвращаемое значение:
  * eax = 0 - неудача
  * иначе eax = указатель на таблицу экспорта DLL
Замечания:
  * Таблица экспорта представляет собой массив структур по 2 dword'а,
    заканчивающийся нулём. Первый dword в структуре является
    указателем на имя функции, второй содержит адрес функции.


_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 1119 posts ]  Go to page Previous 150 51 52 53 5475 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited