Difference between revisions of "84PCE:Syscalls:0210E0"

From WikiTI
Jump to: navigation, search
(Destroys)
 
Line 19: Line 19:
  
 
=== Destroys ===
 
=== Destroys ===
* AF, BC, HL
+
* HL = HL+BC
 +
* DE = HL+1+BC
 +
* BC = 0
  
 
== Comments ==
 
== Comments ==

Latest revision as of 03:45, 16 July 2016


Synopsis

Official Name: MemSet

Syscall Address: 0210E0h

Sets a block of memory to the value in A.

Inputs

  • HL: Address of memory block.
  • BC: Number of bytes to zero.
  • A: Value to set memory block to.

Outputs

  • DE: Points to byte after memory block.

Destroys

  • HL = HL+BC
  • DE = HL+1+BC
  • BC = 0

Comments

This routine uses an LDIR instruction to clear the memory block, so do not pass it a block length of 0 or 1 or it will erase 16777216 bytes.

See also: MemClear

Example

      ;Clear out pixelShadow with spaces
      ld     a,' '
      ld     hl,pixelShadow
      ld     bc,8400
      call   _MemSet