Помощь - Поиск - Пользователи - Календарь
Полная версия: Мобила
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
autoexe
Доброго время суток!

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}


как это правильно реализовать?
virt
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}
autoexe
Большое спасибо yes2.gif
Сейчас буду пробывать, о результатах напишу позже
autoexe
Обьясните как это работает 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.


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

virt
Судя по названию подсчитывает контрольную 16 битовую сумму.
А что именно непонятно?
autoexe
Вот эти строчки
############################
result := result xor ((result and $ff00) shl 4);

result := result xor (result shr 12);

result := result xor ((result and $ff00) shr 5);
##################################
Извините за ламерство, я тока учусь cool.gif
Atos
xor и and здесь - битовые "или" и "и"(выполняются для каждй пары соответствующих бит сравниваемых операндов), shr и shl - битовый сдвиги, значения всех битов операнда сдвигаются на заданное количество разрядов вправо или влево соотетственно
autoexe
Ага ,понятно немного
autoexe
Ладно с этим разобрались , идём дальше.
Кто нибудь пользовался Keil C166?
Интересует как в нём развернуть вот этот файлик
autoexe
могу выложить Keil с креком dry.gif
Atos
Прямо сюда выкладывать с креком не надо, ибо запрещено правилами ;)
autoexe
Где нибудь на веб файлах wink.gif
autoexe
Вопросик
Что вернет зта функция?
Byte(addr)
если
addr := $800330
blink.gif
volvo
Byte - это не функция... Это приведение того, что в скобках к типу байт... Соответственно, вернется младший байт приводимого выражения... $30 или 48

P.S. Если вопросы не связаны с данной темой, открывай лучше новую, не надо делать свалку "все в одном"...
autoexe
Цитата(volvo @ 14.12.2005 15:57) *

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

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

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

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

Правильно? blink.gif
volvo
Цитата
Byte(addr shr 16) вернётся 80
Вернется $80 = 128 (10)
autoexe
а если так:
Byte(size)
Byte(size shr 8)
Byte(size shr 16)
size := 16
unsure.gif
volvo
А что, нельзя написать программку:
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
Сам уже понял blum.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.