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