From 158d5a080fe02d01395df386d0e6d93bd5bb1b09 Mon Sep 17 00:00:00 2001 From: cuz Date: Tue, 3 Jun 2003 11:39:02 +0000 Subject: [PATCH] Patch from Greg git-svn-id: svn://svn.cc65.org/cc65/trunk@2191 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- samples/ascii.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/samples/ascii.c b/samples/ascii.c index 704833b09..190025e9d 100644 --- a/samples/ascii.c +++ b/samples/ascii.c @@ -2,14 +2,17 @@ ** ** Shows the ASCII (or ATASCII, PETSCII) codes of typed characters. ** -** 2002-12-25, Greg King +** 2003-03-09, Greg King */ -/* Define CONIO when you want to use the conio functions. -** Undefine it when you want to use the stdio functions. -** NOTE: Undefining CONIO will currently not work on the CBMs!!! +/* Define USE_STDIO, when you want to use the stdio functions. +** Do not define it, when you want to use the conio functions. +** NOTE: stdin on some targets is line-bufferred. You might need to type +** a key, then tap the return(enter)-key, in order to see each code. +*/ +/* +#define USE_STDIO */ -#define CONIO #include #include @@ -18,10 +21,13 @@ #define QUIT 'Q' +/* r -- row. t -- table-column. +*/ static unsigned char height, width, r, t; static int c; -#ifdef CONIO +#ifndef USE_STDIO + # define PRINT cprintf # define PUT(c) cputc((char)(c)) @@ -32,19 +38,22 @@ static int GET(void) { PUT(c = (int)cgetc()); return c; } + #else + # define PRINT printf # define GET getchar + #endif int main(void) { -# ifdef CONIO +# ifndef USE_STDIO /* conio doesn't scroll! Avoid trouble by starting at the top ** of the screen, and never going "below" the bottom of the screen. */ clrscr(); - r = 7; /* allow for prompt */ + r = 7; /* allow for prompt */ # endif /* This prompt fits on the VIC-20's narrow screen. @@ -52,21 +61,24 @@ int main(void) { PRINT("Type characters to see\r\ntheir hexadecimal code\r\nnumbers:\r\n\n"); screensize(&width, &height); /* get the screen's dimensions */ width /= 6; /* get number of codes on a line */ - cursor(true); + cursor(true); t = 0; while ((c = GET()) != EOF) { -# ifdef CONIO +# ifndef USE_STDIO if (r == height) { clrscr(); + t = 0; PUT(c); /* echo char. again because screen was erased */ r = 1; } + if (c == '\n') + ++r; # endif PRINT("=$%02x ", c); if (c == QUIT) - break; + break; if (++t == width) { PRINT("\r\n"); ++r; -- 2.39.5