Date: Mon, 3 Feb 92 18:13:30 EST From: DJ Delorie To: dvldbg AT cs DOT umu DOT se Cc: djgpp AT sun DOT soe DOT clarkson DOT edu, dvldbg AT cs DOT umu DOT se Subject: Absolute read Status: O >I looked at the sources for the function library, trying to >figure out how to do an absolute disk read, but just got >confused. In the source for 'read', EBX, ECX and EDX are set >to the arguments, and then an 'int 21h' is done, with ah=3fh. >But... In the description of that function, CX should be >the number of bytes, and DS:DX the adress to read to. How does >the bios know that is should use EDX instead of just DX? >And what happens if you try to read more than 65535 bytes? int21 function 3f is a DOS read, not a BIOS read. Go32's sole purpose in life is to translate 32-bit requests to 16-bit requests, including breaking up transfers into manageable portions. The rules for conversions are as follows: * values in 16-bit registers now occupy 32-bit registers * segment:offset pointers are now linear pointers in the 32-bit register. >And, what I really want to know, how do I read a specific >sector? If you want to use int 13h functions, you'll have to add them to go32 (exphdlr.c), since it currently does not allow you to do that. DJ dj AT ctron DOT com Life is a banana.