?login_element?

Subversion Repositories NedoOS

Rev

Rev 659 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. FUNC UINT findlabel(PBYTE labeltext)
  2. {
  3. //VAR PBYTE _labelN; //єърчрЄхы№ эр Єхъє∙є■ ЄрсышЎє ьхЄюъ
  4. VAR PBYTE plabel; //ьхЄър т ЄрсышЎх чрърэўштрхЄё  эєы╕ь
  5. //VAR PBYTE pstr; //ьхЄър т ёЄЁюъх чрърэўштрхЄё  TOK_ENDTEXT
  6. //VAR BYTE cstr; //ёшьтюы шч ёЄЁюъш
  7. //VAR BYTE clabel; //ёшьтюы шч ЄрсышЎ√ ьхЄюъ
  8. //VAR UINT pnext_index; //рфЁхё ёыхфє■∙хщ ьхЄъш т ЄрсышЎх
  9. //VAR UINT plabelqueuestart_index; //т (_labelN+plabelqueuestart_index) їЁрэшЄё  рфЁхё эрўрыр Ўхяюўъш фы  ьхЄъш
  10.   _hash = hash(labeltext)&0x3ff;
  11.  
  12.   _labelN = _labels0; //_labelpage[(UINT)(_hashhigh&_LABELPAGEMASK)]; //set page (todo ъръ юяЁхфхышЄ№? ёшёЄхьэ√щ ьръЁюё?)
  13.   //plabelqueuestart_index = ((UINT)(_hash))<<1; //todo Ёрчэр  ЁрчЁ фэюёЄ№ UINT
  14.   _plabel_index = _labelshift[_hash];
  15.   //todo ъръ ёфхырЄ№ эрсюЁ ьрёёштют т Ёрчэ√ї ёЄЁрэшўърї? ёфтшу шэфхъёр т юфэюь ьрёёштх тэшчє?
  16.   //_labelflag = 0x00; //"label not found"
  17.   WHILE (_plabel_index != _LABELPAGEEOF) { //яюър Ўхяюўър ьхЄюъ эх чръюэўшырё№
  18.     plabel = &_labelN[_plabel_index]; //(PBYTE)((POINTER)_labelN + (POINTER)_plabel_index);
  19.     _plabel_index = *(PUINT)(plabel);
  20.     plabel = &plabel[+sizeof(UINT)]; //(PBYTE)((POINTER)plabel + (POINTER)2);
  21.     IF (strcp((PCHAR)labeltext, (PCHAR)plabel)) { //ьхЄър эрщфхэр
  22.       //plabel = (PBYTE)((POINTER)plabel + (POINTER)_labellen); //тъы■ўр  0
  23.         //errstr("found label "); errstr(labeltext); enderr();
  24.       _plabel_index = (UINT)(plabel - _labelN) + _labellen; //тъы■ўр  0 //єърчрЄхы№ эр эрўрыю фрээ√ї ёючфртрхьющ ьхЄъш (эрфю юс чрЄхы№эю чряюьэшЄ№!)
  25.       //_labelflag = *(PBYTE)(plabel);
  26.       //_labelvalue = *(PLONG)((POINTER)plabel + (POINTER)1);
  27.       BREAK; //яюьэшЄ _plabel_index эрўрыр фрээ√ї эрщфхээющ ьхЄъш
  28.     };
  29.     //_plabel_index = pnext_index;
  30.   }; //хёыш эх эрщфхэю, Єю _plabel_index==_LABELPAGEEOF
  31. RETURN _plabel_index;
  32. }
  33.