0fc32f5bc7
C standard library modules neater. git-svn-id: http://picoc.googlecode.com/svn/trunk@427 21eae674-98b7-11dd-bd71-f92a316d2d60
59 lines
1 KiB
C
59 lines
1 KiB
C
#include "../picoc.h"
|
|
|
|
|
|
/* deallocate any storage */
|
|
void PlatformCleanup()
|
|
{
|
|
}
|
|
|
|
/* get a line of interactive input */
|
|
char *PlatformGetLine(char *Buf, int MaxLen)
|
|
{
|
|
int ix;
|
|
char ch, *cp;
|
|
|
|
ix = 0;
|
|
cp = Buf;
|
|
while (ix++ < MaxLen) {
|
|
ch = getch();
|
|
if (ch == 0x1B) { // ESC character - exit
|
|
printf("leaving picoC\n\r");
|
|
return NULL;
|
|
}
|
|
if (ch == '\n') {
|
|
*cp++ = '\n'; // if newline, send newline character followed by null
|
|
*cp = 0;
|
|
return Buf;
|
|
}
|
|
*cp++ = ch;
|
|
ix++;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* write a character to the console */
|
|
void PlatformPutc(unsigned char OutCh, union OutputStreamInfo *Stream)
|
|
{
|
|
if (OutCh == '\n')
|
|
putchar('\r');
|
|
|
|
putchar(OutCh);
|
|
}
|
|
|
|
/* read a character */
|
|
int PlatformGetCharacter()
|
|
{
|
|
return getch();
|
|
}
|
|
|
|
/* mark where to end the program for platforms which require this */
|
|
int ExitBuf[41];
|
|
|
|
/* exit the program */
|
|
void PlatformExit()
|
|
{
|
|
ExitBuf[40] = 1;
|
|
longjmp(ExitBuf, 1);
|
|
}
|
|
|