delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/01/11/07:47:07

From: danny DOT attar AT bt DOT com (Danny Attar)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: It works, it works....THANK YOU!!!!(One ity, bity question more, multiple choice)
Date: 11 Jan 2000 12:17:50 GMT
Organization: BT plc
Lines: 49
Message-ID: <8EB879925dannyattarbtinternet@132.146.16.23>
References: <Pine DOT LNX DOT 4 DOT 10 DOT 10001091531110 DOT 570-100000 AT yahoo DOT com> <%CAe4.19283$Ak DOT 294380 AT news1 DOT mia>
NNTP-Posting-Host: 10.242.184.210
X-Trace: pheidippides.axion.bt.co.uk 947593070 1658 10.242.184.210 (11 Jan 2000 12:17:50 GMT)
X-Complaints-To: postmaster AT axion DOT bt DOT co DOT uk
NNTP-Posting-Date: 11 Jan 2000 12:17:50 GMT
User-Agent: Xnews/Y2K-SE
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

thane AT nospam DOT net (Angelene and Klaus Thane) wrote in
<%CAe4.19283$Ak DOT 294380 AT news1 DOT mia>: 

>
>I have completely dumped the idea of using the __tb since it is only
>guaranteed to be 2K;  I'll need a little more.  

You can check the current size of the transfer buffer by looking at 
_go32_info_block.size_of_transfer_buffer

>Which brings me to my next question! (short answer, I swear)
>
>Format of disk address packet:
>Offset Size Description
> 00h BYTE 10h (size of packet)
> 01h BYTE reserved (0)
> 02h WORD number of blocks to transfer (max 007Fh for Phoenix EDD)
> 04h DWORD -> transfer buffer
> 08h QWORD starting absolute block number
>  (for non-LBA devices, compute as
>    (Cylinder*NumHeads + SelectedHead) * SectorPerTrack +
>    SelectedSector - 1
>
>Copied from Ralf Brown's Interrupt List
>
>04h DWORD -> transfer buffer is a _________?
>    a.   A linear address in the format of an unsigned integer
>    b.  An address in the format segment:offset (segment=04h 05h;
>    offset=06h 
>07h)
>    c.  An address in the format segment:offset (offset=05h 04h;
>    segment=07h 
>06h)
>    d.  None of the above
>
>While it seems to me 'b' might be the right answer, I really have not
>idea. 

It's documented in an ANSI document - I found the final pre-release 
revision on the net as d1226r7.pdf. The document say that the transfer 
buffer contains a 32-bit address of the form Seg:Offset. So the correct 
answer is (d), because offset=05h 04h; segment=07h 06h.

Hope this helps.

Danny
====================================================================
Disclaimer: These are my personal opinions and in no way reflect the views 
of my employer.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019