1 package com.tapina.robe.swi.clib.stdio;
2
3 import com.tapina.robe.runtime.Environment;
4 import com.tapina.robe.runtime.MemoryMap;
5 import com.tapina.robe.swi.clib.CLibrary;
6 import com.tapina.robe.swi.clib.Stub;
7
8 import java.io.IOException;
9
10 /***
11 * This function writes the string pointed to by a1 to the stream specified in a2.
12 * The null terminator is not written.
13 * Returns: EOF if there is an error.
14 */
15 public class FPutS extends Stub {
16 public void executeStub(Environment environment) {
17 final int[] R = environment.getCpu().R;
18 final MemoryMap memoryMap = environment.getMemoryMap();
19 FilePointer filePointer = FilePointer.find(memoryMap.getWord(R[1]));
20 try {
21 filePointer.puts(memoryMap.getString0(R[0]));
22 } catch (IOException e) {
23 log.warning("IOException in fputs(): " + e.getMessage());
24 R[0] = CLibrary.EOF;
25 }
26 }
27 }