1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-26 08:32:00 +00:00

Add new sample code contributed by Greg King

git-svn-id: svn://svn.cc65.org/cc65/trunk@1990 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-02-16 14:43:00 +00:00
parent 397c068cfb
commit b48ba7cbd1
4 changed files with 92 additions and 2 deletions

View File

@ -1,3 +1,4 @@
ascii
fire
hello
mousedemo

View File

@ -32,11 +32,14 @@ C1541 = c1541
# --------------------------------------------------------------------------
# Rules how to make each one of the binaries
EXELIST=fire hello mousedemo nachtm plasma sieve tgidemo
EXELIST=ascii fire hello mousedemo nachtm plasma sieve tgidemo
.PHONY: all
all: $(EXELIST)
ascii: $(CRT0) ascii.o $(CLIB)
@$(LD) -t $(SYS) -m ascii.map -Ln ascii.lbl -o $@ $^
fire: $(CRT0) fire.o $(CLIB)
@$(LD) -t $(SYS) -m fire.map -Ln fire.lbl -o $@ $^

View File

@ -18,6 +18,14 @@ Please note:
List of supplied sample programs:
-----------------------------------------------------------------------------
Name: ascii
Description: Shows the ASCII (or ATASCII, PETSCII) codes of typed
characters. Written and contributed by Greg King
<gngking@erols.com>.
Platforms: All platforms with conio or stdio (compile time
configurable).
-----------------------------------------------------------------------------
Name: fire
Description: Another graphics demo written by groepaz/hitmen.

78
samples/ascii.c Normal file
View File

@ -0,0 +1,78 @@
/* ascii.c
**
** Shows the ASCII (or ATASCII, PETSCII) codes of typed characters.
**
** 2002-12-25, Greg King <gngking@erols.com>
*/
/* 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 CONIO
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define QUIT 'Q'
static unsigned char height, width, r, t;
static int c;
#ifdef CONIO
# define PRINT cprintf
# define PUT(c) cputc((char)(c))
/* conio doesn't echo typed characters.
** So, this function does it.
*/
static int GET(void) {
PUT(c = (int)cgetc());
return c;
}
#else
# define PRINT printf
# define GET getchar
#endif
int main(void) {
# ifdef CONIO
/* 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 */
# endif
/* This prompt fits on the VIC-20's narrow screen.
*/
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);
t = 0;
while ((c = GET()) != EOF) {
# ifdef CONIO
if (r == height) {
clrscr();
PUT(c); /* echo char. again because screen was erased */
r = 1;
}
# endif
PRINT("=$%02x ", c);
if (c == QUIT)
break;
if (++t == width) {
PRINT("\r\n");
++r;
t = 0;
}
}
PRINT("\r\n");
return EXIT_SUCCESS;
}