En entrée | |
---|---|
R0 | 9 |
R1 | Pointer to directory name |
R2 | Pointer to buffer |
R3 | Number of objects to read |
R4 | Where to start, 0 for first time |
R5 | Length of buffer |
R6 | Wildcarded name to match (if 0 “*” is used) |
En sortie | |
---|---|
R0 | Preserved |
R1 | Preserved |
R2 | Preserved |
R3 | Number of objects read |
R4 | Where to continue, or -1 for no more |
C flag clear if R3 = 0, else set |
Cet appel permet de lire les fichiers d’un dossier spécifié. Il retourne dans la zone mémoire fournie une liste de nom de fichiers terminés par (\0).
En sortie R4 le prochain indice de fichier. Il n’y a aucune garantie que la fonction vous retourne le nombre de fichier demandé. Cela est due à des contraintes liées a certains système de fichier. Pour être sûr que vous avez bien récupéré tous les fichiers d’un dossier, l’appel de cette SWI doit être répété jusqu’à ce que R4 retourne -1.
Exemple de code:
repeat { call OS_GBPB 9 if (R3 <> 0) { process buffer } } until (R4 = -1)
En sortie R3 peut valoir 0 alors que le dossier n’est pas encore totalement lu.
Ne supposez pas que la lecture est terminée tant que R4 est différent de -1.