From b7a81af86c3ec7b08f30dbba34aa49c61317ed6d Mon Sep 17 00:00:00 2001 From: skrll Date: Fri, 3 Dec 2004 15:15:23 +0000 Subject: Update arcem to 1.00 Changes are - New manual and new SourceForge page. Other documentation deprecated. - Added project files for MS VC++, and fix warnings provoked by it. - Further split of windowing/non-windowing functionality to aid division of architecture-independent files. - Windows version made independent from Cygwin. - Windows support imported from eQRD version. Features brought inline with other versions, including icon change, and same format for choices file. - Entirety of build warnings fixed under GCC, including those that appeared from turning on harsh warning flags. - General tidying. - Makefile rearranged so that default Unix builds are more sensible. - Support for running RISC OS, by Alex Macfarlane Smith and Peter Naulls - Split of the windowing aspects of the code, to allow independent development. - Some small speed ups. - Source code tidying and warning fixes. --- emulators/arcem/MESSAGE | 16 +++++----- emulators/arcem/Makefile | 36 +++++++++++++--------- emulators/arcem/PLIST | 14 ++++----- emulators/arcem/distinfo | 12 ++++---- emulators/arcem/files/dot.arcemrc | 4 +++ emulators/arcem/patches/patch-aa | 61 +++++++++++++++++++++---------------- emulators/arcem/patches/patch-ab | 63 ++++++++++++++------------------------- emulators/arcem/patches/patch-ac | 35 ++++++++++++++++++++++ emulators/arcem/patches/patch-ad | 35 ++++++++++++++++++++++ 9 files changed, 175 insertions(+), 101 deletions(-) create mode 100644 emulators/arcem/files/dot.arcemrc create mode 100644 emulators/arcem/patches/patch-ac create mode 100644 emulators/arcem/patches/patch-ad (limited to 'emulators/arcem') diff --git a/emulators/arcem/MESSAGE b/emulators/arcem/MESSAGE index 6d9e729041e..4b4f231db94 100644 --- a/emulators/arcem/MESSAGE +++ b/emulators/arcem/MESSAGE @@ -1,18 +1,16 @@ =========================================================================== -$NetBSD: MESSAGE,v 1.3 2003/05/06 17:41:09 jmmv Exp $ +$NetBSD: MESSAGE,v 1.4 2004/12/03 15:15:23 skrll Exp $ -When you run armul-arc, you need to be in a directory containing the -armem files and the ROM file. The distribution is supplied with the +When you run arcem, you need to be in a directory containing the +arcem files and the ROM file. The distribution is supplied with the Linux ROM and Hard Drive files from Dave Gilbert's site. The hard drive -file needs to be writable by you. Also, you will need an -.arcemrc file in your home directory e.g. +file needs to be writable by you. For example: - $ cp -R ${PREFIX}/share/arcem ~/Archimedes + $ mkdir ~/Archimedes + $ cp ${PREFIX}/share/arcem/* ~/Archimedes $ cp ~/Archimedes/dot.arcemrc ~/.arcemrc $ cd ~/Archimedes $ chmod +w HardImage1 - $ armul-arc - -See ${PREFIX}/share/arcem/README.OrElse for more details. + $ arcem =========================================================================== diff --git a/emulators/arcem/Makefile b/emulators/arcem/Makefile index 3e685347ee0..5cf918249a1 100644 --- a/emulators/arcem/Makefile +++ b/emulators/arcem/Makefile @@ -1,33 +1,41 @@ -# $NetBSD: Makefile,v 1.7 2004/11/13 21:28:28 jlam Exp $ +# $NetBSD: Makefile,v 1.8 2004/12/03 15:15:23 skrll Exp $ # -DISTNAME= arcem0.50 -PKGNAME= arcem-0.50 +DISTNAME= arcem-1.00-src +PKGNAME= ${DISTNAME:S/-src//} CATEGORIES= emulators -MASTER_SITES= ftp://ftp.arm.uk.linux.org/pub/linux/arcem/ +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=arcem/} + EXTRACT_SUFX= .tgz -DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \ + +LINUX_FILES= \ linux.rom.gz \ HardImage1.gz +.for f in ${LINUX_FILES} +SITES_${f}+= \ + ftp://ftp.arm.uk.linux.org/pub/linux/arcem/ +.endfor + +DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${LINUX_FILES} + MAINTAINER= cjep@NetBSD.org -HOMEPAGE= ftp://ftp.arm.uk.linux.org/pub/linux/arcem/Index +HOMEPAGE= http://arcem.sourceforge.net/ COMMENT= Dave Gilbert's Acorn Archimedes emulator -WRKSRC= ${WRKDIR}/armul-arc -USE_BUILDLINK3= yes +WRKSRC= ${WRKDIR}/arcem +USE_BUILDLINK3= # defined USE_X11= # defined +USE_GNU_TOOLS+= make + +MAKE_ENV+= SYSTEM=X post-install: ${INSTALL_DATA_DIR} ${PREFIX}/share/arcem ${INSTALL_DATA} ${WRKDIR}/linux.rom ${PREFIX}/share/arcem/ROM ${INSTALL_DATA} ${WRKDIR}/HardImage1 ${PREFIX}/share/arcem/HardImage1 - ${INSTALL_DATA} ${WRKSRC}/arch/dot.arcemrc \ - ${PREFIX}/share/arcem/dot.arcemrc + ${INSTALL_DATA} ${FILESDIR}/dot.arcemrc \ + ${PREFIX}/share/arcem/dot.arcemrc ${INSTALL_DATA} ${WRKSRC}/hexcmos ${PREFIX}/share/arcem/hexcmos - ${INSTALL_DATA} ${WRKSRC}/hexcmos.2 ${PREFIX}/share/arcem/hexcmos.2 - ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/arcem/README - ${INSTALL_DATA} ${WRKSRC}/README.OrElse \ - ${PREFIX}/share/arcem/README.OrElse .include "../../mk/bsd.pkg.mk" diff --git a/emulators/arcem/PLIST b/emulators/arcem/PLIST index cca59788a0b..ec697ebff51 100644 --- a/emulators/arcem/PLIST +++ b/emulators/arcem/PLIST @@ -1,10 +1,10 @@ -@comment $NetBSD: PLIST,v 1.1.1.1 2002/03/31 21:41:31 cjep Exp $ -bin/armul-arc -share/arcem/ROM +@comment $NetBSD: PLIST,v 1.2 2004/12/03 15:15:23 skrll Exp $ +bin/arcem +@comment share/arcem/dot.arcemrc share/arcem/HardImage1 -share/arcem/dot.arcemrc +share/arcem/ROM share/arcem/hexcmos -share/arcem/hexcmos.2 -share/arcem/README -share/arcem/README.OrElse +@comment share/arcem/hexcmos.2 +@comment share/arcem/README +@comment share/arcem/README.OrElse @dirrm share/arcem diff --git a/emulators/arcem/distinfo b/emulators/arcem/distinfo index 3858fb52ae5..4c5c47b5170 100644 --- a/emulators/arcem/distinfo +++ b/emulators/arcem/distinfo @@ -1,10 +1,12 @@ -$NetBSD: distinfo,v 1.1.1.1 2002/03/31 21:41:31 cjep Exp $ +$NetBSD: distinfo,v 1.2 2004/12/03 15:15:23 skrll Exp $ -SHA1 (arcem0.50.tgz) = 4c19c13971e7481b7b9d4538ab5c413769f08c2f -Size (arcem0.50.tgz) = 113990 bytes +SHA1 (arcem-1.00-src.tgz) = d2a487531ce6c66dfbeb59d1f1093c7d8fc3282a +Size (arcem-1.00-src.tgz) = 206416 bytes SHA1 (linux.rom.gz) = 5a3ed7b8bf7e560d14ede14232e50a40a96f9147 Size (linux.rom.gz) = 341085 bytes SHA1 (HardImage1.gz) = ab3c2ddd5a913a4051d4c21707e7701b27a103f3 Size (HardImage1.gz) = 3545800 bytes -SHA1 (patch-aa) = dd5ef10c7f455dd944fda3d14e4bd7780115b646 -SHA1 (patch-ab) = 4dbe031e69aabe04dbbcfca046b8d15ff2441a6f +SHA1 (patch-aa) = afc6f0a77315fb7476e10f472441093360b637e8 +SHA1 (patch-ab) = 92408b25cdd23444a7220191ba65348c6bef482f +SHA1 (patch-ac) = a9f3edbd7e7a974b7098936d62790821c5d3d4a1 +SHA1 (patch-ad) = 61823a1e47f783d1852c1f50762cdecbe3aeb3fb diff --git a/emulators/arcem/files/dot.arcemrc b/emulators/arcem/files/dot.arcemrc new file mode 100644 index 00000000000..b4e7d208c78 --- /dev/null +++ b/emulators/arcem/files/dot.arcemrc @@ -0,0 +1,4 @@ +MFM disc +1 612 4 32 256 +MFM disc +2 612 4 32 256 diff --git a/emulators/arcem/patches/patch-aa b/emulators/arcem/patches/patch-aa index 683ae4fc28e..a81a7846cd4 100644 --- a/emulators/arcem/patches/patch-aa +++ b/emulators/arcem/patches/patch-aa @@ -1,36 +1,45 @@ -$NetBSD: patch-aa,v 1.1.1.1 2002/03/31 21:41:31 cjep Exp $ +$NetBSD: patch-aa,v 1.2 2004/12/03 15:15:23 skrll Exp $ ---- Makefile.orig Tue Aug 3 21:00:16 1999 -+++ Makefile Sun Mar 31 21:34:25 2002 -@@ -22,13 +22,10 @@ - #Default endianness of the emulated processor (LITTLEEND or BIGEND) - ENDIAN=LITTLEEND +--- Makefile.orig 2002-05-05 23:09:39.000000000 +0100 ++++ Makefile +@@ -36,15 +36,14 @@ WARN = -Wall -Wno-return-type -Wno-unkno + + + # add -DHOST_BIGENDIAN for big endian hosts, e.g. Sun, SGI, HP +-CFLAGS = -O3 -D$(ENDIAN) $(CFL) -DNOOS -DNOFPE $(WARN) \ +- -I$(SYSTEM) -Iarch -funroll-loops -fexpensive-optimizations -ffast-math \ +- -fomit-frame-pointer -frerun-cse-after-loop ++#CFLAGS = -O3 -D$(ENDIAN) $(CFL) -DNOOS -DNOFPE $(WARN) \ ++# -I$(SYSTEM) -Iarch -funroll-loops -fexpensive-optimizations -ffast-math \ ++# -fomit-frame-pointer -frerun-cse-after-loop ++CFLAGS = -g -D$(ENDIAN) $(CFL) -DNOOS -DNOFPE $(WARN) -I$(SYSTEM) -Iarch + + -prefix=/usr/local --CC = /home/dg/egcs/bin/gcc --# add -DHOST_BIGENDIAN for big endian hosts, eg. sun, sgi, hp --CFLAGS = -O6 -D$(ENDIAN) $(CFL) -Wall -Wno-return-type -DNOOS -DNOFPE -I/usr/X11/include --#CFLAGS = -g -D$(ENDIAN) $(CFL) -Wall -DNOOS -DNOFPE -I/usr/X11/include -DBENCHMARKEXIT +- -INSTALL_DIR = $(prefix)/bin --INSTALL=cp -+CFLAGS = -O6 -D$(ENDIAN) $(CFL) -Wall -Wno-return-type \ -+ -DNOOS -DNOFPE -I${X11BASE}/include -+ -+INSTALL_DIR = ${PREFIX}/bin ++INSTALL_DIR = $(PREFIX)/bin + INSTALL=cp - # Everything else should be ok as it is. -@@ -56,10 +53,11 @@ - all: armul-arc +@@ -82,8 +81,8 @@ TARGET=!ArcEm/arcem + endif + + ifeq (${SYSTEM},X) +-CFLAGS += -DSYSTEM_X -I/usr/X11R6/include +-LIBS += -L/usr/X11R6/lib -lXext -lX11 ++CFLAGS += -DSYSTEM_X -I${X11BASE}/include ++LIBS += -L${X11BASE}/lib -Wl,-R${X11BASE}/lib -lXext -lX11 + endif + + ifeq (${SYSTEM},win) +@@ -110,7 +109,7 @@ VER=1.0 + all: $(TARGET) install: all - $(INSTALL) armul $(INSTALL_DIR) -+ $(INSTALL) armul-arc $(INSTALL_DIR) - - armul-arc: $(OBJS) $(MODEL).o -- $(CC) $(CFLAGS) $(OBJS) $(MODEL).o -o $@ -L/usr/X11/lib -lm -lXext -lX11 -+ $(CC) $(CFLAGS) $(OBJS) $(MODEL).o -o $@ -Wl,-R${X11BASE}/lib \ -+ -L${X11BASE}/lib -lm -lXext -lX11 ++ $(INSTALL) arcem $(INSTALL_DIR) - clean: - rm -f *.o arch/*.o armul-arc core *.bb *.bbg *.da + $(TARGET): $(OBJS) $(MODEL).o + $(CC) $(OBJS) $(LIBS) $(MODEL).o -o $@ diff --git a/emulators/arcem/patches/patch-ab b/emulators/arcem/patches/patch-ab index 8e94500b2d1..5bac55b5ee8 100644 --- a/emulators/arcem/patches/patch-ab +++ b/emulators/arcem/patches/patch-ab @@ -1,46 +1,29 @@ -$NetBSD: patch-ab,v 1.1.1.1 2002/03/31 21:41:31 cjep Exp $ +$NetBSD: patch-ab,v 1.2 2004/12/03 15:15:23 skrll Exp $ ---- arch/DispKbd.c.orig Tue Aug 3 21:00:17 1999 -+++ arch/DispKbd.c Sun Mar 31 15:34:10 2002 -@@ -43,6 +43,41 @@ +--- X/DispKbd.c.orig 2002-05-05 23:09:39.000000000 +0100 ++++ X/DispKbd.c +@@ -45,7 +45,9 @@ #define HD HOSTDISPLAY #define DC DISPLAYCONTROL -+/* Endian */ -+ -+#ifndef HOST_BIGENDIAN -+ -+#ifdef __Linux__ -+#define __USE_BSD -+#include -+#if BYTE_ORDER == BIG_ENDIAN -+#define HOST_BIGENDIAN -+#endif -+#endif -+ -+#ifdef __NetBSD__ -+#include -+#if BYTE_ORDER == BIG_ENDIAN -+#define HOST_BIGENDIAN -+#endif -+#endif -+ -+#ifdef __APPLE__ -+#include -+#if BYTE_ORDER == BIG_ENDIAN -+#define HOST_BIGENDIAN -+#endif -+#endif -+ -+#ifdef __sun__ -+#include -+#ifdef _BIG_ENDIAN -+#define HOST_BIGENDIAN -+#endif -+#endif -+ -+#endif /* HOST_BIGENDIAN */ -+ ++#if 0 static unsigned AutoKey(ARMul_State *state); - unsigned DisplayKbd_XPoll(ARMul_State *state); ++#endif + static struct EventNode enodes[4]; + //static int autokeyenode=0; /* Flips between 0 and 1 */ +@@ -87,12 +89,14 @@ static unsigned long get_pixelval(unsign + } /* get_pixval */ + + /*----------------------------------------------------------------------------*/ ++#if 0 + static unsigned AutoKey(ARMul_State *state) { + /*fprintf(stderr,"AutoKey!\n"); */ + KBD.TimerIntHasHappened+=2; + + return 0; + }; ++#endif + /*-----------------------------------------------------------------------------*/ + /* I'm not confident that this is completely correct - if it's wrong all hell + is bound to break loose! If it works however it should speed things up diff --git a/emulators/arcem/patches/patch-ac b/emulators/arcem/patches/patch-ac new file mode 100644 index 00000000000..1e4868c096c --- /dev/null +++ b/emulators/arcem/patches/patch-ac @@ -0,0 +1,35 @@ +$NetBSD: patch-ac,v 1.1 2004/12/03 15:15:23 skrll Exp $ + +--- armrdi.c.orig 2004-06-04 09:21:14.000000000 +0100 ++++ armrdi.c +@@ -114,11 +114,13 @@ void ARMul_ConsolePrint(ARMul_State *sta + } + } + ++#if 0 + static void ARMul_DebugPause(ARMul_State *state) + { + if(!(rdi_log & 8)) + state->hostif->dbgpause(state->hostif->dbgarg); + } ++#endif + + /***************************************************************************\ + * RDI_open * +@@ -278,6 +280,7 @@ static int RDI_CPUwrite(unsigned mode, u + * Internal functions for breakpoint table manipulation * + \***************************************************************************/ + ++#if 0 + static void deletewatchnode(WatchNode **prevp) + { WatchNode *p = *prevp; + *prevp = p->next; +@@ -305,7 +308,7 @@ static WatchNode *installwatch(ARMword a + p->bound = bound; + return p; + } +- ++#endif + /***************************************************************************\ + * RDI_execute * + \***************************************************************************/ diff --git a/emulators/arcem/patches/patch-ad b/emulators/arcem/patches/patch-ad new file mode 100644 index 00000000000..79678af0f3a --- /dev/null +++ b/emulators/arcem/patches/patch-ad @@ -0,0 +1,35 @@ +$NetBSD: patch-ad,v 1.1 2004/12/03 15:15:23 skrll Exp $ + +--- arch/armarc.c.orig 2002-05-06 09:52:53.000000000 +0100 ++++ arch/armarc.c +@@ -355,7 +355,7 @@ unsigned ARMul_MemoryInit(ARMul_State *s + FILE *ROMFile; + unsigned int ROMWordNum,ROMWord; + int PresPage; +- unsigned int index; ++ unsigned int idx; + + PrivDPtr = (PrivateDataType *)malloc(sizeof(PrivateDataType)); + if (PrivDPtr == NULL) { +@@ -392,8 +392,8 @@ unsigned ARMul_MemoryInit(ARMul_State *s + exit(3); + }; + +- for (index = 0; index < (MEMC.RAMSize / 4); index++) +- MEMC.PhysRamfuncs[index]=ARMul_Emulate_DecodeInstr; ++ for (idx = 0; idx < (MEMC.RAMSize / 4); idx++) ++ MEMC.PhysRamfuncs[idx]=ARMul_Emulate_DecodeInstr; + + MEMC.ROMMapFlag=1; /* Map ROM to address 0 */ + MEMC.ControlReg=0; /* Defaults */ +@@ -461,8 +461,8 @@ unsigned ARMul_MemoryInit(ARMul_State *s + PRIVD->irqflags = 0; + PRIVD->fiqflags = 0; + +- for(index = 0;index < (512 * 1024) / UPDATEBLOCKSIZE; index++) { +- MEMC.UpdateFlags[index] = 1; ++ for(idx = 0;idx < (512 * 1024) / UPDATEBLOCKSIZE; idx++) { ++ MEMC.UpdateFlags[idx] = 1; + } + + MEMC.OldAddress1 = -1; -- cgit v1.2.3