diff os9/mc09/mclibos9.c @ 105:6eef99bb4771

fix runtime
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 29 Dec 2018 12:25:26 +0900
parents 096b3fc7aa66
children 6566b9f47f4a
line wrap: on
line diff
--- a/os9/mc09/mclibos9.c	Fri Dec 28 17:43:55 2018 +0900
+++ b/os9/mc09/mclibos9.c	Sat Dec 29 12:25:26 2018 +0900
@@ -31,9 +31,9 @@
 #define STDOUT (&_s0[1])
 #define STDERR (&_s0[2])
 
-_main(args,prog)
+_main(prog,args)
+char *prog;
 char *args;
-char *prog;
 {int i;
  char **argv,*p,*q;
  int argc,n,quote,c;
@@ -54,12 +54,13 @@
             quote = 0;
             q = p = args;
             if (i==1) argv[n] = args;
-            while((c = *p++) && c!='\r') {
+            while((c = *p) && c!='\r') {
                 if (c=='\'') { 
                     if (!quote) {
-                        q--; 
+                        p++; 
                         quote = 1;
                     } else {
+                        p++; 
                         if (i==1) *q=0;
                         quote = 0;
                     }
@@ -68,14 +69,14 @@
                 } else if (c==' ') {
                     if (!quote) {
                         if (i==1) {
-                            *q = 0; argv[n++] = q+1;
+                            *q = 0; argv[++n] = q+1;
                         }
                     }
                 }
                 if (i==1) *q = *p;
                 q++; p++;
             }
-            if (i==1) *q = 0;
+            if (i==1) { *q = 0; argv[++n] = q+1; }
             argc = n;
         }
         argv[n]=0;
@@ -115,6 +116,7 @@
 	if ( i >= NFILES) return NULL;
 	if ( (fcbp = malloc(FCBSIZE)) == NULL ) return NULL;
 	if ( _setname(name,fcbp) == 0 ) return NULL;
+        0;
 #asm
         pshs      x,y,u
         ldx       -4,u
@@ -152,6 +154,7 @@
 	if ( i >= NFILES) return NULL;
 	if ( (fcbp = malloc(FCBSIZE)) == NULL ) return NULL;
 	if ( _setname(name,fcbp) == 0 ) return NULL;
+        0;
 #asm
         pshs      x,y,u
         ldx       -4,u
@@ -187,6 +190,7 @@
 	if ( i >= NFILES ) return EOF;
 	_fcbtbl[i] = NULL;
 	if ( (fcbp == STDIN) || (fcbp == STDOUT) || (fcbp == STDERR) ) return 0;
+        0;
 #asm
         pshs      x,y,u
         ldx       -4,u
@@ -535,11 +539,7 @@
 #asm
 sbrk	PSHS	U
 	LEAU	,S
-	
-	LDD	heapp,Y
-	BNE	_mc0
-	BSR	initheap
-_mc0	PSHS	D
+    	PSHS	D
 	TFR	S,D
 	SUBD	,S++
 	CMPD	4,U
@@ -556,14 +556,6 @@
 	LEAS	,U
 	PULS	U,PC
 
-initheap
-	PSHS	U
-	LEAU	,S
-	TFR	Y,D
-	ADDD	#_GLOBALS
-	STD	heapp,Y
-	LEAS	,U
-	PULS	U,PC
 #endasm
 
 mfree(ap)