* FillChar changed to a pure assembler procedure

git-svn-id: branches/z80@44965 -
This commit is contained in:
nickysn 2020-04-21 16:48:54 +00:00
parent 7bfce62302
commit 2aa248bba2

View File

@ -56,34 +56,32 @@ end;
{$define FPC_SYSTEM_HAS_FILLCHAR} {$define FPC_SYSTEM_HAS_FILLCHAR}
Procedure FillChar(var x;count:SizeInt;value:byte); Procedure FillChar(var x;count:SizeInt;value:byte);assembler;
label label
skip, loop; skip, loop;
begin asm
asm ld c, (count)
ld c, (count) ld b, (count+1)
ld b, (count+1) bit 7, b
bit 7, b jp NZ, skip
jp NZ, skip
ld a, b ld a, b
or a, c or a, c
jp Z, skip jp Z, skip
ld e, (value) ld e, (value)
ld a, 0 ld a, 0
ld l, (x) ld l, (x)
ld h, (x+1) ld h, (x+1)
loop: loop:
ld (hl), e ld (hl), e
inc hl inc hl
dec bc dec bc
cp a, c cp a, c
jp NZ, loop jp NZ, loop
cp a, b cp a, b
jp NZ, loop jp NZ, loop
skip: skip:
end;
end; end;