51 lines
806 B
PHP
51 lines
806 B
PHP
|
|
||
|
CntItems = 0
|
||
|
|
||
|
ScanItems = 1 ;must be >0, temporary equal 0
|
||
|
|
||
|
EleSize = 6 ;xxh.Size
|
||
|
|
||
|
virtual at 0
|
||
|
Vals::
|
||
|
rb 64*1024
|
||
|
end virtual
|
||
|
|
||
|
macro AddElement Source
|
||
|
{
|
||
|
local A,B,C,Index,Found
|
||
|
C = 0
|
||
|
Index = 0
|
||
|
Found = 0
|
||
|
if ScanItems
|
||
|
repeat CntItems
|
||
|
Found = 0
|
||
|
load B fword from Vals:+(%-1)*EleSize+C
|
||
|
load A fword from Source+C
|
||
|
if A=B
|
||
|
Found = %
|
||
|
Break
|
||
|
else
|
||
|
Found = 0
|
||
|
end if
|
||
|
end repeat
|
||
|
end if
|
||
|
if ~Found
|
||
|
load A fword from Source+C
|
||
|
store fword A at Vals:+CntItems*EleSize+C
|
||
|
dw (CntItems)*EleSize
|
||
|
CntItems = CntItems+1
|
||
|
else
|
||
|
dw (Found-1)*EleSize
|
||
|
end if
|
||
|
}
|
||
|
|
||
|
macro CpyElements Dst
|
||
|
{
|
||
|
local A
|
||
|
Dst rb CntItems*EleSize
|
||
|
repeat CntItems
|
||
|
load A fword from Vals:(%-1)*EleSize
|
||
|
store fword A at Dst+(%-1)*EleSize
|
||
|
end repeat
|
||
|
}
|