Sourcecode Fortschritt
-
Rev. 128:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=128userlib.c: gets(char*) funktionsfähig gemacht, aber irgendwie merkwürdig.
char* gets(char* s) { int i=0,flag=0; char c; //settaskflag(0); do { c = getch(); if(c=='\b') // Backspace { if(i>0) { putch(c); s[i-1]='\0'; --i; } else { beep(50,20); if(flag==false) { putch('\n'); flag=true; } } } else { s[i] = c; putch(c); flag=false; i++; } } while(c!=10); // Linefeed s[i]='\0'; //settaskflag(1); return s; }
Vielleicht liegt es auch daran, das settaskflag ausgeschaltet wurde, bitte testen. Obiges gets ist nur work-around, aber auch gut zum Testen.
Die ausführliche Version ist hier: http://www.c-plusplus.net/forum/viewtopic-var-t-is-260731-and-start-is-50.htmlIch habe es am realen PC getestet: Da kommt man nicht mehr in die obere Zeile.
Bei qemu geht das ab und zu, also "unsauber".Das hat mit der Task-/Video-Steuerung zu tun.
ich hoffe, dass dieses gets zunächst die Wünsche von MrX und Cuervo befriedigen.
-
Rev. 129:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=129TCP/IP-Stack leicht verändert/korrigiert
-
Rev. 130:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=130TCP/IP-Stack leicht verändert
Screenshot: http://www.henkessoft.de/OS_Dev/Bilder/rev130.PNG
-
Rev. 131:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=131Korrektur bei TCP/IP (zusätzlich im Screenshot oben: Erkennung von ARP)
-
Rev. 132:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=132pci.c: USB EHCI: Einstieg in Daten-Ermittlung (z.B. OpRegs Adresse, siehe: http://www.c-plusplus.net/forum/viewtopic-var-t-is-253016-and-start-is-39.html)
-
Rev. 133:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=133- paging.c: bool paging_do_idmapping( uint32_t phys_addr ) versuchsweise ab 0xC0000000 (Grund: manche MMIO beginnen ab 0xD....... oder 0xE.......)
- ckernel.c:int main() { init(); pODA->Memory_Size = paging_install(); printformat( "\n\nMemory size: %d KB\n", pODA->Memory_Size/1024 ); heap_install(); pciScan(); // scan of pci bus; results go to: pciDev_t pciDev_Array[50]; (cf. pci.h) tasking_install(); sti();
pciScan direkt hinter heap_install(). In pciScan() werden MMIO (USB EHCI, Netzwerkarte ID-gemappt.
Mal sehen, ob es klappt oder #PF hagelt?
-
Rev. 134:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=134Für unsere verehrten User:
void clear_screen() <--- TODO: nur oberen Bildschirmbereich löschen.
void gotoxy(unsigned char x, unsigned char y)
-
Rev. 135:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=135userlib.h/c: clear_screen() umgestellt auf Löschen der ersten 46 Zeilen (User-Bereich).
-
Rev. 136:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=136- kleine Verbesserungen nach cppcheck
- c99 im makefile bei user ergänztRev. 137:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=137ext in paging.c wieder eingefügt, ansonsten Error-Meldung.
-
Rev. 138:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=138neu: ehci.c (als Keimzelle für den USB 2.0 Host Controller) vergessen worden!
userlib.h/.c: clearScreen(backcolor)
flpydsk.c: Zählervariable versuchsweise im Schleifenkopf definiert (c99 style)
-
Rev. 139:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=139- ehci.c war vergessen worden, jetzt dabei
- fat12.c auf c99 umgestellt
-
Rev. 140:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=140pci.c und initrd.c auf c99 umgestellt (Zähler im Schleifenkopf)
-
Rev. 141
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=141rtl8139.c, util.c und userlib.c auf c99 umgestellt
-
Rev. 142:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=142Fehler in clear_userscreen (video.c) korrigiert
-
Rev. 144:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=144ehci.h/c: initEHCIHostController() TEST-Version (erste Gehversuche )
pci.c, Zeilen 187/188:
analyzeEHCI(bar); initEHCIHostController();
siehe EHCI Spec Rev. 1.0, Kap. 4 "Operational Model"
Ideal: Sun VB oder reale Hardware mit EHCI USB und Netzwerkkarte 8139
(Anm:: rev. 141-143 war fehlerhaft bezüglich rtl8139.c)
-
Rev. 145:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=145- Korrektur in RTL8139.c (reset abwarten)
- TTT 0.4 von MrX eingespielt (Sehr schön gemacht! Macht aber Probleme, wenn auf echter Hardware eine RTL8139 vorhanden ist und diese Interrupts und Prints sendet)
-
Erhard Henkes schrieb:
Rev. 145:
http://prettyos.svn.sourceforge.net/viewvc/prettyos?view=rev&revision=145Jede Quellcodedatei die ich bisher von euch gesehen habe (diese z.B.) sieht so furchtbar unvollständig aus. ihr arbeitet wohl an 100 Baustellen gleichzeitig.
-
Es gibt derzeit auch viele Baustellen... Vlt. hast Du konkrete Vorschläge, wo man was verbessern könnte?
-
Mr X schrieb:
Es gibt derzeit auch viele Baustellen... Vlt. hast Du konkrete Vorschläge, wo man was verbessern könnte?
Mir fällt z.B. auf, dass der Netzwerktreiber keine Sendefunktion hat, dass er direkt TCP aufruft, dass TCP nur eine Empfangsfunktion hat, die noch nicht mal TCP kann. dass TCP irgendwie auch ARP teilweise behandelt, dass alles mit printformat und settextcolor durchsetzt ist, usw.
Nicht dass ich euch reinreden will, aber das sieht für mich alles sehr nach unkoordinierter Bastelei aus.
-
Der Netzwerktreiber wird grad erst geschrieben; Dass der nicht besonders "schön"/funktiosfähig ist ist daher wohl eher nicht verwunderlich. Wenn Du dich damit auszukennst, wärst Du sicher eine große Hilfe bei der Entwicklung dieses Treibers...
Das settextcolor und printformat wird wohl der Übersichtlichkeit dienen.
Nicht dass ich euch reinreden will
Was heißt reinreden... Du kannst gerne mitmachen Schau doch mal im IRC vorbei...