]> git.sur5r.net Git - c128-kasse/commitdiff
use nice drawing characters and two-column layout
authorMichael Stapelberg <michael@stapelberg.de>
Mon, 1 Nov 2010 17:48:37 +0000 (18:48 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 1 Nov 2010 17:48:37 +0000 (18:48 +0100)
include/general.h
src/general.c
src/itemz.c
src/kasse.c

index 481c104ba0de783c8391535ba1a1e5d480f8f51b..3c76062c6d78de4ebc3f2c6f2393c6018457e7b1 100644 (file)
@@ -19,4 +19,7 @@ extern BYTE _oserror;
 #define xstr(s) str(s)
 #define str(s) #s
 
+#define max(a, b) ((a) > (b) ? (a) : (b))
+#define min(a, b) ((a) > (b) ? (b) : (a))
+
 #endif /*GENERAL_H_*/
index db7807c62e463649830656935a8cd88692bb120b..59945444f12ac9219117c5751e9c908b80af9e63 100644 (file)
@@ -52,7 +52,7 @@ char *format_euro(char *s, int maxlen, int cent){
        if (len >= maxlen)
                return NULL;
        // workaround to produce a leading zero for cents.. %0.2d won't work 
-       sprintf(s, "%2d,%s%dEUR", cent / 100, ((cent%100)<10?"0":""), cent % 100);
+       sprintf(s, "%3d,%s%dEUR", cent / 100, ((cent%100)<10?"0":""), cent % 100);
        return s;
 }
 
index f9ea82f2b2d3b9b8b9b8c136f1224e3963493b07..0b43fa8fb8ecb5540ea0673353cdc367c12949bb 100644 (file)
@@ -23,7 +23,7 @@ static void itemz_print_screen() {
        clrscr();
        cprintf("itemz (phil_fry, sECuRE, sur5r) v:" GV "\r\n\r\n");
        cprintf("Datei: ITEMS\r\n\r\n");
-       for (i = 0; i < status.num_items; i++) {
+       for (i = 0; i < max(status.num_items, 15); i++) {
                if (format_euro(buffer, 10, status.status[i].price) != buffer) {
                        cprintf("Error: Could not format price %d\r\n", status.status[i].price);
                        exit(1);
index 08fbdc1f030b8951471aa157161c101965f75a07..70863885b2972845f6ee5f551b08a5bc28b75e30 100644 (file)
@@ -37,21 +37,34 @@ static void print_screen() {
                exit(1);
        }
        cprintf("C128-Kassenprogramm (phil_fry, sECuRE, sur5r) " GV "\r\
-\r\nUhrzeit: %s (wird nicht aktualisiert)\r\
-Eingenommen: %s, Verkauft: %ld Dinge, Drucken: %s\r\n\r\n",
+\r\nUhrzeit:     %s (wird nicht aktualisiert)\r\
+Eingenommen: %s, Verkauft: %ld Dinge, Drucken: %s\r\n",
        time, profit, items_sold, (printing == 1 ? "ein" : "aus"));
-       for (; i < status.num_items; ++i) {
+       cprintf("\xB0\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\xB2\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\xB2\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\xB2\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\xAE\r\n");
+       for (; i < min(status.num_items, 15); ++i) {
                if (format_euro(profit, sizeof(profit), status.status[i].price) == NULL) {
                        cprintf("Preis %ld konnte nicht umgerechnet werden\r\n", status.status[i].price);
                        exit(1);
                }
 
-               cprintf("Eintrag %2d: %-" xstr(MAX_ITEM_NAME_LENGTH) "s (%s, %d mal verkauft)\r\n",
+               cprintf("\x7D%2d: %-" xstr(MAX_ITEM_NAME_LENGTH) "s \x7D%s, %3dx \x7D",
                        i, status.status[i].item_name, profit, status.status[i].times_sold);
+               if ((i+16) < status.num_items) {
+
+                       if (format_euro(profit, sizeof(profit), status.status[i+16].price) == NULL) {
+                               cprintf("Preis %ld konnte nicht umgerechnet werden\r\n", status.status[i+16].price);
+                               exit(1);
+                       }
+                       cprintf("%2d: %-" xstr(MAX_ITEM_NAME_LENGTH) "s \x7D%s, %3dx \x7D",
+                               i+16, status.status[i+16].item_name, profit, status.status[i+16].times_sold);
+               } else cprintf("              \x7D                \x7D");
+               cprintf("\r\n");
        }
-       cprintf("\r\nBefehle: s) Daten sichern d) Drucken umschalten\r\
-g) Guthabenverwaltung     z) Zeit setzen\r\
-f) Freitext verkaufen     q) Beenden\r\n");
+       cprintf("\xAD\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\xB1\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\xB1\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\xB1\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\x60\xBD\r\n");
+       cprintf(
+"   s) Daten sichern                 d) Drucken umschalten\r\
+   g) Guthabenverwaltung            z) Zeit setzen\r\
+   f) Freitext verkaufen            q) Beenden\r\n");
 }
 
 /* Prints a line and logs it to file */
@@ -301,7 +314,8 @@ int main() {
                } else if (*c == 'q')
                        break;
        }
-       cprintf("BYEBYE\r\n");
+       clrscr();
+       cprintf("\r\nBYEBYE\r\n");
 
        return 0;
 }