User-Programme
-
Ich fang dann auch gleich mal an:
Ich habe ein Konsolen-PC-Spiel für PrettyOS portiert:
TicTacToe
Features: Multiplayer, Programm erkennt, wer gewinntDownloadlink: http://kloke-witten.dyndns.org/~philipp/downloads/PrettyOS/TicTacToe.zip
Viel Spaß damit!
mfg
Mr. XLAST-EDIT: Version 0.4 released
-
Herrlich! So eine Möglichkeit habe ich schon die ganze Zeit gesucht! Meine Programme werden auch nicht mehr lange warten
-
Jetzt gibt es auch Ton! Zumindest beep(frequenz,millisekunden).
Bitte nicht übertreiben!
-
Ich arbeite an einem Programm, das eig. nur wegen Ton existiert
-
So hier kommt das eben erwähnte Programm:
Mr.X Simple-Music-Creator
Features: Nutzer gibt Noten ein (cdefgahCDEFGAH, 0 für Pause) oder den Titel eines dem Programm bekannten Lieds (derzeit nur "Alle meine Entchen") und das Programm spielt das. Die Dauer einer ganzen Note wird angegeben, dann kann jede einzelne Note noch nur 4tel, halben, ganzen, doppelten und vierfachen verändert werden (--, -, nichts, +, ++)
als Hilfe noch der Code für "Alle meine Entchen": "cdefg+g+a-a-a-a-g+a-a-a-a-g+ffffe+e+ddddc++"
Download: http://kloke-witten.dyndns.org/~philipp/downloads/PrettyOS/Musik.zip
mfg
Mr. XLAST-EDIT: v0.3 released
-
Ein neues Programm von mir:
Mr. X Calculator
Der bereits versprochene Rechner...Features:
unterstützt Addition, Subtraktion, Multiplikation und Division. Unterstützt derzeit keine Klammern und Fließkommazahlen. Läuft in einer Schleife, die mit "exit" beendet wird.Download: http://kloke-witten.dyndns.org/~philipp/downloads/PrettyOS/Calculator.zip
mfg
Mr. XLAST-EDIT: Auf Version 0.2 aktualisiert.
-
Stand der User-Funktionen Rev. 134:
isdigit(c)
isalpha(c)
isalnum(c)
isupper(character)
islower(character)syscalls
void settextcolor(unsigned int foreground, unsigned int background);
void putch(unsigned char val);
void puts(char* pString);
unsigned char getch();
int floppy_dir();
void printLine(char* message, unsigned int line, unsigned char attribute);
unsigned int getCurrentSeconds();
unsigned int getCurrentMilliseconds();
int floppy_format(char* volumeLabel);
int floppy_load(char* name, char* ext);
void exit();
void settaskflag(int i);
void beep(unsigned int frequency, unsigned int duration);
int getUserTaskNumber();
void clearScreen(unsigned char backgroundColor) <--- Löschen der ersten 45 Zeilen (User-Bereich)
void gotoxy(unsigned char x, unsigned char y)user functions
char toLower(char c);
char toUpper(char c);
char* toupper( char* s );
char* tolower( char* s );unsigned int strlen(const char* str);
int strcmp( const char* s1, const char* s2 );
char* strcpy(char* dest, const char* src);
char* strncpy(char* dest, const char* src, unsigned int n);
char* strcat(char* dest, const char* src);
char* strchr(char* str, int character);char* gets(char* s);
void reverse(char* s);
void itoa(int n, char* s);
int atoi(char* s);
void float2string(float value, int decimal, char* valuestring);void showInfo(signed char val);
void test();
-
-
Schönes Programm , der Quellcode wär aber natürlich auch interessant.
Danke auch für die Errinnerung an das malloc-Problem, hätten wir fast vergessen.
(Und die Rechtschreibfehler in der Hilfeseite könntest Du vlt. noch beheben...)
-
Cuervo hat folgendes festgestellt, als er versucht hat, ein Spiel zu programmieren: (aus IRC)
"man bräuchte eine Funktion, die von allen Tasten den Status zurückgibt, ohne das Programm anzuhalten (1=gedrückt, 0=nicht gedrückt).If (KeyState(KEY_SPACE)==1) { whatever(); }
-
Ja, das lässt sich doch alles machen, oder?
Sollten wir im Zuge der Überarbeitung des Keyboard-Treibers erledigen.
@Cuervo: Vlt hast Du ja Lust, dich mal an den Keyboard-Treiber zu wagen?
-
Vllt erinnerst du dich, viele waren gegen eine solche Funktion. Nach meiner Erinnerung sogar du^^
Cuervo
-
Was spricht dagegen?
-
Ich war/bin gegen überflüssige Syscalls, bzw. mehr Syscalls als nötig.
Bevor solche Syscalls gebaut werden, sollte der Keyboard-Treiber aber erstmal repariert werden. Siehe auch:
-
keyPressed(...) ist inzwischen eingebaut. Übrigens auch eine srand/rand-Funktionalität zur Erzeugung von Zufallszahlen. Als Beispiel habe ich das Spiel ARROW ATTACK gebastelt, das diese beiden Elemente nutzt und damit demonstriert.
-
Hier mal etwas Werbung für "arrow". Durch die Performance-Steigerung von PrettyOS (scheduler) nun eine echte Herausforderung:
trials: 1/2000 "ARROW ATTACK" 0.12 E. Henkes A=left, R=right, S=del | v | | | v v | | v v | v | v | v | v | | v v | v | v | v | | v v | | || | | | | | | | | | v v vv v v v v v v v v v -------------------------------------------------------------------------------- Saturday, August 14, 2010, 13:39:53 861 s runtime. CPU: 1399 MHz /
Versucht euch so schnell wie möglich, aber auch mit möglichst wenig 's' (trials), nach rechts durchzuschlagen.
FSK: Noch keine Suchtgefahr.
-
Mit browser.elf, irc.elf, starwars.elf werden nun kleine Experimental-Programme angeboten, die man verwenden kann, um einen richtigen text-Browser, irc-Chat, telnet-Client etc. zu entwerfen.
-
Cuervo bastelt gerade an einer Pretty Control (remote control für PrettyOS via Browser).
im chat:
Cuervo:
- Userland-Funktionen für folgendes wären gut: CPU Frequenz abfragen, Arbeitsspeicher abfragen (belegt, gesamt), IP im Netzwerk abfragen, Videospeicher auslesen
- CPU-Taks, RAM, IP und vllt Videospeicher auslesen wären tollMrX:
- Ich habe mir darüber schonmal Gedanken gemacht und habe vor einem Jahr das hier entwickelt: http://www.c-plusplus.net/forum/269501. Ich habe immernoch vor, etwas derartiges zu implementieren. Das würde derartige Probleme "schlagartig" lösen.
-
FTP:
Ich bin grad dabei FTP in nem Userprogramm zum laufen zu bringen.
Nach dem Login auf "meinem" Server (im Passive Mode) hat ne Dateiübertragung über eine 2. Connection funktioniertich muss da aber noch ein bischen rumprobieren ^^
-
[veraltet]
Bedienungsanleitung für ftp.elf:
1. Verbinden sollte klar sein (Host, User, Pass).
2. Mit F8 gibt man FTP-Befehle ein
3. Beispiel anwenden.Beispiel:
-Verbinden (auf ESTABLISHED warten)
-F8 drücken
-PASV eingeben (auf ESTABLISHED warten)
-F8 drücken
-NLST eingeben.
-Verzeichnisliste(root) wird gesendet (auf schließen der 2. Verbindung warten)
-Escape
[/veraltet]Hier ne Liste von FTP-Befehlen:
http://www.w3.org/Protocols/rfc959/4_FileTransfer.html