Commit ed68db4d authored by Eli Zaretskii's avatar Eli Zaretskii

Remove support for DJGPP v1.x (bug#5813).

 src/:
 w16select.c (__dpmi_int): Remove DJGPP v1.x compatibility.
 s/msdos.h: 
 unexec.c (make_hdr, copy_text_and_data): 
 sysdep.c (wait_for_termination, sys_subshell): 
 msdos.c (dos_set_window_size, msdos_set_cursor_shape)
 (IT_set_terminal_modes): 
 (__write, _rename, gethostname, gettimeofday, alarm, fork, kill)
 (dos_ttraw, dos_ttcooked, run_msdos_command, abort): Remove DJGPP
 v1.x code and tests of the value of __DJGPP__.
 (nice, pause, sigsetmask, sigblock): Remove DJGPP v1.x
 compatibility code.
 lread.c: 
 gmalloc.c (memalign): 
 fileio.c (Fcopy_file, check_executable, Ffile_modes): 
 emacs.c (main): 
 dosfns.c (init_dosfns): 
 dired.c (file_name_completion_stat): Remove tests of __DJGPP__.

 msdos/:
 sed3.inp:
 sed2.inp:
 sed1.inp:
 mainmake: Files removed.
parent 814062c7
2010-04-01 Eli Zaretskii <eliz@gnu.org>
Remove support for DJGPP v1.x.
* sed3.inp:
* sed2.inp:
* sed1.inp:
* mainmake: Files removed.
2010-03-27 Eli Zaretskii <eliz@gnu.org>
* sedlisp.inp (VPATH): Don't edit, no longer needed.
......
# Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
# make all to compile and build Emacs.
# make install to install it.
# make TAGS to update tags tables.
#
# make clean or make mostlyclean
# Delete all files from the current directory that are normally
# created by building the program. Don't delete the files that
# record the configuration. Also preserve files that could be made
# by building, but normally aren't because the distribution comes
# with them.
#
# Delete `.dvi' files here if they are not part of the distribution.
#
# make distclean
# Delete all files from the current directory that are created by
# configuring or building the program. If you have unpacked the
# source and built the program without creating any other files,
# `make distclean' should leave only the files that were in the
# distribution.
#
# make realclean
# Delete everything from the current directory that can be
# reconstructed with this Makefile. This typically includes
# everything deleted by distclean, plus more: C source files
# produced by Bison, tags tables, info files, and so on.
#
# make extraclean
# Still more severe - delete backup and autosave files, too.
all: lib-src src
lib-src: FRC
cd lib-src
$(MAKE)
cd ..
src: FRC
cd src
$(MAKE)
cd ..
install: all
-md bin
cd lib-src
coff2exe hexl
coff2exe etags
coff2exe ctags
coff2exe b2m
mv -f hexl.exe etags.exe ctags.exe b2m.exe ../bin/
cd ..
cd src
coff2exe emacs
stubedit emacs.exe minstack=512k
mv -f emacs.exe ../bin/
cd ..
FRC:
TAGS tags: lib-src
cd src
go32 ../lib-src/etags *.[ch] ../lisp/*.el ../lisp/term/*.el
cd ..
check:
@echo "We don't have any tests for GNU Emacs yet."
clean:
cd lib-src
$(MAKE) clean
cd ..
cd src
$(MAKE) clean
cd ..
cd oldxmenu
-$(MAKE) clean
cd ..
# arch-tag: d5a489bc-818e-4c3c-8040-b5205ed0602f
# -sed1.inp-------------------------------------------------------------
# Configuration script for src/makefile
# ----------------------------------------------------------------------
#
# Copyright (C) 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003,
# 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
# This file is free software; as a special exception, the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# ----------------------------------------------------------------------
# In case src/Makefile needs to rebuild `make-doc.exe' (might happen under
# Windows 95), make sure it gets built with commands that DOS
# understands (one command per line).
s/^#.*//
s/^[ \f\t][ \f\t]*$//
s/^ / /
s/\.h\.in/.h-in/
s!^ \./temacs! go32 temacs!
s!/bin/sh!command.com!
/^MAKE *=/s/^/# /
/^SHELL *=/s/^/# /
/^srcdir *=/s/@[^@\n]*@/./
/^VPATH *=/s/@[^@\n]*@/./
/^CC *=/s/@[^@\n]*@/gcc/
/^CPP *=/s/@[^@\n]*@/gcc -e/
/^CFLAGS *=/s/@[^@\n]*@/-O2 -g/
/^LIBS *=/s/@[^@\n]*@//
/^LIBOBJS *=/s/@[^@\n]*@//
/^LN_S *=/s/@[^@\n]*@/ln -s/
/^M_FILE *=/s!@[^@\n]*@!m/intel386.h!
/^S_FILE *=/s!@[^@\n]*@!s/msdos.h!
/^@SET_MAKE@$/s/@SET_MAKE@//
/^.\${libsrc}make-docfile.*>/s!make-docfile!make-doc.exe -o ../etc/DOC!
/^.\${libsrc}make-doc/s!>.*$!!
/^\${libsrc}make-docfile:/c\
${libsrc}make-doc.exe:\
cd ..\
cd lib-src\
$(MAKE) ${MFLAGS} make-docfile -W make-docfile.c\
cd ..\
cd src
/^ cd \${libsrc}; \${MAKE} \${MFLAGS} make-docfile/d
/\${libsrc}make-docfile/s/-docfile[ ]/-doc.exe /
/^[ ]*$/d
/^temacs:/s/prefix-args//
/^temacs:/s/stamp-oldxmenu//
/^ #/d
# arch-tag: 246725c1-79de-4d03-a080-8f19329fa35e
# -sed2.inp-------------------------------------------------------------
# Configuration script for src/config.h
# ----------------------------------------------------------------------
#
# Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
# This file is free software; as a special exception, the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# ----------------------------------------------------------------------
/^#undef LISP_FLOAT_TYPE *$/s/undef/define/
/^#undef GNU_MALLOC *$/s/undef/define/
/^#undef REL_ALLOC *$/s/undef/define/
/^#undef HAVE_SYS_SELECT/i\
/^#undef STDC_HEADERS *$/s/undef/define/
/^#undef HAVE_SYS_TIMEB_H *$/s/undef/define/
/^#undef HAVE_SYS_TIME_H *$/s/undef/define/
# /^#undef HAVE_UNISTD_H *$/s/undef/define/
/^#undef HAVE_GETTIMEOFDAY *$/s/undef/define/
/^#undef HAVE_GETHOSTNAME *$/s/undef/define/
/^#undef HAVE_DUP2 *$/s/undef/define/
/^#undef HAVE_TM_ZONE *$/s/undef/define/
/^#undef LOCALTIME_CACHE *$/s/undef/define/
/^#undef HAVE_TZSET *$/s/undef/define/
/^#undef TM_IN_SYS_TIME *$/s/undef/define/
/^#undef TIME_WITH_SYS_TIME *$/s/undef/define/
/^#undef HAVE_RENAME *$/s/undef/define/
/^#undef HAVE_CLOSEDIR *$/s/undef/define/
/^#undef HAVE_RANDOM *$/s/undef/define/
/^#undef HAVE_MKDIR *$/s/undef/define/
/^#undef HAVE_RMDIR *$/s/undef/define/
/^#undef HAVE_BCMP *$/s/undef/define/
/^#undef HAVE_BCOPY *$/s/undef/define/
/^#undef HAVE_FREXP *$/s/undef/define/
/^#undef HAVE_FTIME *$/s/undef/define/
/^#undef HAVE_MKTIME *$/s/undef/define/
/^#undef HAVE_STRERROR *$/s/undef/define/
/^#undef HAVE_TIMEVAL *$/s/undef/define/
s/^#define USER_FULL_NAME .*$/#define USER_FULL_NAME (getenv ("NAME"))/
s/^#undef STACK_DIRECTION *$/#define STACK_DIRECTION -1/
s/^#undef EMACS_CONFIGURATION *$/#define EMACS_CONFIGURATION "i386-pc-msdosdjgpp"/
s/^#undef EMACS_CONFIG_OPTIONS *$/#define EMACS_CONFIG_OPTIONS "-"/
s!^#undef config_opsysfile *$!#define config_opsysfile "s/msdos.h"!
s!^#undef config_machfile *$!#define config_machfile "m/intel386.h"!
s/^#undef PROTOTYPES *$/#define PROTOTYPES 1/
s/^#undef POINTER_TYPE *$/#define POINTER_TYPE void/
# arch-tag: 31840234-109a-41ab-a675-7a3844978299
# -sed3.inp-------------------------------------------------------------
# Configuration script for lib-src/makefile
# ----------------------------------------------------------------------
#
# Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
# This file is free software; as a special exception, the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# ----------------------------------------------------------------------
/^# DIST: /d
/^SHELL *=/s/^/# /
/^CC *=/s/=.*$/=gcc/
# Actually, here we should patch in the exact version number, but only
# [ce]tags uses it. Don't pass it. This is more update-resistant.
/-DVERSION=/s/-DVERSION="\\"\${version}\\""//
/^configname *=/s/=.*$/=msdos/
/^archlibdir *=/s!=.*$!=/emacs/bin!
/^bindir *=/s!=.*$!=/emacs/bin!
/^libdir *=/s!=.*$!=/emacs/bin!
/^srcdir *=/s!=.*$!=.!
/^VPATH *=/s!=.*$!=.!
/^KRB4LIB *=/s/@[^@\n]*@//g
/^DESLIB *=/s/@[^@\n]*@//g
/^KRB5LIB *=/s/@[^@\n]*@//g
/^CRYPTOLIB *=/s/@[^@\n]*@//g
/^COM_ERRLIB *=/s/@[^@\n]*@//g
/^LIBHESIOD *=/s/@[^@\n]*@//g
/^LIBRESOLV *=/s/@[^@\n]*@//g
/^LIBS_MAIL *=/s/@[^@\n]*@//g
/^CFLAGS *=/s!=.*$!=-O2 -g!
/^C_SWITCH_SYSTEM *=/s!=.*$!=-DMSDOS!
/^LOADLIBES *=/s!=.*$!=!
/^ALLOCA *=/s!=.*$!=alloca.o!
/^INSTALLABLES/s/emacsclient *//
s!^ \./! go32 ./!
/^UTILITIES=/s/ wakeup//
/^UTILITIES=/s/ movemail//
/^UTILITIES=/s/ emacsserver//
/^UTILITIES=/s/ timer//
/^all *:/s/$/ make-docfile/
s!^ go32 ./test-distrib! go32 ./test-dis!
/-o make-docfile/a\
coff2exe make-docfile
# arch-tag: cac6f5c7-3dbf-4e84-9d0c-44f0126f0ea8
2010-04-01 Eli Zaretskii <eliz@gnu.org>
Remove support for DJGPP v1.x (bug#5813).
* w16select.c (__dpmi_int): Remove DJGPP v1.x compatibility.
* s/msdos.h:
* unexec.c (make_hdr, copy_text_and_data):
* sysdep.c (wait_for_termination, sys_subshell):
* msdos.c (dos_set_window_size, msdos_set_cursor_shape)
(IT_set_terminal_modes):
(__write, _rename, gethostname, gettimeofday, alarm, fork, kill)
(dos_ttraw, dos_ttcooked, run_msdos_command, abort): Remove DJGPP
v1.x code and tests of the value of __DJGPP__.
(nice, pause, sigsetmask, sigblock): Remove DJGPP v1.x
compatibility code.
* lread.c:
* gmalloc.c (memalign):
* fileio.c (Fcopy_file, check_executable, Ffile_modes):
* emacs.c (main):
* dosfns.c (init_dosfns):
* dired.c (file_name_completion_stat): Remove tests of __DJGPP__.
* xdisp.c (set_cursor_from_row): Fix cursor positioning when the
string with `cursor' property comes from an `after-string'
overlay. (Bug#5816)
......
......@@ -859,7 +859,6 @@ file_name_completion_stat (dirname, dp, st_addr)
char *fullname = (char *) alloca (len + pos + 2);
#ifdef MSDOS
#if __DJGPP__ > 1
/* Some fields of struct stat are *very* expensive to compute on MS-DOS,
but aren't required here. Avoid computing the following fields:
st_inode, st_size and st_nlink for directories, and the execute bits
......@@ -868,7 +867,6 @@ file_name_completion_stat (dirname, dp, st_addr)
unsigned short save_djstat_flags = _djstat_flags;
_djstat_flags = _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
#endif /* __DJGPP__ > 1 */
#endif /* MSDOS */
bcopy (SDATA (dirname), fullname, pos);
......@@ -888,9 +886,7 @@ file_name_completion_stat (dirname, dp, st_addr)
#else
value = stat (fullname, st_addr);
#ifdef MSDOS
#if __DJGPP__ > 1
_djstat_flags = save_djstat_flags;
#endif /* __DJGPP__ > 1 */
#endif /* MSDOS */
return value;
#endif /* S_IFLNK */
......
......@@ -48,10 +48,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <grp.h>
#include <crt0.h>
#ifndef __DJGPP_MINOR__
# define __tb _go32_info_block.linear_address_of_transfer_buffer;
#endif
DEFUN ("int86", Fint86, Sint86, 2, 2, 0,
doc: /* Call specific MS-DOS interrupt number INTERRUPT with REGISTERS.
Return the updated REGISTER vector.
......@@ -385,8 +381,6 @@ init_dosfns ()
}
#endif /* !HAVE_X_WINDOWS */
#if __DJGPP__ >= 2
/* Without this, we never see hidden files.
Don't OR it with the previous value, so the value recorded at dump
time, possibly with `preserve-case' flags set, won't get through. */
......@@ -398,7 +392,6 @@ init_dosfns ()
if (!NILP (Fmsdos_long_file_names ()))
__opendir_flags |= __OPENDIR_PRESERVE_CASE;
#endif /* __DJGPP_MINOR__ == 0 */
#endif /* __DJGPP__ >= 2 */
}
#ifndef HAVE_X_WINDOWS
......
......@@ -945,7 +945,6 @@ main (int argc, char **argv)
#endif /* MSDOS || WINDOWSNT */
#ifdef MSDOS
#if __DJGPP__ >= 2
if (!isatty (fileno (stdin)))
setmode (fileno (stdin), O_BINARY);
if (!isatty (fileno (stdout)))
......@@ -953,11 +952,6 @@ main (int argc, char **argv)
fflush (stdout);
setmode (fileno (stdout), O_BINARY);
}
#else /* not __DJGPP__ >= 2 */
(stdin)->_flag &= ~_IOTEXT;
(stdout)->_flag &= ~_IOTEXT;
(stderr)->_flag &= ~_IOTEXT;
#endif /* not __DJGPP__ >= 2 */
#endif /* MSDOS */
#ifdef SET_EMACS_PRIORITY
......
......@@ -79,11 +79,9 @@ extern int errno;
#ifdef MSDOS
#include "msdos.h"
#include <sys/param.h>
#if __DJGPP__ >= 2
#include <fcntl.h>
#include <string.h>
#endif
#endif
#ifdef DOS_NT
#define CORRECT_DIR_SEPS(s) \
......@@ -2012,7 +2010,6 @@ uid and gid of FILE to NEWNAME. */)
copyable by us. */
input_file_statable_p = (fstat (ifd, &st) >= 0);
#if !defined (MSDOS) || __DJGPP__ > 1
if (out_st.st_mode != 0
&& st.st_dev == out_st.st_dev && st.st_ino == out_st.st_ino)
{
......@@ -2020,7 +2017,6 @@ uid and gid of FILE to NEWNAME. */)
report_file_error ("Input and output files are the same",
Fcons (file, Fcons (newname, Qnil)));
}
#endif
#if defined (S_ISREG) && defined (S_ISLNK)
if (input_file_statable_p)
......@@ -2091,7 +2087,7 @@ uid and gid of FILE to NEWNAME. */)
emacs_close (ifd);
#if defined (__DJGPP__) && __DJGPP__ > 1
#ifdef MSDOS
if (input_file_statable_p)
{
/* In DJGPP v2.0 and later, fstat usually returns true file mode bits,
......@@ -2101,7 +2097,7 @@ uid and gid of FILE to NEWNAME. */)
if ((_djstat_flags & _STFAIL_WRITEBIT) == 0)
chmod (SDATA (encoded_newname), st.st_mode & 07777);
}
#endif /* DJGPP version 2 or newer */
#endif /* MSDOS */
#endif /* not WINDOWSNT */
/* Discard the unwind protects. */
......@@ -2477,16 +2473,7 @@ check_executable (filename)
struct stat st;
if (stat (filename, &st) < 0)
return 0;
#if defined (WINDOWSNT) || (defined (MSDOS) && __DJGPP__ > 1)
return ((st.st_mode & S_IEXEC) != 0);
#else
return (S_ISREG (st.st_mode)
&& len >= 5
&& (xstrcasecmp ((suffix = filename + len-4), ".com") == 0
|| xstrcasecmp (suffix, ".exe") == 0
|| xstrcasecmp (suffix, ".bat") == 0)
|| (st.st_mode & S_IFMT) == S_IFDIR);
#endif /* not WINDOWSNT */
#else /* not DOS_NT */
#ifdef HAVE_EUIDACCESS
return (euidaccess (filename, 1) >= 0);
......@@ -2885,10 +2872,6 @@ Return nil, if file does not exist or is not accessible. */)
if (stat (SDATA (absname), &st) < 0)
return Qnil;
#if defined (MSDOS) && __DJGPP__ < 2
if (check_executable (SDATA (absname)))
st.st_mode |= S_IEXEC;
#endif /* MSDOS && __DJGPP__ < 2 */
return make_number (st.st_mode & 07777);
}
......
......@@ -122,7 +122,7 @@ extern __ptr_t calloc PP ((__malloc_size_t __nmemb, __malloc_size_t __size));
extern void free PP ((__ptr_t __ptr));
/* Allocate SIZE bytes allocated to ALIGNMENT bytes. */
#if ! (defined (_MALLOC_INTERNAL) && __DJGPP__ - 0 == 1) /* Avoid conflict. */
#if !defined (_MALLOC_INTERNAL) || defined (MSDOS) /* Avoid conflict. */
extern __ptr_t memalign PP ((__malloc_size_t __alignment,
__malloc_size_t __size));
extern int posix_memalign PP ((__ptr_t *, __malloc_size_t,
......@@ -1763,13 +1763,6 @@ Fifth Floor, Boston, MA 02110-1301, USA. */
#include <malloc.h>
#endif
#if __DJGPP__ - 0 == 1
/* There is some problem with memalign in DJGPP v1 and we are supposed
to omit it. Noone told me why, they just told me to do it. */
#else
__ptr_t (*__memalign_hook) PP ((__malloc_size_t __size,
__malloc_size_t __alignment));
......@@ -1878,7 +1871,6 @@ posix_memalign (memptr, alignment, size)
return 0;
}
#endif /* Not DJGPP v1 */
/* Allocate memory on a page boundary.
Copyright (C) 1991, 92, 93, 94, 96 Free Software Foundation, Inc.
......
......@@ -41,9 +41,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include "blockinput.h"
#ifdef MSDOS
#if __DJGPP__ < 2
#include <unistd.h> /* to get X_OK */
#endif
#include "msdos.h"
#endif
......
......@@ -39,7 +39,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <sys/stat.h> /* for _fixpath */
#include <unistd.h> /* for chdir, dup, dup2, etc. */
#include <dir.h> /* for getdisk */
#if __DJGPP__ >= 2
#pragma pack(0) /* dir.h does a pack(4), which isn't GCC's default */
#include <fcntl.h>
#include <io.h> /* for setmode */
......@@ -47,7 +46,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <sys/farptr.h> /* for _farsetsel, _farnspokeb */
#include <libc/dosio.h> /* for _USE_LFN */
#include <conio.h> /* for cputs */
#endif
#include "msdos.h"
#include "systime.h"
......@@ -81,8 +79,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define _dos_ds _go32_info_block.selector_for_linear_memory
#endif
#if __DJGPP__ > 1
#include <signal.h>
#include "syssignal.h"
......@@ -104,7 +100,6 @@ int _crt0_startup_flags = (_CRT0_FLAG_UNIX_SBRK | _CRT0_FLAG_FILL_SBRK_MEMORY);
#endif /* GNU_MALLOC */
#endif /* not SYSTEM_MALLOC */
#endif /* __DJGPP__ > 1 */
static unsigned long
event_timestamp ()
......@@ -427,7 +422,6 @@ extern Lisp_Object Qbar, Qhbar;
colors for newly-created frames. */
static int initial_screen_colors[2];
#if __DJGPP__ > 1
/* Update the screen from a part of relocated DOS/V screen buffer which
begins at OFFSET and includes COUNT characters. */
static void
......@@ -444,7 +438,6 @@ dosv_refresh_virtual_screen (int offset, int count)
regs.x.cx = count;
__dpmi_int (0x10, &regs);
}
#endif
static void
dos_direct_output (y, x, buf, len)
......@@ -456,67 +449,12 @@ dos_direct_output (y, x, buf, len)
int t = t0 + (int) ScreenPrimary;
int l0 = len;
#if (__DJGPP__ < 2)
while (--len >= 0) {
dosmemput (buf++, 1, t);
t += 2;
}
#else
/* This is faster. */
for (_farsetsel (_dos_ds); --len >= 0; t += 2, buf++)
_farnspokeb (t, *buf);
if (screen_virtual_segment)
dosv_refresh_virtual_screen (t0, l0);
#endif
}
#endif
/* Flash the screen as a substitute for BEEPs. */
#if (__DJGPP__ < 2)
static void
do_visible_bell (xorattr)
unsigned char xorattr;
{
asm volatile
(" movb $1,%%dl \n\
visible_bell_0: \n\
movl _ScreenPrimary,%%eax \n\
call dosmemsetup \n\
movl %%eax,%%ebx \n\
movl %1,%%ecx \n\
movb %0,%%al \n\
incl %%ebx \n\
visible_bell_1: \n\
xorb %%al,%%gs:(%%ebx) \n\
addl $2,%%ebx \n\
decl %%ecx \n\
jne visible_bell_1 \n\
decb %%dl \n\
jne visible_bell_3 \n\
visible_bell_2: \n\
movzwl %%ax,%%eax \n\
movzwl %%ax,%%eax \n\
movzwl %%ax,%%eax \n\
movzwl %%ax,%%eax \n\
decw %%cx \n\
jne visible_bell_2 \n\
jmp visible_bell_0 \n\
visible_bell_3:"
: /* no output */
: "m" (xorattr), "g" (screen_size)
: "%eax", "%ebx", /* "%gs",*/ "%ecx", "%edx");
}
static void
ScreenVisualBell (void)
{
/* This creates an xor-mask that will swap the default fore- and
background colors. */
do_visible_bell (((FRAME_FOREGROUND_PIXEL (SELECTED_FRAME ())
^ FRAME_BACKGROUND_PIXEL (SELECTED_FRAME ()))
* 0x11) & 0x7f);
}
#endif
......@@ -611,9 +549,6 @@ dos_set_window_size (rows, cols)
/* Find one of the dimensions supported by standard EGA/VGA
which gives us at least the required dimensions. */
#if __DJGPP__ > 1
else
{
static struct {
......@@ -642,41 +577,6 @@ dos_set_window_size (rows, cols)
}
}
#else /* not __DJGPP__ > 1 */
else if (*rows <= 25)
{
if (current_rows != 25 || current_cols != 80)
{
regs.x.ax = 3;
int86 (0x10, &regs, &regs);
regs.x.ax = 0x1101;
regs.h.bl = 0;
int86 (0x10, &regs, &regs);
regs.x.ax = 0x1200;
regs.h.bl = 32;
int86 (0x10, &regs, &regs);
regs.x.ax = 3;
int86 (0x10, &regs, &regs);
}
}
else if (*rows <= 50)
if (have_vga && (current_rows != 50 || current_cols != 80)
|| *rows <= 43 && (current_rows != 43 || current_cols != 80))
{
regs.x.ax = 3;
int86 (0x10, &regs, &regs);
regs.x.ax = 0x1112;
regs.h.bl = 0;
int86 (0x10, &regs, &regs);
regs.x.ax = 0x1200;
regs.h.bl = 32;
int86 (0x10, &regs, &regs);
regs.x.ax = 0x0100;
regs.x.cx = 7;
int86 (0x10, &regs, &regs);
}
#endif /* not __DJGPP__ > 1 */
if (have_mouse)
{
......@@ -693,7 +593,6 @@ dos_set_window_size (rows, cols)
screen_size_Y = *rows;
screen_size = *cols * *rows;
#if __DJGPP__ > 1
/* If the dimensions changed, the mouse highlight info is invalid. */
if (current_rows != *rows || current_cols != *cols)
{
......@@ -708,7 +607,6 @@ dos_set_window_size (rows, cols)
dpyinfo->mouse_face_window = Qnil;
}
}
#endif
/* Enable bright background colors. */
bright_bg ();
......@@ -747,7 +645,6 @@ mouse_off_maybe ()
static void
msdos_set_cursor_shape (struct frame *f, int start_line, int width)
{
#if __DJGPP__ > 1
unsigned desired_cursor;
__dpmi_regs regs;