function taicpu.calcsize(p:PInsEntry):shortint;
var
i,data:longint;
codes : pchar;
...
exists_prefix_F2 := false;
exists_prefix_F3 := false;
{ ... }
data:=pInteger(codes)^ and $FFFFFF;
{fix call [procedure call mem??] }
if data = $FF01D5 then inc(len,2) else begin
data:=0;
for i:=0 to ops-1 do data:=data or oper[i]^.ot;
data := data and $0E000004; //mem®32
if data = $00000004 then inc(len) else
if data = $0E000000 then inc(len) else
if data = $0E000004 then inc(len,2) else
begin
c:=ord(codes[1]);data:=pInteger(codes)^ and $FFFFFF;
case data of
$00C301, //retn
$00C901, //leave
$6001D5, //pushad
$6101D5, //popad
$CF01D5: //iretd
inc(len);
end;
end;
{ original code }
repeat
c:=ord(codes^);
inc(codes);