summaryrefslogtreecommitdiff
path: root/emulators/b-em
diff options
context:
space:
mode:
authorreinoud <reinoud>2012-02-20 15:45:19 +0000
committerreinoud <reinoud>2012-02-20 15:45:19 +0000
commit3a9e9230b35c13dbe0b165e5078eb4d0b4de2371 (patch)
tree932859c82fddbedfd502634ff3b8ed2d58a41672 /emulators/b-em
parentd097d0b848bce087f284f39976931b908ef86176 (diff)
downloadpkgsrc-3a9e9230b35c13dbe0b165e5078eb4d0b4de2371.tar.gz
Add emulators/b-em, a Freeware Acorn BBC Micro Emulator with 2nd processors
Diffstat (limited to 'emulators/b-em')
-rw-r--r--emulators/b-em/DESCR12
-rw-r--r--emulators/b-em/Makefile47
-rw-r--r--emulators/b-em/PLIST77
-rw-r--r--emulators/b-em/distinfo13
-rw-r--r--emulators/b-em/patches/patch-src-b-em.h15
-rw-r--r--emulators/b-em/patches/patch-src-cmos.c13
-rw-r--r--emulators/b-em/patches/patch-src-fdi2raw.c40
-rw-r--r--emulators/b-em/patches/patch-src-linux.c13
-rw-r--r--emulators/b-em/patches/patch-src-makefile.in23
-rw-r--r--emulators/b-em/patches/patch-src-resources.h12
-rw-r--r--emulators/b-em/patches/patch-src-tapenoise.c12
-rw-r--r--emulators/b-em/patches/patch-src-win.c12
12 files changed, 289 insertions, 0 deletions
diff --git a/emulators/b-em/DESCR b/emulators/b-em/DESCR
new file mode 100644
index 00000000000..11600ba832c
--- /dev/null
+++ b/emulators/b-em/DESCR
@@ -0,0 +1,12 @@
+B-em: A Freeware BBC Micro Emulator
+
+Emulating Acorn BBC-A, BBC-B and the BBC Master series including discdrives,
+tape and the tube!
+
+Tube processors supported:
+ 6502
+ 65810
+ Z80
+ ARM1 (!)
+
+ROMS, tapes and example discs are provided.
diff --git a/emulators/b-em/Makefile b/emulators/b-em/Makefile
new file mode 100644
index 00000000000..1856bb7cb19
--- /dev/null
+++ b/emulators/b-em/Makefile
@@ -0,0 +1,47 @@
+# $NetBSD: Makefile,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+#
+
+DISTNAME= B-emv2.1aLinux
+PKGNAME= b-em-2.1a
+CATEGORIES= emulators
+MASTER_SITES= http://b-em.bbcmicro.com/
+
+MAINTAINER= reinoud@NetBSD.org
+HOMEPAGE= http://b-em.bbcmicro.com/
+COMMENT= Freeware Acorn BBC Micro Emulator with 2nd processors
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+USE_TOOLS+= gmake
+
+WRKSRC= ${WRKDIR}
+GNU_CONFIGURE= yes
+USE_LANGUAGES= c c++
+
+BEMDATADIR= ${PREFIX}/share/b-em/
+
+SUBST_CLASSES+= paths
+SUBST_MESSAGE.paths= Fixing non-existing paths.
+SUBST_STAGE.paths= pre-configure
+SUBST_FILES.paths= src/linux.c src/win.c
+SUBST_SED.paths= -e 's,@BEMDATADIR@,${BEMDATADIR},g'
+
+do-install:
+ ${INSTALL} -d ${DESTDIR}${PREFIX}/bin
+ ${INSTALL} -d ${DESTDIR}${BEMDATADIR}/roms
+ ${INSTALL} -d ${DESTDIR}${BEMDATADIR}/discs
+ ${INSTALL} -d ${DESTDIR}${BEMDATADIR}/tapes
+ ${INSTALL} -d ${DESTDIR}${BEMDATADIR}/ddnoise
+ ${INSTALL_PROGRAM} ${WRKSRC}/b-em ${DESTDIR}${PREFIX}/bin/b-em
+ ${CP} ${WRKSRC}/cmos*.bin ${DESTDIR}${BEMDATADIR}/
+ ${CP} -R ${WRKSRC}/roms/* ${DESTDIR}${BEMDATADIR}/roms
+ ${CP} -R ${WRKSRC}/discs/* ${DESTDIR}${BEMDATADIR}/discs
+ ${CP} -R ${WRKSRC}/tapes/* ${DESTDIR}${BEMDATADIR}/tapes
+ ${CP} -R ${WRKSRC}/ddnoise/* ${DESTDIR}${BEMDATADIR}/ddnoise
+ ${FIND} ${DESTDIR}${BEMDATADIR} -type f -exec chmod 644 {} \;
+
+.include "../../devel/allegro/buildlink3.mk"
+.include "../../audio/openal/buildlink3.mk"
+.include "../../audio/freealut/buildlink3.mk"
+.include "../../x11/xcursor/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/emulators/b-em/PLIST b/emulators/b-em/PLIST
new file mode 100644
index 00000000000..86c85986d6c
--- /dev/null
+++ b/emulators/b-em/PLIST
@@ -0,0 +1,77 @@
+@comment $NetBSD: PLIST,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+bin/b-em
+share/b-em/cmos.bin
+share/b-em/cmosa.bin
+share/b-em/cmosc.bin
+share/b-em/ddnoise/35/motor.wav
+share/b-em/ddnoise/35/motoroff.wav
+share/b-em/ddnoise/35/motoron.wav
+share/b-em/ddnoise/35/seek1i.wav
+share/b-em/ddnoise/35/seek1o.wav
+share/b-em/ddnoise/35/seek2i.wav
+share/b-em/ddnoise/35/seek2o.wav
+share/b-em/ddnoise/35/seek3i.wav
+share/b-em/ddnoise/35/seek3o.wav
+share/b-em/ddnoise/35/stepi.wav
+share/b-em/ddnoise/35/stepo.wav
+share/b-em/ddnoise/525/motor.wav
+share/b-em/ddnoise/525/motoroff.wav
+share/b-em/ddnoise/525/motoron.wav
+share/b-em/ddnoise/525/seek.wav
+share/b-em/ddnoise/525/seek2.wav
+share/b-em/ddnoise/525/seek3.wav
+share/b-em/ddnoise/525/step.wav
+share/b-em/ddnoise/motoroff.wav
+share/b-em/ddnoise/motoron.wav
+share/b-em/discs/ARMEvaluationSystem-Disc1.adl
+share/b-em/discs/ARMEvaluationSystem-Disc2.adl
+share/b-em/discs/ARMEvaluationSystem-Disc3.adl
+share/b-em/discs/ARMEvaluationSystem-Disc4.adl
+share/b-em/discs/ARMEvaluationSystem-Disc5.adl
+share/b-em/discs/B-em Demo Disc.ssd
+share/b-em/discs/Master 512 Disc 1 (DOS Plus Boot).img
+share/b-em/discs/Master 512 Disc 2 (GEM).img
+share/b-em/discs/Master 512 Disc 3 (GEM data).img
+share/b-em/discs/Master 512 Disc 4 (Miscellaneous).img
+share/b-em/discs/MasterWelcome.adl
+share/b-em/discs/Welcome.ssd
+share/b-em/discs/cpm1.dsd
+share/b-em/discs/cpm2.dsd
+share/b-em/discs/cpm3.dsd
+share/b-em/discs/cpm4.dsd
+share/b-em/discs/cpm5.dsd
+share/b-em/discs/cpm6.dsd
+share/b-em/discs/cpm7.dsd
+share/b-em/roms/ADFS1-53.rom
+share/b-em/roms/a/BASIC.ROM
+share/b-em/roms/a01/BASIC1.rom
+share/b-em/roms/b/BASIC.ROM
+share/b-em/roms/b/DFS-0.9.rom
+share/b-em/roms/b1770/BASIC.ROM
+share/b-em/roms/b1770/dfs1770.rom
+share/b-em/roms/b1770/zADFS.ROM
+share/b-em/roms/bp/BASIC.ROM
+share/b-em/roms/bp/dfs.rom
+share/b-em/roms/bp/zADFS.ROM
+share/b-em/roms/bpos
+share/b-em/roms/compact/adfs210.rom
+share/b-em/roms/compact/basic48.rom
+share/b-em/roms/compact/basic486.rom
+share/b-em/roms/compact/os51.rom
+share/b-em/roms/compact/utils.rom
+share/b-em/roms/deos
+share/b-em/roms/master/mos.txt
+share/b-em/roms/master/mos3.20
+share/b-em/roms/os
+share/b-em/roms/os01
+share/b-em/roms/tube/6502Tube.rom
+share/b-em/roms/tube/ARMeval_100.rom
+share/b-em/roms/tube/BIOS.ROM
+share/b-em/roms/tube/ReCo6502ROM_816
+share/b-em/roms/tube/Z80_120.rom
+share/b-em/roms/us/USBASIC.rom
+share/b-em/roms/us/USDNFS.rom
+share/b-em/roms/usmos
+share/b-em/tapes/Welcome-BBCMaster-Side1_BM.uef
+share/b-em/tapes/Welcome-BBCMaster-Side2_BM.uef
+share/b-em/tapes/Welcome_B.uef
diff --git a/emulators/b-em/distinfo b/emulators/b-em/distinfo
new file mode 100644
index 00000000000..c0a03fb6d67
--- /dev/null
+++ b/emulators/b-em/distinfo
@@ -0,0 +1,13 @@
+$NetBSD: distinfo,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+SHA1 (B-emv2.1aLinux.tar.gz) = a5e674009eaeab5aeb9b50f3c699c6d0ea110c38
+RMD160 (B-emv2.1aLinux.tar.gz) = b31a4812fabad9d6d67372361955b3de3686943b
+Size (B-emv2.1aLinux.tar.gz) = 5226120 bytes
+SHA1 (patch-src-b-em.h) = d450f335c15f539cf3f81a800dec87472c134cab
+SHA1 (patch-src-cmos.c) = dfddf6a6bc4b494e11b7882363a6e79280480b20
+SHA1 (patch-src-fdi2raw.c) = 98a00eb3059c92b0c2e8009275e5b4a7dfee9b0c
+SHA1 (patch-src-linux.c) = b36cf4f3c957cab24bf67cd34688231e3b292d02
+SHA1 (patch-src-makefile.in) = ae5e7fbd9d13cdd6af89512e10a2d23c4716c0cf
+SHA1 (patch-src-resources.h) = 6f62502882e82e56f8bd606dd8618e3eccb7b786
+SHA1 (patch-src-tapenoise.c) = b279aabb6eec7a816a8fe2178e44d326e5ebdbe1
+SHA1 (patch-src-win.c) = 119f41dc2c80a53f5edbeb7e42d85238d1d21b82
diff --git a/emulators/b-em/patches/patch-src-b-em.h b/emulators/b-em/patches/patch-src-b-em.h
new file mode 100644
index 00000000000..96d98eac255
--- /dev/null
+++ b/emulators/b-em/patches/patch-src-b-em.h
@@ -0,0 +1,15 @@
+$NetBSD: patch-src-b-em.h,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+--- src/b-em.h.orig 2010-10-25 13:51:30.000000000 +0000
++++ src/b-em.h
+@@ -1,7 +1,10 @@
+ /*B-em v2.1 by Tom Walker
+ Main header file*/
+
++#include <stdio.h>
+ #include <stdint.h>
++#include <stdlib.h>
++#include <string.h>
+ //#define printf rpclog
+
+ extern uint8_t *ram,*rom,*os;
diff --git a/emulators/b-em/patches/patch-src-cmos.c b/emulators/b-em/patches/patch-src-cmos.c
new file mode 100644
index 00000000000..43c8e9bd58d
--- /dev/null
+++ b/emulators/b-em/patches/patch-src-cmos.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-src-cmos.c,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+--- src/cmos.c.orig 2010-10-25 13:51:42.000000000 +0000
++++ src/cmos.c
+@@ -5,7 +5,7 @@
+
+ uint8_t cmos[64];
+
+-int cmosrw,cmosstrobe,cmosold,cmosaddr,cmosena;
++uint8_t cmosrw,cmosstrobe,cmosold,cmosaddr,cmosena;
+
+ void cmosupdate(uint8_t IC32, uint8_t sdbval)
+ {
diff --git a/emulators/b-em/patches/patch-src-fdi2raw.c b/emulators/b-em/patches/patch-src-fdi2raw.c
new file mode 100644
index 00000000000..88efaa640cd
--- /dev/null
+++ b/emulators/b-em/patches/patch-src-fdi2raw.c
@@ -0,0 +1,40 @@
+$NetBSD: patch-src-fdi2raw.c,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+--- src/fdi2raw.c.orig 2010-10-17 11:23:56.000000000 +0000
++++ src/fdi2raw.c
+@@ -1628,7 +1628,7 @@ static void fdi2_decode (FDI *fdi, uint3
+ randval = rand();
+ if (randval < (RAND_MAX / 2)) {
+ if (randval > (RAND_MAX / 4)) {
+- if (randval <= (3 * RAND_MAX / 8))
++ if (randval <= (3 * (RAND_MAX / 8)))
+ randval = (2 * randval) - (RAND_MAX /4);
+ else
+ randval = (4 * randval) - RAND_MAX;
+@@ -1637,7 +1637,7 @@ static void fdi2_decode (FDI *fdi, uint3
+ } else {
+ randval -= RAND_MAX / 2;
+ if (randval > (RAND_MAX / 4)) {
+- if (randval <= (3 * RAND_MAX / 8))
++ if (randval <= (3 * (RAND_MAX / 8)))
+ randval = (2 * randval) - (RAND_MAX /4);
+ else
+ randval = (4 * randval) - RAND_MAX;
+@@ -1663,7 +1663,7 @@ static void fdi2_decode (FDI *fdi, uint3
+ randval = rand();
+ if (randval < (RAND_MAX / 2)) {
+ if (randval > (RAND_MAX / 4)) {
+- if (randval <= (3 * RAND_MAX / 8))
++ if (randval <= (3 * (RAND_MAX / 8)))
+ randval = (2 * randval) - (RAND_MAX /4);
+ else
+ randval = (4 * randval) - RAND_MAX;
+@@ -1672,7 +1672,7 @@ static void fdi2_decode (FDI *fdi, uint3
+ } else {
+ randval -= RAND_MAX / 2;
+ if (randval > (RAND_MAX / 4)) {
+- if (randval <= (3 * RAND_MAX / 8))
++ if (randval <= (3 * (RAND_MAX / 8)))
+ randval = (2 * randval) - (RAND_MAX /4);
+ else
+ randval = (4 * randval) - RAND_MAX;
diff --git a/emulators/b-em/patches/patch-src-linux.c b/emulators/b-em/patches/patch-src-linux.c
new file mode 100644
index 00000000000..392a7b52599
--- /dev/null
+++ b/emulators/b-em/patches/patch-src-linux.c
@@ -0,0 +1,13 @@
+$NetBSD: patch-src-linux.c,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+--- src/linux.c.orig 2011-02-12 15:52:50.000000000 +0000
++++ src/linux.c
+@@ -62,6 +62,8 @@ int main(int argc, char *argv[])
+ get_executable_name(exedir,511);
+ p=get_filename(exedir);
+ p[0]=0;
++ /* data was referred relative to the executable; fix: */
++ strcpy(exedir, "@BEMDATADIR@");
+ loadconfig();
+ // printf("Main\n");
+ initbbc(argc,argv);
diff --git a/emulators/b-em/patches/patch-src-makefile.in b/emulators/b-em/patches/patch-src-makefile.in
new file mode 100644
index 00000000000..9b608c8e93a
--- /dev/null
+++ b/emulators/b-em/patches/patch-src-makefile.in
@@ -0,0 +1,23 @@
+$NetBSD: patch-src-makefile.in,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+--- src/Makefile.in.orig 2010-10-17 16:02:04.000000000 +0000
++++ src/Makefile.in
+@@ -76,7 +76,8 @@ am__DEPENDENCIES_1 =
+ @OS_WIN_FALSE@b_em_DEPENDENCIES = $(am__DEPENDENCIES_1)
+ SCRIPTS = $(noinst_SCRIPTS)
+ DEFAULT_INCLUDES = -I.@am__isrc@
+-depcomp = $(SHELL) $(top_srcdir)/depcomp
++#depcomp = $(SHELL) $(top_srcdir)/depcomp
++depcomp = $(SHELL) $(PREFIX)/share/automake-1.11/depcomp
+ am__depfiles_maybe = depfiles
+ am__mv = mv -f
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+@@ -1277,7 +1278,7 @@ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+
+-install-am: all-am
++install-am:
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+ installcheck: installcheck-am
diff --git a/emulators/b-em/patches/patch-src-resources.h b/emulators/b-em/patches/patch-src-resources.h
new file mode 100644
index 00000000000..543f59390b5
--- /dev/null
+++ b/emulators/b-em/patches/patch-src-resources.h
@@ -0,0 +1,12 @@
+$NetBSD: patch-src-resources.h,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+--- src/resources.h.orig 2010-10-16 21:03:30.000000000 +0000
++++ src/resources.h
+@@ -83,5 +83,7 @@
+ #define IDM_SID_INTERP 41200
+ #define IDM_SID_RESAMP 41201
+
++#ifdef WIN32
+ #define Button1 1000
++#endif
+ #define ListBox1 40900
diff --git a/emulators/b-em/patches/patch-src-tapenoise.c b/emulators/b-em/patches/patch-src-tapenoise.c
new file mode 100644
index 00000000000..0daa4d540f9
--- /dev/null
+++ b/emulators/b-em/patches/patch-src-tapenoise.c
@@ -0,0 +1,12 @@
+$NetBSD: patch-src-tapenoise.c,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+--- src/tapenoise.c.orig 2010-10-25 13:53:16.000000000 +0000
++++ src/tapenoise.c
+@@ -2,6 +2,7 @@
+ Tape noise (not very good)*/
+
+ #include <stdio.h>
++#include <math.h>
+ #include <allegro.h>
+ #include "b-em.h"
+
diff --git a/emulators/b-em/patches/patch-src-win.c b/emulators/b-em/patches/patch-src-win.c
new file mode 100644
index 00000000000..863446b5bc7
--- /dev/null
+++ b/emulators/b-em/patches/patch-src-win.c
@@ -0,0 +1,12 @@
+$NetBSD: patch-src-win.c,v 1.1 2012/02/20 15:45:19 reinoud Exp $
+
+--- src/win.c.orig 2011-02-12 17:34:10.000000000 +0000
++++ src/win.c
+@@ -346,6 +346,7 @@ int WINAPI WinMain (HINSTANCE hThisInsta
+ get_executable_name(exedir,511);
+ p=get_filename(exedir);
+ p[0]=0;
++ strcpy(exedir, "@BEMDATADIR@");
+
+ loadconfig();
+