static void putchar (int c) { if (c == '\n' ) { newline: cx = 0; cy++; if (cy >= HEIGHT) { cy = 0; clears(); } move_cursor(); return; } if(c == '\r') { cx --; if(cx < 0) { cx = WIDTH-1; cy--; if(cy < 0) cy = 0; } move_cursor(); videoptr[cx + cy*WIDTH] = (' ' & 0xFF) | (attribut << 8); return; } videoptr[cx + cy*WIDTH] = (c & 0xFF) | (attribut << 8); cx++; if (cx >= WIDTH) goto newline; move_cursor(); }
/* * Methode löscht den aktuellen Bildschirm, laedt die Titelzeile neu und bietet * eine weitere menuwahl dem Benutzer an. Dieser Teil wird im Bereich des editierens * der Wetterdaten verwendet. */ void menu2(){ clears(); startText(); printf("Menu um die Wetterdaten zu verändern.\n\n" "Fuer den Tag bitte die gewünschte Nummer 1 - 7 " "für die Tage Montag - Sonntag\n" "und für das gewünschte Element\n" "Vorhersage, Temperatur, Windgeschw. oder Regenmenge 1 - 4\n\n"); }
/* * Methode dient zur Ausgabe der Wetterdaten auf dem Bildschirm * Vorab wird der Bildschirm geloescht und die Startzeile wieder geladen. * @input integer Wert von 1 - 7 für die Tage Montag bis Sonntag * @return Ohne */ void print(int day){ clears(); startText(); printf("\033[34m\033[1m%s:\033[0m\n\n", days[day]); printf("Vorhersage :\t%s\n",weather[day][0]); printf("Temperatur :\t%s °C\n",weather[day][1]); printf("Windgeschw.:\t%s km/h\n",weather[day][2]); printf("Regenmenge :\t%s mm\n\n",weather[day][3]); }
/* * Diese Methode gibt einen Text aus, welche auf das zurueckspringen ins Hauptmenu * verweisst. * In der Methode wird ebenfalls direkt die Abfrage nach der Eingabe des Benutzers * abgewartet und bei korrekter Eingabe die Variablen für ein sauberes Weiterkommen * verändert. * Schlussendlich wird der aktuelle Bildschirminhalt gelöscht. */ void back(){ char input; printf("Um wieder ins Hauptmenu zurueckzukehren " "bitte mit der Eingabe von B bestaetigen."); do { scanf("%s", &input); } while (toupper(input) != 'B'); quit = FALSE; clears(); }
void init_video() { videoptr = (uint16_t*) 0xB8000; attribut = 0xF1; clears(); }