User-Programme


  • Mod

    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. X

    LAST-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. X

    LAST-EDIT: Auf Version 0.2 aktualisiert.


  • Mod

    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();



  • Hier ein kleiner Rechner zum ausprobieren.
    Bitte beachte dies
    Fehlerhaftes malloc

    Rechner.zip

    ---



  • 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...)


  • Mod

    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


  • Mod

    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:


  • Mod

    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. 🙂


  • Mod

    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. 👍


  • Mod

    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.


  • Mod

    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 toll

    MrX:
    - 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 funktioniert 👍 👍 👍

    ich 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


Anmelden zum Antworten