# HG changeset patch # User Shinji KONO # Date 1546152085 -32400 # Node ID 613615c9b946fcd0b1ede6b2c6a254cb19718142 # Parent 014002970940f74bb49c70527b7eb02aff96ed6c open diff -r 014002970940 -r 613615c9b946 os9/mc09/crtos9.asm --- a/os9/mc09/crtos9.asm Sun Dec 30 08:27:58 2018 +0900 +++ b/os9/mc09/crtos9.asm Sun Dec 30 15:41:25 2018 +0900 @@ -1,10 +1,6 @@ -* -* micro-C driver under FLEX -* -* 12-Dec-81 M.Ohta,H.Tezuka -* 12-Dec-2018 S.Kono -* +* * micro-C driver under FLEX * * 12-Dec-81 M.Ohta,H.Tezuka +* 12-Dec-2018 S.Kono * * * micro-C user program @@ -31,8 +27,6 @@ pshs x,y POINT TO CONTENT OF ARGUMENT VECTOR leay ,u PSHS Y - leay _GLOBALS,y - sty heapp,y * allocate memory and change stack * try to allocate maximum memory if not specified @@ -67,6 +61,9 @@ subd #1 BNE _0C002 _0C003 + tfr y,d + addd #_GLOBALS + std heapp,y LBSR _INITIALIZE call initializer LBSR _main exit clrb diff -r 014002970940 -r 613615c9b946 os9/mc09/mclibos9.c --- a/os9/mc09/mclibos9.c Sun Dec 30 08:27:58 2018 +0900 +++ b/os9/mc09/mclibos9.c Sun Dec 30 15:41:25 2018 +0900 @@ -8,8 +8,10 @@ int fmode; /* 2 */ int len; /* 4 */ char *fname; /* 6 */ - char *ptr; /* 8 */ - char buff[256]; /* 10 */ + /* + char *ptr; /* 8 + char buff[256]; /* 10/ + */ } FILE ; #define FCBSIZE (sizeof(FILE)) @@ -118,10 +120,10 @@ if ( _setname(name,fcbp) == 0 ) return NULL; #asm pshs x,y,u - ldx -4,u + ldx -2,u lda 2,x mode ldb 3,x src attribute - leax 6,x name + ldx 6,x name os9 I$Open bcc _LC0001 ldx -4,u @@ -139,8 +141,8 @@ puls x,y,u #endasm if (fcbp->fd < 0 ) return NULL; - fcbp->ptr = fcbp->buff; - fcbp->len = 0; + /* fcbp->ptr = fcbp->buff; + fcbp->len = 0; */ return (_fcbtbl[i] = fcbp); } @@ -156,10 +158,10 @@ if ( _setname(name,fcbp) == 0 ) return NULL; #asm pshs x,y,u - ldx -4,u + ldx -2,u lda 2,x mode ldb 3,x src attribute - leax 6,x name + ldx 6,x name os9 I$Create bcc _LC0003 ldx -4,u @@ -177,8 +179,8 @@ puls x,y,u #endasm if (fcbp->fd < 0 ) return NULL; - fcbp->ptr = fcbp->buff; - fcbp->len = 0; + /* fcbp->ptr = fcbp->buff; + fcbp->len = 0; */ return (_fcbtbl[i] = fcbp); } @@ -192,7 +194,7 @@ if ( (fcbp == STDIN) || (fcbp == STDOUT) || (fcbp == STDERR) ) return 0; #asm pshs x,y,u - ldx -4,u + ldx 4,u lda 1,x os9 I$Close puls x,y,u @@ -202,28 +204,9 @@ } _setname(name,fcbp) -char *name,*fcbp; -{int i; - while(isspace(*name)) ++name; - if (isdigit(*name)) - { fcbp[3] = *name++ - '0'; - if (*name++ != '.') return 0; - } - else fcbp[3] = 0xff; - for (i = 4; i < 15; ++i) fcbp[i] = 0; - if (!isalpha(*name)) return -1; - for (i = 4; i < 12; ++i) - { if (!*name || (*name == '.')) break; - fcbp[i] = *name++; - } - while (*name && (*name != '.')) ++name; - if (*name == '.') - { ++name; - for (i = 12; i < 15; ++i) - { if (!*name) break; - fcbp[i] = *name++; - } - } +char *name; FILE *fcbp; +{ + fcbp->fname = name; return 1; } @@ -534,6 +517,7 @@ #asm sbrk PSHS U LEAU ,S + LDD heapp,Y PSHS D TFR S,D SUBD ,S++