1 package com.tapina.robe.swi.clib.string; 2 3 import com.tapina.robe.runtime.Environment; 4 import com.tapina.robe.runtime.MemoryMap; 5 import com.tapina.robe.swi.clib.Stub; 6 7 /*** 8 * This function appends up to a3 characters of a2 to the end of a1. Characters after a null byte are not added. 9 * The strings should not overlap. 10 * Returns: a1 11 */ 12 public class StrNCat extends Stub { 13 public void executeStub(Environment environment) { 14 final int[] R = environment.getCpu().R; 15 final MemoryMap memoryMap = environment.getMemoryMap(); 16 final String string1 = memoryMap.getStringN(R[0], R[2]); 17 final String string2 = memoryMap.getString0(R[1]); 18 memoryMap.storeString0(R[0], string1.concat(string2)); 19 } 20 }