1 /***********************************************************************/
4 /* DATE :Sun, Feb 24, 2013 */
5 /* DESCRIPTION :Program of I/O Stream */
6 /* CPU TYPE :H8/3069R */
8 /* This file is generated by Renesas Project Generator (Ver.4.16). */
10 /***********************************************************************/
18 #include "typedefine.h"
21 #if __STDC_VERSION__ == 199901L
23 /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
24 #define STDIN 0 /*
\95W
\8f\80\93ü
\97Í (
\83R
\83\93\83\
\81[
\83\8b) */
25 #define STDOUT 1 /*
\95W
\8f\80\8fo
\97Í (
\83R
\83\93\83\
\81[
\83\8b) */
26 #define STDERR 2 /*
\95W
\8f\80\83G
\83\89\81[
\8fo
\97Í (
\83R
\83\93\83\
\81[
\83\8b) */
28 #define FLMIN 0 /*
\8dÅ
\8f¬
\82Ì
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
43 #define _MWRITE 0x2000
46 /*
\83t
\83@
\83C
\83\8b\83t
\83\89\83O */
47 #define O_RDONLY 0x0001 /*
\93Ç
\82Ý
\8d\9e\82Ý
\90ê
\97p
\82É
\83I
\81[
\83v
\83\93 */
48 #define O_WRONLY 0x0002 /*
\8f\91\82«
\8fo
\82µ
\90ê
\97p
\82É
\83I
\81[
\83v
\83\93 */
49 #define O_RDWR 0x0004 /*
\93Ç
\82Ý
\8f\91\82«
\81A
\97¼
\97p
\82É
\83I
\81[
\83v
\83\93 */
50 #define O_CREAT 0x0008 /*
\83t
\83@
\83C
\83\8b\82ª
\91¶
\8dÝ
\82µ
\82È
\82¢
\8fê
\8d\87\81A
\90V
\8bK
\8dì
\90¬ */
51 #define O_TRUNC 0x0010 /*
\83t
\83@
\83C
\83\8b\82ª
\91¶
\8dÝ
\82·
\82é
\8fê
\8d\87\81A
\83t
\83@
\83C
\83\8b\83T
\83C
\83Y
\82ð0
\82É */
52 #define O_APPEND 0x0020 /*
\8e\9f\82É
\93Ç
\82Ý
\8f\91\82«
\82ð
\8ds
\82¤
\83t
\83@
\83C
\83\8b\93à
\82Ì
\88Ê
\92u
\82ð
\90Ý
\92è */
53 /* 0
\81F
\83t
\83@
\83C
\83\8b\82Ì
\90æ
\93ª 1
\81F
\83t
\83@
\83C
\83\8b\82Ì
\8dÅ
\8cã */
55 /*
\93Á
\8eê
\95¶
\8e\9a\83R
\81[
\83h */
56 #define CR 0x0d /*
\95\9c\8bA */
57 #define LF 0x0a /*
\89ü
\8ds */
59 const int _nfiles = IOSTREAM; /*
\93ü
\8fo
\97Í
\83t
\83@
\83C
\83\8b\90\94\82ð
\8ew
\92è */
60 char flmod[IOSTREAM]; /*
\83I
\81[
\83v
\83\93\82µ
\82½
\83t
\83@
\83C
\83\8b\82Ì
\83\82\81[
\83h
\90Ý
\92è
\8fê
\8f\8a */
62 unsigned char sml_buf[IOSTREAM];
64 #define FPATH_STDIN "C:\\stdin"
65 #define FPATH_STDOUT "C:\\stdout"
66 #define FPATH_STDERR "C:\\stderr"
68 /* H8
\83m
\81[
\83}
\83\8b\83\82\81[
\83h
\81ESH
\81ERX */
69 #if defined( __2000N__ ) || defined( __2600N__ ) || defined( __300HN__ ) || defined( _SH ) || defined( __RX )
70 /*
\95W
\8f\80\93ü
\97Í
\82©
\82ç
\82Ì1
\95¶
\8e\9a\93ü
\97Í
\8f\88\97\9d */
71 extern void charput(char);
72 /*
\95W
\8f\80\8fo
\97Í
\82Ö
\82Ì1
\95¶
\8e\9a\8fo
\97Í
\8f\88\97\9d */
73 extern char charget(void);
74 /*
\83t
\83@
\83C
\83\8b\82Ö
\82Ì1
\95¶
\8e\9a\8fo
\97Í
\8f\88\97\9d */
75 extern char fcharput(char, unsigned char);
76 /*
\83t
\83@
\83C
\83\8b\82©
\82ç
\82Ì1
\95¶
\8e\9a\93ü
\97Í
\8f\88\97\9d */
77 extern char fcharget(char*, unsigned char);
78 /*
\83t
\83@
\83C
\83\8b\82Ì
\83I
\81[
\83v
\83\93 */
79 extern char fileopen(char*, unsigned char, unsigned char*);
80 /*
\83t
\83@
\83C
\83\8b\82Ì
\83N
\83\8d\81[
\83Y */
81 extern char fileclose(unsigned char);
82 /*
\83t
\83@
\83C
\83\8b\83|
\83C
\83\93\83^
\82Ì
\88Ú
\93® */
83 extern char fpseek(unsigned char, long, unsigned char);
84 /*
\83t
\83@
\83C
\83\8b\83|
\83C
\83\93\83^
\82Ì
\8eæ
\93¾ */
85 extern char fptell(unsigned char, long*);
87 /* H8
\83A
\83h
\83o
\83\93\83X
\83g
\83\82\81[
\83h */
88 #elif defined( __2000A__ ) || defined( __2600A__ ) || defined( __300HA__ ) || defined( __H8SXN__ ) || defined( __H8SXA__ ) || defined( __H8SXM__ ) || defined( __H8SXX__ )
89 /*
\95W
\8f\80\93ü
\97Í
\82©
\82ç
\82Ì1
\95¶
\8e\9a\93ü
\97Í
\8f\88\97\9d */
90 extern void charput(char);
91 /*
\95W
\8f\80\8fo
\97Í
\82Ö
\82Ì1
\95¶
\8e\9a\8fo
\97Í
\8f\88\97\9d */
92 extern char charget(void);
93 /*
\83t
\83@
\83C
\83\8b\82Ö
\82Ì1
\95¶
\8e\9a\8fo
\97Í
\8f\88\97\9d */
94 extern char fcharput(char, unsigned char);
95 /*
\83t
\83@
\83C
\83\8b\82©
\82ç
\82Ì1
\95¶
\8e\9a\93ü
\97Í
\8f\88\97\9d */
96 extern char fcharget(char*, unsigned char);
97 /*
\83t
\83@
\83C
\83\8b\82Ì
\83I
\81[
\83v
\83\93 */
98 /*
\88ø
\90\94\8ai
\94[
\83\8c\83W
\83X
\83^3
\8ew
\92è */
99 extern char __regparam3 fileopen(char*, unsigned char, unsigned char*);
100 /*
\83t
\83@
\83C
\83\8b\82Ì
\83N
\83\8d\81[
\83Y */
101 extern char fileclose(unsigned char);
102 /*
\83t
\83@
\83C
\83\8b\83|
\83C
\83\93\83^
\82Ì
\88Ú
\93® */
103 extern char fpseek(unsigned char, long, unsigned char);
104 /*
\83t
\83@
\83C
\83\8b\83|
\83C
\83\93\83^
\82Ì
\8eæ
\93¾ */
105 extern char fptell(unsigned char, long*);
107 /* H8300
\81EH8300L */
108 #elif defined( __300__ ) || defined( __300L__ )
109 /*
\95W
\8f\80\93ü
\97Í
\82©
\82ç
\82Ì1
\95¶
\8e\9a\93ü
\97Í
\8f\88\97\9d */
110 extern void charput(char);
111 /*
\95W
\8f\80\8fo
\97Í
\82Ö
\82Ì1
\95¶
\8e\9a\8fo
\97Í
\8f\88\97\9d */
112 extern char charget(void);
113 /*
\83t
\83@
\83C
\83\8b\82Ö
\82Ì1
\95¶
\8e\9a\8fo
\97Í
\8f\88\97\9d */
114 extern char fcharput(char, unsigned char);
115 /*
\83t
\83@
\83C
\83\8b\82©
\82ç
\82Ì1
\95¶
\8e\9a\93ü
\97Í
\8f\88\97\9d */
116 extern char fcharget(char*, unsigned char);
117 /*
\83t
\83@
\83C
\83\8b\82Ì
\83I
\81[
\83v
\83\93 */
118 /*
\88ø
\90\94\8ai
\94[
\83\8c\83W
\83X
\83^3
\8ew
\92è */
119 extern char __regparam3 fileopen(char*, unsigned char, unsigned char*);
120 /*
\83t
\83@
\83C
\83\8b\82Ì
\83N
\83\8d\81[
\83Y */
121 extern char fileclose(unsigned char);
122 /*
\83t
\83@
\83C
\83\8b\83|
\83C
\83\93\83^
\82Ì
\88Ú
\93® */
123 /*
\88ø
\90\94\8ai
\94[
\83\8c\83W
\83X
\83^3
\8ew
\92è */
124 extern char __regparam3 fpseek(unsigned char, long, unsigned char);
125 /*
\83t
\83@
\83C
\83\8b\83|
\83C
\83\93\83^
\82Ì
\8eæ
\93¾ */
126 extern char fptell(unsigned char, long*);
130 FILE *_Files[IOSTREAM]; //
\83t
\83@
\83C
\83\8b\8d\
\91¢
\91Ì
131 char *env_list[] = { //
\8aÂ
\8b«
\95Ï
\90\94\95¶
\8e\9a\97ñ
\94z
\97ñ(**environ)
135 '\0' //
\8aÂ
\8b«
\95Ï
\90\94\94z
\97ñ
\8fI
\92[NULL
138 char **environ = env_list;
140 /****************************************************************************/
142 /* Initialize C library Functions, if necessary. */
143 /* Define USES_SIMIO on Assembler Option. */
144 /****************************************************************************/
145 void _INIT_IOLIB( void )
147 /*
\95W
\8f\80\93ü
\8fo
\97Í
\97p
\83t
\83@
\83C
\83\8b\82ð
\83I
\81[
\83v
\83\93\81A
\82Ü
\82½
\82Í
\90¶
\90¬
\82µ
\82Ü
\82·
\81B
\8aeFILE
\8d\
\91¢
\91Ì
\82Ì */
148 /*
\8f\89\8aú
\89»
\82Í
\83\89\83C
\83u
\83\89\83\8a\93à
\82Å
\8ds
\82Á
\82Ä
\82¢
\82Ü
\82·
\81B
\8ae
\83t
\83@
\83C
\83\8b\8d\
\91¢
\91Ì
\82Ì_Buf
\83\81\83\93\83o
\82É */
149 /* freopen()
\82É
\82æ
\82Á
\82Ä
\83\8a\83Z
\83b
\83g
\82³
\82ê
\82½
\83o
\83b
\83t
\83@
\8dÅ
\8fI
\83|
\83C
\83\93\83^
\82ð
\8dÄ
\90Ý
\92è
\82µ
\82Ü
\82·
\81B */
151 /*
\95W
\8f\80\93ü
\97Í
\97p
\83t
\83@
\83C
\83\8b */
152 if( freopen( FPATH_STDIN, "r", stdin ) == NULL )
153 stdin->_Mode = 0xffff; /*
\83I
\81[
\83v
\83\93\8e¸
\94s
\8e\9e\82Ì
\83A
\83N
\83Z
\83X
\8bÖ
\8e~ */
154 stdin->_Mode |= _MOPENR; /*
\83t
\83@
\83C
\83\8b\82ð
\93Ç
\82Ý
\8d\9e\82Ý
\90ê
\97p
\82É
\90Ý
\92è */
155 stdin->_Mode |= _MNBF; /*
\83f
\81[
\83^
\82Ì
\83o
\83b
\83t
\83@
\83\8a\83\93\83O
\82È
\82µ
\82É
\90Ý
\92è */
156 stdin->_Bend = stdin->_Buf + 1; /*
\83o
\83b
\83t
\83@
\8dÅ
\8fI
\83|
\83C
\83\93\83^
\82Ì
\8dÄ
\90Ý
\92è */
158 /*
\95W
\8f\80\8fo
\97Í
\97p
\83t
\83@
\83C
\83\8b */
159 if( freopen( FPATH_STDOUT, "w", stdout ) == NULL )
160 stdout->_Mode = 0xffff; /*
\83I
\81[
\83v
\83\93\8e¸
\94s
\8e\9e\82Ì
\83A
\83N
\83Z
\83X
\8bÖ
\8e~ */
161 stdout->_Mode |= _MNBF; /*
\83f
\81[
\83^
\82Ì
\83o
\83b
\83t
\83@
\83\8a\83\93\83O
\82È
\82µ
\82É
\90Ý
\92è */
162 stdout->_Bend = stdout->_Buf + 1; /*
\83o
\83b
\83t
\83@
\8dÅ
\8fI
\83|
\83C
\83\93\83^
\82Ì
\8dÄ
\90Ý
\92è */
164 /*
\95W
\8f\80\83G
\83\89\81[
\8fo
\97Í
\97p
\83t
\83@
\83C
\83\8b */
165 if( freopen( FPATH_STDERR, "w", stderr ) == NULL )
166 stderr->_Mode = 0xffff; /*
\83I
\81[
\83v
\83\93\8e¸
\94s
\8e\9e\82Ì
\83A
\83N
\83Z
\83X
\8bÖ
\8e~ */
167 stderr->_Mode |= _MNBF; /*
\83f
\81[
\83^
\82Ì
\83o
\83b
\83t
\83@
\83\8a\83\93\83O
\82È
\82µ
\82É
\90Ý
\92è */
168 stderr->_Bend = stderr->_Buf + 1; /*
\83o
\83b
\83t
\83@
\8dÅ
\8fI
\83|
\83C
\83\93\83^
\82Ì
\8dÄ
\90Ý
\92è */
171 /****************************************************************************/
173 /****************************************************************************/
174 void _CLOSEALL( void )
178 for( i=0; i < _nfiles; i++ )
180 /*
\83t
\83@
\83C
\83\8b\82ª
\83I
\81[
\83v
\83\93\82µ
\82Ä
\82¢
\82é
\82©
\83`
\83F
\83b
\83N */
181 if( _Files[i]->_Mode & (_MOPENR | _MOPENW | _MOPENA ) )
182 fclose( _Files[i] ); /*
\83t
\83@
\83C
\83\8b\82ð
\83N
\83\8d\81[
\83Y
\82·
\82é */
186 /**************************************************************************/
188 /* Return value:File number (Pass) */
190 /**************************************************************************/
191 int open(char *name, /*
\83t
\83@
\83C
\83\8b\96¼ */
192 int mode, /*
\83I
\81[
\83v
\83\93\83\82\81[
\83h */
193 int flg) /*
\83I
\81[
\83v
\83\93\83t
\83\89\83O */
197 if( strcmp( name, FPATH_STDIN ) == 0 ) /*
\95W
\8f\80\93ü
\97Í
\83t
\83@
\83C
\83\8b */
199 if( ( mode & O_RDONLY ) == 0 ) return -1;
203 else if( strcmp( name, FPATH_STDOUT ) == 0 )/*
\95W
\8f\80\8fo
\97Í
\83t
\83@
\83C
\83\8b */
205 if( ( mode & O_WRONLY ) == 0 ) return -1;
206 flmod[STDOUT] = mode;
209 else if(strcmp(name, FPATH_STDERR ) == 0 ) /*
\95W
\8f\80\83G
\83\89\81[
\8fo
\97Í
\83t
\83@
\83C
\83\8b */
211 if( ( mode & O_WRONLY ) == 0 ) return -1;
212 flmod[STDERR] = mode;
215 else return -1; /*
\95W
\8f\80\93ü
\8fo
\97Í
\88È
\8aO
\82Ì
\83t
\83@
\83C
\83\8b*/
218 int close( int fileno )
223 /**************************************************************************/
224 /* write:Data write */
225 /* Return value:Number of write characters (Pass) */
227 /**************************************************************************/
228 int write(int fileno, /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
229 char *buf, /*
\93]
\91\97\90æ
\83o
\83b
\83t
\83@
\83A
\83h
\83\8c\83X */
230 int count) /*
\8f\91\82«
\8fo
\82µ
\95¶
\8e\9a\90\94 */
232 unsigned int i; /*
\83J
\83E
\83\93\83g
\97p
\95Ï
\90\94 */
233 char c; /*
\8fo
\97Í
\95¶
\8e\9a */
235 /*
\83t
\83@
\83C
\83\8b\82Ì
\83\82\81[
\83h
\82ð
\83`
\83F
\83b
\83N
\82µ
\81A
\88ê
\95¶
\8e\9a\82Ã
\82Â
\8fo
\97Í */
236 /*
\8f\91\82«
\8fo
\82µ
\90ê
\97p or
\93Ç
\82Ý
\8d\9e\82Ý
\8f\91\82«
\8fo
\82µ
\97¼
\97p
\82É
\83I
\81[
\83v
\83\93\82³
\82ê
\82Ä
\82¢
\82é
\82©
\94»
\92è */
237 if(flmod[fileno]&O_WRONLY || flmod[fileno]&O_RDWR)
239 if( fileno == STDIN ) return -1; /*
\95W
\8f\80\93ü
\97Í */
240 else if( (fileno == STDOUT) || (fileno == STDERR) ) /*
\95W
\8f\80\8fo
\97Í */
242 for( i = count; i > 0; --i )
247 return count; /*
\8f\91\82«
\8fo
\82µ
\82½
\95¶
\8e\9a\90\94\95Ô
\8bp
\81B */
249 else return -1; /*
\83t
\83@
\83C
\83\8b\8fo
\97Í */
251 else return -1; /*
\83G
\83\89\81[ */
254 int read( int fileno, char *buf, unsigned int count )
258 /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86\82É
\8f]
\82Á
\82Ä
\83\82\81[
\83h
\82ð
\83`
\83F
\83b
\83N
\82µ
\81A
\88ê
\95¶
\8e\9a\82Ã
\82Â
\93ü
\97Í
\82µ
\82Ä
\83o
\83b
\83t
\83@
\82É
\8ai
\94[ */
260 if((flmod[fileno]&_MOPENR) || (flmod[fileno]&O_RDWR)){
261 for(i = count; i > 0u; i--){
263 if(*buf==CR){ /*
\89ü
\8ds
\95¶
\8e\9a\82Ì
\92u
\82«
\8a·
\82¦ */
275 long lseek( short fileno, short offset, short base )
287 _SINT open(_SBYTE *name, _SINT mode, _SINT flg);
288 _SINT close(_SINT fileno);
289 _SINT read(_SINT fileno, _SBYTE *buf, _UINT count);
290 _SINT write(_SINT fileno, _SBYTE *buf, _UINT count);
291 _SDWORD lseek(_SINT fileno, _SDWORD offset, _SINT base);
292 void _INIT_IOLIB(void);
293 void _CLOSEALL(void);
296 /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
298 #define STDIN 0 /*
\95W
\8f\80\93ü
\97Í
\81i
\83R
\83\93\83\
\81[
\83\8b\81j */
299 #define STDOUT 1 /*
\95W
\8f\80\8fo
\97Í
\81i
\83R
\83\93\83\
\81[
\83\8b\81j */
300 #define STDERR 2 /*
\95W
\8f\80\83G
\83\89\81[
\8fo
\97Í
\81i
\83R
\83\93\83\
\81[
\83\8b\81j */
302 #define FLMIN 0 /*
\8dÅ
\8f¬
\82Ì
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
303 #define FLMAX (IOSTREAM-1) /*
\8dÅ
\91å
\82Ì
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
305 /*
\83t
\83@
\83C
\83\8b\82Ì
\83t
\83\89\83O */
307 #define O_RDONLY 0x0001 /*
\93Ç
\82Ý
\8d\9e\82Ý
\90ê
\97p */
308 #define O_WRONLY 0x0002 /*
\8f\91\82«
\8fo
\82µ
\90ê
\97p */
309 #define O_RDWR 0x0004 /*
\93Ç
\82Ý
\8f\91\82«
\97¼
\97p */
311 /*
\93Á
\8eê
\95¶
\8e\9a\83R
\81[
\83h */
313 #define CR 0x0d /*
\95\9c\8bA */
314 #define LF 0x0a /*
\89ü
\8ds */
316 const _SINT _nfiles = IOSTREAM;
317 struct _iobuf _iob[IOSTREAM];
318 _UBYTE sml_buf[IOSTREAM];
321 /*************************************************************************/
322 /*
\8eQ
\8fÆ
\8aÖ
\90\94\82Ì
\90é
\8c¾
\81F */
323 /*
\83V
\83~
\83\85\83\8c\81[
\83^
\81E
\83f
\83o
\83b
\83K
\82Å
\83R
\83\93\83\
\81[
\83\8b\82Ö
\82Ì
\95¶
\8e\9a\93ü
\8fo
\97Í
\82ð
\8ds
\82¤ */
324 /*
\83A
\83Z
\83\93\83u
\83\8a\83v
\83\8d\83O
\83\89\83\80\82Ì
\8eQ
\8fÆ */
325 /*************************************************************************/
326 extern void charput(_SBYTE); /*
\88ê
\95¶
\8e\9a\8fo
\97Í
\8f\88\97\9d */
327 extern _SBYTE charget(void); /*
\88ê
\95¶
\8e\9a\93ü
\97Í
\8f\88\97\9d */
329 /*************************************************************************/
330 /*
\90Ã
\93I
\95Ï
\90\94\82Ì
\92è
\8b`
\81F */
331 /*
\92á
\90\85\8f\80\83C
\83\93\83^
\83t
\83F
\81[
\83X
\83\8b\81[
\83`
\83\93\82Å
\8eg
\97p
\82·
\82é
\90Ã
\93I
\95Ï
\90\94\82Ì
\92è
\8b` */
332 /*************************************************************************/
333 _SBYTE flmod[IOSTREAM]; /*
\83I
\81[
\83v
\83\93\82µ
\82½
\83t
\83@
\83C
\83\8b\82Ì
\83\82\81[
\83h
\90Ý
\92è
\8fê
\8f\8a */
335 /*************************************************************************/
336 /* open:
\83t
\83@
\83C
\83\8b\82Ì
\83I
\81[
\83v
\83\93 */
337 /*
\83\8a\83^
\81[
\83\93\92l
\81F
\83t
\83@
\83C
\83\8b\94Ô
\8d\86\81i
\90¬
\8c÷
\81j */
338 /* -1
\81i
\8e¸
\94s
\81j */
339 /*************************************************************************/
340 _SINT open(_SBYTE *name, /*
\83t
\83@
\83C
\83\8b\96¼ */
341 _SINT mode, /*
\83t
\83@
\83C
\83\8b\82Ì
\83\82\81[
\83h */
342 _SINT flg) /*
\96¢
\8eg
\97p */
344 /*
\83t
\83@
\83C
\83\8b\96¼
\82É
\8f]
\82Á
\82Ä
\83\82\81[
\83h
\82ð
\83`
\83F
\83b
\83N
\82µ
\81A
\83t
\83@
\83C
\83\8b\94Ô
\8d\86\82ð
\95Ô
\82· */
346 if(strcmp((const char *) name,"stdin")==0){ /*
\95W
\8f\80\93ü
\97Í
\83t
\83@
\83C
\83\8b */
347 if((mode&O_RDONLY)==0){
354 else if(strcmp((const char *) name,"stdout")==0){ /*
\95W
\8f\80\8fo
\97Í
\83t
\83@
\83C
\83\8b */
355 if((mode&O_WRONLY)==0){
358 flmod[STDOUT] = mode;
362 else if(strcmp((const char *) name,"stderr")==0){ /*
\95W
\8f\80\83G
\83\89\81[
\8fo
\97Í
\83t
\83@
\83C
\83\8b */
363 if((mode&O_WRONLY)==0){
366 flmod[STDERR] = mode;
371 return -1; /*
\83G
\83\89\81[ */
375 /*************************************************************************/
376 /* close:
\83t
\83@
\83C
\83\8b\82Ì
\83N
\83\8d\81[
\83Y */
377 /*
\83\8a\83^
\81[
\83\93\92l
\81F0
\81i
\90¬
\8c÷
\81j */
378 /* -1
\81i
\8e¸
\94s
\81j */
379 /*************************************************************************/
380 _SINT close(_SINT fileno) /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
382 if((fileno<FLMIN) || (FLMAX<fileno)){ /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86\82Ì
\94Í
\88Í
\83`
\83F
\83b
\83N */
385 flmod[fileno] = 0; /*
\83t
\83@
\83C
\83\8b\82Ì
\83\82\81[
\83h
\83\8a\83Z
\83b
\83g */
389 /*************************************************************************/
390 /* read:
\83f
\81[
\83^
\82Ì
\93Ç
\82Ý
\8d\9e\82Ý */
391 /*
\83\8a\83^
\81[
\83\93\92l
\81F
\8eÀ
\8dÛ
\82É
\93Ç
\82Ý
\8d\9e\82ñ
\82¾
\95¶
\8e\9a\90\94 \81i
\90¬
\8c÷
\81j */
392 /* -1
\81i
\8e¸
\94s
\81j */
393 /*************************************************************************/
394 _SINT read(_SINT fileno, /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
395 _SBYTE *buf, /*
\93]
\91\97\90æ
\83o
\83b
\83t
\83@
\83A
\83h
\83\8c\83X */
396 _UINT count) /*
\93Ç
\82Ý
\8d\9e\82Ý
\95¶
\8e\9a\90\94 */
400 /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86\82É
\8f]
\82Á
\82Ä
\83\82\81[
\83h
\82ð
\83`
\83F
\83b
\83N
\82µ
\81A
\88ê
\95¶
\8e\9a\82Ã
\82Â
\93ü
\97Í
\82µ
\82Ä
\83o
\83b
\83t
\83@
\82É
\8ai
\94[ */
402 if((flmod[fileno]&O_RDONLY) || (flmod[fileno]&O_RDWR)){
403 for(i = count; i > 0u; i--){
405 if(*buf==CR){ /*
\89ü
\8ds
\95¶
\8e\9a\82Ì
\92u
\82«
\8a·
\82¦ */
417 /*************************************************************************/
418 /* write:
\83f
\81[
\83^
\82Ì
\8f\91\82«
\8fo
\82µ */
419 /*
\83\8a\83^
\81[
\83\93\92l
\81F
\8eÀ
\8dÛ
\82É
\8f\91\82«
\8fo
\82µ
\82½
\95¶
\8e\9a\90\94 \81i
\90¬
\8c÷
\81j */
420 /* -1
\81i
\8e¸
\94s
\81j */
421 /*************************************************************************/
422 _SINT write(_SINT fileno, /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
423 _SBYTE *buf, /*
\93]
\91\97\8c³
\83o
\83b
\83t
\83@
\83A
\83h
\83\8c\83X */
424 _UINT count) /*
\8f\91\82«
\8fo
\82µ
\95¶
\8e\9a\90\94 */
429 /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86\82É
\8f]
\82Á
\82Ä
\83\82\81[
\83h
\82ð
\83`
\83F
\83b
\83N
\82µ
\81A
\88ê
\95¶
\8e\9a\82Ã
\82Â
\8fo
\97Í */
431 if((flmod[fileno]&O_WRONLY) || (flmod[fileno]&O_RDWR)){
432 for(i = count; i > 0u; i--){
443 /******************************************************************************/
444 /* lseek:
\83t
\83@
\83C
\83\8b\82Ì
\93Ç
\82Ý
\8d\9e\82Ý
\81^
\8f\91\82«
\8fo
\82µ
\88Ê
\92u
\82Ì
\90Ý
\92è */
445 /*
\83\8a\83^
\81[
\83\93\92l
\81F
\93Ç
\82Ý
\8d\9e\82Ý
\81^
\8f\91\82«
\8fo
\82µ
\88Ê
\92u
\82Ì
\83t
\83@
\83C
\83\8b\90æ
\93ª
\82©
\82ç
\82Ì
\83I
\83t
\83Z
\83b
\83g
\81i
\90¬
\8c÷
\81j*/
446 /* -1
\81i
\8e¸
\94s
\81j */
447 /* (
\83R
\83\93\83\
\81[
\83\8b\93ü
\8fo
\97Í
\82Å
\82Í
\81Alseek
\82Í
\83T
\83|
\81[
\83g
\82µ
\82Ä
\82¢
\82Ü
\82¹
\82ñ) */
448 /******************************************************************************/
449 _SDWORD lseek(_SINT fileno, /*
\83t
\83@
\83C
\83\8b\94Ô
\8d\86 */
450 _SDWORD offset, /*
\93Ç
\82Ý
\8d\9e\82Ý
\81^
\8f\91\82«
\8fo
\82µ
\88Ê
\92u */
451 _SINT base) /*
\83I
\83t
\83Z
\83b
\83g
\82Ì
\8bN
\93_ */
456 /****************************************************************************/
458 /****************************************************************************/
459 void _INIT_IOLIB(void)
463 for(fp = _iob; fp < _iob+_nfiles; fp++){
473 if(freopen("stdin", "r", stdin)==NULL){
474 stdin->_ioflag1 = 0xff;
476 stdin->_ioflag1 |= _IOUNBUF;
478 if(freopen("stdout", "w", stdout)==NULL){
479 stdout->_ioflag1 = 0xff;
481 stdout->_ioflag1 |= _IOUNBUF;
483 if(freopen("stderr", "w", stderr)==NULL){
484 stderr->_ioflag1 = 0xff;
486 stderr->_ioflag1 |= _IOUNBUF;
489 /****************************************************************************/
491 /****************************************************************************/
496 for(i = 0; i < _nfiles; i++){
497 if(_iob[i]._ioflag1 & (_IOREAD | _IOWRITE | _IORW )){