From: matze Date: Sat, 28 Jul 2007 17:04:04 +0000 (+0000) Subject: makefile, status array in config.h X-Git-Tag: rgb2rv6~102 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=514e107d43e1e6e1c2e7cba9bf82c94b9e51760d;p=c128-kasse makefile, status array in config.h git-svn-id: https://shell.noname-ev.de/svn/kasse/c128@7 af93e077-1a23-4f1e-9cbe-9382a9d578f5 --- diff --git a/Makefile b/Makefile index ee7c979..f10e636 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,10 @@ +.c.s: cc65 -t c128 $< -kasse: kasse.o - cl65 -t c128 kasse.o +.s.o: cc65 -t c128 $< -kasse.o: kasse.s - ca65 -t c128 kasse.s - -kasse.s: kasse.c - cc65 -t c128 kasse.c - -all: kasse +all: config.o kasse.o + cl65 -t c128 kasse.o config.o -o kasse clean: - rm -f *.s *.o + rm -rf *.o *.s + \ No newline at end of file diff --git a/config.c b/config.c index e69de29..d9edd7c 100644 --- a/config.c +++ b/config.c @@ -0,0 +1,10 @@ +#include "config.h" + +void load_config(); + +void load_items(){ + num_items=3; + +} +void load_state(){} +void save_state(){} diff --git a/config.h b/config.h index d6bbb9f..8fdb988 100644 --- a/config.h +++ b/config.h @@ -1,9 +1,27 @@ #ifndef CONFIG_H_ #define CONFIG_H_ -unsigned long int num_items; -char **items; +/* Eingenommes Geld in Cent */ +unsigned long int money = 0; +unsigned long int num_items = 0; -char load_config(); +/* Datenstruktur der verkauften Einträge */ +struct status_t { + char key; + char *item_name; + /* Wieviel kostet der Eintrag (in Cent)? */ + unsigned int price; + /* Wie oft wurde er verkauft */ + unsigned int times_sold; +}; +#define MAX_ITEMS 16 +static struct status_t status[MAX_ITEMS]; + +// unklar bis jetzt was das tun wird +void load_config(); + +void load_items(); +void load_state(); +void save_state(); #endif /*CONFIG_H_*/ diff --git a/kasse.c b/kasse.c index c4cb98b..f2ba8a5 100644 --- a/kasse.c +++ b/kasse.c @@ -2,6 +2,7 @@ #include #include +#include "config.h" #include "kasse.h" // conf // drucker 4 oder 5 @@ -16,9 +17,9 @@ void print_screen() { uc i = 0; clrscr(); printf("C128-Kassenprogramm\n\n"); - printf("Eingenommen: %d Euro, Verkauft: %d Flaschen\n\n", money * 100, items_sold); - 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("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].price, status[i].times_sold); printf("\nBefehle: s) Save Data\n"); } @@ -27,26 +28,22 @@ void save_data() { } void buy(uc n) { - int negative = 1; - uc entered[5] = {49, 0, 0, 0, 0}; - uc i = 0; - uc c; - int einheiten; + 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(); - if (c == 13) + printf("das war %x\n", c); + if (c == 32) break; - else if (c == 45 && i == 0) - negative = -1; - else if (c > 47 && c < 58) - entered[i++] = c; + else if (c > 47 && c < 60) + einheiten += (c - 48); } - einheiten = atoi(entered) * negative; status[n].times_sold += einheiten; + money += status[n].price * einheiten; money += status[n].preis * einheiten; items_sold += einheiten; } @@ -56,12 +53,12 @@ int main() { static uc c; /* TODO: remove */ status[0].item_name = "cola"; - status[0].preis = 230; + status[0].price = 230; status[0].times_sold = 0; status[1].item_name = "mate"; - status[1].preis = 150; + status[1].price = 150; status[0].times_sold = 0; - for (c = 2; c < NUM_ITEMS; ++c) + for (c = 2; c < 15; ++c) status[c].item_name = NULL; while (1) { /* Bildschirm anzeigen */ @@ -69,7 +66,7 @@ int main() { /* Tastatureingaben abfragen */ c = getchar(); /* und eventuell weitere Dialoge anzeigen */ - if (c > 47 && c < 58) + if (c > 47 && c < 60) buy(c - 48); else if (c == 115) save_data(); diff --git a/kasse.h b/kasse.h index a0d1633..5fd2d8c 100644 --- a/kasse.h +++ b/kasse.h @@ -1,20 +1,3 @@ /* Abkürzung */ #define uc unsigned char -/* Anzahl Einträge */ -#define NUM_ITEMS 15 - -/* Eingenommes Geld in Cent */ -static unsigned long int money = 0; -static unsigned long int items_sold = 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];