From 7245d37507913528855b1ca872bb7303942063b8 Mon Sep 17 00:00:00 2001 From: skrll Date: Fri, 23 Jan 2004 08:21:54 +0000 Subject: Import of tme 0.2 The Machine Emulator, or tme, is a program that provides a general- purpose framework for computer emulation. The first machine that tme could emulate was the Sun 2/120, one of the first widely available Sun workstations. --- emulators/tme/DESCR | 4 ++ emulators/tme/Makefile | 21 +++++++ emulators/tme/PLIST | 127 +++++++++++++++++++++++++++++++++++++++ emulators/tme/distinfo | 7 +++ emulators/tme/patches/patch-aa | 131 +++++++++++++++++++++++++++++++++++++++++ emulators/tme/patches/patch-ab | 34 +++++++++++ emulators/tme/patches/patch-ac | 13 ++++ 7 files changed, 337 insertions(+) create mode 100644 emulators/tme/DESCR create mode 100644 emulators/tme/Makefile create mode 100644 emulators/tme/PLIST create mode 100644 emulators/tme/distinfo create mode 100644 emulators/tme/patches/patch-aa create mode 100644 emulators/tme/patches/patch-ab create mode 100644 emulators/tme/patches/patch-ac (limited to 'emulators') diff --git a/emulators/tme/DESCR b/emulators/tme/DESCR new file mode 100644 index 00000000000..a9ef0b235b8 --- /dev/null +++ b/emulators/tme/DESCR @@ -0,0 +1,4 @@ +The Machine Emulator, or tme, is a program that provides a general- +purpose framework for computer emulation. The first machine that tme +could emulate was the Sun 2/120, one of the first widely available Sun +workstations. diff --git a/emulators/tme/Makefile b/emulators/tme/Makefile new file mode 100644 index 00000000000..759f7dc9fe3 --- /dev/null +++ b/emulators/tme/Makefile @@ -0,0 +1,21 @@ +# $NetBSD: Makefile,v 1.1.1.1 2004/01/23 08:21:54 skrll Exp $ +# + +DISTNAME= tme-0.2 +CATEGORIES= emulators +MASTER_SITES= http://theory.lcs.mit.edu/~fredette/tme/ + +MAINTAINER= skrll@NetBSD.org +HOMEPAGE= http://theory.lcs.mit.edu/~fredette/tme/ +COMMENT= The Machine Emulator + +USE_BUILDLINK2= yes +USE_PKGLOCALEDIR= yes +USE_LIBTOOL= yes +LIBTOOL_OVERRIDE= ${WRKSRC}/libtool +GNU_CONFIGURE= yes +USE_GNU_TOOLS+= make + +.include "../../devel/libtool/buildlink2.mk" +.include "../../x11/gtk/buildlink2.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/emulators/tme/PLIST b/emulators/tme/PLIST new file mode 100644 index 00000000000..ca7e495a898 --- /dev/null +++ b/emulators/tme/PLIST @@ -0,0 +1,127 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2004/01/23 08:21:56 skrll Exp $ +bin/tme-sun-idprom +bin/tmesh +include/tme/atomics.h +include/tme/common.h +include/tme/connection.h +include/tme/element.h +include/tme/generic/bus-device.h +include/tme/generic/bus.h +include/tme/generic/disk.h +include/tme/generic/ethernet.h +include/tme/generic/fb.h +include/tme/generic/ic.h +include/tme/generic/keyboard.h +include/tme/generic/mouse.h +include/tme/generic/scsi.h +include/tme/generic/serial.h +include/tme/generic/tape.h +include/tme/hash.h +include/tme/ic/am9513.h +include/tme/ic/m68k.h +include/tme/ic/mm58167.h +include/tme/ic/z8530.h +include/tme/log.h +include/tme/machine/sun.h +include/tme/misc.h +include/tme/module.h +include/tme/scsi/scsi-cdb.h +include/tme/scsi/scsi-device.h +include/tme/scsi/scsi-disk.h +include/tme/scsi/scsi-msg.h +include/tme/scsi/scsi-tape.h +include/tme/threads.h +include/tme/tme.h +include/tme/tmesh.h +lib/libtme-generic.a +lib/libtme-generic.la +lib/libtme-generic.so +lib/libtme-generic.so.0 +lib/libtme-generic.so.0.0 +lib/libtme.a +lib/libtme.la +lib/libtme.so +lib/libtme.so.0 +lib/libtme.so.0.0 +lib/libtmesh.a +lib/libtmesh.la +lib/libtmesh.so +lib/libtmesh.so.0 +lib/libtmesh.so.0.0 +lib/tme/libtme-machine-sun.a +lib/tme/libtme-machine-sun.la +lib/tme/libtme-machine-sun.so +lib/tme/libtme-machine-sun.so.0 +lib/tme/libtme-machine-sun.so.0.0 +lib/tme/tme-plugins.txt +lib/tme/tme_bus_multibus.a +lib/tme/tme_bus_multibus.la +lib/tme/tme_bus_multibus.so +lib/tme/tme_bus_multibus.so.0 +lib/tme/tme_bus_multibus.so.0.0 +lib/tme/tme_generic.a +lib/tme/tme_generic.la +lib/tme/tme_generic.so +lib/tme/tme_generic.so.0 +lib/tme/tme_generic.so.0.0 +lib/tme/tme_host_bsd.a +lib/tme/tme_host_bsd.la +lib/tme/tme_host_bsd.so +lib/tme/tme_host_bsd.so.0 +lib/tme/tme_host_bsd.so.0.0 +lib/tme/tme_host_gtk.a +lib/tme/tme_host_gtk.la +lib/tme/tme_host_gtk.so +lib/tme/tme_host_gtk.so.0 +lib/tme/tme_host_gtk.so.0.0 +lib/tme/tme_host_posix.a +lib/tme/tme_host_posix.la +lib/tme/tme_host_posix.so +lib/tme/tme_host_posix.so.0 +lib/tme/tme_host_posix.so.0.0 +lib/tme/tme_ic_am9513.a +lib/tme/tme_ic_am9513.la +lib/tme/tme_ic_am9513.so +lib/tme/tme_ic_am9513.so.0 +lib/tme/tme_ic_am9513.so.0.0 +lib/tme/tme_ic_m68k.a +lib/tme/tme_ic_m68k.la +lib/tme/tme_ic_m68k.so +lib/tme/tme_ic_m68k.so.0 +lib/tme/tme_ic_m68k.so.0.0 +lib/tme/tme_ic_mm58167.a +lib/tme/tme_ic_mm58167.la +lib/tme/tme_ic_mm58167.so +lib/tme/tme_ic_mm58167.so.0 +lib/tme/tme_ic_mm58167.so.0.0 +lib/tme/tme_ic_z8530.a +lib/tme/tme_ic_z8530.la +lib/tme/tme_ic_z8530.so +lib/tme/tme_ic_z8530.so.0 +lib/tme/tme_ic_z8530.so.0.0 +lib/tme/tme_machine_sun2.a +lib/tme/tme_machine_sun2.la +lib/tme/tme_machine_sun2.so +lib/tme/tme_machine_sun2.so.0 +lib/tme/tme_machine_sun2.so.0.0 +lib/tme/tme_scsi.a +lib/tme/tme_scsi.la +lib/tme/tme_scsi.so +lib/tme/tme_scsi.so.0 +lib/tme/tme_scsi.so.0.0 +lib/tme/tme_serial_kb.a +lib/tme/tme_serial_kb.la +lib/tme/tme_serial_kb.so +lib/tme/tme_serial_kb.so.0 +lib/tme/tme_serial_kb.so.0.0 +lib/tme/tmeconfig.h +share/examples/tme/SUN2-MULTIBUS +share/examples/tme/my-sun-macros.txt +share/examples/tme/sun-keyboards.txt +@dirrm share/examples/tme +@dirrm lib/tme +@dirrm include/tme/scsi +@dirrm include/tme/machine +@dirrm include/tme/ic +@dirrm include/tme/generic +@dirrm include/tme diff --git a/emulators/tme/distinfo b/emulators/tme/distinfo new file mode 100644 index 00000000000..8fff49a2d21 --- /dev/null +++ b/emulators/tme/distinfo @@ -0,0 +1,7 @@ +$NetBSD: distinfo,v 1.1.1.1 2004/01/23 08:21:56 skrll Exp $ + +SHA1 (tme-0.2.tar.gz) = b4a42c1ef65836fb3da2226293fc631a98db5f08 +Size (tme-0.2.tar.gz) = 1183794 bytes +SHA1 (patch-aa) = 49dd1b5505990522011071752544209c1540ed21 +SHA1 (patch-ab) = 762aca8120b6864e9609ab79ae1385a783ffd9e7 +SHA1 (patch-ac) = 03f61f24a02e4380ef6e75845f59de380e022ffa diff --git a/emulators/tme/patches/patch-aa b/emulators/tme/patches/patch-aa new file mode 100644 index 00000000000..272e6975218 --- /dev/null +++ b/emulators/tme/patches/patch-aa @@ -0,0 +1,131 @@ +$NetBSD: patch-aa,v 1.1.1.1 2004/01/23 08:21:59 skrll Exp $ + +--- generic/fb-xlat-auto.sh.orig Mon Sep 29 12:42:56 2003 ++++ generic/fb-xlat-auto.sh +@@ -1905,50 +1905,82 @@ for src_key in ${src_all}; do + echo " : ${dst_shift}));" + + echo "" +- echo " /* put the pixel into both FIFOs again. if" +- echo " dst_bipp is 24 or greater, the FIFOs can" +- echo " not entirely take these further pixels," +- echo " so we need to shift: */" +- echo " if (dst_bipp >= 24) {" +- echo " TME_FB_XLAT_SHIFT_DST(dst_fifo0_may_be_unaligned," +- echo " dst_fifo0," +- echo " dst_fifo0_next," +- echo " dst_fifo0_bits," +- echo " dst_bipp," +- echo " dst_raw0," +- echo " dst_order);" +- echo " TME_FB_XLAT_SHIFT_DST(dst_fifo1_may_be_unaligned," +- echo " dst_fifo1," +- echo " dst_fifo1_next," +- echo " dst_fifo1_bits," +- echo " dst_bipp," +- echo " dst_raw1," +- echo " dst_order);" +- echo " dst_fifo0 |=" +- echo " (pixel" +- echo " << (dst_order == TME_ENDIAN_BIG" +- echo " ? ((32 - dst_bipp) - ${dst_shift})" +- echo " : ${dst_shift}));" +- echo " dst_fifo1 |=" +- echo " (pixel" +- echo " << (dst_order == TME_ENDIAN_BIG" +- echo " ? ((32 - dst_bipp) - ${dst_shift})" +- echo " : ${dst_shift}));" +- echo " }" +- echo "" +- echo " /* otherwise, the FIFOs can take these further pixels: */" +- echo " else {" +- echo " dst_fifo0 |=" +- echo " (pixel" +- echo " << (dst_order == TME_ENDIAN_BIG" +- echo " ? ((32 - dst_bipp) - (${dst_shift} + dst_bipp))" +- echo " : (${dst_shift} + dst_bipp)));" +- echo " dst_fifo1 |=" +- echo " (pixel" +- echo " << (dst_order == TME_ENDIAN_BIG" +- echo " ? ((32 - dst_bipp) - (${dst_shift} + dst_bipp))" +- echo " : (${dst_shift} + dst_bipp)));" +- echo " }" ++ if test `expr ${dst_bipp} \>= 24` = 1; then ++ echo " /* put the pixel into both FIFOs again. in" ++ echo " this case, dst_bipp is known to be ${dst_bipp}," ++ echo " meaning the FIFOs cannot entirely take these" ++ echo " further pixels, so we need to shift the FIFOs: */" ++ indent0="" ++ indent1=X ++ elif test ${dst_bipp} = 0; then ++ echo " /* put the pixel into both FIFOs again. if" ++ echo " dst_bipp is 24 or greater, the FIFOs can" ++ echo " not entirely take these further pixels," ++ echo " so we need to shift the FIFOs: */" ++ echo " if (dst_bipp >= 24) {" ++ indent0=" " ++ indent1=" " ++ else ++ echo " /* put the pixel into both FIFOs again. in" ++ echo " this case, dst_bipp is known to be ${dst_bipp}," ++ echo " meaning the FIFOs can take these further pixels" ++ echo " without shifting the FIFOs, as long as we shift" ++ echo " the pixels one pixel further: */" ++ indent0=X ++ indent1="" ++ fi ++ if test "X${indent0}" != "XX"; then ++ echo "${indent0} TME_FB_XLAT_SHIFT_DST(dst_fifo0_may_be_unaligned," ++ echo "${indent0} dst_fifo0," ++ echo "${indent0} dst_fifo0_next," ++ echo "${indent0} dst_fifo0_bits," ++ echo "${indent0} dst_bipp," ++ echo "${indent0} dst_raw0," ++ echo "${indent0} dst_order);" ++ echo "${indent0} TME_FB_XLAT_SHIFT_DST(dst_fifo1_may_be_unaligned," ++ echo "${indent0} dst_fifo1," ++ echo "${indent0} dst_fifo1_next," ++ echo "${indent0} dst_fifo1_bits," ++ echo "${indent0} dst_bipp," ++ echo "${indent0} dst_raw1," ++ echo "${indent0} dst_order);" ++ echo "" ++ echo "${indent0} /* now that we've shifted by dst_bipp, we can" ++ echo "${indent0} put the further pixels exactly where the" ++ echo "${indent0} first pixels went in the FIFOs: */" ++ echo "${indent0} dst_fifo0 |=" ++ echo "${indent0} (pixel" ++ echo "${indent0} << (dst_order == TME_ENDIAN_BIG" ++ echo "${indent0} ? ((32 - dst_bipp) - ${dst_shift})" ++ echo "${indent0} : ${dst_shift}));" ++ echo "${indent0} dst_fifo1 |=" ++ echo "${indent0} (pixel" ++ echo "${indent0} << (dst_order == TME_ENDIAN_BIG" ++ echo "${indent0} ? ((32 - dst_bipp) - ${dst_shift})" ++ echo "${indent0} : ${dst_shift}));" ++ fi ++ if test ${dst_bipp} = 0; then ++ echo " }" ++ echo "" ++ echo " /* otherwise, the FIFOs can take these further pixels," ++ echo " as long as we shift the pixels one pixel further: */" ++ echo " else {" ++ fi ++ if test "X${indent1}" != "XX"; then ++ echo "${indent1} dst_fifo0 |=" ++ echo "${indent1} (pixel" ++ echo "${indent1} << (dst_order == TME_ENDIAN_BIG" ++ echo "${indent1} ? ((32 - dst_bipp) - (${dst_shift} + dst_bipp))" ++ echo "${indent1} : (${dst_shift} + dst_bipp)));" ++ echo "${indent1} dst_fifo1 |=" ++ echo "${indent1} (pixel" ++ echo "${indent1} << (dst_order == TME_ENDIAN_BIG" ++ echo "${indent1} ? ((32 - dst_bipp) - (${dst_shift} + dst_bipp))" ++ echo "${indent1} : (${dst_shift} + dst_bipp)));" ++ fi ++ if test ${dst_bipp} = 0; then ++ echo " }" ++ fi + fi + + echo "" diff --git a/emulators/tme/patches/patch-ab b/emulators/tme/patches/patch-ab new file mode 100644 index 00000000000..7fa6e1db2f5 --- /dev/null +++ b/emulators/tme/patches/patch-ab @@ -0,0 +1,34 @@ +$NetBSD: patch-ab,v 1.1.1.1 2004/01/23 08:21:59 skrll Exp $ + +--- host/gtk/gtk-screen.c.orig Wed Oct 29 02:03:26 2003 ++++ host/gtk/gtk-screen.c +@@ -114,13 +114,23 @@ _tme_gtk_screen_th_update(struct tme_gtk + static unsigned int + _tme_gtk_gdkimage_bipp(GdkImage *image) + { +- unsigned int bipp, total_bits_halved; ++ unsigned int bipp, total_bits; + +- total_bits_halved = image->bpl; +- total_bits_halved = (total_bits_halved * 8) / 2; +- for (bipp = image->depth; +- (bipp * image->width) <= total_bits_halved; +- bipp <<= 1); ++ /* if the bytes per pixel value is greater than one, or if the image ++ depth is 8 or greater, just convert the bytes per pixel value to ++ bits per pixel: */ ++ if (image->bpp > 1 ++ || image->depth >= 8) { ++ return (image->bpp * 8); ++ } ++ ++ /* otherwise, we know that the depth of the image is less than ++ eight, and the number of bits per pixel is eight or less: */ ++ total_bits = image->bpl; ++ total_bits *= 8; ++ for (bipp = 8; ++ bipp > image->depth && (bipp * image->width) > total_bits; ++ bipp >>= 1); + return (bipp); + } + diff --git a/emulators/tme/patches/patch-ac b/emulators/tme/patches/patch-ac new file mode 100644 index 00000000000..e4b3cc4e772 --- /dev/null +++ b/emulators/tme/patches/patch-ac @@ -0,0 +1,13 @@ +$NetBSD: patch-ac,v 1.1.1.1 2004/01/23 08:21:59 skrll Exp $ + +--- libtme/module.c.orig Sat Aug 23 14:48:30 2003 ++++ libtme/module.c +@@ -107,7 +107,7 @@ _tme_modules_find(const char *top_name, + FILE *modules_index; + + /* pass over the search path environment variables: */ +- for (pass = 0; ++pass < 2; ) { ++ for (pass = 0; ++pass <= 2; ) { + + /* get the next search path environment variable value: */ + search_path = NULL; -- cgit v1.2.3