diff --git a/rtl/SYSTEM.java b/rtl/SYSTEM.java
index 38f488694a9b8996766edfa36d342f7a00b33a3c..68f82bd0983c3ee348507e7903023dc63318cf8c 100644 (file)
--- a/rtl/SYSTEM.java
+++ b/rtl/SYSTEM.java
{
int len_x = LEN(x);
int len_v = v.length - 1;
+
int len = (len_x < len_v) ? (len_x) : (len_v);
for(int i = 0; i < len; i++)
{
v[i] = x[i];
}
+
v[len] = 0;
}
+ public static int STRCMP(byte[] a, byte[] b)
+ {
+ int i = 0;
+ while(a[i] != 0 && a[i] == b[i])
+ {
+ i += 1;
+ }
+ return a[i] - b[i];
+ }
+
public static void HALT(long n)
{
System.exit((int) n);
{
assert x : n;
}
+
+ public static void TRAP(long n)
+ {
+ if(n == -1)
+ {
+ throw new RuntimeException("CASE TRAP");
+ }
+ else if(n == -2)
+ {
+ throw new RuntimeException("WITH TRAP");
+ }
+ else
+ {
+ throw new RuntimeException("TRAP CODE " + n);
+ }
+ }
}