From: sECuRE Date: Sat, 28 Jul 2007 16:27:06 +0000 (+0000) Subject: moved files, removed .swp X-Git-Tag: rgb2rv6~105 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1e34dbf4b094e7f9c53c9ad343b133fb71032bdd;p=c128-kasse moved files, removed .swp git-svn-id: https://shell.noname-ev.de/svn/kasse/c128@4 af93e077-1a23-4f1e-9cbe-9382a9d578f5 --- diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ee7c979 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ + +kasse: kasse.o + cl65 -t c128 kasse.o + +kasse.o: kasse.s + ca65 -t c128 kasse.s + +kasse.s: kasse.c + cc65 -t c128 kasse.c + +all: kasse + +clean: + rm -f *.s *.o diff --git a/kasse.c b/kasse.c new file mode 100644 index 0000000..2890d8f --- /dev/null +++ b/kasse.c @@ -0,0 +1,73 @@ +#include +#include + +#include "kasse.h" +// conf +// drucker 4 oder 5 +// preise+getraenke +// +// graphic 4,0,10 + + + +/* Hauptbildschirm ausgeben */ +void print_screen() { + uc i = 0; + clrscr(); + printf("C128-Kassenprogramm\n\n"); + printf("Eingenommen: 1337 Euro, Verkauft: 42 Flaschen\n\n"); + for (; i < NUM_ITEMS; ++i) + printf("Item %x: %s (%d Cents, %d mal verkauft)\n", i, status[i].item_name, status[i].preis, status[i].times_sold); + printf("\nBefehle: s) Save Data\n"); +} + +/* Wird ausgelagert */ +void save_data() { +} + +void buy(uc n) { + static uc einheiten = 1; + static uc c; + if (status[n].item_name == NULL) + printf("ERROR: No such item\n"); + else { + printf("Wieviel Einheiten \"%s\"?\n", status[n].item_name); + while (1) { + c = getchar(); + printf("das war %x\n", c); + if (c == 32) + break; + else if (c > 47 && c < 60) + einheiten += (c - 48); + } + status[n].times_sold += einheiten; + money += status[n].preis * einheiten; + } +} + +int main() { + static uc c; + /* TODO: remove */ + status[0].item_name = "cola"; + status[0].preis = 230; + status[0].times_sold = 0; + status[1].item_name = "mate"; + status[1].preis = 150; + status[0].times_sold = 0; + for (c = 2; c < 15; ++c) + status[c].item_name = NULL; + while (1) { + /* Bildschirm anzeigen */ + print_screen(); + /* Tastatureingaben abfragen */ + c = getchar(); + /* und eventuell weitere Dialoge anzeigen */ + if (c > 47 && c < 60) + buy(c - 48); + else if (c == 115) + save_data(); + else if (c == 113) + break; + } + printf("BYEBYE\n"); +} diff --git a/kasse.h b/kasse.h new file mode 100644 index 0000000..ca4b4e4 --- /dev/null +++ b/kasse.h @@ -0,0 +1,19 @@ +/* Abkürzung */ +#define uc unsigned char + +/* Anzahl Einträge */ +#define NUM_ITEMS 15 + +/* Eingenommes Geld in Cent */ +static unsigned long int money = 0; + +/* Datenstruktur der verkauften Einträge */ +struct status_t { + char *item_name; + /* Wieviel kostet der Eintrag (in Cent)? */ + unsigned int preis; + /* Wie oft wurde er verkauft */ + unsigned int times_sold; +}; + +static struct status_t status[NUM_ITEMS];