# HG changeset patch # User kono # Date 1548034790 -32400 # Node ID a4aa3ec95b7562c98ff13696125155993df5d6ce # Parent dc4c7e7ec5c98aa73c7fd45d0a3cad06dfa2a8f2 fix addCurrent diff -r dc4c7e7ec5c9 -r a4aa3ec95b75 src/v09.c --- a/src/v09.c Mon Jan 21 01:00:29 2019 +0900 +++ b/src/v09.c Mon Jan 21 10:39:50 2019 +0900 @@ -154,7 +154,11 @@ int i; int setterm = 1; timerirq = 2; // use FIRQ default +#ifdef USE_MMU memsize = 512*1024*4; // full 2 mbute +#else + memsize = 1024*64; // 64k +#endif escchar='\x1d'; tracelo=0;tracehi=0xffff; for(i=1;ifp = 0; pd->mode = 0; free(pd->dirfp); pd->dirfp = 0; - // free(pd->name); pd->name = 0; + free(pd->name); pd->name = 0; } /* @@ -173,7 +173,7 @@ int i = 0; for(;base[i];i++) path[i] = base[i]; path[i++] = '/'; - for(int j=0;ips) printf("overrun i=%d ps=%d\n",i,ps); // err(__LINE__); @@ -357,7 +357,7 @@ if (i>pd->sz) return 0; } - pd->fp = fmemopen(pd->dirfp,pd->sz,"r"); + pd->fp = fmemopen(pd->dirfp,pd->sz+1,"r"); return 0; } @@ -400,7 +400,7 @@ os9setdate(buf+FD_Creat,&st.st_ctime); err = 0; err1: - // free(pd.name); should be free + free(pd.name); return err; } @@ -925,7 +925,7 @@ prog = (char*)(pmem(pcreg) - pcreg); if (*pmem(pcreg)==0 && *pmem(pcreg+1)==0) { // may be we are called from system state - // of coursel, this may wrong. but in system state, <$50 process has wrong DAT for pc + // of course, this may wrong. but in system state, <$50 process has wrong DAT for pc // and we can't know wether we are called from system or user prog = (char*)(smem(pcreg) - pcreg); }