V
Verwijderd lid 166773
Gast
Het is alweer december en eigenlijk heb ik best weinig gedaan het afgelopen jaar, maar het zijn wel grote en belangrijke milestones geweest. Dit jaar zijn er 3 dingen toegevoegd, waarvan allemaal milestones: Basic PCI, Physical Memory Management en ATA hardeschijven. Ook deze maand is er niet per se veel gebeurd, zo heb ik tijd besteed aan een nieuwe functie voor die memory management, terwijl de functie een dag later weg gehaald is omdat ik malloc() wilde verbeteren.
Nieuw:
- FAT32 read
- Nieuwe text processing features
Verbeteringen:
- Malloc() is efficiënter, maar werkt niet altijd
- Scherm kan weer scrollen
FAT32 read
FAT32 is een bestandssysteem op hardeschijven, het is een erg bekend en simpel bestandssysteem. FAT32 gebruikt een FAT (File Allocation Table), dit is een lijst met locaties van bestanden en mappen. BirdOS kan bestanden zien:
Dit is allemaal getest met een virtuele hardeschijf waar FreeDOS 1.2 op staat. Hierop heb ik dan een tekst bestand aangemaakt op FreeDOS, genaamd WELCOME1.TXT, die BirdOS kan vinden en lezen:
Dit kan je dan vergelijken met een ASCII table en wat ik dan daadwerkelijk getypt heb:
Output van BirdOS: "Welcome, thhis", de tweede 'h' is geen typfout, maar waarschijnlijk een fout bij het lezen of schermschrijven. Maar het idee is er.
Nieuwe text processing features
BirdOS kan tekst opsplitsen en controleren of een deel van een stuk tekst voorkomt in een ander stuk tekst.
Malloc()
Ik heb geprobeerd Malloc() te verbeteren, de functie die zoekt naar een leeg plekje in de RAM, en dit was gelukt. Vandaag kwam ik er alleen achter dat het niet werkte op een andere machine. Deze verbetering is veel efficiënter, veel makkelijker leesbaar en 12 lijnen code minder. Alleen heeft het een probleem: het kan maar 1 plek toewijzen en daarna kan het geen enkele plek meer vinden.
Scherm kan weer scrollen
Het scherm kan weer scrollen. Het kon niet scrollen doordat ik een adres globaal had gemaakt, dus voor alle functies beschikbaar. Elke functie zou dan de pointer verzetten, zo kon ik er zeker van zijn dat elke functie up-to-date was met betrekking tot de plek waar iets geschreven kon worden. Maar hierdoor snapte de scroll functie het allemaal niet meer. De oplossing was best simpel, gewoon de functie een eigen variabele geven.
Dit project was ik begonnen om te leren programmeren en ik merk dat het de afgelopen paar maanden steeds makkelijker voor mij is geworden, zeker deze maand.
Het is ook net iets meer dan twee jaar geleden dat ik op dit forum begonnen ben met updates te schrijven over dit besturingssysteem. Ik vind het hartstikke leuk om ze te schrijven, ik hoop dat ze ook een beetje interessant genoeg zijn om te lezen, en ik ga er graag mee door. Dank jullie allemaal voor het lezen, en het motiveerd mij om te weten dat mensen interesse hebben in dit project.
Bedankt, en alvast fijne kerst en gelukkig nieuwjaar.
Nieuw:
- FAT32 read
- Nieuwe text processing features
Verbeteringen:
- Malloc() is efficiënter, maar werkt niet altijd
- Scherm kan weer scrollen
FAT32 read
FAT32 is een bestandssysteem op hardeschijven, het is een erg bekend en simpel bestandssysteem. FAT32 gebruikt een FAT (File Allocation Table), dit is een lijst met locaties van bestanden en mappen. BirdOS kan bestanden zien:
Dit is allemaal getest met een virtuele hardeschijf waar FreeDOS 1.2 op staat. Hierop heb ik dan een tekst bestand aangemaakt op FreeDOS, genaamd WELCOME1.TXT, die BirdOS kan vinden en lezen:
Dit kan je dan vergelijken met een ASCII table en wat ik dan daadwerkelijk getypt heb:
Output van BirdOS: "Welcome, thhis", de tweede 'h' is geen typfout, maar waarschijnlijk een fout bij het lezen of schermschrijven. Maar het idee is er.
Nieuwe text processing features
BirdOS kan tekst opsplitsen en controleren of een deel van een stuk tekst voorkomt in een ander stuk tekst.
Malloc()
Ik heb geprobeerd Malloc() te verbeteren, de functie die zoekt naar een leeg plekje in de RAM, en dit was gelukt. Vandaag kwam ik er alleen achter dat het niet werkte op een andere machine. Deze verbetering is veel efficiënter, veel makkelijker leesbaar en 12 lijnen code minder. Alleen heeft het een probleem: het kan maar 1 plek toewijzen en daarna kan het geen enkele plek meer vinden.
Scherm kan weer scrollen
Het scherm kan weer scrollen. Het kon niet scrollen doordat ik een adres globaal had gemaakt, dus voor alle functies beschikbaar. Elke functie zou dan de pointer verzetten, zo kon ik er zeker van zijn dat elke functie up-to-date was met betrekking tot de plek waar iets geschreven kon worden. Maar hierdoor snapte de scroll functie het allemaal niet meer. De oplossing was best simpel, gewoon de functie een eigen variabele geven.
Dit project was ik begonnen om te leren programmeren en ik merk dat het de afgelopen paar maanden steeds makkelijker voor mij is geworden, zeker deze maand.
Het is ook net iets meer dan twee jaar geleden dat ik op dit forum begonnen ben met updates te schrijven over dit besturingssysteem. Ik vind het hartstikke leuk om ze te schrijven, ik hoop dat ze ook een beetje interessant genoeg zijn om te lezen, en ik ga er graag mee door. Dank jullie allemaal voor het lezen, en het motiveerd mij om te weten dat mensen interesse hebben in dit project.
Bedankt, en alvast fijne kerst en gelukkig nieuwjaar.