1 package com.tapina.robe.swi.clib.string; 2 3 import com.tapina.robe.runtime.ByteArray; 4 import com.tapina.robe.runtime.Environment; 5 import com.tapina.robe.runtime.MemoryMap; 6 import com.tapina.robe.swi.clib.Stub; 7 8 /*** 9 * This function searches for a2 (converted to an unsigned char) in the first a3 characters of the object pointed to by a1. 10 * Returns: Pointer to the found character, or a null pointer if not found. 11 */ 12 public class MemChr extends Stub { 13 public void executeStub(Environment environment) { 14 final int[] R = environment.getCpu().R; 15 final MemoryMap memoryMap = environment.getMemoryMap(); 16 final ByteArray ptr = memoryMap.getByteArray(R[0], R[2], false); 17 for (int i = 0; i < R[2]; i++) { 18 if (ptr.getByte(i) == R[1]) { 19 R[0] += i; 20 return; 21 } 22 } 23 R[0] = 0; 24 } 25 }