]> git.sur5r.net Git - cc65/commitdiff
New module
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 24 Nov 2003 18:35:29 +0000 (18:35 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 24 Nov 2003 18:35:29 +0000 (18:35 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2682 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/common/make/gcc.mak
src/common/make/watcom.mak
src/common/mmodel.c [new file with mode: 0644]
src/common/mmodel.h [new file with mode: 0644]

index 2bf80901a3f28219cbc6dccabd20eee55817d10c..8763b8249a87cca9abce3f05fe676b84fcd76587 100644 (file)
@@ -25,6 +25,7 @@ OBJS =        abend.o         \
        hashstr.o       \
         hashtab.o       \
         matchpat.o      \
+        mmodel.o        \
        print.o         \
         searchpath.o    \
         segdefs.o       \
index d33082cc81920e42628ba12ad466eef1b84858d6..bf27af1e8f0a83cfe9be50c6fa499394a6e67d74 100644 (file)
@@ -70,6 +70,7 @@ OBJS =        abend.obj       \
        hashstr.obj     \
         hashtab.obj     \
         matchpat.obj    \
+        mmodel.obj      \
        print.obj       \
         searchpath.obj  \
         segdefs.obj     \
diff --git a/src/common/mmodel.c b/src/common/mmodel.c
new file mode 100644 (file)
index 0000000..d3187ce
--- /dev/null
@@ -0,0 +1,84 @@
+/*****************************************************************************/
+/*                                                                           */
+/*                                 mmodel.c                                  */
+/*                                                                           */
+/*                         Memory model definitions                          */
+/*                                                                           */
+/*                                                                           */
+/*                                                                           */
+/* (C) 2003      Ullrich von Bassewitz                                       */
+/*               Römerstraße 52                                              */
+/*               D-70794 Filderstadt                                         */
+/* EMail:        uz@cc65.org                                                 */
+/*                                                                           */
+/*                                                                           */
+/* This software is provided 'as-is', without any expressed or implied       */
+/* warranty.  In no event will the authors be held liable for any damages    */
+/* arising from the use of this software.                                    */
+/*                                                                           */
+/* Permission is granted to anyone to use this software for any purpose,     */
+/* including commercial applications, and to alter it and redistribute it    */
+/* freely, subject to the following restrictions:                            */
+/*                                                                           */
+/* 1. The origin of this software must not be misrepresented; you must not   */
+/*    claim that you wrote the original software. If you use this software   */
+/*    in a product, an acknowledgment in the product documentation would be  */
+/*    appreciated but is not required.                                       */
+/* 2. Altered source versions must be plainly marked as such, and must not   */
+/*    be misrepresented as being the original software.                      */
+/* 3. This notice may not be removed or altered from any source              */
+/*    distribution.                                                          */
+/*                                                                           */
+/*****************************************************************************/
+
+
+
+#include <string.h>
+
+/* common */
+#include "mmodel.h"
+
+
+
+/*****************************************************************************/
+/*                                          Data                                    */
+/*****************************************************************************/
+
+
+
+/* Memory model in use */
+mmodel_t MemoryModel = MMODEL_UNKNOWN;
+
+/* Table with memory model names */
+static const char* MemoryModelNames[MMODEL_COUNT] = {
+    "near",
+    "far",
+    "huge",
+};
+
+
+
+/*****************************************************************************/
+/*                                          Code                                    */
+/*****************************************************************************/
+
+
+
+mmodel_t FindMemoryModel (const char* Name)
+/* Find a memory model by name. Return MMODEL_UNKNOWN for an unknown name. */
+{
+    unsigned I;
+
+    /* Check all CPU names */
+    for (I = 0; I < MMODEL_COUNT; ++I) {
+       if (strcmp (MemoryModelNames[I], Name) == 0) {
+           return (mmodel_t)I;
+       }
+    }
+
+    /* Not found */
+    return MMODEL_UNKNOWN;
+}
+
+
+
diff --git a/src/common/mmodel.h b/src/common/mmodel.h
new file mode 100644 (file)
index 0000000..fc66c47
--- /dev/null
@@ -0,0 +1,80 @@
+/*****************************************************************************/
+/*                                                                           */
+/*                                 mmodel.h                                  */
+/*                                                                           */
+/*                         Memory model definitions                          */
+/*                                                                           */
+/*                                                                           */
+/*                                                                           */
+/* (C) 2003      Ullrich von Bassewitz                                       */
+/*               Römerstraße 52                                              */
+/*               D-70794 Filderstadt                                         */
+/* EMail:        uz@cc65.org                                                 */
+/*                                                                           */
+/*                                                                           */
+/* This software is provided 'as-is', without any expressed or implied       */
+/* warranty.  In no event will the authors be held liable for any damages    */
+/* arising from the use of this software.                                    */
+/*                                                                           */
+/* Permission is granted to anyone to use this software for any purpose,     */
+/* including commercial applications, and to alter it and redistribute it    */
+/* freely, subject to the following restrictions:                            */
+/*                                                                           */
+/* 1. The origin of this software must not be misrepresented; you must not   */
+/*    claim that you wrote the original software. If you use this software   */
+/*    in a product, an acknowledgment in the product documentation would be  */
+/*    appreciated but is not required.                                       */
+/* 2. Altered source versions must be plainly marked as such, and must not   */
+/*    be misrepresented as being the original software.                      */
+/* 3. This notice may not be removed or altered from any source              */
+/*    distribution.                                                          */
+/*                                                                           */
+/*****************************************************************************/
+
+
+
+#ifndef MMODEL_H
+#define MMODEL_H
+
+
+
+/*****************************************************************************/
+/*                                          Data                                    */
+/*****************************************************************************/
+
+
+
+/* Memory models */
+typedef enum {
+    MMODEL_UNKNOWN  = -1,
+    MMODEL_NEAR,                /* Code: near, data: near */
+    MMODEL_FAR,                 /* Code: far, data: near */
+    MMODEL_HUGE,                /* Code: far, data: far */
+    MMODEL_COUNT                /* Number of memory models */
+} mmodel_t;
+
+/* Memory model in use */
+extern mmodel_t MemoryModel;
+
+
+
+
+
+
+/*****************************************************************************/
+/*                                          Code                                    */
+/*****************************************************************************/
+
+
+
+mmodel_t FindMemoryModel (const char* Name);
+/* Find a memory model by name. Return MMODEL_UNKNOWN for an unknown name. */
+
+
+
+/* End of mmodel.h */
+
+#endif
+
+
+