Sourcecode Fortschritt
-
Rev. 1152:
* ftp.c von neuer_user hinzugefügt
* Userprogramm-Maps werden erzeugt in documentation/
* pong.c hinzugefügt (nutzlos für normale Benutzer)
-
version = "0.0.2.298 - Rev: 1153"
Problem gelöst. udpsend, udprecv im user-land funktioniert nun grundsätzlich.
qemu-batch:
del serielleSchnittstelle1.txt
del serielleSchnittstelle2.txt
del serielleSchnittstelle3.txt
del serielleSchnittstelle4.txt
set QEMU_AUDIO_DRV=wav
qemu.exe -boot a -fda FloppyImage.img -soundhw pcspk -net nic,model=pcnet -redir tcp:5023::23 -redir tcp:8080::80 -redir udp:8084::8084 -redir udp:8085::8085 -localtime -net user -net dump,file=netdump.pcap -serial file:serielleSchnittstelle1.txt -serial file:serielleSchnittstelle2.txt -serial file:serielleSchnittstelle3.txt -serial file:serielleSchnittstelle4.txt -usb
-
version = "0.0.2.299 - Rev: 1154"
- udp.c: alle blocked tasks erhalten den Payload im UDP-Paket (ist in rev. 1157/1158 korrigiert)
- udpsend/udprecv.c leicht überarbeitet
- pit.h eingefügt (für timer.c und sys_speaker.c)
- Sonstiges
-
Rev. 1155 (Version 0.0.2.300):
* Codeaufräumarbeiten laut Styleguide
Wenn nicht gewünscht bitte auf Rev. 1154, Version 0.0.2.299 reverten.
-
version = "0.0.2.301 - Rev: 1156"
pit.h, timer.c, sys_speaker.c: Konstanten für Counter 0,1,2 des PIT überarbeitet.
-
version = "0.0.2.302 - Rev: 1157"
bool flushEvents(EVENT_t filter); eingefügt in userlib.h/c (als syscall)
(Fehlerhaft: versehentlich wird der task gelöscht anstelle das event )udp.c wird umgebaut auf "tasks" (Liste aller tasks, siehe task.c) anstelle blocked tasks (aus scheduler.c). Die beiden Ringe werden wieder static.
-
version = "0.0.2.303 - Rev: 1158"
bool flushEvents(EVENT_t filter) korrigiert.
-
version = "0.0.2.304 - Rev: 1159"
- void flip() und void autorefresh(bool on) in video.c. (syscall)
- Variable autoRefresh in video.c
-
version = "0.0.2.305 - Rev: 1160"
userlib.h/c: uint32_t getMyIP() (syscall nach network.h/c)
Verwendung in test.c:
IP_t ip; ip.iIP = getMyIP(); printf("My IP is %u.%u.%u.%u", ip.IP[0], ip.IP[1], ip.IP[2], ip.IP[3]);
-
Rev. 1161, v0.0.2.306:
* DoubleBuffering kann jetzt für jede Konsole einzeln eingestellt werden (gab vorher echte Probleme beim Umschalten in andere Konsolen, die kein DoubleBuffering konnten, wie z.B. die Kernelkonsole)
Das hätte man nicht global in video.c einbauen dürfen, sondern in console_t.
* Scrollen in Konsolen kann ausgeschaltet werden (auch im Userland) (yeah, erster eigener Syscall!)
* Kleinere FehlerbehebungenDoubleBuffering funktioniert immer noch nicht korrekt, clearScreen(0x00); löscht komischerweise nicht... -.-
"Beweisbild":
http://prettyos.fanofblitzbasic.de/ppong2dbuffng.pngErklärung:
Das Menü wird von unten in das Bild hereingeschoben und zieht anscheinend "Schlieren", allerdings nur über etwas mehr als die linke Hälfte des Bildes.
clearScreen(); ist anscheinend ganz oder nur teilweise nicht funktionsfähig.Leider brauche ich DoubleBuffering, sonst flackert das Bild die ganze Zeit.
-
Lösung im chat:
void flip() { autorefresh(true); __asm__ volatile("int $0x7F" : : "a"(67)); autorefresh(false); }
-
Rev. 1162:
* DoubleBuffering geht jetzt (zwar mit Hack, aber immerhin)
* tcp.c korrigiert (Korrektur von Dr. Erhard Henkes)
-
0.0.2.307 - Rev: 1163:
-ftp.c: Funktionen hinzugefügt
-
version = "0.0.2.308 - Rev: 1164"
defines in video.h für updateCursor hinzugefügt
-
version = "0.0.2.309 - Rev: 1165"
- Kleinigkeiten, defines
- const uint32_t RAMDISKSIZE = 0x100000;
-
0.0.2.309 - Rev: 1166
browser.c:
-Neue Funktionen
ftp.c:
-Dateien herunterladen/speichern
-unterschiedliche Ports möglich
-
version = "0.0.2.310 - Rev: 1167"
- tcp.c: EVENT_TCP_CLOSED wird nun ausgelöst, wenn die Verbindung ESTABLISHED verlässt, nicht erst, wenn sie gelöscht wird
- fat.c: FAT_showDirectoryEntry(dir); in fillFILEPTR wurde mit _FAT_DIAGNOSIS_ auskommentiert
-
version = "0.0.2.311 - Rev: 1168"
tcp.c: Unkritische Error-Ausgaben hinter _TCP_DEBUG_ verbannt
-
0.0.2.311 - Rev: 1169:
browser.c: tcp_close(connection) aus EVENT_TCP_RECEIVED verschoben.
-
version = "0.0.2.311 - Rev: 1170"
userlip.hpp: Ersatz für new/delete ist nicht notwendig (Dank an cooky451 für den Hinweis)