{{Infobox OS | Name = SurO (ehemals SUR-Office) | Version = 3,5b | Entwickler = [[Benutzer:Sur3|Sur3]] | Lizenz = [http://creativecommons.org/licenses/by-nc-nd/3.0/de/ by-nc-nd 3.0] | Kernel = Hybridkernel | API = - | Binaerformat = .x (eigenes) | Sprache = [[Assembler | ASM]] | IPC= - | Plattform = [[x86]], geplant: [[AMD64]], [[AVR]] und [[ARM]] | Homepage = (noch keine) }} SurO ist ein HobbyOS, welches durch einen Programmierwettstreit entstanden ist. Version 0.1 war noch eine in QBasic geschriebene DOS-GUI. Version 3,5b ist momentan in Flat-Assembler geschrieben, soll aber dann in Version 3,5c einen eigenen (Meta-)Assemblerdialekt benutzen. == Entwickler == * [[Benutzer:Sur3|Sur3]] == Features == Im Moment sind die folgenden Features implementiert: * Multitasking (+SMP) * FAT32 Dateisystem * Editor (Angucken und Editieren des Arbeitsspeichers oder von Dateien) * HyperEbenenProjektionsTreiber (Sowas wie Grafikfenster für Programme) * 1024x768x25 (8881 rgba) Grafik + süßer Fadenkreuzmauszeiger * kleine C-Bibliothek über Interrupt 35h * Uhr- und Datumsanzeige == Ladbare Programme [Programmiersprache] == * Tetris [fasm] * Mandelbrot [C] * Hallo Welt [C] == Beispiel-Programm für die zugehörige C-Bibliothek== #include "surlib.h" void main(){ sur_HE_erstelle_std(); //Grafikfenster erstellen sur_HE_clear(0x00330011); //mit aRGB-Wert Füllen sur_Eingabe_registriereTasten_AlifNum(); //Alphanumerische Tastatur anfordern char cha[2]; cha[1]=0; //Nullterminiertes Zeichen sur_HE_male_cstring("Hallo",0x4040,0x0000ffff); //schreibe "Hallo" in Türkis auf den Bildschirm //zweiter parameter ist die Position 0x400*y+x sur_Eingabe_warteTaste(cha); //auf einen Tastendruck warten sur_wandle_deKey2ANSI(cha); //deutschen Tastencode in Schriftzeichen umwandeln sur_HE_male_cstring("Welt!",0x4070,0x00ffff00); //schreibe "Welt!" in Gelb auf den Bildschirm sur_HE_male_cstring(cha,0x8040,0x0000ff00); //Gib das Zeichen von der Tastatur in Grün aus sur_sys_prog_ende(); //Beende das Programm } Kompiliert wird in ein Binärformat mit:
gcc sur_hello_world.c -o hello.x -m32 -mno-see -nostdlib -O2 -emain -Wl,-Ttext,0 -Wl,--oformat,binary --std=gnu99
== ToDo == Aktuell wird daran gearbeitet das Sheduling zu optimieren und das Bearbeiten von Dateien komfortabler zu machen. [[Kategorie:Betriebssystem]]