Files
oldlinux-files/docs/interrupts/int-html0/inte6xio.htm
2024-02-19 00:23:35 -05:00

168 lines
4.3 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<meta http-equiv="Content-Type"
content="text-html; charset=Windows-1252">
<title>For more information see the following topics:</title>
<meta name="FORMATTER" content="Microsoft FrontPage 2.0">
</head>
<body>
<h1><a name="kap_interrupt_0400"></a>For more information see the
following topics:</h1>
<p> ~INT 13,0~ Reset disk system</p>
<p> ~INT 13,1~ Get disk status</p>
<p> ~INT 13,2~ Read disk sectors</p>
<p> ~INT 13,3~ Write disk sectors</p>
<p> ~INT 13,4~ Verify disk sectors</p>
<p> ~INT 13,5~ Format disk track</p>
<p> ~INT 13,6~ Format track and set bad sector flag (XT &amp;
portable)</p>
<p> ~INT 13,7~ Format the drive starting at track (XT &amp;
portable)</p>
<p> ~INT 13,8~ Get current drive parameters (XT &amp; newer, see
note Ï)</p>
<p> ~INT 13,9~ Initialize 2 fixed disk base tables (XT &amp;
newer, see note Ï)</p>
<p> ~INT 13,A~ Read long sector (XT &amp; newer, see note Ï)</p>
<p> ~INT 13,B~ Write long sector (XT &amp; newer, see note Ï)</p>
<p> ~INT 13,C~ Seek to cylinder (XT &amp; newer, see note Ï)</p>
<p> ~INT 13,D~ Alternate disk reset (XT &amp; newer, see note Ï)</p>
<p> ~INT 13,E~ Read sector buffer (XT &amp; portable only)</p>
<p> ~INT 13,F~ Write sector buffer (XT &amp; portable only)</p>
<p> ~INT 13,10~ Test for drive ready (XT &amp; newer, see note
Ï)</p>
<p> ~INT 13,11~ Recalibrate drive (XT &amp; newer, see note Ï)</p>
<p> ~INT 13,12~ Controller ram diagnostic (XT &amp; portable
only)</p>
<p> ~INT 13,13~ Drive diagnostic (XT &amp; portable only)</p>
<p> ~INT 13,14~ Controller internal diagnostic (XT &amp; newer,
see note Ï)</p>
<p> ~INT 13,15~ Read disk type/DASD type (XT BIOS from 1/10/86
&amp; newer)</p>
<p> ~INT 13,16~ Disk change line status (XT BIOS from 1/10/86
&amp; newer)</p>
<p> ~INT 13,17~ Set dasd type for format (XT BIOS from 1/10/86
&amp; newer)</p>
<p> ~INT 13,18~ Set media type for format (BIOS date specific)</p>
<p> ~INT 13,19~ Park fixed disk heads (AT &amp; newer)</p>
<p> ~INT 13,1A~ Format ESDI drive unit (PS/2 50+)</p>
<p> Ï The 1983 version of the &quot;IBM XT BIOS Technical
Reference&quot;</p>
<p> shows these functions are available for the XT but many other</p>
<p> programming references say they aren't available until the
AT.</p>
<p> This is probably due to misunderstanding the design of the
disk</p>
<p> BIOS. Upon bootup the hard disk BIOS replaces the default</p>
<p> INT 13h diskette handler with the hard disk INT 13h handler.</p>
<p> % Most disk BIOS calls use the following parameter scheme:</p>
<p> AH = function request number</p>
<p> AL = number of sectors (1-128 dec.)</p>
<p> CH = cylinder number (0-1023 dec.)</p>
<p> CL = sector number (1-17 dec.)</p>
<p> DH = head number (0-15 dec.)</p>
<p> DL = drive number (0=A:, 1=2nd floppy, 80h=drive 0, 81h=drive
1)</p>
<p> DL = drive number (0=A:, 1=2nd floppy, 80h=C:, 81h=D:)</p>
<p> Note that some programming references use (0-3) as the</p>
<p> drive number which represents diskettes only.</p>
<p> ES:BX = address of user buffer</p>
<p> % and return with:</p>
<p> CF = 0 if successful</p>
<p> = 1 if error</p>
<p> AH = status of operation (see INT 13,STATUS)</p>
<p> - INT 13 diskette read functions should be retried at least 3</p>
<p> times to assure the disk motor has time to spin up to speed</p>
<p> - physical sector numbers can be converted to and from DOS
sector</p>
<p> numbers with the following formulas:</p>
<p> dos_sector = (sector - 1) + (head * sectors_per_track) +</p>
<p> (track * sectors_per_track * num_heads)</p>
<p> physical_sector = 1 + (dos_sector MOD sectors_per_track)</p>
<p> physical_head = (dos_sector / sectors_per_track) MOD
num_heads</p>
<p> physical_track = dos_sector / (sectors_per_track * num_heads)</p>
<p> - registers DS, BX, CX and DX are preserved</p>
<p> - see ~INT 13,STATUS~</p>
<hr>
<table border="0" width="100%" cols="3">
<tr>
<td width="33%">Zurück zum <a href="inte1at0.htm">Interrupt
Info</a>. </td>
<td align="center" width="33%"><a
href="mailto:Roger.Morgan@htl-steyr.ac.at">Roger Morgan</a>
/ 1998 </td>
<td align="right" width="33%"><font size="1">L.Änderung <!--webbot
bot="Timestamp" s-type="EDITED" s-format="%d.%m.%y"
startspan -->29.03.99<!--webbot bot="Timestamp" endspan
i-checksum="13964" --> </font></td>
</tr>
</table>
</body>
</html>