]> Shamusworld >> Repos - rmac/blobdiff - 68kgen.c
Added in DSP fixups to sect.c, misc. fixes for 6502 assembler.
[rmac] / 68kgen.c
index eb4df1a466d1c38e376e2f6385282c1b5951324a..497dbb49045a01b5a52539b31934056f28286ba6 100644 (file)
--- a/68kgen.c
+++ b/68kgen.c
@@ -1,38 +1,41 @@
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// RMAC - Reboot's Macro Assembler for the Atari Jaguar Console System
+//
+// RMAC - Reboot's Macro Assembler for all Atari computers
 // 68KGEN.C - Tool to Generate 68000 Opcode Table
-// Copyright (C) 199x Landon Dyer, 2011 Reboot and Friends
+// Copyright (C) 199x Landon Dyer, 2011-2019 Reboot and Friends
 // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986
-// Source Utilised with the Kind Permission of Landon Dyer
+// Source utilised with the kind permission of Landon Dyer
+//
 
 #include <stdio.h>
 #include <ctype.h>
 #include <stdlib.h>
 
+
 #define        EOS     '\0'
 
 int kwnum = 1;                 /* current op# for kwgen output */
-
-FILE *kfp;                     /* keyword file */
-
+FILE * kfp;                            /* keyword file */
 int lineno = 0;
 
+// Function prototypes
 void error(char *, char *);
 void procln(int, char **);
 
-void main(int argc, char **argv) {
-       char *namv[256];
-       char *s;
+
+int main(int argc, char ** argv)
+{
+       char * namv[256];
+       char * s;
        int namcnt;
        char ln[256];
 
-       if (argc == 2)
-               if ((kfp = fopen(argv[1], "w")) == NULL)
-                       error("Cannot create: %s", argv[1]);
+       if ((argc == 2) && ((kfp = fopen(argv[1], "w")) == NULL))
+               error("Cannot create: %s", argv[1]);
 
-       while (gets(ln) != NULL)
+       while (fgets(ln, 256, stdin) != NULL)
        {
-               ++lineno;                       /* bump line# */
+               lineno++;                       /* bump line# */
+
                if (*ln == '#')         /* ignore comments */
                        continue;
 
@@ -42,34 +45,42 @@ void main(int argc, char **argv) {
                 */
                namcnt = 0;
                s = ln;
+
                while (*s)
+               {
                        if (isspace(*s))
                                ++s;
                        else
                        {
                                namv[namcnt++] = s;
+
                                while (*s && !isspace(*s))
-                                       ++s;
+                                       s++;
+
                                if (isspace(*s))
                                        *s++ = EOS;
                        }
+               }
 
                if (namcnt)
                        procln(namcnt, namv);
        }
+
+       return 0;
 }
 
 
-/*
- *  Parse line
- */
-void procln(int namc, char **namv) {
+//
+// Parse line
+//
+void procln(int namc, char ** namv)
+{
        int i, j;
-       char *s;
 
-       if (namc == 1)          /* alias for previous entry */
+       // alias for previous entry
+       if (namc == 1)
        {
-               fprintf(kfp, "%s\t%d\n", namv[0], kwnum-1+1000);
+               fprintf(kfp, "%s\t%d\n", namv[0], kwnum - 1 + 1000);
                return;
        }
 
@@ -79,41 +90,48 @@ void procln(int namc, char **namv) {
                exit(1);
        }
 
-       if (*namv[0] != '-')            /* output keyword name */
+       // output keyword name
+       if (*namv[0] != '-')
                fprintf(kfp, "%s\t%d\n", namv[0], kwnum + 1000);
 
        printf("/*%4d %-6s*/  {", kwnum, namv[0]);
 
        if (*namv[1] == '!')
                printf("CGSPECIAL");
-       else for (s = namv[1], i=0; *s; ++s)
+       else for(char * s=namv[1], i=0; *s; s++)
                printf("%sSIZ%c", (i++ ? "|" : ""), *s);
+
        printf(", %s, %s, ", namv[2], namv[3]);
 
-       if (*namv[4] == '%')            /* enforce little fascist percent signs */
+       // enforce little fascist percent signs
+       if (*namv[4] == '%')
        {
-               for (i=1, j=0; i < 17; ++i)
+               for(i=1, j=0; i<17; i++)
                {
                        j <<= 1;
-                       if (namv[4][i] == '1' ||
-                                 isupper(namv[4][i]))
-                               ++j;
+
+                       if (namv[4][i] == '1' || isupper(namv[4][i]))
+                               j++;
                }
+
                printf("0x%04x, ", j);
        }
-       else printf("%s, ", namv[4]);
+       else
+               printf("%s, ", namv[4]);
 
-       if (namc == 7 &&
-                 *namv[6] == '+')
-               printf("%d, ", kwnum+1);
-       else printf("0, ");
+       if (namc == 7 && *namv[6] == '+')
+               printf("%d, ", kwnum + 1);
+       else
+               printf("0, ");
 
        printf("%s},\n", namv[5]);
 
-       ++kwnum;
+       kwnum++;
 }
 
-void error(char *s, char *s1) {
+
+void error(char * s, char * s1)
+{
        fprintf(stderr, s, s1);
        fprintf(stderr, "\n");
        exit(1);