summaryrefslogtreecommitdiff
path: root/emulators/vx68k
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2004-12-23 04:30:47 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2004-12-23 04:30:47 +0000
commita9b0fa5bf5dba3c284f27435c955fe4ffe3ee361 (patch)
tree4116387668f99739e30b97a04f732f2249e12e39 /emulators/vx68k
parentUpdate databases/sqlite3 to 3.0.8 (diff)
Should now build with both older and recent GCCs.
Notes
Notes: svn path=/head/; revision=124884
Diffstat (limited to 'emulators/vx68k')
-rw-r--r--emulators/vx68k/Makefile11
-rw-r--r--emulators/vx68k/files/patch-include::vx68k::memory.h320
-rw-r--r--emulators/vx68k/files/patch-libvx68k::areaset.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::crtcmem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::dmacmem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::fdcmem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::fontrom.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::gvideomem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::mainmem.cc56
-rw-r--r--emulators/vx68k/files/patch-libvx68k::mfpmem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::msm6258vmem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::opmmem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::palettemem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::ppimem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::sccmem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::spritemem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::sram.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::sysportmem.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::systemrom.cc38
-rw-r--r--emulators/vx68k/files/patch-libvx68k::textvram.cc38
-rw-r--r--emulators/vx68k/files/patch-vx68k-gtk::bin::getopt.h11
21 files changed, 1037 insertions, 7 deletions
diff --git a/emulators/vx68k/Makefile b/emulators/vx68k/Makefile
index f2ca52112f98..37219c5daf83 100644
--- a/emulators/vx68k/Makefile
+++ b/emulators/vx68k/Makefile
@@ -31,13 +31,10 @@ CPPFLAGS= -I${LOCALBASE}/include -I${X11BASE}/include ${PTHREAD_CFLAGS}
LDFLAGS= -L${LOCALBASE}/lib -L${X11BASE}/lib -lGL -lGLU \
${PTHREAD_LIBS}
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} >= 502000
-BROKEN= "Does not compile"
-.endif
-
post-patch:
@${REINPLACE_CMD} -e "s,Bison ,Bison,g" ${WRKSRC}/vx68k-gtk/configure
+ @${REINPLACE_CMD} -e '/^#define _POSIX_C_SOURCE 199506L/d' \
+ ${WRKSRC}/vx68k-gtk/libvx68k-gtk/gl.cc \
+ ${WRKSRC}/vx68k-gtk/libvx68k-gtk/gtkconsole.cc
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/emulators/vx68k/files/patch-include::vx68k::memory.h b/emulators/vx68k/files/patch-include::vx68k::memory.h
new file mode 100644
index 000000000000..629a778d5916
--- /dev/null
+++ b/emulators/vx68k/files/patch-include::vx68k::memory.h
@@ -0,0 +1,320 @@
+--- include/vx68k/memory.h.orig Fri Dec 22 21:12:50 2000
++++ include/vx68k/memory.h Wed Dec 1 18:24:18 2004
+@@ -24,6 +24,8 @@
+ #include <vm68k/processor.h>
+ #include <vm68k/memory.h>
+
++#include <iterator.h>
++
+ #include <pthread.h>
+
+ #include <vector>
+@@ -70,12 +72,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. These methods shall always fail. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+
+ public:
+ /* Attaches or detaches an execution unit. */
+@@ -113,14 +115,14 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
+- uint32_type get_32(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
++ uint32_type get_32(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
+- void put_32(uint32_type address, uint32_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
++ void put_32(uint32_type address, uint32_type, function_code) throw();
+
+ public:
+ void set_super_area(size_t n);
+@@ -132,12 +134,12 @@
+ {
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+ };
+
+ /* Raster iterator for the text VRAM. This class is used by the
+@@ -204,11 +206,11 @@
+ ~text_video_memory();
+
+ public:
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+
+ public:
+ /* Installs IOCS calls on the text video memory. */
+@@ -279,12 +281,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+
+ public:
+ /* Returns true if VDISP interrupts are enabled. */
+@@ -318,12 +320,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+
+ public:
+ /* Checks if text colors are modified. This function may be
+@@ -346,12 +348,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+
+ public:
+ /* Installs IOCS calls on the DMAC. */
+@@ -372,12 +374,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+ };
+
+ /* MFP input/output port memory. This memory is mapped to the
+@@ -386,12 +388,12 @@
+ {
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+ };
+
+ /* System ports memory. This memory is mapped to the address range
+@@ -400,12 +402,12 @@
+ {
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+ };
+
+ /* OPM input/output port memory. */
+@@ -434,12 +436,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+
+ public:
+ int status() const {return _status;}
+@@ -462,12 +464,12 @@
+ {
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int value, function_code);
+- void put_16(uint32_type address, uint16_type value, function_code);
++ void put_8(uint32_type address, int value, function_code) throw();
++ void put_16(uint32_type address, uint16_type value, function_code) throw();
+
+ public:
+ /* Installs IOCS calls on this ADPCM chip. */
+@@ -480,12 +482,12 @@
+ {
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int value, function_code);
+- void put_16(uint32_type address, uint16_type value, function_code);
++ void put_8(uint32_type address, int value, function_code) throw();
++ void put_16(uint32_type address, uint16_type value, function_code) throw();
+
+ public:
+ /* Installs IOCS calls on this ADPCM chip. */
+@@ -528,12 +530,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+
+ public:
+ /* Installs IOCS calls on the first COM port and the mouse. */
+@@ -572,12 +574,12 @@
+ {
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+ };
+
+ /* Sprite controller memory. */
+@@ -585,12 +587,12 @@
+ {
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+ };
+
+ /* SRAM. */
+@@ -605,12 +607,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+ };
+
+ /* Font ROM. */
+@@ -642,12 +644,12 @@
+
+ public:
+ /* Reads data from this object. */
+- int get_8(uint32_type address, function_code) const;
+- uint16_type get_16(uint32_type address, function_code) const;
++ int get_8(uint32_type address, function_code) const throw();
++ uint16_type get_16(uint32_type address, function_code) const throw();
+
+ /* Writes data to this object. */
+- void put_8(uint32_type address, int, function_code);
+- void put_16(uint32_type address, uint16_type, function_code);
++ void put_8(uint32_type address, int, function_code) throw();
++ void put_16(uint32_type address, uint16_type, function_code) throw();
+
+ public:
+ /* Installs IOCS calls on the system font. */
diff --git a/emulators/vx68k/files/patch-libvx68k::areaset.cc b/emulators/vx68k/files/patch-libvx68k::areaset.cc
new file mode 100644
index 000000000000..f09bb905b5a1
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::areaset.cc
@@ -0,0 +1,38 @@
+--- libvx68k/areaset.cc.orig Sun Jul 1 21:12:40 2001
++++ libvx68k/areaset.cc Wed Dec 1 18:24:18 2004
+@@ -37,7 +37,7 @@
+ using namespace std;
+
+ uint16_type
+-area_set::get_16(uint32_type address, function_code fc) const
++area_set::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef L
+ L("class area_set: get_16 fc=%d address=%#010x\n", fc, address);
+@@ -46,7 +46,7 @@
+ }
+
+ int
+-area_set::get_8(uint32_type address, function_code fc) const
++area_set::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef L
+ L("class area_set: get_8 fc=%d address=%#010x\n", fc, address);
+@@ -55,7 +55,7 @@
+ }
+
+ void
+-area_set::put_8(uint32_type address, int value, function_code fc)
++area_set::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ address &= 0xffffffffu;
+ value &= 0xffu;
+@@ -84,7 +84,7 @@
+ }
+
+ void
+-area_set::put_16(uint32_type address, uint16_type value, function_code fc)
++area_set::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ this->put_8(address / 2 * 2 + 1, value, fc);
+ }
diff --git a/emulators/vx68k/files/patch-libvx68k::crtcmem.cc b/emulators/vx68k/files/patch-libvx68k::crtcmem.cc
new file mode 100644
index 000000000000..4cff01c03f99
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::crtcmem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/crtcmem.cc.orig Sat Jun 30 20:53:13 2001
++++ libvx68k/crtcmem.cc Wed Dec 1 18:24:18 2004
+@@ -76,7 +76,7 @@
+ }
+
+ uint16_type
+-crtc_memory::get_16(uint32_type address, function_code fc) const
++crtc_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class crtc_memory: get_16: fc=%d address=0x%08lx\n", fc, address + 0UL);
+@@ -92,7 +92,7 @@
+ }
+
+ int
+-crtc_memory::get_8(uint32_type address, function_code fc) const
++crtc_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class crtc_memory: get_8: fc=%d address=0x%08lx\n", fc, address + 0UL);
+@@ -106,7 +106,7 @@
+ }
+
+ void
+-crtc_memory::put_16(uint32_type address, uint16_type value, function_code fc)
++crtc_memory::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class crtc_memory: put_16: fc=%d address=0x%08lx value=0x%04x\n",
+@@ -119,7 +119,7 @@
+ }
+
+ void
+-crtc_memory::put_8(uint32_type address, int value, function_code fc)
++crtc_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class crtc_memory: put_8: fc=%d address=0x%08lx value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::dmacmem.cc b/emulators/vx68k/files/patch-libvx68k::dmacmem.cc
new file mode 100644
index 000000000000..2e592d02316c
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::dmacmem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/dmacmem.cc.orig Sat Jun 30 20:53:29 2001
++++ libvx68k/dmacmem.cc Wed Dec 1 18:24:18 2004
+@@ -103,7 +103,7 @@
+ }
+
+ uint16_type
+-dmac_memory::get_16(uint32_type address, function_code fc) const
++dmac_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class dmac_memory: get_16: fc=%d address=0x%08x\n", fc, address + 0UL);
+@@ -115,7 +115,7 @@
+ }
+
+ int
+-dmac_memory::get_8(uint32_type address, function_code fc) const
++dmac_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class dmac_memory: get_8: fc=%d address=0x%08x\n", fc, address + 0UL);
+@@ -127,7 +127,7 @@
+ }
+
+ void
+-dmac_memory::put_16(uint32_type address, uint16_type value, function_code fc)
++dmac_memory::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class dmac_memory: put_16: fc=%d address=0x%08x value=0x%04x\n",
+@@ -139,7 +139,7 @@
+ }
+
+ void
+-dmac_memory::put_8(uint32_type address, int value, function_code fc)
++dmac_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class dmac_memory: put_8: fc=%d address=0x%08x value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::fdcmem.cc b/emulators/vx68k/files/patch-libvx68k::fdcmem.cc
new file mode 100644
index 000000000000..58e9205d1c0b
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::fdcmem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/fdcmem.cc.orig Sat Jun 30 20:53:59 2001
++++ libvx68k/fdcmem.cc Wed Dec 1 18:24:18 2004
+@@ -49,7 +49,7 @@
+ }
+
+ int
+-fdc_memory::get_8(uint32_type address, function_code fc) const
++fdc_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ address &= 0xffffffff;
+ #ifdef LG
+@@ -66,7 +66,7 @@
+ }
+
+ uint16_type
+-fdc_memory::get_16(uint32_type address, function_code fc) const
++fdc_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ address &= 0xffffffff & ~1;
+ #ifdef LG
+@@ -82,7 +82,7 @@
+ }
+
+ void
+-fdc_memory::put_8(uint32_type address, int value, function_code fc)
++fdc_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ address &= 0xffffffff;
+ value &= 0xff;
+@@ -98,7 +98,7 @@
+ }
+
+ void
+-fdc_memory::put_16(uint32_type address, uint16_type value, function_code fc)
++fdc_memory::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ address &= 0xffffffff & ~1;
+ value &= 0xff;
diff --git a/emulators/vx68k/files/patch-libvx68k::fontrom.cc b/emulators/vx68k/files/patch-libvx68k::fontrom.cc
new file mode 100644
index 000000000000..eb93caa780f9
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::fontrom.cc
@@ -0,0 +1,38 @@
+--- libvx68k/fontrom.cc.orig Sat Jun 30 20:55:03 2001
++++ libvx68k/fontrom.cc Wed Dec 1 18:24:18 2004
+@@ -322,7 +322,7 @@
+ }
+
+ uint16_type
+-font_rom::get_16(uint32_type address, function_code fc) const
++font_rom::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class font_rom: get_16: fc=%d address=0x%08lx\n", fc, address + 0UL);
+@@ -340,7 +340,7 @@
+ }
+
+ int
+-font_rom::get_8(uint32_type address, function_code fc) const
++font_rom::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class font_rom: get_8: fc=%d address=0x%08lx\n", fc, address + 0UL);
+@@ -356,7 +356,7 @@
+ }
+
+ void
+-font_rom::put_16(uint32_type address, uint16_type value, function_code fc)
++font_rom::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class font_rom: put_16: fc=%d address=0x%08lx value=0x%04x\n",
+@@ -368,7 +368,7 @@
+ }
+
+ void
+-font_rom::put_8(uint32_type address, int value, function_code fc)
++font_rom::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class font_rom: put_8: fc=%d address=0x%08lx value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::gvideomem.cc b/emulators/vx68k/files/patch-libvx68k::gvideomem.cc
new file mode 100644
index 000000000000..ab5cad968a51
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::gvideomem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/gvideomem.cc.orig Sat Jun 30 20:52:35 2001
++++ libvx68k/gvideomem.cc Wed Dec 1 18:24:18 2004
+@@ -37,7 +37,7 @@
+ using namespace std;
+
+ uint16_type
+-graphics_video_memory::get_16(uint32_type address, function_code fc) const
++graphics_video_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class graphics_video_memory: get_16: fc=%d address=0x%08lx\n",
+@@ -51,7 +51,7 @@
+ }
+
+ int
+-graphics_video_memory::get_8(uint32_type address, function_code fc) const
++graphics_video_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class graphics_video_memory: get_8: fc=%d address=0x%08lx\n",
+@@ -66,7 +66,7 @@
+
+ void
+ graphics_video_memory::put_16(uint32_type address, uint16_type value,
+- function_code fc)
++ function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class graphics_video_memory: put_16: fc=%d address=0x%08lx value=0x%04x\n",
+@@ -79,7 +79,7 @@
+ }
+
+ void
+-graphics_video_memory::put_8(uint32_type address, int value, function_code fc)
++graphics_video_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class graphics_video_memory: put_8: fc=%d address=0x%08lx value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::mainmem.cc b/emulators/vx68k/files/patch-libvx68k::mainmem.cc
new file mode 100644
index 000000000000..7ab2c27d0afa
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::mainmem.cc
@@ -0,0 +1,56 @@
+--- libvx68k/mainmem.cc.orig Sun Jul 1 21:25:57 2001
++++ libvx68k/mainmem.cc Wed Dec 1 18:24:18 2004
+@@ -55,7 +55,7 @@
+ }
+
+ int
+-main_memory::get_8(uint32_type address, function_code fc) const
++main_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ if (address % 0x1000000U >= end)
+ throw bus_error(address, READ | fc);
+@@ -75,7 +75,7 @@
+ }
+
+ uint16_type
+-main_memory::get_16(uint32_type address, function_code fc) const
++main_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ assert((address & 1) == 0);
+ if (address % 0x1000000U >= end)
+@@ -89,7 +89,7 @@
+ }
+
+ uint32_type
+-main_memory::get_32(uint32_type address, function_code fc) const
++main_memory::get_32(uint32_type address, function_code fc) const throw()
+ {
+ assert((address & 3) == 0);
+ if (address % 0x1000000U >= end)
+@@ -106,7 +106,7 @@
+ }
+
+ void
+-main_memory::put_8(uint32_type address, int value, function_code fc)
++main_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ value &= 0xff;
+
+@@ -126,7 +126,7 @@
+ }
+
+ void
+-main_memory::put_16(uint32_type address, uint16_type value, function_code fc)
++main_memory::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ assert((address & 1) == 0);
+ value &= 0xffff;
+@@ -140,7 +140,7 @@
+ }
+
+ void
+-main_memory::put_32(uint32_type address, uint32_type value, function_code fc)
++main_memory::put_32(uint32_type address, uint32_type value, function_code fc) throw()
+ {
+ assert((address & 3) == 0);
+ value &= 0xffffffffU;
diff --git a/emulators/vx68k/files/patch-libvx68k::mfpmem.cc b/emulators/vx68k/files/patch-libvx68k::mfpmem.cc
new file mode 100644
index 000000000000..ce733bea09e8
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::mfpmem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/mfpmem.cc.orig Sat Jun 30 20:53:36 2001
++++ libvx68k/mfpmem.cc Wed Dec 1 18:24:18 2004
+@@ -37,7 +37,7 @@
+ using namespace std;
+
+ uint16_type
+-mfp_memory::get_16(uint32_type address, function_code fc) const
++mfp_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class mfp_memory: get_16: fc=%d address=0x%08lx\n",
+@@ -51,7 +51,7 @@
+ }
+
+ int
+-mfp_memory::get_8(uint32_type address, function_code fc) const
++mfp_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class mfp_memory: get_8: fc=%d address=0x%08lx\n",
+@@ -67,7 +67,7 @@
+ }
+
+ void
+-mfp_memory::put_16(uint32_type address, uint16_type value, function_code fc)
++mfp_memory::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class opm_memory: put_16: fc=%d address=0x%08lx value=0x%04x\n",
+@@ -80,7 +80,7 @@
+ }
+
+ void
+-mfp_memory::put_8(uint32_type address, int value, function_code fc)
++mfp_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class opm_memory: put_8: fc=%d address=0x%08lx value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::msm6258vmem.cc b/emulators/vx68k/files/patch-libvx68k::msm6258vmem.cc
new file mode 100644
index 000000000000..960d0a25b076
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::msm6258vmem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/msm6258vmem.cc.orig Sat Jun 30 20:53:54 2001
++++ libvx68k/msm6258vmem.cc Wed Dec 1 18:24:18 2004
+@@ -48,7 +48,7 @@
+ }
+
+ int
+-msm6258v_memory::get_8(uint32_type address, function_code fc) const
++msm6258v_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ address &= 0xffffffff;
+ #ifdef LG
+@@ -64,7 +64,7 @@
+ }
+
+ uint16_type
+-msm6258v_memory::get_16(uint32_type address, function_code fc) const
++msm6258v_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ address &= 0xffffffff & ~1;
+ #ifdef LG
+@@ -81,7 +81,7 @@
+ }
+
+ void
+-msm6258v_memory::put_8(uint32_type address, int value, function_code fc)
++msm6258v_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ address &= 0xffffffff;
+ value &= 0xff;
+@@ -98,7 +98,7 @@
+
+ void
+ msm6258v_memory::put_16(uint32_type address, uint16_type value,
+- function_code fc)
++ function_code fc) throw()
+ {
+ address &= 0xffffffff & ~1;
+ value &= 0xff;
diff --git a/emulators/vx68k/files/patch-libvx68k::opmmem.cc b/emulators/vx68k/files/patch-libvx68k::opmmem.cc
new file mode 100644
index 000000000000..f46cfad81896
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::opmmem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/opmmem.cc.orig Sun Jul 1 21:24:37 2001
++++ libvx68k/opmmem.cc Wed Dec 1 18:24:18 2004
+@@ -127,7 +127,7 @@
+ }
+
+ int
+-opm_memory::get_8(uint32_type address, function_code fc) const
++opm_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ address &= 0xffffffffu;
+ #ifdef DL
+@@ -153,7 +153,7 @@
+ }
+
+ uint16_type
+-opm_memory::get_16(uint32_type address, function_code fc) const
++opm_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class opm_memory: get_16: fc=%d address=0x%08lx\n",
+@@ -164,7 +164,7 @@
+ }
+
+ void
+-opm_memory::put_8(uint32_type address, int value, function_code fc)
++opm_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ address &= 0xffffffffu;
+ value &= 0xffu;
+@@ -194,7 +194,7 @@
+ }
+
+ void
+-opm_memory::put_16(uint32_type address, uint16_type value, function_code fc)
++opm_memory::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ address &= 0xffffffffu;
+ value &= 0xffffu;
diff --git a/emulators/vx68k/files/patch-libvx68k::palettemem.cc b/emulators/vx68k/files/patch-libvx68k::palettemem.cc
new file mode 100644
index 000000000000..aa6c9e9cfd57
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::palettemem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/palettemem.cc.orig Sun Jul 1 21:22:36 2001
++++ libvx68k/palettemem.cc Wed Dec 1 18:24:18 2004
+@@ -91,7 +91,7 @@
+ }
+
+ uint16_type
+-palettes_memory::get_16(uint32_type address, function_code fc) const
++palettes_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ address &= 0xfffffffeu;
+ #ifdef DL
+@@ -133,7 +133,7 @@
+ }
+
+ int
+-palettes_memory::get_8(uint32_type address, function_code fc) const
++palettes_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ address &= 0xffffffffU;
+ #ifdef DL
+@@ -150,7 +150,7 @@
+
+ void
+ palettes_memory::put_16(uint32_type address, uint16_type value,
+- function_code fc)
++ function_code fc) throw()
+ {
+ address &= 0xfffffffeu;
+ value &= 0xffffu;
+@@ -197,7 +197,7 @@
+ }
+
+ void
+-palettes_memory::put_8(uint32_type address, int value, function_code fc)
++palettes_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ address &= 0xffffffffU;
+ value &= 0xff;
diff --git a/emulators/vx68k/files/patch-libvx68k::ppimem.cc b/emulators/vx68k/files/patch-libvx68k::ppimem.cc
new file mode 100644
index 000000000000..43586979cdca
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::ppimem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/ppimem.cc.orig Sat Jun 30 20:54:42 2001
++++ libvx68k/ppimem.cc Wed Dec 1 18:24:18 2004
+@@ -37,7 +37,7 @@
+ using namespace std;
+
+ uint16_type
+-ppi_memory::get_16(uint32_type address, function_code fc) const
++ppi_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class ppi_memory: get_16: fc=%d address=0x%08lx\n", fc, address + 0UL);
+@@ -47,7 +47,7 @@
+ }
+
+ int
+-ppi_memory::get_8(uint32_type address, function_code fc) const
++ppi_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ address &= 0xffffffffU;
+
+@@ -65,7 +65,7 @@
+ }
+
+ void
+-ppi_memory::put_16(uint32_type address, uint16_type value, function_code fc)
++ppi_memory::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class ppi_memory: put_16: fc=%d address=0x%08lx value=0x%04x\n",
+@@ -78,7 +78,7 @@
+ }
+
+ void
+-ppi_memory::put_8(uint32_type address, int value, function_code fc)
++ppi_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class ppi_memory: put_8: fc=%d address=0x%08lx value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::sccmem.cc b/emulators/vx68k/files/patch-libvx68k::sccmem.cc
new file mode 100644
index 000000000000..196cd9f876dc
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::sccmem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/sccmem.cc.orig Sat Jun 30 20:54:28 2001
++++ libvx68k/sccmem.cc Wed Dec 1 18:24:18 2004
+@@ -310,7 +310,7 @@
+ }
+
+ uint16_type
+-scc_memory::get_16(uint32_type address, function_code fc) const
++scc_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class scc_memory: get_16: fc=%d address=0x%08lx\n", fc, address + 0UL);
+@@ -322,7 +322,7 @@
+ }
+
+ int
+-scc_memory::get_8(uint32_type address, function_code fc) const
++scc_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class scc_memory: get_8: fc=%d address=0x%08lx\n", fc, address + 0UL);
+@@ -338,7 +338,7 @@
+ }
+
+ void
+-scc_memory::put_16(uint32_type address, uint16_type value, function_code fc)
++scc_memory::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class scc_memory: put_16: fc=%d address=0x%08lx value=0x%04x\n",
+@@ -350,7 +350,7 @@
+ }
+
+ void
+-scc_memory::put_8(uint32_type address, int value, function_code fc)
++scc_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class scc_memory: put_8: fc=%d address=0x%08lx value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::spritemem.cc b/emulators/vx68k/files/patch-libvx68k::spritemem.cc
new file mode 100644
index 000000000000..c6cdba77aa8e
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::spritemem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/spritemem.cc.orig Sat Jun 30 20:54:48 2001
++++ libvx68k/spritemem.cc Wed Dec 1 18:24:18 2004
+@@ -38,7 +38,7 @@
+ using namespace std;
+
+ uint16_type
+-sprites_memory::get_16(uint32_type address, function_code fc) const
++sprites_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef L
+ L("class sprites_memory: get_16: fc=%d address=%#010lx\n",
+@@ -49,7 +49,7 @@
+ }
+
+ int
+-sprites_memory::get_8(uint32_type address, function_code fc) const
++sprites_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef L
+ L("class sprites_memory: get_8: fc=%d address=%#010lx\n",
+@@ -65,7 +65,7 @@
+
+ void
+ sprites_memory::put_16(uint32_type address, uint16_type value,
+- function_code fc)
++ function_code fc) throw()
+ {
+ #ifdef L
+ L("class sprites_memory: put_16: fc=%d address=%#010lx value=%#06x\n",
+@@ -75,7 +75,7 @@
+ }
+
+ void
+-sprites_memory::put_8(uint32_type address, int value, function_code fc)
++sprites_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef L
+ L("class sprites_memory: put_8: fc=%d address=%#010lx value=%#04x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::sram.cc b/emulators/vx68k/files/patch-libvx68k::sram.cc
new file mode 100644
index 000000000000..6a049c2a2b84
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::sram.cc
@@ -0,0 +1,38 @@
+--- libvx68k/sram.cc.orig Sat Jun 30 20:54:57 2001
++++ libvx68k/sram.cc Wed Dec 1 18:24:18 2004
+@@ -48,7 +48,7 @@
+ using namespace std;
+
+ uint16_type
+-sram::get_16(uint32_type address, function_code fc) const
++sram::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef L
+ L("class sram: get_16 fc=%d address=%#010x\n", fc, address);
+@@ -60,7 +60,7 @@
+ }
+
+ int
+-sram::get_8(uint32_type address, function_code fc) const
++sram::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef L
+ L("class sram: get_8 fc=%d address=%#010x\n", fc, address);
+@@ -71,7 +71,7 @@
+ }
+
+ void
+-sram::put_16(uint32_type, uint16_type, function_code)
++sram::put_16(uint32_type, uint16_type, function_code) throw()
+ {
+ #ifdef L
+ L("class sram: FIXME: `put_16' not implemented\n");
+@@ -79,7 +79,7 @@
+ }
+
+ void
+-sram::put_8(uint32_type, int, function_code)
++sram::put_8(uint32_type, int, function_code) throw()
+ {
+ #ifdef L
+ L("class sram: FIXME: `put_8' not implemented\n");
diff --git a/emulators/vx68k/files/patch-libvx68k::sysportmem.cc b/emulators/vx68k/files/patch-libvx68k::sysportmem.cc
new file mode 100644
index 000000000000..372363a7e11e
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::sysportmem.cc
@@ -0,0 +1,38 @@
+--- libvx68k/sysportmem.cc.orig Sat Jun 30 20:53:40 2001
++++ libvx68k/sysportmem.cc Wed Dec 1 18:24:18 2004
+@@ -37,7 +37,7 @@
+ using namespace std;
+
+ uint16_type
+-system_ports_memory::get_16(uint32_type address, function_code fc) const
++system_ports_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class system_ports_memory: get_16: fc=%d address=0x%08lx\n",
+@@ -52,7 +52,7 @@
+ }
+
+ int
+-system_ports_memory::get_8(uint32_type address, function_code fc) const
++system_ports_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class system_ports_memory: get_8: fc=%d address=0x%08lx\n",
+@@ -68,7 +68,7 @@
+
+ void
+ system_ports_memory::put_16(uint32_type address, uint16_type value,
+- function_code fc)
++ function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class opm_memory: put_16: fc=%d address=0x%08lx value=0x%04x\n",
+@@ -82,7 +82,7 @@
+ }
+
+ void
+-system_ports_memory::put_8(uint32_type address, int value, function_code fc)
++system_ports_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class opm_memory: put_8: fc=%d address=0x%08lx value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::systemrom.cc b/emulators/vx68k/files/patch-libvx68k::systemrom.cc
new file mode 100644
index 000000000000..797e9568601a
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::systemrom.cc
@@ -0,0 +1,38 @@
+--- libvx68k/systemrom.cc.orig Sun Jul 1 21:24:54 2001
++++ libvx68k/systemrom.cc Wed Dec 1 18:24:18 2004
+@@ -45,7 +45,7 @@
+ #endif
+
+ uint16_type
+-system_rom::get_16(uint32_type address, function_code fc) const
++system_rom::get_16(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class system_rom: get_16: fc=%d address=0x%08lx\n",
+@@ -68,7 +68,7 @@
+ }
+
+ int
+-system_rom::get_8(uint32_type address, function_code fc) const
++system_rom::get_8(uint32_type address, function_code fc) const throw()
+ {
+ #ifdef DL
+ DL("class system_rom: get_8: fc=%d address=0x%08lx\n",
+@@ -86,7 +86,7 @@
+ }
+
+ void
+-system_rom::put_16(uint32_type address, uint16_type value, function_code fc)
++system_rom::put_16(uint32_type address, uint16_type value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class system_rom: put_16: fc=%d address=0x%08lx value=0x%04x\n",
+@@ -101,7 +101,7 @@
+ }
+
+ void
+-system_rom::put_8(uint32_type address, int value, function_code fc)
++system_rom::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ #ifdef DL
+ DL("class system_rom: put_8: fc=%d address=0x%08lx value=0x%02x\n",
diff --git a/emulators/vx68k/files/patch-libvx68k::textvram.cc b/emulators/vx68k/files/patch-libvx68k::textvram.cc
new file mode 100644
index 000000000000..9f630ffae3ab
--- /dev/null
+++ b/emulators/vx68k/files/patch-libvx68k::textvram.cc
@@ -0,0 +1,38 @@
+--- libvx68k/textvram.cc.orig Sun Jul 1 21:24:21 2001
++++ libvx68k/textvram.cc Wed Dec 1 18:24:18 2004
+@@ -478,7 +478,7 @@
+ }
+
+ uint16_type
+-text_video_memory::get_16(uint32_type address, function_code fc) const
++text_video_memory::get_16(uint32_type address, function_code fc) const throw()
+ {
+ if (fc != SUPER_DATA)
+ throw bus_error(address, READ | fc);
+@@ -490,7 +490,7 @@
+ }
+
+ int
+-text_video_memory::get_8(uint32_type address, function_code fc) const
++text_video_memory::get_8(uint32_type address, function_code fc) const throw()
+ {
+ if (fc != SUPER_DATA)
+ throw bus_error(address, READ | fc);
+@@ -502,7 +502,7 @@
+
+ void
+ text_video_memory::put_16(uint32_type address, uint16_type value,
+- function_code fc)
++ function_code fc) throw()
+ {
+ if (fc != SUPER_DATA)
+ throw bus_error(address, WRITE | fc);
+@@ -520,7 +520,7 @@
+ }
+
+ void
+-text_video_memory::put_8(uint32_type address, int value, function_code fc)
++text_video_memory::put_8(uint32_type address, int value, function_code fc) throw()
+ {
+ if (fc != SUPER_DATA)
+ throw bus_error(address, WRITE | fc);
diff --git a/emulators/vx68k/files/patch-vx68k-gtk::bin::getopt.h b/emulators/vx68k/files/patch-vx68k-gtk::bin::getopt.h
new file mode 100644
index 000000000000..8d231171323c
--- /dev/null
+++ b/emulators/vx68k/files/patch-vx68k-gtk::bin::getopt.h
@@ -0,0 +1,11 @@
+--- vx68k-gtk/bin/getopt.h.orig Fri May 28 14:02:03 1999
++++ vx68k-gtk/bin/getopt.h Wed Dec 1 18:24:18 2004
+@@ -127,7 +127,7 @@
+ `getopt'. */
+
+ #if defined __STDC__ && __STDC__
+-# ifdef __GNU_LIBRARY__
++# if defined (__GNU_LIBRARY__) || defined (__FreeBSD__)
+ /* Many other libraries have conflicting prototypes for getopt, with
+ differences in the consts, in stdlib.h. To avoid compilation
+ errors, only prototype getopt for the GNU C library. */