Closed L3nn0x closed 8 years ago
Je laisse ça à yama, je n'y connais strictement rien :/
Ah, j'ai trouvé un truc sympa quand même. Bon ben je vais commencer à coder tout ça :)
Tu pense faire quoi ?
Un système de fichiers en FAT-16. Par contre pour une questionde performance, je n'implémenterai que les trucs capitaux (genre les fichiers n'ont pas un besoin primordial de données de date par exemple).
Poste d'abord les specs avant de commencer à coder.
De toute façon, on a pas d'horloge ^
Ouais mais on pourrait en implémenter la lecture tout de même, ce que je ne ferai pas :p
Je suis d'accord. Yamakaky, seal of approval.
Très très bien tout ça. :D
Du coup, quelle spec?
Voilà pour les specs (dites moi si je dois modifier quelque chose ^^) : http://azertyfun.tk/private/FAT16_FrOStSpecs.html
Ca va me faire un poil chier pour faire des tableaux ^^
C'est vrai que c'est pas l'idéal ^^
Petite remarque pour commencer : tu devrait plutôt utiliser des mots de 16 bits, et non des bytes (à moi que tu ne comptes des bytes de 16 bits ?)
Et fais gaffe, il faut essayer de tenir compte des limitations du hw, qui sont une lecture par blocs de je-sais-plus-combien.
Il en a tenu compte, ce FS gère des blocs de 512 mots.
Ok. J'aime tes idées Yama, même si dans un premier temps les sous-dossiers ne sont pas les plus importants.
J'espère avoir répondu à tes questions :p
… Du coup, comment on fait pour retrouver un faitchier à partir de son chemin ?
Tu récup le nom de fichier en parsant et tu compares son arborescence à celle des fichiers qui ont le même nom que lui :p
Par contre se pose la question de la défragmentation, je suppose que le mieux est d'intégrer defrag.exe à la racine. Enfin, je fait le VF et le VFS avant :p
Ah oui, au fait, j'utilise bien des bytes de 8 bits, pas trop le choix c'est la norme officielle. Ca va me faire chier mais pas le choix :/
Oui, mais tu utilise la table ou pas ?
Bah non, une simple fonction dans le driver ^^. De toute façon, tous drivers confondus, le plus simple est de cloner le disque sur un autre. Comme ça le driver remet tout bien. Et puis on s'en fout un peu de la défragmentation, l'accès est à temps constant XD
Dommage…
Rhâ tu me fait douter je vais voir x)
Pour la défrag, le truc c'est que c'est une fonction "optionnelle", elle ne sert pas à l'utilisateur lambda qui n'utilise pas de disque, et une fonction driver prendrait autant de place que le fs en lui-même ^^
Ok je me sujs emmêlé les pinceaux avec la FAT, regarde plutôt ça avant que je màj les specs : http://www.tavi.co.uk/phobos/fat.html#file_allocation_table EDIT : Ok c'est bon j'ai updaté mes specs avec un petit schéma en plus :p
Alors c'est pas la peine d'en écrire une, suffit de clone le disque. ^^
Ben je doute que quiconque aie envie de payer des disques à tour de bras pour faire une défragmentation ^^
Pas besoin d'une masse, juste un en plus ^^
Même, on a aucune idée du prix d'un disque in-game. Et franchement ça fait pas pro un OS pour qui la seule solution de défragmentation est de tout copier sur un nouveau disque xD M'bref façon ça c'est la dernière étape, avant y'a du chemin à parcourir ! ^^
Bah c'est la méthode recommandée par Apple, vu que les FS unix se fragmentent très peu ^^
La méthode apple c'est vraiment un exemple ? Bref. Ensuite là on te parle de FS Windows. Et pas un récent en plus. Donc, si, la défragmentation est nécessaire. Ce qui me fait penser que je devrais le faire sur mon PC. Et sans jeter mon disque dur :D
Bullshit, je fais compter des bytes de 16 bits, je doute qu'un quelconque OS s'amuse à implémenter des bytes de 8 bits. Na.
That was a :trollface:
On n'est jamais sûr de ce genre de chose avec apple :trollface:
Sinon, une solution est de copier tout le disque en ram (ou au moins une partie) et défragmenter "par morceaux".
Ben oui xD
Missclick
Bon, j'ai pris un peu d'assurance avec la gestion des disques sur le DCPU. Du coup je suis en train de bosser sur le FS, et ça s'annonce très bien. Il me reste un ou deux bugs à corriger et je serai en mesure de détecter et afficher des infos sur un disque compatible avec FFAT-16 (puisque on ne sait pas comment le FAT-16 sera implémenté, j'ai préféré faire une variante que l'on pourra facilement adapter par la suite).
J'Y CROIS PAS ! Depuis deux heures que je debug je me suis trompé de registre pour le malloc T_T
XD
L'utilisation de macros permettrait d'éviter ces problèmes. Mais bon, DevCPU a l'air un peu en veille...
De toute façon il faut que je puisse gérer les erreurs moi-même, parce que dans ce cas je dois passer par un bout de code qui libère la mémoire, POP les registres et retourne un code d'erreur perso. Cay pas une macro qui va faire ça xD
Mais sinon au final le malloc c'est en B ou en A ? Memoire.dasm raconte en A, mais l'interrupt handler en B ._. EDIT : Euké j'avais pas capté que B dans l'IH = A dans la fonction. My fault.
2c81abb J'ai ENFIN terminé l'implémentation des bases de F-FAT16. Il est maintenant possible de formater un disque valide, de lire les infos dessus et de détecter sa validité. Demain j'optimise ça et j'ajoute la gestion des fichiers (j'ai fait un petit plan et tout).
Sinon pour la routine d'initialisation (appelée uniquement au démarrage théoriquement), il faut des push regs ou pas ?
Cool !
Faut voir, ça dépend de l'implémentation de la séquence de boot. Si c'est une suite de jsr, y a pas de problème ;)
Mhmm, pour utiliser malloc faut être dans un programme. Donc soit on indentifie le système comme un programme, soit on doit faire jsr init_disk au début du programme launché (ce que n'est pas plus bête du fait qu'un programme qui n'en a pas besoin ne le fera pas). Par contre pour l'instant les infos sur le disque sont accessibles depuis un label, il va falloir que je change ça. ^^'
Les meeeecs c'est pas sympa de toucher a FrOSt quand on est en piscine.
Du coup je prends du retard sur FrOSt la. (et faites pas chier sur les accents avec des clavier qwerty c'est la mort a faire)
Quand TU es en piscine ^^
Et @FaerieFrOSt il compte pas ?
Bijour, je suis en piscine, mais c'est pas grave, c'est cool que vous continuiez a avancer dessus. Azertyfun, je rajouterai ensuite des int pour l'acces au VFS. Faut maintenant un VFS qui puisse ajouter une couche d'abstraction sur le FS. Je vous fait confiance pour ca. :)
Houlà. D'abord faut arriver à faire le FS hein. Parce ce que je suis en train de coder la fonction newFile, et rien que ça c'est la mort. Le problème de ce genre de coding c'est que tu es obligé de chier 200 lignes avant de pouvoir tester le code, donc généralement il y a plusieurs bugs qui s’entremêlent. Je dois avoir un ratio de 15-20% de coding et 75-80% de debug... ._.
XD, ça me rappelle quand je tentais de coder mon foutu ext_2 pour mon OS... Bonne chance en tout cas.
Il faut que quelqu'un code le(s) fs. On peut commencer soit par implémenter un fs existant, soit en inventant le notre. Aucune préférence, si ce n'est une priorité aux fs connus sur dcpu (utilisés par une majorité de personnes).