Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Ralf Brown's Interrupt List (Part 1,2) - format of ifs request block: http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Format of IFS request block:
Offset  Size    Description
 00h    WORD    total size in bytes of request
 02h    BYTE    class of request
                02h ???
                03h redirection
                04h ???
                05h file access
                06h convert error code to string
                07h ???
 03h    WORD    returned DOS error code
 05h    BYTE    IFS driver exit status
                00h success
                01h ???
                02h ???
                03h ???
                04h ???
                FFh internal failure
 06h 16 BYTEs   ???
---request class 02h---
 16h    BYTE    function code
                04h ???
 17h    BYTE    unused???
 18h    DWORD   pointer to ???
 1Ch    DWORD   pointer to ???
 20h  2 BYTEs   ???
---request class 03h---
 16h    BYTE    function code
 17h    BYTE    ???
 18h    DWORD   pointer to ???
 1Ch    DWORD   pointer to ???
 22h    WORD    returned ???
 24h    WORD    returned ???
 26h    WORD    returned ???
 28h    BYTE    returned ???
 29h    BYTE    unused???
---request class 04h---
 16h    DWORD   pointer to ???
 1Ah    DWORD   pointer to ???
---request class 05h---
 16h    BYTE    function code
                01h flush disk buffers
                02h get disk space
                03h MKDIR
                04h RMDIR
                05h CHDIR
                06h delete file
                07h rename file
                08h search directory
                09h file open/create
                0Ah LSEEK
                0Bh read from file
                0Ch write to file
                0Dh lock region of file
                0Eh commit/close file
                0Fh get/set file attributes
                10h printer control
                11h ???
                12h process termination
                13h ???
        ---class 05h function 01h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h  4 BYTEs   ???
         26h    BYTE    ???
         27h    BYTE    ???
        ---class 05h function 02h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h  4 BYTEs   ???
         26h    WORD    returned total clusters
         28h    WORD    returned sectors per cluster
         2Ah    WORD    returned bytes per sector
         2Ch    WORD    returned available clusters
         2Eh    BYTE    returned ???
         2Fh    BYTE    ???
        ---class 05h functions 03h,04h,05h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h  4 BYTEs   ???
         26h    DWORD   pointer to directory name
        ---class 05h function 06h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h  4 BYTEs   ???
         26h    WORD    attribute mask
         28h    DWORD   pointer to filename
        ---class 05h function 07h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h  4 BYTEs   ???
         26h    WORD    attribute mask
         28h    DWORD   pointer to source filespec
         2Ch    DWORD   pointer to destination filespec
        ---class 05h function 08h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h  4 BYTEs   ???
         26h    BYTE    00h FINDFIRST
                        01h FINDNEXT
         28h    DWORD   pointer to FindFirst search data + 01h if FINDNEXT
         2Ch    WORD    search attribute if FINDFIRST
         2Eh    DWORD   pointer to filespec if FINDFIRST
        ---class 05h function 09h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h    DWORD   pointer to IFS open file structure (see below)
         26h    WORD    ???  \ together, specify open vs. create, whether or
         28h    WORD    ???  / not to truncate
         2Ah  4 BYTEs   ???
         2Eh    DWORD   pointer to filename
         32h  4 BYTEs   ???
         36h    WORD    file attributes on call
                        returned ???
         38h    WORD    returned ???
        ---class 05h function 0Ah---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h    DWORD   pointer to IFS open file structure (see below)
         26h    BYTE    seek type (02h = from end)
         28h    DWORD   offset on call
                        returned new absolute position
        ---class 05h functions 0Bh,0Ch---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h    DWORD   pointer to IFS open file structure (see below)
         28h    WORD    number of bytes to transfer
                        returned bytes actually transferred
         2Ah    DWORD   transfer address
        ---class 05h function 0Dh---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h    DWORD   pointer to IFS open file structure (see below)
         26h    BYTE    file handle???
         27h    BYTE    unused???
         28h    WORD    ???
         2Ah    WORD    ???
         2Ch    WORD    ???
         2Eh    WORD    ???
        ---class 05h function 0Eh---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h    DWORD   pointer to IFS open file structure (see below)
         26h    BYTE    00h commit file
                        01h close file
         27h    BYTE    unused???
        ---class 05h function 0Fh---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h  4 BYTEs   ???
         26h    BYTE    02h GET attributes
                        03h PUT attributes
         27h    BYTE    unused???
         28h 12 BYTEs   ???
         34h    WORD    search attributes???
         36h    DWORD   pointer to filename
         3Ah    WORD    (GET) returned ???
         3Ch    WORD    (GET) returned ???
         3Eh    WORD    (GET) returned ???
         40h    WORD    (GET) returned ???
         42h    WORD    (PUT) new attributes
                        (GET) returned attributes
        ---class 05h function 10h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h    DWORD   pointer to IFS open file structure (see below)
         26h    WORD    ???
         28h    DWORD   pointer to ???
         2Ch    WORD    ???
         2Eh    BYTE    ???
         2Fh    BYTE    subfunction
                        01h get printer setup
                        03h ???
                        04h ???
                        05h ???
                        06h ???
                        07h ???
                        21h set printer setup
        ---class 05h function 11h---
         17h  7 BYTEs   ???
         1Eh    DWORD   pointer to ???
         22h    DWORD   pointer to IFS open file structure (see below)
         26h    BYTE    subfunction
         27h    BYTE    unused???
         28h    WORD    ???
         2Ah    WORD    ???
         2Ch    WORD    ???
         2Eh    BYTE    ???
         2Fh    BYTE    ???
        ---class 05h function 12h---
         17h 15 BYTEs   unused???
         26h    WORD    PSP segment
         28h    BYTE    type of process termination
         29h    BYTE    unused???
        ---class 05h function 13h---
         17h 15 BYTEs   unused???
         26h    WORD    PSP segment
---request class 06h---
 16h    DWORD   returned pointer to string corresponding to error code at 03h
 1Ah    BYTE    returned ???
 1Bh    BYTE    unused
---request class 07h---
 16h    DWORD   pointer to IFS open file structure (see below)
 1Ah    BYTE    ???
 1Bh    BYTE    unused???

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson