-static data volatile char ch;
-static data char radix ;
-static bit long_flag = 0;
-static bit string_flag =0;
-static bit char_flag = 0;
-static bit sign;
-static char * data str ;
-static data long val;
+static __data char radix ;
+static __bit long_flag = 0;
+static __bit string_flag =0;
+static __bit char_flag = 0;
+static char * __data str ;
+static __data long val;
+
+/* This great loop fails with the ds390 port (2003-01-13).
+
+ At the beginning resp. end of the loop the compiler inserts a "push ar2"
+ resp. "pop ar2", which badly interfers with the push/pop in the source.
+
+ Library functions should be rock solid and portable. There's an _ltoa in
+ the library, so let's use it and don't reinvent the wheel.
+
+ Bernhard
+*/
+
+#if NICE_LIFO_IMPLEMENTATION_BUT_NOT_PORTABLE
+static __data volatile char ch;
+static __bit sign;