Board.KolibriOS.org

Official KolibriOS board
It is currently Sun May 19, 2019 9:42 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 22 posts ]  Go to page Previous 1 2
Author Message
 Post subject:
PostPosted: Sat Aug 12, 2006 11:06 am 
Offline

Joined: Tue Apr 18, 2006 11:48 pm
Posts: 53
Исходники для того и существуют, чтобы их править ;)


Top
   
 Post subject:
PostPosted: Sat Aug 12, 2006 2:10 pm 
Offline

Joined: Mon May 01, 2006 10:12 pm
Posts: 349
rabid rabbit
Не знаю почему CRC получаемый твоим модулем у меня не совпадал с CRC получаемый например WinHex-ом...
Но если немного подправить процедуру генерации таблицы для расчёта crc всё становится на свои места
Привожу сдесь немного подправленый код, может пригодится :)
Code:
dword table[256];
dword CRC32(byte *buff,dword len)
{
    dword crc = 0xFFFFFFFF;
   while (len--) crc = (crc>>8) ^ table[(byte)crc ^ *buff++];
   return crc ^ 0xFFFFFFFF;
}
void InitCRC32()
{
   dword i,j,mask;
        for ( i=0;i<256 ;i++){
            mask = 0xFFFFFF00 + i&0xFF;
            for ( j=0; j<8; j++ ){
                if ( mask & 1 ){
               mask >>= 1;
               mask ^= poly;
            }
            else mask >>= 1;
         }
      table[i&0xFF] = mask;
   }
}


Top
   
 Post subject:
PostPosted: Wed Aug 23, 2006 10:18 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
rabid rabbit
Code:
// вызов статических инициализаторов
// заодно инициализация генератора случайных чисел
#pragma section(".CRT")
__declspec(allocate(".CRT"))  void (__cdecl *crtFnList[1])();
Можно пояснить, что здесь происходит? MSDN ни фига не объясняет. crtFnList[1] - этот массив указателей на функции создает компилятор или его надо объявлять самому?
И если писать на простом С без классов и объектов эта часть кода нужна?


Top
   
 Post subject:
PostPosted: Wed Aug 30, 2006 7:44 am 
Offline

Joined: Tue Apr 18, 2006 11:48 pm
Posts: 53
Поясняю - как я понял из просмотра ассемблерных файлов, создаваемых компилятором, в секцию .CRT заносится массив адресов функций, производящих некоторую инициализацию при запуске программы. Так что объявлять надо только переменную, через которую можно получить доступ к этому массиву. Кстати, этот кусок кода из старого исходника - в новом слегка изменён способ доступа к секции .CRT (за образец взяты исходники мелкосовтовского crt). На счёт чистого Си не знаю, надо пробовать, т.к. в исходниках crt есть вроде вызов инициализаторов и для Си.


Top
   
PostPosted: Mon Oct 07, 2013 4:08 pm 
Offline

Joined: Sat Mar 16, 2013 9:13 am
Posts: 71
Имхо лучшая игра для Колибри


Top
   
PostPosted: Mon Oct 07, 2013 4:16 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Ты еще не пробовал Jump'n'bump! Кооперативный мультиплеер против ботов! viewtopic.php?f=41&t=2056


Top
   
PostPosted: Fri Sep 12, 2014 8:43 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1619
Я настроила автосборку из исходников в r5107, r5108.

_________________
Сделаем мир лучше!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 22 posts ]  Go to page Previous 1 2

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


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