168 lines
4.3 KiB
HTML
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 &
|
|
portable)</p>
|
|
|
|
<p> ~INT 13,7~ Format the drive starting at track (XT &
|
|
portable)</p>
|
|
|
|
<p> ~INT 13,8~ Get current drive parameters (XT & newer, see
|
|
note Ï)</p>
|
|
|
|
<p> ~INT 13,9~ Initialize 2 fixed disk base tables (XT &
|
|
newer, see note Ï)</p>
|
|
|
|
<p> ~INT 13,A~ Read long sector (XT & newer, see note Ï)</p>
|
|
|
|
<p> ~INT 13,B~ Write long sector (XT & newer, see note Ï)</p>
|
|
|
|
<p> ~INT 13,C~ Seek to cylinder (XT & newer, see note Ï)</p>
|
|
|
|
<p> ~INT 13,D~ Alternate disk reset (XT & newer, see note Ï)</p>
|
|
|
|
<p> ~INT 13,E~ Read sector buffer (XT & portable only)</p>
|
|
|
|
<p> ~INT 13,F~ Write sector buffer (XT & portable only)</p>
|
|
|
|
<p> ~INT 13,10~ Test for drive ready (XT & newer, see note
|
|
Ï)</p>
|
|
|
|
<p> ~INT 13,11~ Recalibrate drive (XT & newer, see note Ï)</p>
|
|
|
|
<p> ~INT 13,12~ Controller ram diagnostic (XT & portable
|
|
only)</p>
|
|
|
|
<p> ~INT 13,13~ Drive diagnostic (XT & portable only)</p>
|
|
|
|
<p> ~INT 13,14~ Controller internal diagnostic (XT & newer,
|
|
see note Ï)</p>
|
|
|
|
<p> ~INT 13,15~ Read disk type/DASD type (XT BIOS from 1/10/86
|
|
& newer)</p>
|
|
|
|
<p> ~INT 13,16~ Disk change line status (XT BIOS from 1/10/86
|
|
& newer)</p>
|
|
|
|
<p> ~INT 13,17~ Set dasd type for format (XT BIOS from 1/10/86
|
|
& newer)</p>
|
|
|
|
<p> ~INT 13,18~ Set media type for format (BIOS date specific)</p>
|
|
|
|
<p> ~INT 13,19~ Park fixed disk heads (AT & newer)</p>
|
|
|
|
<p> ~INT 13,1A~ Format ESDI drive unit (PS/2 50+)</p>
|
|
|
|
<p> Ï The 1983 version of the "IBM XT BIOS Technical
|
|
Reference"</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>
|