=> | R0 = | reason code |
R1 = | pointer to name of directory to scan | |
R2 = | pointer to word aligned buffer to put information | |
R3 = | unused on entry | |
R4 = | start index (0 for first read) | |
R5 = | size of buffer at R2 |
<= | R0-R2 | preserved |
R3 = | number of drivers read (1 or 0) | |
R4 = | number of next driver to read (-1 if finished) |
The reason code specified in R0 are:
0 | return filename only |
1 | return filename & driver name |
2 | return filename, driver name and description |
3 | filename, driver name, description and version |
R2+0 | driver ID number (negative if driver reports it won't work) |
R2+4 | offset from R2 of file leaf name (ie 8) |
R2+5 | offset from R2 of driver name |
R2+6 | offset from R2 of driver description |
R2+7 | offset from R2 of driver version string |
R2+8 | null-terminated filename |
? | other null terminated strings if requested |
R0 (the reason code) controls how much information will be returned. The buffer must be at least 8 bytes as the first two words are written unconditionally. The other strings will only be written if space permits. The offset for the string will be zero if the string was not written (if it didn't fit or it wasn't asked for). |
[ Parent ] [ Manual root ]