summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog41
-rw-r--r--LEGAL1
-rw-r--r--common.mk1
-rw-r--r--dln.c7
-rw-r--r--ext/Setup.x6833
-rw-r--r--ext/extmk.rb4
-rw-r--r--ext/socket/socket.c2
-rw-r--r--gc.c18
-rw-r--r--include/ruby/defines.h8
-rw-r--r--io.c15
-rw-r--r--lib/mkmf.rb3
-rw-r--r--missing/x68.c40
-rw-r--r--process.c35
-rw-r--r--ruby.c3
-rw-r--r--test/ruby/test_env.rb2
-rw-r--r--test/ruby/test_path.rb8
-rw-r--r--x68/_dtos18.c250
-rw-r--r--x68/_round.c45
-rw-r--r--x68/fconvert.c81
-rw-r--r--x68/select.c167
20 files changed, 67 insertions, 697 deletions
diff --git a/ChangeLog b/ChangeLog
index 35bba78..b21e7e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,44 @@
+Sat Oct 4 21:59:39 2008 Yuki Sonoda (Yugui) <yugui@yugui.jp>
+
+ * x68/_dtos18.c: removed. Ruby no longer supports human68k.
+
+ * x68/_round.c: ditto.
+
+ * x68/fconvert.c: ditto.
+
+ * x68/select.c: ditto.
+
+ * ext/Setup.x68: ditto.
+
+ * missing/x68.c: ditto.
+
+ * dln.c (dln_find_exe_r): removed human68k supports.
+ (dln_find_1): ditto.
+
+ * lib/mkmf.rb: ditto.
+
+ * ext/extmk.rb (Init_ext): ditto.
+
+ * ext/socket/socket.c (init_sock): ditto.
+
+ * gc.c (GC_MALLOC_LIMIT): ditto.
+ (rb_setjmp, rb_jmpbuf): ditto.
+ (mark_current_machine_context): ditto.
+
+ * include/ruby/defines.h (PATH_ENV): ditto.
+
+ * io.c: ditto.
+
+ * process.c: ditto.
+
+ * ruby.c: ditto.
+
+ * test/ruby/test_env.rb: ditto.
+
+ * test/ruby/test_path.rb: ditto.
+
+ * LEGAL
+
Sat Oct 4 19:02:36 2008 Tadayoshi Funaba <tadf@dotrb.org>
* lib/date/format.rb: no need to require the "lib/rational.rb".
diff --git a/LEGAL b/LEGAL
index 018c74e..96cc4fd 100644
--- a/LEGAL
+++ b/LEGAL
@@ -171,7 +171,6 @@ random.c
email: matumoto@math.keio.ac.jp
st.[ch]:
-x68/*:
missing/alloca.c:
missing/dup2.c:
missing/finite.c:
diff --git a/common.mk b/common.mk
index fa10048..8077678 100644
--- a/common.mk
+++ b/common.mk
@@ -424,7 +424,6 @@ strstr.$(OBJEXT): {$(VPATH)}strstr.c
strtod.$(OBJEXT): {$(VPATH)}strtod.c
strtol.$(OBJEXT): {$(VPATH)}strtol.c
nt.$(OBJEXT): {$(VPATH)}nt.c
-x68.$(OBJEXT): {$(VPATH)}x68.c
os2.$(OBJEXT): {$(VPATH)}os2.c
dl_os2.$(OBJEXT): {$(VPATH)}dl_os2.c
ia64.$(OBJEXT): {$(VPATH)}ia64.s
diff --git a/dln.c b/dln.c
index db36866..24335da 100644
--- a/dln.c
+++ b/dln.c
@@ -1581,7 +1581,7 @@ dln_find_exe_r(const char *fname, const char *path, char *buf, int size)
}
if (!path) {
-#if defined(MSDOS) || defined(_WIN32) || defined(__human68k__) || defined(__MACOS__)
+#if defined(MSDOS) || defined(_WIN32) || defined(__MACOS__)
path = "/usr/local/bin;/usr/ucb;/usr/bin;/bin;.";
#else
path = "/usr/local/bin:/usr/ucb:/usr/bin:/bin:.";
@@ -1721,9 +1721,6 @@ dln_find_1(const char *fname, const char *path, char *fbuf, int size,
#elif defined(__EMX__) || defined(_WIN32)
".exe", ".com", ".cmd", ".bat",
/* end of __EMX__ or _WIN32 */
-#else
- ".r", ".R", ".x", ".X", ".bat", ".BAT",
-/* __human68k__ */
#endif
};
int j;
@@ -1747,7 +1744,7 @@ dln_find_1(const char *fname, const char *path, char *fbuf, int size,
}
goto next;
}
-#endif /* MSDOS or _WIN32 or __human68k__ or __EMX__ */
+#endif /* MSDOS or _WIN32 or __EMX__ */
#ifndef __MACOS__
if (stat(fbuf, &st) == 0) {
diff --git a/ext/Setup.x68 b/ext/Setup.x68
deleted file mode 100644
index 03f5d2d..0000000
--- a/ext/Setup.x68
+++ /dev/null
@@ -1,33 +0,0 @@
-option nodynamic
-
-#Win32API
-bigdecimal
-#curses
-dbm
-digest
-digest/md5
-digest/rmd160
-digest/sha1
-digest/sha2
-#dl
-#etc
-enumerator
-fcntl
-#gdbm
-#iconv
-#io/wait
-nkf
-#openssl
-#pty
-racc/cparse
-#readline
-#ripper
-#sdbm
-#socket
-stringio
-strscan
-#syck
-#syslog
-#tk
-#win32ole
-#zlib
diff --git a/ext/extmk.rb b/ext/extmk.rb
index 52f10de..a461b1d 100644
--- a/ext/extmk.rb
+++ b/ext/extmk.rb
@@ -39,7 +39,7 @@ load File.expand_path("lib/mkmf.rb", srcdir)
require 'optparse/shellwords'
def sysquote(x)
- @quote ||= /human|os2|macos/ =~ (CROSS_COMPILING || RUBY_PLATFORM)
+ @quote ||= /os2|macos/ =~ (CROSS_COMPILING || RUBY_PLATFORM)
@quote ? x.quote : x
end
@@ -507,7 +507,7 @@ void Init_ext _((void))\n{\n#$extinit}
end
$extobjs = "ext/#{extinit.o} #{$extobjs}"
- if RUBY_PLATFORM =~ /m68k-human|beos/
+ if RUBY_PLATFORM =~ /beos/
$extflags.delete("-L/usr/local/lib")
end
$extpath.delete("$(topdir)")
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index c2e5785..d1c4639 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -241,7 +241,7 @@ init_sock(VALUE sock, int fd)
MakeOpenFile(sock, fp);
fp->fd = fd;
fp->mode = FMODE_READWRITE|FMODE_DUPLEX;
-#if defined(_WIN32) || defined(DJGPP) || defined(__CYGWIN__) || defined(__human68k__) || defined(__EMX__)
+#if defined(_WIN32) || defined(DJGPP) || defined(__CYGWIN__) || defined(__EMX__)
fp->mode |= FMODE_BINMODE;
#endif
if (do_not_reverse_lookup) {
diff --git a/gc.c b/gc.c
index dd3bc44..a49ef70 100644
--- a/gc.c
+++ b/gc.c
@@ -75,7 +75,7 @@ void *alloca ();
#endif /* __GNUC__ */
#ifndef GC_MALLOC_LIMIT
-#if defined(MSDOS) || defined(__human68k__)
+#if defined(MSDOS)
#define GC_MALLOC_LIMIT 200000
#else
#define GC_MALLOC_LIMIT 8000000
@@ -1859,18 +1859,9 @@ obj_free(rb_objspace_t *objspace, VALUE obj)
}
#ifdef __GNUC__
-#if defined(__human68k__) || defined(DJGPP)
+#if defined(DJGPP)
#undef rb_setjmp
#undef rb_jmp_buf
-#if defined(__human68k__)
-typedef unsigned long rb_jmp_buf[8];
-__asm__ (".even\n\
-_rb_setjmp:\n\
- move.l 4(sp),a0\n\
- movem.l d3-d7/a3-a5,(a0)\n\
- moveq.l #0,d0\n\
- rts");
-#else
#if defined(DJGPP)
typedef unsigned long rb_jmp_buf[6];
__asm__ (".align 4\n\
@@ -1888,9 +1879,8 @@ _rb_setjmp:\n\
xorl %eax,%eax\n\
ret");
#endif
-#endif
int rb_setjmp (rb_jmp_buf);
-#endif /* __human68k__ or DJGPP */
+#endif /* DJGPP */
#endif /* __GNUC__ */
#define GC_NOTIFY 0
@@ -1932,7 +1922,7 @@ mark_current_machine_context(rb_objspace_t *objspace, rb_thread_t *th)
#ifdef __ia64
rb_gc_mark_locations(th->machine_register_stack_start, th->machine_register_stack_end);
#endif
-#if defined(__human68k__) || defined(__mc68000__)
+#if defined(__mc68000__)
mark_locations_array((VALUE*)((char*)STACK_END + 2),
(STACK_START - STACK_END));
#endif
diff --git a/include/ruby/defines.h b/include/ruby/defines.h
index d580135..6a25bc3 100644
--- a/include/ruby/defines.h
+++ b/include/ruby/defines.h
@@ -103,7 +103,7 @@ void xfree(void*);
#undef _WIN32
#endif
-#if defined(MSDOS) || defined(_WIN32) || defined(__human68k__) || defined(__EMX__)
+#if defined(MSDOS) || defined(_WIN32) || defined(__EMX__)
#define DOSISH 1
#ifndef _WIN32_WCE
# define DOSISH_DRIVE_LETTER
@@ -252,13 +252,9 @@ void rb_ia64_flushrs(void);
#endif
#define PATH_SEP_CHAR PATH_SEP[0]
-#if defined(__human68k__)
-#define PATH_ENV "path"
-#else
#define PATH_ENV "PATH"
-#endif
-#if defined(DOSISH) && !defined(__human68k__) && !defined(__EMX__)
+#if defined(DOSISH) && !defined(__EMX__)
#define ENV_IGNORECASE
#endif
diff --git a/io.c b/io.c
index 7985aeb..a72582e 100644
--- a/io.c
+++ b/io.c
@@ -29,7 +29,7 @@
# include <sys/socket.h>
#endif
-#if defined(MSDOS) || defined(__BOW__) || defined(__CYGWIN__) || defined(_WIN32) || defined(__human68k__) || defined(__EMX__) || defined(__BEOS__)
+#if defined(MSDOS) || defined(__BOW__) || defined(__CYGWIN__) || defined(_WIN32) || defined(__EMX__) || defined(__BEOS__)
# define NO_SAFE_RENAME
#endif
@@ -46,7 +46,7 @@
#endif
#include <sys/types.h>
-#if defined(HAVE_SYS_IOCTL_H) && !defined(DJGPP) && !defined(_WIN32) && !defined(__human68k__)
+#if defined(HAVE_SYS_IOCTL_H) && !defined(DJGPP) && !defined(_WIN32)
#include <sys/ioctl.h>
#endif
#if defined(HAVE_FCNTL_H) || defined(_WIN32)
@@ -6400,7 +6400,7 @@ rb_f_select(int argc, VALUE *argv, VALUE obj)
}
-#if !defined(MSDOS) && !defined(__human68k__)
+#if !defined(MSDOS)
static int
io_cntl(int fd, int cmd, long narg, int io_p)
{
@@ -6425,7 +6425,7 @@ io_cntl(int fd, int cmd, long narg, int io_p)
static VALUE
rb_io_ctl(VALUE io, VALUE req, VALUE arg, int io_p)
{
-#if !defined(MSDOS) && !defined(__human68k__)
+#if !defined(MSDOS)
int cmd = NUM2ULONG(req);
rb_io_t *fptr;
long len = 0;
@@ -6768,10 +6768,6 @@ io_encoding_set(rb_io_t *fptr, VALUE v1, VALUE v2, VALUE opt)
static VALUE
rb_io_s_pipe(int argc, VALUE *argv, VALUE klass)
{
-#ifdef __human68k__
- rb_notimplement();
- return Qnil; /* not reached */
-#else
int pipes[2], state;
VALUE r, w, args[3], v1, v2;
VALUE opt;
@@ -6804,7 +6800,6 @@ rb_io_s_pipe(int argc, VALUE *argv, VALUE klass)
rb_io_synchronized(RFILE(w)->fptr);
return rb_assoc_new(r, w);
-#endif
}
struct foreach_arg {
@@ -8423,7 +8418,7 @@ Init_IO(void)
rb_define_hooked_variable("$-i", &argf, opt_i_get, opt_i_set);
rb_define_hooked_variable("$*", &argf, argf_argv_getter, 0);
-#if defined (_WIN32) || defined(DJGPP) || defined(__CYGWIN__) || defined(__human68k__)
+#if defined (_WIN32) || defined(DJGPP) || defined(__CYGWIN__)
atexit(pipe_atexit);
#endif
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index 6ef6634..4de2836 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -9,7 +9,7 @@ CONFIG = RbConfig::MAKEFILE_CONFIG
ORIG_LIBPATH = ENV['LIB']
CXX_EXT = %w[cc cxx cpp]
-if /mswin|bccwin|mingw|msdosdjgpp|human|os2/ !~ CONFIG['build_os']
+if /mswin|bccwin|mingw|msdosdjgpp|os2/ !~ CONFIG['build_os']
CXX_EXT.concat(%w[C])
end
SRC_EXT = %w[c m] << CXX_EXT
@@ -59,7 +59,6 @@ $mswin = /mswin/ =~ RUBY_PLATFORM
$bccwin = /bccwin/ =~ RUBY_PLATFORM
$mingw = /mingw/ =~ RUBY_PLATFORM
$cygwin = /cygwin/ =~ RUBY_PLATFORM
-$human = /human/ =~ RUBY_PLATFORM
$netbsd = /netbsd/ =~ RUBY_PLATFORM
$os2 = /os2/ =~ RUBY_PLATFORM
$beos = /beos/ =~ RUBY_PLATFORM
diff --git a/missing/x68.c b/missing/x68.c
deleted file mode 100644
index ece840d..0000000
--- a/missing/x68.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* x68 compatibility functions -- follows Ruby's license */
-
-#include "ruby/config.h"
-
-#if !HAVE_SELECT
-#include "x68/select.c"
-#endif
-#if MISSING__DTOS18
-#include "x68/_dtos18.c"
-#endif
-#if MISSING_FCONVERT
-#include "x68/_round.c"
-#include "x68/fconvert.c"
-#endif
-
-/* missing some basic syscalls */
-int
-link(const char *src, const char *dst)
-{
- return symlink(src, dst);
-}
-
-#ifndef HAVE_GETTIMEOFDAY
-#include <time.h>
-#include <sys/time.h>
-
-struct timezone {
- int tz_minuteswest;
- int tz_dsttime;
-};
-
-int
-gettimeofday(struct timeval *tv, struct timezone *tz)
-{
- tv->tv_sec = (long)time((time_t*)0);
- tv->tv_usec = 0;
-
- return 0;
-}
-#endif
diff --git a/process.c b/process.c
index be60526..b0c3250 100644
--- a/process.c
+++ b/process.c
@@ -1004,11 +1004,8 @@ proc_exec_v(char **argv, const char *prog)
return -1;
}
-#if (defined(MSDOS) && !defined(DJGPP)) || defined(__human68k__) || defined(__EMX__) || defined(OS2)
+#if (defined(MSDOS) && !defined(DJGPP)) || defined(__EMX__) || defined(OS2)
{
-#if defined(__human68k__)
-#define COMMAND "command.x"
-#endif
#if defined(__EMX__) || defined(OS2) /* OS/2 emx */
#define COMMAND "cmd.exe"
#endif
@@ -1040,7 +1037,7 @@ proc_exec_v(char **argv, const char *prog)
}
}
}
-#endif /* MSDOS or __human68k__ or __EMX__ */
+#endif /* MSDOS or __EMX__ */
before_exec();
execv(prog, argv);
preserving_errno(after_exec());
@@ -1098,7 +1095,7 @@ rb_proc_exec(const char *str)
after_exec();
if (status != -1)
exit(status);
-#elif defined(__human68k__) || defined(__CYGWIN32__) || defined(__EMX__)
+#elif defined(__CYGWIN32__) || defined(__EMX__)
char fbuf[MAXPATHLEN];
char *shell = dln_find_exe_r("sh", 0, fbuf, sizeof(fbuf));
int status = -1;
@@ -1158,30 +1155,6 @@ proc_spawn_v(char **argv, char *prog)
if (!prog)
return -1;
-#if defined(__human68k__)
- if ((extension = strrchr(prog, '.')) != NULL && STRCASECMP(extension, ".bat") == 0) {
- char **new_argv;
- char *p;
- int n;
-
- for (n = 0; argv[n]; n++)
- /* no-op */;
- new_argv = ALLOCA_N(char*, n + 2);
- for (; n > 0; n--)
- new_argv[n + 1] = argv[n];
- new_argv[1] = strcpy(ALLOCA_N(char, strlen(argv[0]) + 1), argv[0]);
- for (p = new_argv[1]; *p != '\0'; p++)
- if (*p == '/')
- *p = '\\';
- new_argv[0] = COMMAND;
- argv = new_argv;
- prog = dln_find_exe_r(argv[0], 0, fbuf, sizeof(fbuf));
- if (!prog) {
- errno = ENOENT;
- return -1;
- }
- }
-#endif
before_exec();
status = spawnv(P_WAIT, prog, argv);
rb_last_status_set(status == -1 ? 127 : status, 0);
@@ -2694,7 +2667,7 @@ rb_spawn_internal(int argc, VALUE *argv, int default_close_others)
# else
if (argc) prog = rb_ary_join(rb_ary_new4(argc, argv), rb_str_new2(" "));
status = system(StringValuePtr(prog));
-# if defined(__human68k__) || defined(__DJGPP__)
+# if defined(__DJGPP__)
rb_last_status_set(status == -1 ? 127 : status, 0);
# else
rb_last_status_set((status & 0xff) << 8, 0);
diff --git a/ruby.c b/ruby.c
index 848ae99..db2bd60 100644
--- a/ruby.c
+++ b/ruby.c
@@ -359,9 +359,6 @@ ruby_init_loadpath(void)
#elif defined(DJGPP)
extern char *__dos_argv0;
strncpy(libpath, __dos_argv0, sizeof(libpath) - 1);
-#elif defined(__human68k__)
- extern char **_argv;
- strncpy(libpath, _argv[0], sizeof(libpath) - 1);
#elif defined(__EMX__)
_execname(libpath, sizeof(libpath) - 1);
#endif
diff --git a/test/ruby/test_env.rb b/test/ruby/test_env.rb
index f59fa14..dd1ad80 100644
--- a/test/ruby/test_env.rb
+++ b/test/ruby/test_env.rb
@@ -2,7 +2,7 @@ require 'test/unit'
class TestEnv < Test::Unit::TestCase
IGNORE_CASE = /djgpp|bccwin|mswin|mingw/ =~ RUBY_PLATFORM
- PATH_ENV = /human68k/ =~ RUBY_PLATFORM ? "path" : "PATH"
+ PATH_ENV = "PATH"
def setup
@verbose = $VERBOSE
diff --git a/test/ruby/test_path.rb b/test/ruby/test_path.rb
index 18c701f..edb5459 100644
--- a/test/ruby/test_path.rb
+++ b/test/ruby/test_path.rb
@@ -45,7 +45,7 @@ class TestPath < Test::Unit::TestCase
end
def test_dirname
- if /(bcc|ms)win\d|mingw|cygwin|djgpp|human|emx/ =~ RUBY_PLATFORM
+ if /(bcc|ms)win\d|mingw|cygwin|djgpp|emx/ =~ RUBY_PLATFORM
# DOSISH_DRIVE_LETTER
assert_equal('C:.', File.dirname('C:'))
assert_equal('C:.', File.dirname('C:a'))
@@ -101,7 +101,7 @@ class TestPath < Test::Unit::TestCase
assert_equal('/', File.dirname('/a/'))
assert_equal('/a', File.dirname('/a/b'))
- if /(bcc|ms|cyg)win|mingw|djgpp|human|emx/ =~ RUBY_PLATFORM
+ if /(bcc|ms|cyg)win|mingw|djgpp|emx/ =~ RUBY_PLATFORM
# DOSISH_UNC
assert_equal('//', File.dirname('//'))
assert_equal('//a', File.dirname('//a'))
@@ -135,7 +135,7 @@ class TestPath < Test::Unit::TestCase
end
def test_basename
- if /(bcc|ms)win\d|mingw|cygwin|djgpp|human|emx/ =~ RUBY_PLATFORM
+ if /(bcc|ms)win\d|mingw|cygwin|djgpp|emx/ =~ RUBY_PLATFORM
# DOSISH_DRIVE_LETTER
assert_equal('', File.basename('C:'))
assert_equal('a', File.basename('C:a'))
@@ -189,7 +189,7 @@ class TestPath < Test::Unit::TestCase
assert_equal('a', File.basename('/a/'))
assert_equal('b', File.basename('/a/b'))
- if /(bcc|ms|cyg)win|mingw|djgpp|human|emx/ =~ RUBY_PLATFORM
+ if /(bcc|ms|cyg)win|mingw|djgpp|emx/ =~ RUBY_PLATFORM
# DOSISH_UNC
assert_equal('/', File.basename('//'))
assert_equal('/', File.basename('//a'))
diff --git a/x68/_dtos18.c b/x68/_dtos18.c
deleted file mode 100644
index 4712a66..0000000
--- a/x68/_dtos18.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
- * --------------------------------------------------------------------
- * This file is written by the Project C Library Group, and completely
- * in public domain. You can freely use, copy, modify, and redistribute
- * the whole contents, without this notice.
- * --------------------------------------------------------------------
- * $Id$
- */
-
-/* System headers */
-#include <stdlib.h>
-#include <sys/xstdlib.h>
-
-/*
-** 本関数は浮動小数点を倍精度整数に変換してから文字列にするため、精度的には
-** 倍精度整数に格納できる桁数までしか扱うことができない。したがって最高精度
-** は18桁である。
-*/
-
-/* File scope variables */
-static double _pos1[32] = {
- 1.0e+17, /* + 0 */
- 1.0e+18, /* + 1 */
- 1.0e+19, /* + 2 */
- 1.0e+20, /* + 3 */
- 1.0e+21, /* + 4 */
- 1.0e+22, /* + 5 */
- 1.0e+23, /* + 6 */
- 1.0e+24, /* + 7 */
- 1.0e+25, /* + 8 */
- 1.0e+26, /* + 9 */
- 1.0e+27, /* +10 */
- 1.0e+28, /* +11 */
- 1.0e+29, /* +12 */
- 1.0e+30, /* +13 */
- 1.0e+31, /* +14 */
- 1.0e+32, /* +15 */
- 1.0e+33, /* +16 */
- 1.0e+34, /* +17 */
- 1.0e+35, /* +18 */
- 1.0e+36, /* +19 */
- 1.0e+37, /* +20 */
- 1.0e+38, /* +21 */
- 1.0e+39, /* +22 */
- 1.0e+40, /* +23 */
- 1.0e+41, /* +24 */
- 1.0e+42, /* +25 */
- 1.0e+43, /* +26 */
- 1.0e+44, /* +27 */
- 1.0e+45, /* +28 */
- 1.0e+46, /* +29 */
- 1.0e+47, /* +30 */
- 1.0e+48, /* +31 */
-};
-
-/* File scope variables */
-static double _neg1[32] = {
- 1.0e+17, /* - 0 */
- 1.0e+16, /* - 1 */
- 1.0e+15, /* - 2 */
- 1.0e+14, /* - 3 */
- 1.0e+13, /* - 4 */
- 1.0e+12, /* - 5 */
- 1.0e+11, /* - 6 */
- 1.0e+10, /* - 7 */
- 1.0e+9, /* - 8 */
- 1.0e+8, /* - 9 */
- 1.0e+7, /* -10 */
- 1.0e+6, /* -11 */
- 1.0e+5, /* -12 */
- 1.0e+4, /* -13 */
- 1.0e+3, /* -14 */
- 1.0e+2, /* -15 */
- 1.0e+1, /* -16 */
- 1.0e+0, /* -17 */
- 1.0e-1, /* -18 */
- 1.0e-2, /* -19 */
- 1.0e-3, /* -20 */
- 1.0e-4, /* -21 */
- 1.0e-5, /* -22 */
- 1.0e-6, /* -23 */
- 1.0e-7, /* -24 */
- 1.0e-8, /* -25 */
- 1.0e-9, /* -26 */
- 1.0e-10, /* -27 */
- 1.0e-11, /* -28 */
- 1.0e-12, /* -29 */
- 1.0e-13, /* -30 */
- 1.0e-14, /* -31 */
-};
-
-/* File scope variables */
-static double _pos2[10] = {
- 1.0e+0, /* 000 */
- 1.0e+32, /* 001 */
- 1.0e+64, /* 010 */
- 1.0e+96, /* 011 */
- 1.0e+128, /* 100 */
- 1.0e+160, /* 101 */
- 1.0e+192, /* 110 */
- 1.0e+224, /* 111 */
- 1.0e+256, /* 1000 */
- 1.0e+288, /* 1001 */
-};
-
-/* File scope variables */
-static double _neg2[10] = {
- 1.0e-0, /* 000 */
- 1.0e-32, /* 001 */
- 1.0e-64, /* 010 */
- 1.0e-96, /* 011 */
- 1.0e-128, /* 100 */
- 1.0e-160, /* 101 */
- 1.0e-192, /* 110 */
- 1.0e-224, /* 111 */
- 1.0e-256, /* 1000 */
- 1.0e-288, /* 1001 */
-};
-
-/* File scope functions */
-static int _cmpd (double x, double y)
-{
- unsigned long vx, vy, rc;
- unsigned long *x_ptr = (unsigned long *) &x;
- unsigned long *y_ptr = (unsigned long *) &y;
-
- /* xの指数ビットを取り出す */
- vx = x_ptr[0] & 0x7FF00000;
-
- /* yの指数ビットを取り出す */
- vy = y_ptr[0] & 0x7FF00000;
-
- /* 指数ビットだけで判断する */
- if ((rc = vy - vx) != 0)
- return rc;
-
- /* xの有効数字の上位ビットを取り出す */
- vx = x_ptr[0] & 0x000FFFFF;
-
- /* yの有効数字の上位ビットを取り出す */
- vy = y_ptr[0] & 0x000FFFFF;
-
- /* 上位ビットだけで判断する */
- if ((rc = vy - vx) != 0)
- return rc;
-
- /* xの有効数字の下位ビットを取り出す */
- vx = x_ptr[1];
-
- /* yの有効数字の下位ビットを取り出す */
- vy = y_ptr[1];
-
- /* 最終判断 */
- return vy - vx;
-}
-
-/* Functions */
-void _dtos18 (double x, int *decpt, int *sign, char *buffer)
-{
- short e2;
- int e, n;
-
- /* 基数2の指数を求める(バイアスなしの状態) */
- e2 = (((unsigned short *) &x)[0] & 0x7FF0U) >> 4;
-
- /* 指数が0の場合は±0.0チェック */
- if (e2 == 0) {
-
- unsigned long hi = ((unsigned long *) &x)[0] & 0xFFFFF;
- unsigned long lo = ((unsigned long *) &x)[1];
-
- /* 有効数字が全部0かどうか */
- if (hi == 0 && lo == 0) {
-
- /* 文字列を設定 */
- buffer[0] = '0';
-
- /* NULを設定 */
- buffer[1] = '\0';
-
- /* 小数点位置を計算 */
- *decpt = 1;
-
- /* 符号を計算 */
- /* *sign = hi & 0x80000000UL; */
- *sign = 0;
-
- /* 確定 */
- return;
-
- }
-
- }
-
- /* 2の指数にバイアスをかけてから10の指数を概算 (approx. log10(2)) */
- e = ((int) ((e2 - 1023) * 77)) >> 8;
-
- /* 指数が正の場合 */
- if (e >= 0) {
-
- /* 指数が32より小さい場合はテーブル1から */
- if (e < 32)
- x *= _neg1[e];
-
- /* 指数が32より大きい場合はテーブル1,2から */
- else
- x *= _neg1[e & 31] * _neg2[e >> 5];
-
- }
-
- /* 指数が負の場合 */
- else {
-
- /* 絶対値を計算 */
- n = -e;
-
- /* 絶対値が32より小さい場合はテーブル1から */
- if (n < 32)
- x *= _pos1[n];
-
- /* 絶対値が32より大きい場合はテーブル1,2から */
- else {
- x *= _pos1[n & 31];
- x *= _pos2[n >> 5];
- }
-
- }
-
- /* スケーリングしすぎた場合は戻す */
- if (_cmpd (1.0e+18, x) >= 0) {
- e++;
- x *= 1.0e-1;
- }
-
- /* スケーリングし足りない場合は追加 */
- else if (_cmpd (1.0e+17, x) < 0) {
- e--;
- x *= 1.0e+1;
- }
-
- /* 小数点位置を計算 */
- *decpt = e + 1;
-
- /* 符号を計算 */
- *sign = ((unsigned char *) &x)[0] & 0x80U;
-
- /* 文字列に変換 */
- _ulltoa ((unsigned long long) x, buffer);
-}
diff --git a/x68/_round.c b/x68/_round.c
deleted file mode 100644
index 761930f..0000000
--- a/x68/_round.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
- * --------------------------------------------------------------------
- * This file is written by the Project C Library Group, and completely
- * in public domain. You can freely use, copy, modify, and redistribute
- * the whole contents, without this notice.
- * --------------------------------------------------------------------
- * $Id$
- */
-/* changed 1997.2.2 by K.Okabe */
-
-/* System headers */
-#include <stdlib.h>
-#include <sys/xstdlib.h>
-
-/* Functions */
-int _round (char *top, char *cur, int undig)
-{
- char *ptr;
-
- /* 最後が5未満なら丸めは必要ない */
- if (undig < '5')
- return 0;
-
- /* ポインタ設定 */
- ptr = cur - 1;
-
- /* 先頭まで戻りながら丸め処理 */
- while (ptr >= top) {
-
- /* 繰り上がらなければそれで終わり */
- if (++(*ptr) <= '9')
- return 0;
-
- /* その桁を0に戻す */
- *ptr-- = '0';
-
- }
-
- /* 先頭を1にする */
- *++ptr = '1';
-
- /* 繰り上がりをしらせる */
- return 1;
-}
diff --git a/x68/fconvert.c b/x68/fconvert.c
deleted file mode 100644
index 9a0bc0e..0000000
--- a/x68/fconvert.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
- * --------------------------------------------------------------------
- * This file is written by the Project C Library Group, and completely
- * in public domain. You can freely use, copy, modify, and redistribute
- * the whole contents, without this notice.
- * --------------------------------------------------------------------
- * $Id$
- */
-/* changed 1997.2.3 by K.Okabe */
-
-/* System headers */
-#include <stdlib.h>
-#include <sys/xstdlib.h>
-
-/* Functions */
-char *fconvert (double x, int ndigit, int *decpt, int *sign, char *buffer)
-{
- int pos, n;
- char *src, *dst;
- char string[24];
- int figup;
-
- /* 18桁の文字列に変換 */
- _dtos18 (x, decpt, sign, string);
-
- /* コピー元アドレスを設定 */
- src = string;
-
- /* コピー先アドレスを設定 */
- dst = buffer;
-
- /* 小数点位置を得る */
- pos = *decpt;
-
- /* 小数点位置が負なら */
- if (pos < 0) {
-
- /* 埋める桁数を計算 */
- n = min (-pos, ndigit);
-
- /* 先頭を0で埋める */
- while (n-- > 0)
- *dst++ = '0';
-
- /* 小数点位置は0になる */
- *decpt = 0;
-
- }
-
- /* 残りのコピー桁数 */
- n = ndigit + pos;
-
- /* 格納先にコピー */
- while (n-- > 0) {
-
- /* 足りない部分は0で埋める */
- if (*src == '\0') {
- while (n-- >= 0)
- *dst++ = '0';
- break;
- }
-
- /* 変換文字列からコピー */
- *dst++ = *src++;
-
- }
-
- /* 丸める */
- *decpt += (figup = _round (buffer, dst, *src));
-
- /* 繰り上がりがあれば末尾に0を追加する */
- if (figup)
- *dst++ = '0';
-
- /* 終端に NUL を打つ */
- *dst = '\0';
-
- /* アドレスを返す */
- return buffer;
-}
diff --git a/x68/select.c b/x68/select.c
deleted file mode 100644
index b4bf464..0000000
--- a/x68/select.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * PROJECT C Library, X68000 PROGRAMMING INTERFACE DEFINITION
- * --------------------------------------------------------------------
- * This file is written by the Project C Library Group, and completely
- * in public domain. You can freely use, copy, modify, and redistribute
- * the whole contents, without this notice.
- * --------------------------------------------------------------------
- * $Id$
- */
-
-#ifndef __IOCS_INLINE__
-#define __IOCS_INLINE__
-#define __DOS_INLINE__
-#define __DOS_DOSCALL__
-#endif
-
-/* System headers */
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include <sys/dos.h>
-#include <sys/iocs.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#if 0
-#include <sys/select.h>
-#include <sys/xsocket.h>
-#endif
-#include <sys/xunistd.h>
-
-/* Macros */
-#define XFD_ISSET(fd,fds) ((fds) && FD_ISSET ((fd), (fds)))
-#define isreadable(mode) ((mode) == O_RDONLY || (mode) == O_RDWR)
-#define iswritable(mode) ((mode) == O_WRONLY || (mode) == O_RDWR)
-#ifndef _POSIX_FD_SETSIZE
-#define _POSIX_FD_SETSIZE OPEN_MAX
-#endif
-
-/* Functions */
-int
-select (int fds, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *timeout)
-{
- fd_set oread, owrite, oexcept;
- int ticks, start;
- int nfds;
-
- if (fds > _POSIX_FD_SETSIZE)
- {
- errno = EINVAL;
- return -1;
- }
-
- FD_ZERO (&oread);
- FD_ZERO (&owrite);
- FD_ZERO (&oexcept);
-
- nfds = 0;
- ticks = -1;
-
- if (timeout)
- {
- ticks = timeout->tv_sec * 100 + timeout->tv_usec / 10000;
- if (ticks < 0)
- {
- errno = EINVAL;
- return -1;
- }
- }
-
- start = _iocs_ontime ();
- for (;;)
- {
- {
- int fd;
-
- for (fd = 0; fd < fds; fd++)
- {
- int accmode;
-
- if (_fddb[fd].inuse == _FD_NOTUSED)
- continue;
-
- accmode = _fddb[fd].oflag & O_ACCMODE;
-
- if (isatty (fd))
- {
- if (XFD_ISSET (fd, rfds) && isreadable (accmode) && _dos_k_keysns ())
- {
- FD_SET (fd, &oread);
- nfds++;
- }
-
- if (XFD_ISSET (fd, wfds) && iswritable (accmode))
- {
- FD_SET (fd, &owrite);
- nfds++;
- }
- }
-#if 0
- else if (_fddb[fd].sockno >= 0)
- {
- if (XFD_ISSET (fd, rfds) && _socklen (_fddb[fd].sockno, 0))
- {
- FD_SET (fd, &oread);
- nfds++;
- }
-
- if (XFD_ISSET (fd, wfds) /* && _socklen (_fddb[fd].sockno, 1) == 0 */)
- {
- FD_SET (fd, &owrite);
- nfds++;
- }
- }
-#endif
- else
- {
- if (XFD_ISSET (fd, rfds) && isreadable (accmode) && _dos_ioctrlis (fd))
- {
- FD_SET (fd, &oread);
- nfds++;
- }
-
- if (XFD_ISSET (fd, wfds) && iswritable (accmode) && _dos_ioctrlos (fd))
- {
- FD_SET (fd, &owrite);
- nfds++;
- }
- }
- }
- }
-
- {
- int rest;
-
- if ((rest = (_iocs_ontime () - start) % 8640000) < 0)
- rest += 8640000;
-
- if (nfds != 0)
- {
- if (ticks >= 0)
- {
- int left;
-
- if ((left = ticks - rest) < 0)
- left = 0;
-
- timeout->tv_sec = left / 100;
- timeout->tv_usec = (left % 100) * 10000;
- }
-
- if (rfds)
- *rfds = oread;
- if (wfds)
- *wfds = owrite;
- if (efds)
- *efds = oexcept;
-
- return nfds;
- }
-
- if (ticks >= 0 && rest > ticks)
- return 0;
- }
-
- _dos_change_pr ();
- }
-}