Sourcecode Fortschritt
-
version = "0.0.2.290 - Rev: 1141"
- rtl8139.c: Änderung der Reihenfolge im handler analog programming guide
- os.h: defines zur Wahl der vier COMx für serial_log
- Kleinigkeiten
-
version = "0.0.2.291 - Rev: 1142"
Einbau einer Zeitabfrage zur Vermeidung/Verzögerung eines Absturzes (freeze des asteriks) bei dauernd gehaltener Tastenkombination in kernel idle loop, z.B. strg+c
-
version = "0.0.2.292 - Rev: 1143"
- Personenwaggon vergrößert
- TODO: weitere Bewegungsabläufe / Infos in den unteren 3 Zeilen
- userlib.c formale Kleinigkeiten
-
version = "0.0.2.292 - Rev: 1144"
- userlib.c:
Der Zug in der "Scrolling Ticker Line" wurde um ein Schiff (Die Idee hierzu hatte Cuervo, ich musste nur die Schornsteine für die Fahrtrichtung nach rechts umformen ^^) ergänzt.
- shell.c:
Nach jeweils 20 sec wird in der shell das motiv getauscht:(getCurrentSeconds()/20) % 2 + 1
ergibt 1 oder 2
-
version = "0.0.2.293 - Rev: 1145"
Kleine Veränderungen in fs.h/c und ckernel.c
-
version = "0.0.2.294 - Rev: 1146"
Fehler in todoList.c korrigiert: task wird in todoList_execute nun ebenfalls frei gegeben.
-
version = "0.0.2.295 - Rev: 1147"
userlib.h:
bool udp_send(void* data, uint32_t length, IP_t destIP, uint16_t srcPort, uint16_t destPort) hinzugefügt.
-
version = "0.0.2.296 - Rev: 1148"
udpsend.c und udprecv.c und default in udp.c zum testen von udp-tranfers
EMPFANG geht nicht in user (Problem: event-system ?)
-
version = "0.0.2.297 - Rev: 1149"
TextGUI_ShowMSG, TextGUI_AskYN (syscalls)
-
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); }