Beispielprogramme in C/Tastenabfrage in C
Aus C64-Wiki
Zur Navigation springenZur Suche springen
input.c[Bearbeiten | Quelltext bearbeiten]
C-Version des Beispielprogramms im Artikel Tastatur. Im Gegensatz zu BASIC enthält die Variable auch das abschliessende Return- beziehungsweise Zeilenende-Zeichen.
/*
Programm: input.c
URL: http://www.c64-wiki.de/index.php/Tastatur#Tastenabfrage_in_BASIC
Compiler: cc65
compile: cl65 -tc64 input.c
10 INPUT "Geben Sie bitte etwas ein"; A$
20 [[PRINT]] "Sie gaben ein: "; A$
*/
#include <stdio.h>
void main(void)
{
char text[255];
printf("Geben Sie bitte etwas ein\n");
fgets(text, 255, stdin);
printf("Sie gaben ein: %s", text);
}
get.c[Bearbeiten | Quelltext bearbeiten]
C-Version des Beispielprogramms im Artikel Tastatur
/*
Programm: get.c
URL: http://www.c64-wiki.de/index.php/Tastatur#Tastenabfrage_in_BASIC
Compiler: cc65
compile: cl65 -tc64 get.c
10 PRINT "Druecken Sie bitte eine Taste:": A$ = ""
20 GET A$: [[IF]] A$="" [[THEN]] 20
30 PRINT "Sie drueckten die Taste: "; CHR$(34);A$;CHR(34)
*/
#include <conio.h>
void main(void)
{
cputs("Druecken Sie bitte eine Taste...");
cprintf("Sie drueckten die Taste: \"%c\"\n", cgetc());
}
key_peek.c[Bearbeiten | Quelltext bearbeiten]
C-Version des PEEK-Beispielprogramms im Artikel Tastatur
#include <6502.h>
#include <stdio.h>
#define current_keycode (*(uint8_t *) 197)
#define current_keybuffer_length (*(uint8_t *) 198)
#define current_keycode_table (*(uint8_t **) 245)
int main(void)
{
uint8_t keycode;
uint8_t *keycode_table;
/* Warten bis keine Taste mehr gedrückt ist. */
while (current_keycode != 64);
puts("Druecken Sie bitte eine Taste...");
/* Auf Tastendruck waren. */
while ((keycode = current_keycode) == 64);
/*
* Sicherstellen, dass der Zeiger auf die Tastencode-Tabelle
* atomar ausgelesen wird.
*/
SEI();
keycode_table = current_keycode_table;
CLI();
printf(
"\nSie drueckten die Taste \"%c\",\n"
"Tastencode %d aus Tabelle %p.",
keycode_table[keycode],
keycode,
keycode_table
);
current_keybuffer_length = 0;
return 0;
}