Difference between revisions of "83Plus:Software:usb8x/Asm Interface/MSD/DOS getNextFile"
From WikiTI
m |
|||
Line 22: | Line 22: | ||
Example code to list all files/folders in the "test" directory, which is in the root directory: | Example code to list all files/folders in the "test" directory, which is in the root directory: | ||
<code> | <code> | ||
− | dir_cluster equ statVars ;2 bytes, starting cluster of directory | + | dir_cluster equ statVars ;2 bytes, starting cluster of directory |
− | file_name equ statVars+2 ;13 bytes, ASCIIZ filename | + | file_name equ statVars+2 ;13 bytes, ASCIIZ filename |
... | ... | ||
ld hl,0 | ld hl,0 |
Latest revision as of 10:59, 17 August 2006
Synopsis
Name: DOS_getNextFile
Minimum usb8x version: 0.10
Gets first/next file/folder in specified directory.
Inputs
- HL is the starting cluster of the directory (obtained with [[../FAT_getStartingCluster|FAT_getStartingCluster]])
- BC is the current entry number of a file (pass -1 on first call to this function to get the first file)
Outputs
- HL points to the directory entry of the next file
- BC is the entry number of the next file
- C set if no more files are found
Destroys
- AF, BC, DE, HL
Notes
If you want to list files/folders in a specified directory, such as for a file explorer interface, this is the function you want to use.
Example code to list all files/folders in the "test" directory, which is in the root directory:
dir_cluster equ statVars ;2 bytes, starting cluster of directory file_name equ statVars+2 ;13 bytes, ASCIIZ filename ... ld hl,0 ld (curRow),hl ld hl,sDirectory U_CALL FAT_getStartingCluster ld (dir_cluster),hl ld bc,-1 listLoop: ld hl,(dir_cluster) U_CALL DOS_getNextFile jr c,listDone ld de,file_name push bc U_CALL FAT_nameConvertFrom11 B_CALL PutS B_CALL NewLine pop bc jr listLoop listDone: ... sDirectory: DB "/test",0
If you are writing an application, you must copy the strings you use to RAM first, or else usb8x will not be able to see them.
See Also
- [[../FAT_getStartingCluster|FAT_getStartingCluster]] - Get starting cluster of specified directory