IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Мобила, Нужна помощь
autoexe
сообщение 29.11.2005 5:52
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Доброго время суток!

Unit
.....
....

Type
tTabBoot = packed record
ptr : pointer;
len : integer;
end;
var
{$include SrvBoot.pas}
TabBoot : array of tTabBoot = ( ptr: @AllBoot; len: SizeOf(AllBoot));
....
....
...
end.

SrvBoot.pas
{Bin->Pas}
AllBoot : array[0..105] of byte = ( $68,$52,$00
.. и т.д.........);
// эти данные отправить в мобилу
{total 106 bytes}


как это правильно реализовать?

Сообщение отредактировано: volvo - 5.11.2006 20:39
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 29.11.2005 9:33
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


Unit
.....
....

Type
tTabBoot = packed record
ptr : pointer;
len : integer;
end;
var
{$include SrvBoot.pas}
TabBoot : array [0..105]of tTabBoot; ( ptr: @AllBoot; len: SizeOf(AllBoot));
....
....
for i := 0 to 105TabBoot[i].ptr := @AllBoot;
...
end.

SrvBoot.pas
{Bin->Pas}
AllBoot : array[0..105] of byte; $68,$52,$00
.................
for i := 0 to 105 do куфв(AllBoot[i]); //лучше считывать из файла
.. и т.д.........);//эти данные отправить в мобилу
{total 106 bytes}


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
autoexe
сообщение 29.11.2005 13:49
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Большое спасибо yes2.gif
Сейчас буду пробывать, о результатах напишу позже
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
autoexe
сообщение 30.11.2005 15:38
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Обьясните как это работает norespect.gif


unit Crc16;

interface
uses Windows,SysUtils;

function CalkBlkCRC16(buf:pointer ; size: integer ) : WORD;

implementation



function CalkBlkCRC16( buf: pointer ; size: integer ) : WORD;
begin
result:=$FFFF;
while size > 0 do begin
result := result xor BYTE(buf^);
result := Swap(result);
result := result xor ((result and $ff00) shl 4);
result := result xor (result shr 12);
result := result xor ((result and $ff00) shr 5);
Dec(size);
Inc(DWORD(buf));
end;
end;

end.


М
Тегами пользуемся ...



Сообщение отредактировано: volvo - 5.11.2006 20:41
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
virt
сообщение 30.11.2005 18:41
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 419
Пол: Мужской

Репутация: -  6  +


Судя по названию подсчитывает контрольную 16 битовую сумму.
А что именно непонятно?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
autoexe
сообщение 1.12.2005 5:33
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Вот эти строчки
############################
result := result xor ((result and $ff00) shl 4);

result := result xor (result shr 12);

result := result xor ((result and $ff00) shr 5);
##################################
Извините за ламерство, я тока учусь cool.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Atos
сообщение 1.12.2005 6:50
Сообщение #7


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


xor и and здесь - битовые "или" и "и"(выполняются для каждй пары соответствующих бит сравниваемых операндов), shr и shl - битовый сдвиги, значения всех битов операнда сдвигаются на заданное количество разрядов вправо или влево соотетственно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
autoexe
сообщение 1.12.2005 8:10
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Ага ,понятно немного
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
autoexe
сообщение 4.12.2005 9:53
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Ладно с этим разобрались , идём дальше.
Кто нибудь пользовался Keil C166?
Интересует как в нём развернуть вот этот файлик


Прикрепленные файлы
Прикрепленный файл  S55_80_01_BC.rar ( 28.99 килобайт ) Кол-во скачиваний: 140
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
autoexe
сообщение 5.12.2005 1:36
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


могу выложить Keil с креком dry.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Atos
сообщение 5.12.2005 6:33
Сообщение #11


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


Прямо сюда выкладывать с креком не надо, ибо запрещено правилами ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
autoexe
сообщение 5.12.2005 7:28
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Где нибудь на веб файлах wink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
autoexe
сообщение 14.12.2005 15:50
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Вопросик
Что вернет зта функция?
Byte(addr)
если
addr := $800330
blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.12.2005 15:57
Сообщение #14


Гость






Byte - это не функция... Это приведение того, что в скобках к типу байт... Соответственно, вернется младший байт приводимого выражения... $30 или 48

P.S. Если вопросы не связаны с данной темой, открывай лучше новую, не надо делать свалку "все в одном"...
 К началу страницы 
+ Ответить 
autoexe
сообщение 14.12.2005 17:15
Сообщение #15


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 14.12.2005 15:57) *

Byte - это не функция... Это приведение того, что в скобках к типу байт... Соответственно, вернется младший байт приводимого выражения... $30 или 48

P.S. Если вопросы не связаны с данной темой, открывай лучше новую, не надо делать свалку "все в одном"...

Это всё к мобиле относится

Значит :
Byte(addr shr 8) вернётся 03
Byte(addr shr 16) вернётся 80

Правильно? blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.12.2005 17:42
Сообщение #16


Гость






Цитата
Byte(addr shr 16) вернётся 80
Вернется $80 = 128 (10)
 К началу страницы 
+ Ответить 
autoexe
сообщение 14.12.2005 18:18
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


а если так:
Byte(size)
Byte(size shr 8)
Byte(size shr 16)
size := 16
unsure.gif

Сообщение отредактировано: autoexe - 14.12.2005 18:23
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 14.12.2005 18:35
Сообщение #18


Гость






А что, нельзя написать программку:
const
size = 16;
begin
writeln('Byte(size) = ', Byte(size));
writeln('Byte(size shr 8) = ', Byte(size shr 8));
writeln('Byte(size shr 16) = ', Byte(size shr 16));
end.

и тестировать?
Цитата(Console)
Byte(size) = 16
Byte(size shr 8) = 0
Byte(size shr 16) = 0
 К началу страницы 
+ Ответить 
autoexe
сообщение 15.12.2005 12:01
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Сам уже понял blum.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 8:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"