Index: config/gen/makefiles/root.in
===================================================================
RCS file: /cvs/public/parrot/config/gen/makefiles/root.in,v
retrieving revision 1.38
diff -u -r1.38 root.in
--- config/gen/makefiles/root.in	9 Sep 2002 05:48:41 -0000	1.38
+++ config/gen/makefiles/root.in	10 Sep 2002 15:31:02 -0000
@@ -74,7 +74,7 @@
 $(INC)/interp_guts.h $(INC)/rx.h $(INC)/rxstacks.h $(INC)/intlist.h \
 $(INC)/embed.h $(INC)/warnings.h $(INC)/misc.h $(INC)/pmc.h \
 $(INC)/key.h $(INC)/hash.h $(INC)/smallobject.h $(INC)/headers.h $(INC)/dod.h \
-$(INC)/method_util.h
+$(INC)/method_util.h $(INC)/convert.h
 
 ALL_H_FILES = $(GENERAL_H_FILES)
 
@@ -99,7 +99,7 @@
 				 resources$(O) rx$(O) rxstacks$(O) intlist$(O) \
 				 embed$(O) warnings$(O) misc$(O) ${cg_o} \
 				 packout$(O) byteorder$(O) debug$(O) smallobject$(O) \
-				 headers$(O) dod$(O) method_util$(O)
+				 headers$(O) dod$(O) method_util$(O) convert$(O)
 
 O_FILES = $(INTERP_O_FILES) \
 	      $(IO_O_FILES) \
@@ -351,6 +351,8 @@
 debug$(O) : $(GENERAL_H_FILES) $(INC)/debug.h
 
 method_util$(O) : $(GENERAL_H_FILES)
+
+convert$(O) : $(GENERAL_H_FILES)
 
 string$(O) : $(GENERAL_H_FILES)
 
Index: MANIFEST
===================================================================
RCS file: /cvs/public/parrot/MANIFEST,v
retrieving revision 1.216
diff -u -r1.216 MANIFEST
--- MANIFEST	9 Sep 2002 07:21:48 -0000	1.216
+++ MANIFEST	10 Sep 2002 15:33:17 -0000
@@ -101,6 +101,7 @@
 config/inter/pmc.pl
 config/inter/progs.pl
 config/inter/types.pl
+convert.c
 core.ops
 debug.c
 debug.ops
@@ -198,6 +199,7 @@
 hash.c
 headers.c
 include/parrot/chartype.h
+include/parrot/convert.h
 include/parrot/debug.h
 include/parrot/dod.h
 include/parrot/embed.h
Index: core.ops
===================================================================
RCS file: /cvs/public/parrot/core.ops,v
retrieving revision 1.210
diff -u -r1.210 core.ops
--- core.ops	9 Sep 2002 05:47:48 -0000	1.210
+++ core.ops	10 Sep 2002 15:23:48 -0000
@@ -2155,6 +2165,28 @@
     goto NEXT();
 }
 
+########################################
+
+=item B<convert>(out STR, in INT, in INT)
+
+Pack integer $2 into string $1 using format type $3
+
+=item B<convert>(out INT, in STR, in INT)
+
+Unpack string $2 into integer $1 using format type $3
+
+=cut
+
+inline op convert(out STR, in INT, in INT) {
+    $1 = pack_integer(interpreter, $2, $3);
+    goto NEXT();
+}
+
+inline op convert(out INT, in STR, in INT) {
+    $1 = unpack_integer(interpreter, $2, $3);
+    goto NEXT();
+}
+
 =back
 
 =cut
Index: include/parrot/parrot.h
===================================================================
RCS file: /cvs/public/parrot/include/parrot/parrot.h,v
retrieving revision 1.49
diff -u -r1.49 parrot.h
--- include/parrot/parrot.h	9 Sep 2002 05:49:08 -0000	1.49
+++ include/parrot/parrot.h	10 Sep 2002 15:39:01 -0000
@@ -184,6 +187,7 @@
 #include "parrot/debug.h"
 #include "parrot/sub.h"
 #include "parrot/key.h"
+#include "parrot/convert.h"
 #endif
 
 /*
