]> git.sur5r.net Git - cc65/commitdiff
Added a new .MACPACK CBM
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 4 May 2003 21:25:55 +0000 (21:25 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 4 May 2003 21:25:55 +0000 (21:25 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2142 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/macpack.c
src/ca65/macpack.h
src/ca65/pseudo.c

index 02875d0b36859dee19af219a125fab5b44c42c90..d22d9cc6c664cc42b453bba583114319fadbc7f5 100644 (file)
@@ -50,7 +50,9 @@
 
 
 /* Predefined packages */
-static char MacGeneric [] =            /* Generic macros */
+
+/* Generic macros */
+static char MacGeneric[] =
     ".macro  add     Arg1, Arg2\n"
     "        clc\n"
     "        .if .paramcount = 2\n"
@@ -68,9 +70,8 @@ static char MacGeneric [] =           /* Generic macros */
     "        .endif\n"
     ".endmacro\n";
 
-
-
-static char MacLongBranch [] =         /* Long branch macros */
+/* Long branch macros */
+static char MacLongBranch[] =
     ".macro  jeq     Target\n"
     "        .if     .match(Target, 0)\n"
     "        bne     *+5\n"
@@ -160,12 +161,36 @@ static char MacLongBranch [] =            /* Long branch macros */
     "        .endif\n"
     ".endmacro\n";
 
+/* Commodore specific macros */
+static char MacCBM[] =
+    ".macro scrcode str\n"
+    "        .repeat .strlen(str), i\n"
+    "                .if (.strat(str, i) >= '@' .and .strat(str, i) <= 'z')\n"
+    "                        .byte .strat(str, i) - '@'\n"
+    "                .elseif (.strat(str, i) >= 'A' .and .strat(str, i) <= 'Z')\n"
+    "                        .byte .strat(str, i) - 'A' + 65\n"
+    "                .elseif (.strat(str, i) = '[')\n"
+    "                        .byte 27\n"
+    "                .elseif (.strat(str, i) = ']')\n"
+    "                        .byte 29\n"
+    "                .elseif (.strat(str, i) = '^')\n"
+    "                        .byte 30\n"
+    "                .elseif (.strat(str, i) = '_')\n"
+    "                        .byte 31\n"
+    "                .else\n"
+    "                        .byte .strat(str, i)\n"
+    "                .endif\n"
+    "        .endrepeat\n"
+    ".endmacro\n";
+
+
 
 
 /* Table with pointers to the different packages */
 static char* MacPackages [] = {
     MacGeneric,
     MacLongBranch,
+    MacCBM
 };
 
 
index e292922591f5efbd9ec2cc740ebf7adf5e13353f..ee62ac1be92a2116b9b3e5dfc42575964338c49f 100644 (file)
@@ -47,6 +47,7 @@
 /* Constants for the predefined packages */
 #define MAC_GENERIC            0
 #define        MAC_LONGBRANCH          1
+#define MAC_CBM                 2
 
 
 
index 14d692a98a93836a705b24eb78135c5c0e112daf..d3918ec6248a7eb85f6910129c6d7adf5a415a32 100644 (file)
@@ -1052,8 +1052,9 @@ static void DoMacPack (void)
 {
     /* Macro package names */
     static const char* Keys [] = {
-       "GENERIC",
+       "GENERIC",
                "LONGBRANCH",
+        "CBM"
     };
 
     int Package;
@@ -1077,7 +1078,7 @@ static void DoMacPack (void)
 
     /* Insert the package */
     InsertMacPack (Package);
-}
+}