first working version after 30 years :)

This commit is contained in:
Roman Krupnin 2026-07-28 18:02:30 +03:00
parent 348c96574b
commit a0a775ee8a
11 changed files with 4439 additions and 0 deletions

479
FDC.PAS Normal file
View File

@ -0,0 +1,479 @@
unit FDC;
interface
const
FDC_MAX_TRACK = 84;
FDC_REG_SRA = $3F0;
FDC_REG_SRB = $3F1;
FDC_REG_DOR = $3F2;
{3F2H ‡ ¯¨áì: <20>¥£¨áâà ã¯à ¢«¥­¨ï
Ö7Â6Â5Â4Â3Â2Â1Â0·
úD C B A³ ³ ³ ú
ÓÄÁÄÁÄÁÄÁÒÁÒÁÄÁĽ ¡¨âë
ÈÍÍËÍͼ ú ú ÈÍÊÍ. 0-1: ‚ë¡®à ¤à ©¢¥à  0-3 (AT: ¡¨â 1 ­¥ ¨á¯.)
ú ú ÈÍÍÍÍÍ. 2: 0=‘¡à®á ª®­â஫«¥à  HƒŒ„; 1=<3D> §à¥è¥­¨¥ ª®­â஫«¥à 
ú ÈÍÍÍÍÍÍÍ. 3: 1=<3D> §à¥è¨¨âì à ¡®âã á DMA ¨ ¯à¥à뢠­¨ï¬¨
ÈÍÍÍÍÍÍÍÍÍÍÍÍ. 4-7: ‚ª«îç¨âì ¬®â®à ¤à ©¢¥à . …᫨ ¡¨â ãáâ ­®¢«¥­ â® ‚Š‹.
(AT: ¡¨âë 6-7 ¨£­®à¨àã¥â)}
FDC_REG_MSR = $3F4;
{3F4H ’®«ìª®-¤«ï ç⥭¨ï: ƒ« ¢­ë© ॣ¨áâà áâ âãá 
Ö7Â6Â5Â4Â3Â2Â1Â0·
ú ³ ³ ³ ³D C B Aú
ÓÒÁÒÁÒÁÒÁÄÁÄÁÄÁĽ ¡¨âë
ú ú ú ú ÈÍÍÍÍÍÊÍ. 0: ‚ë¡®à ¤à ©¢¥à  (AT: ¡¨âë 2-3 ­¥ ¨á¯®«ì§ã¥â)
ú ú ú ÈÍÍÍÍÍÍÍÍÍ. 4: 1=‘¨£­ « ª®­â஫«¥à  (ˆ¤¥â ç⥭¨¥ ¨«¨ § ¯¨áì)
ú ú ÈÍÍÍÍÍÍÍÍÍÍÍ. 5: 1=H…-DMA ०¨¬; 0=DMA ०¨¬ ¢ª«î祭
ú ÈÍÍÍÍÍÍÍÍÍÍÍÍÍ. 6: ‘¨£­ « ã¯à ¢«¥­¨ï: 1 = FDCÍ.CPU; 0 = CPUÍ.FDC
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ. 7: ‡ ¯à®á ­  ‡ ¯¨áì. 1=OK <20>¥à¥¤ ç /<2F>ਥ¬ ª®¬ ¨«¨ ¤ ­.}
FDC_REG_DR = $3F5;
{3F5H —⥭¨¥/‡ ¯¨áì: <20>¥£¨áâà ¤ ­­ëå
K¬¤ ޝ¨á ­¨¥
ßßß ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
0E6H —¨â âì ¤ ­­ë¥ (’ॡã¥â: 8 ¯ à ¬¥â஢; P¥§ã«ìâ â : 7 ¯ à ¬¥â஢)
0C5H <20>¨á âì ¤ ­­ë¥ (’ॡã¥â 8 ¯ à ¬¥â஢; P¥§ã«ìâ â : 7 ¯ à ¬¥â஢)
04DH ”®à¬ â¨à®¢ âì ¤®à®¦ªã (’ॡã¥â 5 ¯ à ¬¥â஢;P¥§ã«ìâ â : 7 ¯ à ¬¥â஢)
007H <20>¥ª «¨¡à®¢ âì (’ॡã¥â 1 ¯ à ¬¥â஢; P¥§ã«ìâ â : H…)
00FH “áâ ­®¢¨âì ­  ¤®à®¤ªã (’ॡã¥â 2 ¯ à ¬¥â஢;P¥§ã«ìâ â : H…}
FDC_REG_DIR = $3F7;
{3F7H ÝATÞ ’®«ìª®-¤«ï ç⥭¨ï : <20>¥£¨áâà ᨣ­ ¤®¢ ¢å®¤ 
Ö7Â6Â5Â4Â3Â2Â1Â0·
ú ³ ³ ú
ÓÒÁÄÁÄÁÄÁÄÁÄÁÄÁÒ½ ¡¨âì
ú ÈÍÍÍÍËÍÍÍͼ ÈÍ. 0: 1= ‚ë¡à ­  ¤¢®©­ ï ¯«®â­®áâì; 0= ‚ë᮪ ï ¯«®â­®áâì
ú ÈÍÍÍÍÍÍÍÍ. 1-6: ‡ à¥§¥à¢¨à®¢ ­ë.
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ. 7: 1= <20>ந§®è«  § ¬¥­  ¤¨áª¥âë}
FDC_REG_CCR = $3F8;
{3F8H ÝATÞ ‡ ¯¨áì : <20>¥£¨áâà ª®­ä¨£ãà æ¨¨
Ö7Â6Â5Â4Â3Â2Â1Â0·
ú ³ ú
ÓÄÁÄÁÄÁÄÁÄÁÄÁÄÁĽ ¡¨âë
ÈÍÍÍÍËÍÍÍͼ ÈÍÊÍ. 0-1: ᪮à®áâì ¯¥à¤ ç¨ ¤ ­­ëå
ú 00=500 KBS, 01=300 KBS, 10=250 KBS, 11=§ à¥§¥à.
ÈÍÍÍÍÍÍÍÍÍÍ. 2-7: ‡ à¥§¥à¢¨à®¢ ­®}
FDC_CMD_READ_TRACK = $02;
FDC_CMD_SPECIFY = $03;
FDC_CMD_GET_STATUS3 = $04;
FDC_CMD_WRITE_DATA = $05;
FDC_CMD_READ_DATA = $06;
FDC_CMD_RECALIBRATE = $07;
FDC_CMD_WRITE_DELETED_DATA = $09;
FDC_CMD_READ_DELETED_DATA = $0C;
FDC_CMD_SEEK = $0F;
{ for FDC_CMD_READ_DATA }
FDC_HCMD_SK = $20; { BIT5: SK stands for Skip Deleted Data Addres Mark }
FDC_HCMD_MFM = $40; { BIT6: if high, MFM mode is selected }
FDC_HCMD_MT = $80; { BIT7: If MT is high, a multi-track operation is }
FDC_SPEED_500 = $00;
FDC_SPEED_300 = $01;
FDC_SPEED_250 = $02;
FDC_SPEED_125 = $03;
FDC_SPEED_COUNT = $03;
FDC_SECTOR_256 = 1;
FDC_SECTOR_512 = 2;
FDC_SECTOR_1024 = 3;
FDC_SECTOR_2048 = 4;
FDC_SECTOR_4096 = 5;
FDC_SECTOR_8192 = 6;
{
+----------+-----------------+-----+-----+------+--------+----------------+
| FORMAT | SECTOR SIZE | N | SC | GPL1| GPL2 | REMARKS |
+----------+-----------------+-----+-----+------+--------+----------------+
| |256 | 01 | 1A | 0E | 36H |IBM Diskette 2D |
| |512 | 02 | 0F | 1B | 54H | |
| MFM Mode |1024 | 03 | 08 | 36H | 74H |IBM Diskette 2D |
| |2048 | 04 | 04 | __ | __ | |
| |4096 | 05 | 02 | __ | __ | |
| |8192 | 06 | 01 | __ | __ | |
+----------+-----------------+-----+-----+------+--------+----------------+
Note : 1. GPL1 Suggested values of GPL in Read or Write Commands to avoid
splice point between data and ID field of contiguous sections.
2 GPL2, Suggested values of GPL in format command.
}
FDC_OK = 0;
FDC_ERR_BAD_CONTROLLER = 1;
FDC_ERR_TIMEOUT = 2;
FDC_ERR_SEEK_ERROR = 3;
FDC_ERR_DRIVE_NOT_READY = 4;
FDC_ERR_END_OF_CYLINDER = 5;
FDC_ERR_BAD_SECTOR = 6;
FDC_ERR_DMA_ERROR = 7;
FDC_ERR_SECTOR_NOT_FOUND = 8;
FDC_ERR_WRITE_PROTECT = 9;
FDC_ERR_UNKNOWN = 10;
type
TFDCBbuffer = array[1..8192] of byte;
var
fdcBuf: TFDCBbuffer;
fdcIOError: byte;
fdcStatus: array[1..8] of byte;
procedure fdcMotorOn(drv: byte);
procedure fdcMotorOff;
procedure fdcRecalibrate(drv: byte);
procedure fdcSeek(drv, trck: byte);
procedure fdcSpecify;
procedure fdcReadSector(drv, track_id, head_id, sector_id, sector_size_id, last_sector_id: byte);
procedure fdcInit(drv, sector_size_id: byte);
function fdcErrorStr(value: byte): string;
function fdcSpeedStr(value: byte): string;
implementation
uses
crt;
{ HELPERS }
{----------------------------------------------------------------------------}
function strr(value: longint): string;
var
r: string;
begin
str(value, r);
strr:= r;
end;
{----------------------------------------------------------------------------}
function TestBit(Num, Bit: byte): boolean;
const
Bits: array[0..7] of word = (1,2,4,8,16,32,64,128);
begin
TestBit:= (Num and Bits[Bit]) <> 0;
end;
{----------------------------------------------------------------------------}
procedure IncPtr(var p: pointer; off: Word);
begin
asm
push ds
lds di,p
mov ax,Off
add [di],ax
jnc @1
add word ptr [di+2],1000h
@1: pop ds
end;
end;
{----------------------------------------------------------------------------}
procedure ConvPtr(p: pointer; var page, off: word);
begin
asm
push ds
lds dx,p
mov bx,ds
mov ax,bx
mov cl,4
shl ax,cl
add ax,dx
pushf
lds di,off
mov [di],ax
mov ax,bx
mov cl,12
shr ax,cl
popf
jnc @1
inc ax
@1: lds di,page
mov [di],ax
pop ds
end;
end;
{ PRIVATE }
{----------------------------------------------------------------------------}
procedure fdc_out(value: byte);
var
i: longint;
begin
i:= 128;
while (port[FDC_REG_MSR] and $C0) <> $80 do
begin
dec(i);
if i = 0 then break;
end;
fdcIOError:= FDC_OK;
if i <> 0 then
port[FDC_REG_DR]:= value
else
fdcIOError:= FDC_ERR_TIMEOUT;
end;
{----------------------------------------------------------------------------}
function fdc_in: byte;
var
i: longint;
begin
i:= 128;
while (port[FDC_REG_MSR] and $C0) <> $C0 do
begin
dec(i);
if i = 0 then break;
end;
if i <> 0 then
begin
fdcIOError:= FDC_OK;
fdc_in:= port[FDC_REG_DR]
end
else
begin
fdcIOError:= FDC_ERR_TIMEOUT;
fdc_in:= 0;
end;
end;
{----------------------------------------------------------------------------}
procedure fdc_wait;
var
WasInt: byte;
Timer: word;
begin
fdcIOError:= FDC_OK;
WasInt:= 0;
Timer:= 2000;
while (WasInt = 0) and (Timer > 0) do
begin
dec(Timer);
delay(1);
asm
push DS
push AX
xor AX, AX
mov DS, AX
test byte ptr DS:[43Eh], 80h
jz @noInt
and byte ptr DS:[43Eh], 7Fh
mov WasInt, 1
@noInt:
pop AX
pop DS
end;
end;
if WasInt = 0 then
fdcIOError:= FDC_ERR_TIMEOUT;
end;
{ PUBLIC }
{----------------------------------------------------------------------------}
procedure fdcMotorOn(drv: byte);
begin
{ port[FDC_REG_DOR]:= (drv+1)*16+$C+drv; }
if drv = 0 then
port[FDC_REG_DOR]:= 28
else
port[FDC_REG_DOR]:= 45;
{ wait until motor take rpm }
delay(1000);{}
end;
{----------------------------------------------------------------------------}
procedure fdcMotorOff;
begin
port[FDC_REG_DOR]:= 12; { 12 = $0C = 00001100, bit 3 and 4 }
end;
{----------------------------------------------------------------------------}
procedure fdcRecalibrate(drv: byte);
begin
fdc_out(FDC_CMD_RECALIBRATE);
fdc_out(drv);
fdc_wait;
end;
{----------------------------------------------------------------------------}
procedure fdcSeek(drv, trck: byte);
var
a: byte;
begin
fdc_out(FDC_CMD_SEEK);
fdc_out(drv);
fdc_out(trck);
fdc_wait;
delay(100);
end;
{----------------------------------------------------------------------------}
procedure fdcSpecify;
var
SRT, HUT, HLT, DMA: byte;
begin
{
SRT - Step Rate Interval.
Sets the minimum delay between two drive step pulses.
(1-16 ms, SRT = 0Fh corresponds to 1 ms).
Older PC drives did not perform 3- or 4-ms step rates,
and some cannot perform with 2- or even 1-ms step rates.
HUT - Head Unload Time.
The delay between the completion of a read/write operation and the head lifting.
(16-240 ms, HUT = 0 corresponds to 16 ms). It is usually set to 240 ms.
HLT - Head Load Time.
The delay between the head load command and the start of a read/write operation.
(2-254 ms, HLT=1-2 ms). Usually set to 2 ms.
ND - 0: DMA mode. 1: Non-DMA mode.
}
SRT:= $0F;
HUT:= $0D;
HLT:= $01;
DMA:= $00;
fdc_out(FDC_CMD_SPECIFY);
fdc_out(SRT or (HUT shl 4));
fdc_out(DMA or (HLT shl 1));
end;
{---------------------------------------------------------------------------}
procedure fdcInit(drv, sector_size_id: byte);
begin
{ reset }
port[$3F2]:= 0;
port[$3F2]:= 4;
fdcMotorOn(drv);
fdcRecalibrate(drv);
fdcRecalibrate(drv);
fdcSeek(drv, 20);
fdcRecalibrate(drv);
fdcSpecify;
end;
{---------------------------------------------------------------------------}
procedure fdcReadSector(drv, track_id, head_id, sector_id, sector_size_id, last_sector_id: byte);
var
gpl_id: byte;
DMAPage,DMAOfs:word;
BlockSize:word;
begin
{ init DMA }
ConvPtr(@fdcBuf, DMAPage, DMAOfs);
BlockSize:= (128 SHL sector_size_id);
asm cli end;
port[$0A]:= $06; { mask channel 2 }
port[$0C]:= $46; { reset trigger }
port[$0B]:= $46; { mode: FDD -> Memory }
port[$04]:= DMAOfs and $FF;
port[$04]:= DMAOfs shr 8;
port[$81]:= DMAPage and $FF;
port[$05]:= (BlockSize-1) and $FF;
port[$05]:= (BlockSize-1) shr 8;
port[$0A]:= $02; { unmask channel 2 }
asm sti end;
{ read data command }
fdc_out(FDC_HCMD_MFM or FDC_CMD_READ_DATA);{}
{ fdc_out( ((head_id and $01) shl 2) or (drv and $03) ); { head (1 bit), drive (2 bits) }
fdc_out(drv);
fdc_out(track_id);
fdc_out(head_id and $01);
fdc_out(sector_id);
fdc_out(sector_size_id); { N: sector size id }
fdc_out(last_sector_id); { EOT: last sector_id on track }
{ GPL values for MFM mode ONLY }
case sector_size_id of
FDC_SECTOR_256: gpl_id:= $0E;
FDC_SECTOR_512: gpl_id:= $1B;
FDC_SECTOR_1024: gpl_id:= $3F;
FDC_SECTOR_2048: gpl_id:= $99;
FDC_SECTOR_4096: gpl_id:= $C8;
FDC_SECTOR_8192: gpl_id:= $C8; { TODO: need to calc it }
else gpl_id:= $2A; { default value }
end;
fdc_out(gpl_id); { GPL: stands for the length of Gap3 }
{ should be FF in MFM mode }
fdc_out($FF); { DTL: if N>0 should be FF and will be ignored }
fdc_wait;
fdcStatus[1]:= fdc_in;
fdcStatus[2]:= fdc_in;
fdcStatus[3]:= fdc_in;
fdcStatus[4]:= fdc_in;
fdcStatus[5]:= fdc_in;
fdcStatus[6]:= fdc_in;
fdcStatus[7]:= fdc_in;
fdc_out(FDC_CMD_GET_STATUS3);
fdc_out(drv);
fdcStatus[8]:= fdc_in;
{ fdcIOError }
fdcIOError:= FDC_OK;
if (fdcStatus[1] and $C0) <> 0 then
begin
fdcIOError:= FDC_ERR_UNKNOWN;
if TestBit(fdcStatus[1],3) then fdcIOError:= FDC_ERR_DRIVE_NOT_READY;
if TestBit(fdcStatus[2],7) then fdcIOError:= FDC_ERR_END_OF_CYLINDER;
if TestBit(fdcStatus[2],5) or TestBit(fdcStatus[3],5) or TestBit(fdcStatus[3],0) then fdcIOError:= FDC_ERR_BAD_SECTOR;
if TestBit(fdcStatus[2],2) or TestBit(fdcStatus[2],4) then fdcIOError:= FDC_ERR_SECTOR_NOT_FOUND;
if TestBit(fdcStatus[2],4) then fdcIOError:= FDC_ERR_DMA_ERROR;
end;
if (TestBit(fdcStatus[8],1)) then fdcIOError:= FDC_ERR_DRIVE_NOT_READY;
end;
{----------------------------------------------------------------------------}
function fdcErrorStr(value: byte): string;
begin
fdcErrorStr:= 'Unknown ('+strr(value)+')';
Case value of
0: fdcErrorStr:= 'OK';
1: fdcErrorStr:= 'Bad Controller';
2: fdcErrorStr:= 'Time Out';
3: fdcErrorStr:= 'Seek Error';
4: fdcErrorStr:= 'Drive Not Ready';
5: fdcErrorStr:= 'End Of Cylinder';
6: fdcErrorStr:= 'Bad Sector';
7: fdcErrorStr:= 'DMA Error';
8: fdcErrorStr:= 'Sector Not Found';
9: fdcErrorStr:= 'Write Protect';
10: fdcErrorStr:= 'Unknown Error';
27: fdcErrorStr:= 'User Break';
End;
end;
{----------------------------------------------------------------------------}
function fdcSpeedStr(value: byte): string;
begin
fdcSpeedStr:= 'Unexpected format';
Case value of
0: fdcSpeedStr:= '500 kb/s (0)';
1: fdcSpeedStr:= '300 kb/s (1)';
2: fdcSpeedStr:= '250 kb/s (2)';
3: fdcSpeedStr:= '125 kb/s (3)';
End;
end;
end.

236
HELPERS.PAS Normal file
View File

@ -0,0 +1,236 @@
unit helpers;
interface
function strlo(s: string): string;
function mid(str: string; ind1,ind2: integer): string;
function nosp(s: string): string;
function strr(value: longint): string;
function vall(value: string): longint;
function hob2pc(name: string): string;
function CheckFile(myfile: string): byte;
function GetOf(fullpath: string; what: byte): string;
function CheckEx(myfile: string): string;
function dec2hex(decn: string): string;
implementation
uses
dos;
{----------------------------------------------------------------------------}
function strlo(s: string): string;
var
f: byte;
a: string;
x: byte;
begin
a:= '';
for f:= 1 to Length(s) do
begin
x:= 0;
if (((s[f] >= 'A')and(s[f] <= 'Z'))or((s[f] >= 'À')and(s[f] <= 'Ï'))) then x:= 32;
if (s[f] >= 'Ð')and(s[f] <= 'ß') then x:= 80;
a:= a + chr(ord(s[f]) + x);
end;
strlo:= a;
end;
{----------------------------------------------------------------------------}
function mid(str: string; ind1,ind2: integer): string;
begin
mid:= Copy(str, ind1, ind2-ind1+1);
end;
{----------------------------------------------------------------------------}
function nosp(s: string): string;
var
f,l,r: byte;
a: string;
begin
a:= '';
l:=1; while s[l]=' ' do inc(l);
r:= length(s); while s[r]=' ' do dec(r);
nosp:= mid(s,l,r);
end;
{----------------------------------------------------------------------------}
function strr(value: longint): string;
var
r: string;
begin
str(value, r);
strr:= r;
end;
{----------------------------------------------------------------------------}
function vall(value: string): longint;
var
rrr: longint;
code: integer;
begin
val(value, rrr, code);
vall:= rrr;
end;
{----------------------------------------------------------------------------}
function hob2pc(name: string): string;
var
i, m: byte;
s, d: string;
begin
s:= nosp(mid(name,1,8));
d:= copy(strlo(s), 1, 3);
if (d='com') or (d='lpt') or (d='nul') or (d='con') or (d='aux') or (d='prn') then s:= s + d;
for i:= 1 to length(s) do
begin
if s[i] = ' ' then s[i]:= '_';
if s[i] in ['.',':',',','\','/','?','*','>','<','+','"',#39] then s[i]:= '-';
if s[i] = #0 then s[i]:= '0';
if s[i] = #1 then s[i]:= '1';
if s[i] = #2 then s[i]:= '2';
if s[i] = #3 then s[i]:= '3';
if s[i] = #4 then s[i]:= '4';
if s[i] = #5 then s[i]:= '5';
if s[i] = #6 then s[i]:= '6';
if s[i] = #7 then s[i]:= '7';
if s[i] = #8 then s[i]:= '8';
if s[i] = #9 then s[i]:= '9';
if s[i] = #10 then s[i]:= 'A';
if s[i] = #11 then s[i]:= 'B';
if s[i] = #12 then s[i]:= 'C';
if s[i] = #13 then s[i]:= 'D';
if s[i] = #14 then s[i]:= 'E';
if s[i] = #15 then s[i]:= 'F';
if s[i] = #16 then s[i]:= 'G';
if s[i] = #17 then s[i]:= 'H';
if s[i] = #18 then s[i]:= 'I';
if s[i] = #19 then s[i]:= 'J';
if s[i] = #20 then s[i]:= 'K';
if s[i] = #21 then s[i]:= 'L';
if s[i] = #22 then s[i]:= 'M';
if s[i] = #23 then s[i]:= 'N';
if s[i] = #24 then s[i]:= 'O';
if s[i] = #25 then s[i]:= 'P';
if s[i] = #26 then s[i]:= 'Q';
if s[i] = #27 then s[i]:= 'R';
if s[i] = #28 then s[i]:= 'S';
if s[i] = #29 then s[i]:= 'T';
if s[i] = #30 then s[i]:= 'U';
if s[i] = #31 then s[i]:= 'V';
end;
hob2pc:= s;
end;
{----------------------------------------------------------------------------}
{$I-}
function CheckFile(myfile: string): byte;
var
ff: searchrec;
begin
filemode:= 0;
findfirst(myfile, anyfile, ff);
CheckFile:= doserror;
end;
{$I+}
{----------------------------------------------------------------------------}
function GetOf(fullpath: string; what: byte): string;
var
dosdir :dirstr;
dosname :namestr;
dosext :extstr;
begin
FSplit(fullpath, dosdir, dosname, dosext);
if length(dosdir) <> 3 then dosdir := Copy(dosdir, 1, Length(dosdir)-1);
case what of
1: GetOf := dosdir;
2: GetOf := dosname;
3: GetOf := dosext;
end;
end;
{----------------------------------------------------------------------------}
function CheckEx(myfile: string): string;
var
e: byte;
s,t,fn,ex: string;
i: longint;
begin
CheckEx:= myfile;
{file exists}
e:= CheckFile(myfile);
if e <> 0 then
exit;
fn:= GetOf(myfile,2);
ex:= GetOf(myfile,3);
i:= 0;
while (e = 0) do
begin
inc(i);
t:= strr(i);
s:= copy(fn,1,5);
s:= s + copy('00000000', 1, 8-length(s)-length(t)) + t;
e:= CheckFile(s+ex);
end;
CheckEx:= s+ex;
end;
{----------------------------------------------------------------------------}
function dec2hex(decn: string): string;
var
hex: string;
f, tdec, valcode, h3, h4: integer;
decm: array [1..2] of real;
i: longint;
label
fin;
begin
hex:= '';
Val(decn, tdec, valcode);
if (tdec < 0) or (tdec > 65535) then
begin
hex:= 'error';
goto fin;
end;
decm[1]:= int(tdec / 256);
decm[2]:= tdec - 256 * decm[1];
for i:= 1 to 2 do
begin
h3:= 48;
h4:= 48;
for f:= 1 to round(decm[i]) do
begin
h4:= h4 + 1;
if (h4 > 57) and (h4 < 65) then
h4:= h4 + 7;
if h4 > 70 then
begin
h3:= h3 + 1;
h4:= 48;
end;
if (h3 > 57) and (h3 < 65) then
h3:= h3 + 7;
end;
hex:= hex + chr(h3) + chr(h4);
end;
fin:
if vall(decn) > 255 then
dec2hex:= hex
else
dec2hex:= copy(hex, 3, 2);
end;
end.

354
LD-ISDOS.PAS Normal file
View File

@ -0,0 +1,354 @@
uses
dos, crt,
helpers,
fdc;
const
SEP = '--------------------------------------------------------------------------';
var
tmp: TFDCBbuffer;
drive: byte;
i: integer;
startTrack, maxTrack: byte;
ff: file;
tries, track, head, sector, sc: byte;
out_file_name, d: string;
fdcIOErrorBackup: byte;
maxTries: byte;
testMode, motorOffMethod, showDump: boolean;
c: char;
showDumpSector: byte;
{----------------------------------------------------------------------------}
function fdcGetSpeed(drv: byte): byte;
var
speed_id: byte;
begin
fdcGetSpeed:= 255; { speed unknown }
for speed_id:= 0 to FDC_SPEED_COUNT do
begin
port[FDC_REG_DIR]:= speed_id;
fdcReadSector(drv,0,0,1,FDC_SECTOR_1024,9); { ISDOS specific }
if fdcIOError = FDC_OK then
begin
fdcGetSpeed:= speed_id;
exit;
end;
end;
fdcIOError:= FDC_ERR_SECTOR_NOT_FOUND;
end;
{----------------------------------------------------------------------------}
function GetMaxTrack(param: string): byte;
begin
GetMaxTrack:= 79;
if param[3] = '1' then GetMaxTrack:= 80;
if param[3] = '2' then GetMaxTrack:= 81;
if param[3] = '3' then GetMaxTrack:= 82;
if param[3] = '4' then GetMaxTrack:= 83;
if param[3] = '5' then GetMaxTrack:= 84;
if length(param) = 2 then GetMaxTrack:= 82;
end;
{----------------------------------------------------------------------------}
function GetMaxTries(param: string): byte;
begin
GetMaxTries:= 3;
if param[3] = '4' then GetMaxTries:= 4;
if param[3] = '5' then GetMaxTries:= 5;
if param[3] = '6' then GetMaxTries:= 6;
if param[3] = '7' then GetMaxTries:= 7;
if param[3] = '8' then GetMaxTries:= 8;
if param[3] = '9' then GetMaxTries:= 9;
end;
{----------------------------------------------------------------------------}
begin
ClrScr;
drive:= 0;
startTrack:= 0;
maxTrack:= 79;
out_file_name:= '_isdos.isd';
maxTries:= 5;
testMode:= false;
motorOffMethod:= false;
showDump:= false;
showDumpSector:= 1;
{----------------------------------------------------------------------------}
if ParamCount = 1 then
begin
d:= strlo(ParamStr(1));
{ drive }
if d = 'a:' then drive:= 0;
if d = 'b:' then drive:= 1;
end;
if ParamCount > 1 then
begin
d:= strlo(ParamStr(1));
{ drive }
if d = 'a:' then drive:= 0;
if d = 'b:' then drive:= 1;
d:= strlo(ParamStr(2));
{ out file name}
if d[1] <> '/' then out_file_name:= d;
end;
for i:= 1 to ParamCount do
begin
d:= strlo(ParamStr(i));
if copy(d,1,2) = '/t' then
begin
testMode:= true;
startTrack:= 80;
maxTrack:= GetMaxTrack(d);
continue;
end;
if copy(d,1,2) = '/m' then
begin
maxTrack:= GetMaxTrack(d);
continue;
end;
if copy(d,1,2) = '/r' then
begin
maxTries:= GetMaxTries(d);
continue;
end;
if copy(d,1,2) = '/o' then
begin
motorOffMethod:= true;
continue;
end;
if copy(d,1,2) = '/d' then
begin
showDump:= true;
if (length(d) = 3) and (d[3] = '1') then showDumpSector:= 1;
if (length(d) = 3) and (d[3] = '2') then showDumpSector:= 2;
if (length(d) = 3) and (d[3] = '3') then showDumpSector:= 3;
if (length(d) = 3) and (d[3] = '4') then showDumpSector:= 4;
if (length(d) = 3) and (d[3] = '5') then showDumpSector:= 5;
if (length(d) = 3) and (d[3] = '6') then showDumpSector:= 6;
if (length(d) = 3) and (d[3] = '7') then showDumpSector:= 7;
if (length(d) = 3) and (d[3] = '8') then showDumpSector:= 8;
if (length(d) = 3) and (d[3] = '9') then showDumpSector:= 9;
continue;
end;
end;
{----------------------------------------------------------------------------}
writeln('ZX Spectrum Navigator v1.15 Reading iS-DOS floppy disk');
writeln('https://zxsn.ru, RomanRom2@gmail.com');
writeln('Copyright (c) 1996-2026 RomanRom2');
writeln(SEP);
if strlo(ParamStr(1)) = '/h' then
begin
writeln('LD-ISDOS.EXE drive|key <file> <keys>');
writeln(' - key /dN try to show dump of track 0 head 0 sector N');
writeln(' by default N=1, means /d is the same /d1');
writeln(' - key /o enable MotorOff method each 4,6,8 tries');
writeln(' - key /rN set max tries to read bad sector');
writeln(' by default N=5');
writeln(' - key /mN enable 8N tracks, N = 1..5 means 81-85 tracks');
writeln(' /m is the same /m3 for 83');
writeln('by default drive [A:], file name gets from disk name');
writeln(SEP);
writeln('Examples:');
writeln('LD-ISDOS.EXE /m5 - dump disk A: names as DiskName with max tracks');
writeln('LD-ISDOS.EXE b: - dump disk B: names as DiskName');
writeln('LD-ISDOS.EXE a: MYDSK - dump disk A: names as MYDSK');
writeln('LD-ISDOS.EXE a: MYDSK /m2 - dump disk A: names as MYDSK with 82 tracks');
writeln('LD-ISDOS.EXE a: /d9 - dump disk A: names as DiskName with dump sector 9');
writeln('LD-ISDOS.EXE /d /r2 - dump disk A: names as DiskName with dump sector 1');
writeln(' and 2 retries to read bad sectors');
end
else
begin
writeln('LD-ISDOS.EXE /h - for help');
end;
writeln(SEP);
writeln;
if strlo(ParamStr(1)) = '/h' then exit;
{----------------------------------------------------------------------------}
writeln('Drive ',chr(drive+65),': is initializing...');
fdcInit(drive, FDC_SECTOR_1024);
if fdcIOError <> FDC_OK then
begin
writeln('FDC init error ['+fdcErrorStr(fdcIOError)+']');
fdcRecalibrate(drive);
fdcMotorOff;
exit;
end;
writeln(fdcErrorStr(fdcIOError),', ',fdcSpeedStr(fdcGetSpeed(drive)));{}
{ do not show it in test mode }
if not testMode then
begin
{ check 1st sector for disk name }
fdcReadSector(drive,0,0,1,FDC_SECTOR_1024,9);
if fdcIOError <> FDC_OK then
begin
writeln('1st sector read error ['+fdcErrorStr(fdcIOError)+']');
fdcRecalibrate(drive);
fdcMotorOff;
exit;
end;
{ get disk name }
d:=''; for i:=1 to 8 do if fdcBuf[i+2]<>32 then d:=d+chr(fdcBuf[i+2]);
if out_file_name = '_isdos.isd' then out_file_name:= hob2pc(d)+'.isd';;
write('Disk name: [',d,']');
out_file_name:= CheckEx(out_file_name);
writeln(' (',out_file_name,')');
if motorOffMethod then writeln('MotorOff method each 4,6,8 tries is enabled');
if showDump then
begin
{ dump 1st sector }
fdcReadSector(drive,0,0,showDumpSector,FDC_SECTOR_1024,9);
writeln(SEP);
for i:= 0 to 15 do
begin
for track:= 0 to 15 do
begin
gotoxy((track+1)*3,wherey); write(dec2hex(strr(fdcBuf[1+i*16+track])));
gotoxy(51+(track+1),wherey);
if fdcBuf[1+i*16+track]>31 then write(chr(fdcBuf[1+i*16+track])) else write('.');
end;
writeln;
end;
writeln(SEP);
writeln('ESC - cancel, any key - continue');
c:= readkey;
if c = #27 then
begin
writeln;
writeln('Canceled.');
fdcRecalibrate(drive);
fdcMotorOff;
exit;
end;
end;
writeln;
writeln('Dumping ',maxTrack+1,' tracks...');
end
else
begin
writeln;
writeln('TEST [',startTrack,'..',maxTrack+1,'] TRACKS MODE');
end;
{----------------------------------------------------------------------------}
if not testMode then
begin
{ do not dump in test mode }
assign(ff, out_file_name);
rewrite(ff, 1);
end;
for track:= startTrack to maxTrack do
begin
fdcSeek(drive, track);
for head:= 0 to 1 do
Begin
for i:=1 to 5*1024 do tmp[i]:= 0; { empty buffer by zero }
for sector:= 1 to 5 do
begin
if keypressed then break;
sc:= sector;
if sector = 5 then sc:= 9;
write('Track:',track:2,' Head:',head:1,' Sector:',sc,' ');
{ mark sector as a bad sector }
for i:=1 to 1024 do tmp[(sector-1)*1024+i]:= ord('B');
for tries:= 1 to maxTries do
begin
if keypressed then break;
fdcReadSector(drive+(head shl 2),track,head,sc,FDC_SECTOR_1024,9);
fdcIOErrorBackup:= fdcIOError;
if fdcIOErrorBackup = FDC_OK then break;
write('.');
if motorOffMethod then
begin
if tries in [4,6,8] then
begin
fdcMotorOff;
delay(100);
fdcMotorOn(drive);
continue;
end;
end;
if track > 4 then fdcSeek(drive, track-4) else fdcSeek(drive, 0);
fdcSeek(drive,track);
end;
if fdcIOErrorBackup = FDC_ERR_BAD_SECTOR then
write(fdcErrorStr(fdcIOErrorBackup)+' (saved) '+#13)
else
write(fdcErrorStr(fdcIOErrorBackup)+' '+#13);
if fdcIOErrorBackup <> FDC_OK then writeln;
{ save buffer only if [OK] or [BAD_SECTOR] }
if fdcIOErrorBackup in [FDC_OK, FDC_ERR_BAD_SECTOR] then
for i:=1 to 1024 do tmp[(sector-1)*1024+i]:= fdcBuf[i];
end;
{ do not dump in test mode }
if not testMode then
BlockWrite(ff, tmp, 5*1024); { dump full track }
End;
if KeyPressed then
if ReadKey = #27 then
begin
writeln(#13#10'... break pressed');
break;
end;
end;
{ do not dump in test mode }
if not testMode then
close(ff);
fdcRecalibrate(drive);
fdcMotorOff;
write(#13' ');
writeln(#13#10'Done.'#13#10);
end.

363
LD-TRDOS.PAS Normal file
View File

@ -0,0 +1,363 @@
uses
dos, crt,
helpers,
fdc;
const
SEP = '--------------------------------------------------------------------------';
var
tmp: TFDCBbuffer;
drive: byte;
i: integer;
startTrack, maxTrack: byte;
ff: file;
tries, track, head, sector: byte;
out_file_name, d: string;
fdcIOErrorBackup: byte;
HOBETA: boolean;
maxTries: byte;
testMode, motorOffMethod, showDump: boolean;
c: char;
showDumpSector: byte;
{----------------------------------------------------------------------------}
function fdcGetSpeed(drv: byte): byte;
var
speed_id: byte;
begin
fdcGetSpeed:= 255; { speed unknown }
for speed_id:= 0 to FDC_SPEED_COUNT do
begin
port[FDC_REG_DIR]:= speed_id;
fdcReadSector(drv,0,0,9,FDC_SECTOR_256,16); { TRDOS specific }
if fdcIOError = FDC_OK then
begin
fdcGetSpeed:= speed_id;
exit;
end;
end;
fdcIOError:= FDC_ERR_SECTOR_NOT_FOUND;
end;
{----------------------------------------------------------------------------}
function GetMaxTrack(param: string): byte;
begin
GetMaxTrack:= 79;
if param[3] = '1' then GetMaxTrack:= 80;
if param[3] = '2' then GetMaxTrack:= 81;
if param[3] = '3' then GetMaxTrack:= 82;
if param[3] = '4' then GetMaxTrack:= 83;
if param[3] = '5' then GetMaxTrack:= 84;
if param[3] = '6' then GetMaxTrack:= 85; { extra }
if param[3] = '7' then GetMaxTrack:= 86; { extra }
if length(param) = 2 then GetMaxTrack:= 84;
end;
{----------------------------------------------------------------------------}
function GetMaxTries(param: string): byte;
begin
GetMaxTries:= 3;
if param[3] = '4' then GetMaxTries:= 4;
if param[3] = '5' then GetMaxTries:= 5;
if param[3] = '6' then GetMaxTries:= 6;
if param[3] = '7' then GetMaxTries:= 7;
if param[3] = '8' then GetMaxTries:= 8;
if param[3] = '9' then GetMaxTries:= 9;
end;
{----------------------------------------------------------------------------}
begin
ClrScr;
drive:= 0;
startTrack:= 0;
maxTrack:= 79;
out_file_name:= '_trdos.trd';
HOBETA:= false;
maxTries:= 5;
testMode:= false;
motorOffMethod:= false;
showDump:= false;
showDumpSector:= 1;
{----------------------------------------------------------------------------}
if ParamCount = 1 then
begin
d:= strlo(ParamStr(1));
{ drive }
if d = 'a:' then drive:= 0;
if d = 'b:' then drive:= 1;
end;
if ParamCount > 1 then
begin
d:= strlo(ParamStr(1));
{ drive }
if d = 'a:' then drive:= 0;
if d = 'b:' then drive:= 1;
d:= strlo(ParamStr(2));
{ out file name}
if d[1] <> '/' then out_file_name:= d;
end;
for i:= 1 to ParamCount do
begin
d:= strlo(ParamStr(i));
if copy(d,1,2) = '/t' then
begin
testMode:= true;
startTrack:= 80;
maxTrack:= GetMaxTrack(d);
continue;
end;
if copy(d,1,2) = '/m' then
begin
maxTrack:= GetMaxTrack(d);
continue;
end;
if copy(d,1,2) = '/r' then
begin
maxTries:= GetMaxTries(d);
continue;
end;
if copy(d,1,2) = '/o' then
begin
motorOffMethod:= true;
continue;
end;
if copy(d,1,2) = '/d' then
begin
showDump:= true;
if (length(d) = 3) and (d[3] = '1') then showDumpSector:= 1;
if (length(d) = 3) and (d[3] = '2') then showDumpSector:= 2;
if (length(d) = 3) and (d[3] = '3') then showDumpSector:= 3;
if (length(d) = 3) and (d[3] = '4') then showDumpSector:= 4;
if (length(d) = 3) and (d[3] = '5') then showDumpSector:= 5;
if (length(d) = 3) and (d[3] = '6') then showDumpSector:= 6;
if (length(d) = 3) and (d[3] = '7') then showDumpSector:= 7;
if (length(d) = 3) and (d[3] = '8') then showDumpSector:= 8;
if (length(d) = 3) and (d[3] = '9') then showDumpSector:= 9;
continue;
end;
end;
{----------------------------------------------------------------------------}
writeln('ZX Spectrum Navigator v1.15 Reading TR-DOS floppy disk');
writeln('https://zxsn.ru, RomanRom2@gmail.com');
writeln('Copyright (c) 1996-2026 RomanRom2');
writeln(SEP);
if strlo(ParamStr(1)) = '/h' then
begin
writeln('LD-TRDOS.EXE drive|key <file> <keys>');
writeln(' - key /dN try to show dump of track 0 head 0 sector N');
writeln(' by default N=1, means /d is the same /d1');
writeln(' - key /o enable MotorOff method each 4,6,8 tries');
writeln(' - key /rN set max tries to read bad sector');
writeln(' by default N=5');
writeln(' - key /mN enable 8N tracks, N = 1..5 means 81-85 tracks');
writeln(' /m is the same /m3 for 83');
writeln('by default drive [A:], file name gets from disk name');
writeln(SEP);
writeln('Examples:');
writeln('LD-TRDOS.EXE /m5 - dump disk A: names as DiskName with max tracks');
writeln('LD-TRDOS.EXE b: - dump disk B: names as DiskName');
writeln('LD-TRDOS.EXE a: MYDSK - dump disk A: names as MYDSK');
writeln('LD-TRDOS.EXE a: MYDSK /m2 - dump disk A: names as MYDSK with 82 tracks');
writeln('LD-TRDOS.EXE a: /d9 - dump disk A: names as DiskName with dump sector 9');
writeln('LD-TRDOS.EXE /d /r2 - dump disk A: names as DiskName with dump sector 1');
writeln(' and 2 retries to read bad sectors');
end
else
begin
writeln('LD-TRDOS.EXE /h - for help');
end;
writeln(SEP);
writeln;
if strlo(ParamStr(1)) = '/h' then exit;
{----------------------------------------------------------------------------}
writeln('Drive ',chr(drive+65),': is initializing...');
fdcInit(drive, FDC_SECTOR_256);
if fdcIOError <> FDC_OK then
begin
writeln('FDC init error ['+fdcErrorStr(fdcIOError)+']');
fdcMotorOff;
exit;
end;
writeln(fdcErrorStr(fdcIOError),', ',fdcSpeedStr(fdcGetSpeed(drive)));
{ check hobeta style format (HEAD ID always = 0) }
fdcReadSector(drive+(1 shl 2),0,1,9,FDC_SECTOR_256,16);
if fdcIOError <> FDC_OK then
begin
writeln('HOBETA or real TR-DOS formatted');
HOBETA:= true;
end;
{ do not show it in test mode }
if not testMode then
begin
{ check 9th system sector for disk name }
fdcReadSector(drive,0,0,9,FDC_SECTOR_256,16);
if fdcIOError <> FDC_OK then
begin
writeln('9th sector read error ['+fdcErrorStr(fdcIOError)+']');
fdcRecalibrate(drive);
fdcMotorOff;
exit;
end;
{ get disk name }
d:=''; for i:=1 to 8 do if fdcBuf[$F5+i]<>32 then d:=d+chr(fdcBuf[$F5+i]);
if out_file_name = '_trdos.trd' then out_file_name:= hob2pc(d)+'.trd';;
write('Disk name: [',d,']');
out_file_name:= CheckEx(out_file_name);
writeln(' (',out_file_name,')');
if motorOffMethod then writeln('Motor off method each 4,6,8 tries is enabled');
if showDump then
begin
{ dump 1st sector }
fdcReadSector(drive,0,0,showDumpSector,FDC_SECTOR_256,16);
writeln(SEP);
for i:= 0 to 15 do
begin
for track:= 0 to 15 do
begin
gotoxy((track+1)*3,wherey); write(dec2hex(strr(fdcBuf[1+i*16+track])));
gotoxy(51+(track+1),wherey);
if fdcBuf[1+i*16+track]>31 then write(chr(fdcBuf[1+i*16+track])) else write('.');
end;
writeln;
end;
writeln(SEP);
writeln('ESC - cancel, any key - continue');
c:= readkey;
if c = #27 then
begin
writeln;
writeln('Canceled.');
fdcRecalibrate(drive);
fdcMotorOff;
exit;
end;
end;
writeln;
writeln('Dumping ',maxTrack+1,' tracks...');
end
else
begin
writeln;
writeln('TEST [',startTrack,'..',maxTrack+1,'] TRACKS MODE');
end;
{----------------------------------------------------------------------------}
if not testMode then
begin
{ do not dump in test mode }
assign(ff, out_file_name);
rewrite(ff, 1);
end;
for track:= startTrack to maxTrack do
begin
fdcSeek(drive, track);
for head:= 0 to 1 do
Begin
for i:= 1 to 16*256 do tmp[i]:= 0; { empty buffer by zero}
for sector:= 1 to 16 do
begin
if keypressed then break;
write('Track:',track:2,' Head:',head:1,' Sector:',sector:2,' ');
{ mark sector as a bad sector }
for i:=1 to 256 do tmp[(sector-1)*256+i]:= ord('B');
for tries:= 1 to maxTries do
begin
if keypressed then break;
i:= head;
if HOBETA then i:= 0;
fdcReadSector(drive+(head shl 2),track,i,sector,FDC_SECTOR_256,16);
fdcIOErrorBackup:= fdcIOError;
if fdcIOErrorBackup = FDC_OK then
break;
write('.');
if motorOffMethod then
begin
if tries in [4,6,8] then
begin
fdcMotorOff;
delay(100);
fdcMotorOn(drive);
continue;
end;
end;
if track > 4 then fdcSeek(drive, track-4) else fdcSeek(drive, 0);
fdcSeek(drive, track);
end;
if fdcIOErrorBackup = FDC_ERR_BAD_SECTOR then
write(fdcErrorStr(fdcIOErrorBackup)+' (saved) '+#13)
else
write(fdcErrorStr(fdcIOErrorBackup)+' '+#13);
if fdcIOErrorBackup <> FDC_OK then writeln;
{ save buffer only if [OK] or [BAD_SECTOR] }
if fdcIOErrorBackup in [FDC_OK, FDC_ERR_BAD_SECTOR] then
for i:=1 to 256 do tmp[(sector-1)*256+i]:= fdcBuf[i];
end;
{ do not dump in test mode }
if not testMode then
BlockWrite(ff, tmp, 16*256); { dump full track }
End;
if KeyPressed then
if ReadKey = #27 then
begin
writeln(#13#10'... break pressed');
break;
end;
end;
{ do not dump in test mode }
if not testMode then
close(ff);
fdcRecalibrate(drive);
fdcMotorOff;
write(#13' ');
writeln(#13#10'Done.'#13#10);
end.

486
docs/8272.txt Normal file
View File

@ -0,0 +1,486 @@
Š®­â஫«¥à <20>ƒŒ„ i8272. ÉÍÍÍÍÍË»
ޝ¨á ­¨¥ à ¡®âë ª®­â஫«¥à  ¨ á¨áâ¥¬ë ª®¬ ­¤. ºi8272ºº
ÈÍÍÍÍÍʼ
„«ï ¤®áâ㯠 á® áâ®à®­ë ¯à®æ¥áá®à  ª®­â஫«¥à 8272 ¨¬¥¥â 2 ॣ¨áâà :
ॣ¨áâà á®áâ®ï­¨ï ¨ ॣ¨áâà ¤ ­­ëå. <20>¥£¨áâà á®áâ®ï­¨ï (Main Status Register)
ᮤ¥à¦¨â ¨­ä®à¬ æ¨î ® á®áâ®ï­¨¨ ª®­â஫«¥à  ¨ ¬®¦¥â ¡ëâì áç¨â ­ ¯à®æ¥áá®à®¬ ¢
«î¡®¥ ¢à¥¬ï. —¥à¥§ ॣ¨áâà ¤ ­­ëå ª®­â஫«¥à  ®áãé¥á⢫ï¥âáï ¤®áâ㯠ª® ¢á¥¬
¢­ãâ७­¨¬ ॣ¨áâà ¬ 8272, ¢ ­¥£® § ¯¨á뢠îâáï ª®¬ ­¤ë ¨ ®áãé¥á⢫ï¥âáï ®¡¬¥­
¤ ­­ë¬¨ á ¤¨áª®¬. <20>¥£¨áâà á®áâ®ï­¨ï ¬®¦­® ⮫쪮 áç¨â뢠âì. „«ï ¢ë¡®à  ®¤­®£®
¨§ ¤¢ãå ॣ¨áâ஢ ¨á¯®«ì§ã¥âáï ¢ë¢®¤ €0 8272 (¢ë¢.5). <20>ਠ€0=0  ¤à¥áã¥âáï
ॣ¨áâà á®áâ®ï­¨ï, ¯à¨ €0=1  ¤à¥áã¥âáï ॣ¨áâà ¤ ­­ëå.
”®à¬ â ॣ¨áâà  á®áâ®ï­¨ï:
ÉÍÍÍÍÍËÍÍÍÍÍËÍÍÍÍÍËÍÍÍÍÍËÍÍÍÍÍËÍÍÍÍÍËÍÍÍÍÍËÍÍÍÍÍ»
º RQM º DIO º NDM º CB º D3B º D2B º D1B º D0B º
ÌÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍ͹
º DB7 º DB6 º DB5 º DB4 º DB3 º DB2 º DB1 º DB0 º
ÈÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍͼ
ޝ¨á ­¨¥ à §à冷¢ ॣ¨áâà  á®áâ®ï­¨ï:
RQM - Request For Master
¨­ä®à¬¨àã¥â ¯à®æ¥áá®à ® £®â®¢­®á⨠ª ®¡¬¥­ã ¤ ­­ë¬¨ ¯® 設¥ ¤ ­­ëå.
RQM = 1 - ª®­â஫«¥à ª ®¡¬¥­ã £®â®¢.
DIO - Data Input/Output
¨­ä®à¬¨àã¥â ¯à®æ¥áá®à ®¡ ®¦¨¤ ¥¬®¬ ­ ¯à ¢«¥­¨¨ ¯¥à¥á뫪¨ ¤ ­­ëå:
DIO = 1 - ­ ¯à ¢«¥­¨¥ ¯¥à¥á뫪¨ - ¢ ¯à®æ¥áá®à (Read),
DIO = 0 - ­ ¯à ¢«¥­¨¥ ¯¥à¥á뫪¨ - ¨§ ¯à®æ¥áá®à  (Write).
NDM - Non DMA Mode
०¨¬¥ <20>…-<2D><EFBFBD> ¡¨â NDM = 0 ¯®ª §ë¢ ¥â, çâ® § ª®­ç¥­  ä §  ¨á¯®«­¥­¨ï
ª®¬ ­¤ë.
CB - FDC Busy
…᫨ ¡¨â CB = 1, íâ® ®§­ ç ¥â, çâ® ª®­â஫«¥à ¢ ¤ ­­ë© ¬®¬¥­â § ­ïâ -
¢ë¯®«­ï¥âáï ®¯¥à æ¨ï ç⥭¨ï/§ ¯¨á¨.
DB3..DB0 - Drive n Busy
<20>⨠¡¨âë ¯®ª §ë¢ îâ á®áâ®ï­¨¥ ª ¦¤®£® ¨§ 4-å ­ ª®¯¨â¥«¥©. …᫨
ᮤ¥à¦¨¬®¥ ¡¨â  = 1, §­ ç¨â ¤«ï ᮮ⢥âáâ¢ãî饣® ­ ª®¯¨â¥«ï ¢
­ áâ®ï饥 ¢à¥¬ï ¢ë¯®«­ï¥âáï ª®¬ ­¤  Seek.
ޡ饥 ®¯¨á ­¨¥ ª®­â஫«¥à .
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
á¨á⥬㠪®¬ ­¤ ª®­â஫«¥à  8272 ¢å®¤¨â 15 ª®¬ ­¤. Š ¦¤ ï ª®¬ ­¤ 
¨¤¥­â¨ä¨æ¨àã¥âáï ¬­®£®¡ ©â­®© ¯¥à¥á뫪®© ¯® 設¥ ¤ ­­ëå ¢ ॣ¨áâà ¤ ­­ëå
ª®­â஫«¥à . <20>¥§ã«ìâ â ¢ë¯®«­¥­¨ï ª®¬ ­¤ë â ª¦¥ ¬®¦¥â ¡ëâì ¬­®£®¡ ©â­ë¬.
Š ¦¤ãî ª®¬ ­¤ã 㤮¡­® ¯à¥¤áâ ¢«ïâì á®áâ®ï饩 ¨§ 3-å ä §:
* ” §  ¯à¨ª §  - ª®­â஫«¥à ¯à¨­¨¬ ¥â ®â ¯à®æ¥áá®à  ¯®á«¥¤®¢ â¥«ì­®áâì
¡ ©â, ­¥®¡å®¤¨¬ëå ¤«ï ¢ë¯®«­¥­¨ï ª®¬ ­¤ë.
* ” §  ¨á¯®«­¥­¨ï - ª®­â஫«¥à ¢ë¯®«­ï¥â ¯¥à¥¤ ­­ãî ¥¬ã ª®¬ ­¤ã.
* ” §  १ã«ìâ â  - ¯à®æ¥áá®à áç¨â뢠¥â á®áâ®ï­¨¥ ª®­â஫«¥à  ¯®á«¥
¢ë¯®«­¥­¨ï ª®¬ ­¤ë ¨ ¤àã£ãî ¨­ä®à¬ æ¨î.
<20>  ä § å ¯à¨ª §  ¨ १ã«ìâ â  ¯¥à¥¤ ¯¥à¥¤ ç¥© ª ¦¤®£® ¡ ©â  ¨§/¢ ॣ¨áâà
¤ ­­ëå ª®­â஫«¥à , ¯à®æ¥áá®à ¤®«¦¥­ áç¨â뢠âì ᮤ¥à¦¨¬®¥ ॣ¨áâà  á®áâ®ï­¨ï
ª®­â஫«¥à . <20>¨âë RQM ¨ DIO ॣ¨áâà  á®áâ®ï­¨ï ¤®«¦­ë ¡ëâì ãáâ ­®¢«¥­ë ¢ 1 ¨
0 ᮮ⢥âá⢥­­® ¯¥à¥¤ ⥬, ª ª ®ç¥à¥¤­®© ¡ ©â ¡ã¤¥â ¯¥à¥¤ ­ ¢ ª®­â஫«¥à.
Œ­®£¨¥ ª®¬ ­¤ë ïîâáï ¬­®£®¡ ©â®¢ë¬¨, ¯®í⮬㠤«ï ­¨å ­¥®¡å®¤¨¬® áç¨â뢠âì
¨ ¯à®¢¥àïâì ॣ¨áâà á®áâ®ï­¨ï ¯¥à¥¤ ¯¥à¥á뫪®© ª ¦¤®£® ¡ ©â  ¢ ª®­â஫«¥à. <20> 
ä §¥ १ã«ìâ â  ¡¨âë RQM ¨ DIO ¤®«¦­ë ¡ëâì ãáâ ­®¢«¥­ë ¢ 1 ¯¥à¥¤ ç⥭¨¥¬
ª ¦¤®£® ¡ ©â  ¨§ ª®­â஫«¥à . Žâ¬¥â¨¬, çâ® ç⥭¨¥ ॣ¨áâà  á®áâ®ï­¨ï ¯¥à¥¤
¯¥à¥á뫪®© ª ¦¤®£® ¡ ©â  ­¥®¡å®¤¨¬® ⮫쪮 ­  ä § å ¯à¨ª §  ¨ १ã«ìâ â .
<20>  ä §¥ ¨á¯®«­¥­¨ï ॣ¨áâà á®áâ®ï­¨ï áç¨â뢠âì ­¥ ­ã¦­®. …᫨ ª®­â஫«¥à
­ å®¤¨âáï ¢ ०¨¬¥ NON DMA (<28>…-<2D><EFBFBD>), ¯®ï¢«¥­¨¥ ®ç¥à¥¤­®£® ¡ ©â  ¤ ­­ëå ¯à¨
ç⥭¨¨ á ¤¨áª  ᮯ஢®¦¤ ¥âáï ¯®ï¢«¥­¨¥¬ ᨣ­ «  ¯à¥à뢠­¨ï INT=1. <20>à¨
¯®ï¢«¥­¨¨ ᨣ­ «  ç⥭¨ï (RD=0), ᨣ­ « ¯à¥à뢠­¨ï á¡à á뢠¥âáï ¨ ¤ ­­ë¥
¢ë¤ îâáï ­  設㠤 ­­ëå. <20> ¯à¨¬¥à, ¥á«¨ ¯à®æ¥áá®à ­¥ ¬®¦¥â ®¡á«ã¦¨¢ âì
¯à¥à뢠­¨ï ¤®áâ â®ç­® ¡ëáâà® (ª ¦¤ë¥ 13 ¬ªá¥ª. ¯à¨ ¤¢®©­®© ¯«®â­®áâ¨), ®­
¬®¦¥â ®¯à è¨¢ âì ॣ¨áâà á®áâ®ï­¨ï ¨ ¡¨â D7 (RQM) ᮮ⢥âáâ¢ã¥â ᨣ­ «ã
¯à¥à뢠­¨ï. <20>ਠ¢ë¯®«­¥­¨¨ ª®¬ ­¤ë § ¯¨á¨  ­ «®£¨ç­® ᨣ­ « § ¯¨á¨ WR=0
á¡à á뢠¥â ¯à¥à뢠­¨¥.
…᫨ ª®­â஫«¥à ­ å®¤¨âáï ¢ ०¨¬¥ DMA (<28><EFBFBD>), â® ¯à¥à뢠­¨¥ ­  ä §¥
¨á¯®«­¥­¨ï ­¥ £¥­¥à¨àã¥âáï. Š®­â஫«¥à ¢ í⮬ á«ãç ¥ ¢ë¤ ¥â ᨣ­ « DRQ
(§ ¯à®á <20><EFBFBD>) ª®£¤  ¯®ï¢«ï¥âáï ®ç¥à¥¤­®© ¡ ©â ¤ ­­ëå. Š®­â஫«¥à <20><EFBFBD> ®â¢¥ç ¥â
­  íâ®â § ¯à®á ᨣ­ «®¬ ¯®¤â¢¥à¦¤¥­¨ï <20><EFBFBD> DACK=0 ¨ RD=0. <20>ਠ¯®ï¢«¥­¨¨
ᨣ­ «  DACK á¡à á뢠¥âáï ᨣ­ « DRQ. <20>ਠ¢ë¯®«­¥­¨¨ ®¯¥à æ¨¨ § ¯¨á¨ ¢¬¥áâ®
ᨣ­ «  RD £¥­¥à¨àã¥âáï ᨣ­ « WR=0.
<20>® ®ª®­ç ­¨¨ ä §ë ¨á¯®«­¥­¨ï (¯à¨ ¯®ï¢«¥­¨¨ ᨣ­ «  - ª®­¥æ áç¥â )
£¥­¥à¨àã¥âáï ¯à¥à뢠­¨¥, ®§­ ç î饥 ­ ç «® ä §ë १ã«ìâ â . <20>ਠç⥭¨¨
¯¥à¢®£® ¡ ©â  १ã«ìâ â  ᨣ­ « ¯à¥à뢠­¨ï á¡à á뢠¥âáï.
<20>¥®¡å®¤¨¬® ¯®¤ç¥àª­ãâì, çâ® ­  ä §¥ १ã«ìâ â  ¢á¥ ¡ ©âë, 㪠§ ­­ë¥ ¢
â ¡«¨æ¥ ª®¬ ­¤, ¤®«¦­ë ¡ëâì áç¨â ­ë ¯à®æ¥áá®à®¬. <20> ¯à¨¬¥à, ª®¬ ­¤  ç⥭¨ï
¤ ­­ëå ¨¬¥¥â 7 ¡ ©â १ã«ìâ â  ¨ ¢á¥ 7 ¡ ©â ¤®«¦­ë ¡ëâì áç¨â ­ë ¢ ¯®à浪¥,
㪠§ ­­®¬ ¢ â ¡«¨æ¥ ª®¬ ­¤, ¤«ï ãᯥ譮£® § ¢¥à襭¨ï ®¯¥à æ¨¨. Š®­â஫«¥à ­¥
¢®á¯à¨¬¥â á«¥¤ãîéãî ª®¬ ­¤ã ¤® â¥å ¯®à, ¯®ª  ­¥ ¡ã¤ãâ áç¨â ­ë ¢á¥ 7 ¡ ©â
१ã«ìâ â  ¯®á«¥ ¢ë¯®«­¥­¨ï ª®¬ ­¤ë ç⥭¨ï.
Š®­â஫«¥à 8272 ᮤ¥à¦¨â 5 ॣ¨áâ஢ á®áâ®ï­¨ï: £« ¢­ë© ॣ¨áâà
á®áâ®ï­¨ï (Main Status Register) ¨ ॣ¨áâàë ST0-ST3. ƒ« ¢­ë© ॣ¨áâà
á®áâ®ï­¨ï (¨«¨ ¯à®á⮠ॣ¨áâà á®áâ®ï­¨ï) ¬®¦¥â ¡ëâì áç¨â ­ ¯à®æ¥áá®à®¬ ¢
«î¡®¥ ¢à¥¬ï. <20>¥£¨áâàë ST0-ST3 ¤®áâã¯­ë ¯à®æ¥áá®àã ⮫쪮 ­  ä §¥ १ã«ìâ â  ¨
¬®£ãâ ¡ëâì áç¨â ­ë ¨¬ ¯®á«¥ § ¢¥à襭¨ï ­¥ª®â®à®© ª®¬ ­¤ë. Š®­ªà¥â­ ï ª®¬ ­¤ 
®¯à¥¤¥«ï¥â, ᪮«ìª® ¨ ª ª¨¥ ॣ¨áâàë ¬®£ãâ ¨ ¤®«¦­ë ¡ëâì áç¨â ­ë.
<20> ©âë ¤ ­­ëå, § ¯¨á뢠¥¬ë¥ ¢ ª®­â஫«¥à ­  ä §¥ ¯à¨ª §  ¨ áç¨â뢠¥¬ë¥ ¨§
­¥£® ­  ä §¥ १ã«ìâ â , ¤®«¦­ë á«¥¤®¢ âì ¢ ¯®à浪¥, 㪠§ ­­®¬ ¢ â ¡«¨æ¥
ª®¬ ­¤. ˆ§¬¥­¥­¨¥ íâ¨å ¯®á«¥¤®¢ â¥«ì­®á⥩ ­¥ ¤®¯ã᪠¥âáï. <20>®á«¥ ¯®«ã祭¨ï
¯®á«¥¤­¥£® ¡ ©â  ª®¬ ­¤ë ª®­â஫«¥à  ¢â®¬ â¨ç¥áª¨ ­ ç¨­ ¥â ¢ë¯®«­ïâì ª®¬ ­¤ã,
¯¥à¥å®¤ï ª ä §¥ ¨á¯®«­¥­¨ï. <20>®á«¥ ⮣®, ª ª ­  ä §¥ १ã«ìâ â  áç¨â뢠¥âáï
¯®á«¥¤­¨© ¡ ©â, ª®­â஫«¥à áç¨â ¥â íâã ª®¬ ­¤ã § ¢¥à襭­®© ¨ £®â®¢ ª
®¡à ¡®âª¥ á«¥¤ãî饩 ª®¬ ­¤ë. Š®¬ ­¤  ¬®¦¥â ¡ëâì ¯à¥ªà é¥­  ⮫쪮 ¯®¤ ç¥©
ᨣ­ «  ª®­æ  áç¥â  =1. <20>⮠㤮¡­®¥ á।á⢮ ¤«ï "¯à¨¢«¥ç¥­¨ï ¢­¨¬ ­¨ï"
ª®­â஫«¥à  ¢ ªà¨â¨ç¥áª¨å á¨âã æ¨ïå.
<20>®á«¥ ¯¥à¥¤ ç¨ ¢ ª®­â஫«¥à ª®¬ ­¤ë Specify, è¨­ë ¢ë¡®à  ­ ª®¯¨â¥«ï
­ ç¨­ îâ  ¢â®¬ â¨ç¥áª¨ ᪠­¨à®¢ âìáï ¢ ¯à®¬¥¦ãâª å ¬¥¦¤ã ª®¬ ­¤ ¬¨ (  â ª¦¥
¬¥¦¤ã ¨¬¯ã«ìá ¬¨ è £  ¢ ª®¬ ­¤¥ Seek). Š®­â஫«¥à ®¯à è¨¢ ¥â á®áâ®ï­¨¥
ᨣ­ «  £®â®¢­®á⨠Ready ¢á¥å 4-å ­ ª®¯¨â¥«¥©. …᫨ ᨣ­ « Ready ¨§¬¥­ï¥â
᢮¥ á®áâ®ï­¨¥ (®¡ëç­® ¨§-§  ®âªàëâ¨ï ¤¢¥àª¨ ­ ª®¯¨â¥«ï), ª®­â஫«¥à
£¥­¥à¨àã¥â ¯à¥à뢠­¨¥. <20>à®æ¥áá®à ¯¥à¥¤ ç¥© ª®¬ ­¤ë Sense Interrupt Status
áç¨â뢠¥â ᮤ¥à¦¨¬®¥ ॣ¨áâà  ST0 ¨ ¯® ¡¨âã NR (Not Ready) ॣ¨áâà  ST0
®¯à¥¤¥«ï¥â á®áâ®ï­¨¥ ­ ª®¯¨â¥«ï.
ޝ¨á ­¨¥ ª®¬ ­¤ 8272.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
<20>  ä §¥ ¯à¨ª §  ¯¥à¥¤ ¢¢®¤®¬ ª ¦¤®£® ¡ ©â  ¤®«¦¥­ ®¯à è¨¢ âìáï ॣ¨áâà
á®áâ®ï­¨ï 8272. <20>ਠí⮬ ¡¨âë DIO (D6) ¨ RQM (D7) ¤®«¦­ë ¨¬¥âì §­ ç¥­¨ï 0 ¨ 1
ᮮ⢥âá⢥­­® ¯¥à¥¤ § ¯¨áìî ª ¦¤®£® ¡ ©â  ª®¬ ­¤ë ¢ ª®­â஫«¥à. <20> ç «® ä §ë
¢ë¯®«­¥­¨ï ¢ë§ë¢ ¥â ãáâ ­®¢ªã íâ¨å ¡¨â®¢ ¢ 1 ¨ 0 ᮮ⢥âá⢥­­®.
Read Data —⥭¨¥ ¤ ­­ëå
ÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍ
„«ï § ¤ ­¨ï í⮩ ª®¬ ­¤ë ¢ ª®­â஫«¥à ¯¥à¥¤ ¥âáï ¯®á«¥¤®¢ â¥«ì­®áâì ¨§ 9
¡ ©â (á¬. â ¡«¨æã ª®¬ ­¤). <20>®á«¥ ¯®«ã祭¨ï í⮩ ¯®á«¥¤®¢ â¥«ì­®á⨠ª®­â஫«¥à
¢ë¤ ¥â ᨣ­ « ¯®¤¢®¤  £®«®¢ª¨ ª ¯®¢¥àå­®á⨠¤¨áª  (¥á«¨ ®­  ®â¢¥¤¥­ ),
®âà ¡ â뢠¥â ¯ ã§ã ¤«ï ¯®¤¢®¤  £®«®¢ª¨ (§ ¤ ­­ãî ¢ ª®¬ ­¤¥ Specify) ¨
­ ç¨­ ¥â ¯®¨áª  ¤à¥á­®© ¬¥âª¨ ᥪâ®à , ¯®á«¥ 祣® áç¨â뢠¥â ¯®«¥
¨¤¥­â¨ä¨ª â®à  ᥪâ®à . Š®£¤  ⥪ã騩 ­®¬¥à ᥪâ®à  ("R"), åà ­ï騩áï ¢
ॣ¨áâॠIDR ᮢ¯ ¤ ¥â á ­®¬¥à®¬ ᥪâ®à , áç¨â ­­®£® á ¤¨áª , ª®­â஫«¥à
­ ç¨­ ¥â ¢¢®¤¨âì ¤ ­­ë¥ ¨§ ¯®«ï ¤ ­­ëå ᥪâ®à  ¨ ¯®á«¥¤®¢ â¥«ì­®, ¡ ©â § 
¡ ©â®¬, ¢ë¤ ¢ âì ¨å ­  設㠤 ­­ëå.
<20>®á«¥ ®ª®­ç ­¨ï ç⥭¨ï ᥪâ®à  ª®­â஫«¥à ¨­ªà¥¬¥­â¨àã¥â ­  1 ­®¬¥à
ᥪâ®à  ¨ ­ ç¨­ ¥â áç¨â뢠âì ¤ ­­ë¥ ¨§ á«¥¤ãî饣® ᥪâ®à . ’ ª®© ®¡¬¥­ ­®á¨â
­ §¢ ­¨¥ ¬ã«ìâ¨á¥ªâ®à­®£®. ‚믮«­¥­¨¥ ª®¬ ­¤ë ¬®¦¥â ¡ëâì ¯à¥ªà é¥­® ¯®¤ ç¥©
ᨣ­ «  TC (Terminal Count - ª®­¥æ áç¥â ). <20>®á«¥ ¯à¨­ïâ¨ï ᨣ­ « 
ª®­â஫«¥à ¯à¥ªà é ¥â ¯¥à¥¤ ç¨ ¯® 設¥ ¤ ­­ëå, ®¤­ ª® ¯à®¤®«¦ ¥â ç¨â âì
¤ ­­ë¥ ⥪ã饣® ᥪâ®à  ¢¯«®âì ¤® ¡ ©â®¢ CRC-ª®­â஫ï, ¯®á«¥ 祣® ®¯¥à æ¨ï
¯à¥ªà é ¥âáï.
Š®«¨ç¥á⢮ ¡ ©â, ¯®¤«¥¦ é¨å áç¨â뢠­¨î, § ¢¨á¨â ®â §­ ç¥­¨© ¡¨â®¢ MT,
MFM ¨ N, § ¤ ­­ëå ¢ ª®¬ ­¤¥.
<20>¨â Œ’ § ¤ ¥â ¬­®£®¤®à®¦¥ç­ë© (multitrack) ०¨¬ ª®­â஫«¥à ,
¯®§¢®«ïî騩 ¥¬ã áç¨â뢠âì ¤ ­­ë¥ á ®¡¥¨å áâ®à®­ (¤®à®¦¥ª) ¤¨áª . í⮬
á«ãç ¥ ¤«ï 㪠§ ­­®£® 樫¨­¤à  ¡ã¤ãâ ¯¥à¥¤ ­ë ¢á¥ ᥪâ®à , ­ ç¨­ ï á ᥪâ®à 
1 áâ®à®­ë 0 ¨ § ª ­ç¨¢ ï ¯®á«¥¤­¨¬ ᥪâ®à®¬ áâ®à®­ë 1. ‡ ¬¥â¨¬, çâ® íâ®â
०¨¬ ®â­®á¨âáï ⮫쪮 ª ®¤­®¬ã 樫¨­¤àã.
á«ãç ¥ N=0 §­ ç¥­¨¥ DTL ®¯à¥¤¥«ï¥â ª®«¨ç¥á⢮ ¤ ­­ëå, ª®â®àë¥
ª®­â஫«¥à ¤®«¦¥­ âࠪ⮢ âì ª ª ®¤¨­ ᥪâ®à. …᫨ DTL ¬¥­ìè¥ ¨á⨭­®£®
à §¬¥à  ᥪâ®à , â® ¤ ­­ë¥ ¨§ ᥪâ®à  ¯®á«¥ ¯¥à¥¤ ç¨ DTL ¡ ©â ­¥ ¯¥à¥¤ îâáï
­  設㠤 ­­ëå. Š®­â஫«¥à ¦¥ áç¨â뢠¥â ᥪâ®à ¯®«­®áâìî, ¢¯«®âì ¤® ¡ ©â®¢
CRCª®­âà®«ï ¨, ¥á«¨ íâ® § ¤ ­® ¢ ª®¬ ­¤¥, ¬®¦¥â ¯à®¤®«¦¨âì ¬ã«ìâ¨á¥ªâ®à­®¥
ç⥭¨¥. …᫨ N > 0, â® §­ ç¥­¨¥ DTL ¨£­®à¨àã¥âáï ¨ ãáâ ­ ¢«¨¢ ¥âáï ¢ 0FFH.
<20>®á«¥ § ¢¥à襭¨ï ç⥭¨ï ª®­â஫«¥à ­¥ ®â¢®¤¨â £®«®¢ªã ­ ª®¯¨â¥«ï ®â
¯®¢¥àå­®á⨠¤¨áª  ¤® ¨áâ¥ç¥­¨ï ¨­â¥à¢ «  ¢à¥¬¥­¨, 㪠§ ­­®£® ¢ ª®¬ ­¤¥
Specify. <20>®í⮬㠬¥¦¤ã ¤¢ã¬ï ¯®á«¥¤®¢ â¥«ì­ë¬¨ ç áâ묨 ®¡à é¥­¨ï¬¨ £®«®¢ª 
®áâ ¥âáï ¯à¨¦ â®© ª ¯®¢¥àå­®á⨠¤¨áª .
…᫨ ª®­â஫«¥à ¢â®à®© à § ®¡­ à㦨¢ ¥â ¨­¤¥ªá­ë© ¨¬¯ã«ìá, ­¥ ®¡­ à㦨¢
¯à ¢¨«ì­®£® ­®¬¥à  ᥪâ®à  (§ ¤ ­­®£® R), ®­ ãáâ ­ ¢«¨¢ ¥â ä« £ ND (No Data)
¢ ॣ¨áâॠST1 ¨ § ª ­ç¨¢ ¥â ¢ë¯®«­¥­¨¥ ª®¬ ­¤ë (¢ ॣ¨áâॠST0 â ª¦¥
ãáâ ­ ¢«¨¢ îâáï ¡¨âë D7 ¨ D6 ¢ 0 ¨ 1 ᮮ⢥âá⢥­­®).
<20>®á«¥ ç⥭¨ï ¯®«ï ¨¤¥­â¨ä¨ª â®à  ¨ ¯®«ï ¤ ­­ëå ª ¦¤®£® ᥪâ®à ,
ª®­â஫«¥à ¯à®¨§¢®¤¨â CRC-ª®­â஫ì áç¨â ­­ëå ¡ ©â®¢. …᫨ ®¡­ à㦥­  ®è¨¡ª 
CRC ¢ ¯®«¥ ¨¤¥­â¨ä¨ª â®à  ᥪâ®à , ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ DE (Data
Error) ¢ ॣ¨áâॠST1, ¥á«¨ ¦¥ ®è¨¡ª  ®¡­ à㦥­  ¢ ¯®«¥ ¤ ­­ëå ᥪâ®à ,
ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ DD (Data error in Data field) ¢ ॣ¨áâॠST1.
®¡®¨å á«ãç ïå ãáâ ­ ¢«¨¢ îâáï ¡¨âë D7 ¨ D6 ¢ ॣ¨áâॠST0 ¢ 0 ¨ 1
ᮮ⢥âá⢥­­®, ¨ ¢ë¯®«­¥­¨¥ ª®¬ ­¤ë § ¢¥àè ¥âáï.
…᫨ ª®­â஫«¥à ¢áâà¥ç ¥â  ¤à¥á­ë© ¬ àª¥à 㤠«¥­­ëå ¤ ­­ëå ¨ ¥á«¨ ¡¨â SK
(Skip - ¡¨â D5 ¢ ª®¬ ­¤¥) ­¥ ãáâ ­®¢«¥­, â® ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ CM
(Control Mark) ¢ ॣ¨áâॠST2 ¨ § ª ­ç¨¢ ¥â ®¯¥à æ¨î ¯®á«¥ ç⥭¨ï ¢á¥å ¤ ­­ëå
ᥪâ®à . …᫨ ¦¥ ¡¨â SK=1, ª®­â஫«¥à ¯à®¯ã᪠¥â íâ®â ᥪâ®à ¨ ­ ç¨­ ¥â
áç¨â뢠âì á«¥¤ãî騩.
‚® ¢à¥¬ï ¯¥à¥¤ ç¨ ¤ ­­ëå ¯à®æ¥áá®à ¤®«¦¥­ ®¡á«ã¦¨¢ âì ª®­â஫«¥à ­¥ ०¥
1 à §  ¢ 27 ¬ªá¥ª. ¯à¨ ®¤¨­ à­®© ¯«®â­®á⨠¨ 13 ¬ªá¥ª. - ¯à¨ ¤¢®©­®©.
¯à®â¨¢­®¬ á«ãç ¥ ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ OR (Over Run) ¢ ॣ¨áâॠST1 ¨
§ ª ­ç¨¢ ¥â ®¯¥à æ¨î.
<20>®á«¥ § ¢¥à襭¨ï ®¯¥à æ¨¨ ç⥭¨ï (íâ® â ª¦¥ ®â­®á¨âáï ¨ ª ª®¬ ­¤¥ § ¯¨á¨
¤ ­­ëå) ¨­ä®à¬ æ¨ï, áç¨â뢠¥¬ ï ¨§ ª®­â஫«¥à  ­  ä §¥ १ã«ìâ â  (¡ ©âë
C-H-R-H) § ¢¨á¨â ®â §­ ç¥­¨ï ¡¨â®¢ Œ’ ¨ ¡ ©â  …Ž’ ª®¬ ­¤ë.
Write Data ‡ ¯¨áì ¤ ­­ëå
ÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍ
„«ï § ¤ ­¨ï í⮩ ª®¬ ­¤ë ¢ ª®­â஫«¥à ¯¥à¥¤ ¥âáï ¯®á«¥¤®¢ â¥«ì­®áâì
¨§ 9 ¡ ©â (á¬. â ¡«¨æã ª®¬ ­¤). <20>®á«¥ ¯®«ã祭¨ï ¯®á«¥¤­¥£® ¡ ©â  ª®¬ ­¤ë
ª®­â஫«¥à ¢ë¤ ¥â ᨣ­ « ¯®¤¢®¤  £®«®¢ª¨ ª ¯®¢¥àå­®á⨠¤¨áª  (¥á«¨ ®­  ¡ë« 
®â¢¥¤¥­ ) ¨ ®âà ¡ â뢠¥â § ¤¥à¦ªã ¤«ï ¯®¤¢®¤  £®«®¢ª¨, § ¤ ­­ãî ¢ ª®¬ ­¤¥
Specify ¨ ­ ç¨­ ¥â ¯®¨áª ¯®«ï ¨¤¥­â¨ä¨ª â®à  ᥪâ®à . …᫨ ⥪ã騩 ­®¬¥à
ᥪâ®à  ("R") åà ­ï騩áï ¢ ॣ¨áâॠIDR, ᮢ¯ ¤ ¥â á ­®¬¥à®¬ ᥪâ®à ,
áç¨â ­­ë¬ á ¤¨áª  ¨§ ¯®«ï ¨¤¥­â¨ä¨ª â®à  ᥪâ®à , ª®­â஫«¥à ¯®á«¥¤®¢ â¥«ì­®,
¡ ©â §  ¡ ©â®¬, § ¯à è¨¢ ¥â ¤ ­­ë¥ ã ¯à®æ¥áá®à  ¯® 設¥ ¤ ­­ëå ¨ § ¯¨á뢠¥â
¨å ¢ ¯®«¥ ¤ ­­ëå ᥪâ®à  ­  ¤¨áª. <20>®á«¥ ®ª®­ç ­¨ï § ¯¨á¨ ¤ ­­ëå ⥪ã騩 ­®¬¥à
ᥪâ®à  㢥«¨ç¨¢ ¥âáï ­  1 ¨ ¯à®¨§¢®¤¨âáï § ¯¨áì á«¥¤ãî饣® ¯®«ï ¤ ­­ëå.
’ ªãî ¬ã«ìâ¨á¥ªâ®à­ãî ®¯¥à æ¨î § ¯¨á¨ ª®­â஫«¥à ¯à®¤®«¦ ¥â ¤® â¥å ¯®à, ¯®ª 
­¥ ¯®«ãç¨â ᨣ­ « (ª®­¥æ áç¥â ). <20>ਠ¯®áâ㯫¥­¨¨ ᨣ­ «  ª®­â஫«¥à
¯à®¤®«¦ ¥â § ¯¨áì ¤ ­­ëå ¢ ⥪ã騩 ᥪâ®à ¤® ¥£® § ¯®«­¥­¨ï. …᫨ ª®­â஫«¥à
¯à¨­¨¬ ¥â ᨣ­ « ¢ ¯à®æ¥áᥠ§ ¯¨á¨ ¤ ­­ëå, â® ®á⠢襥áï ¯®«¥ ¤ ­­ëå
§ ¯®«­ï¥âáï ­ã«ï¬¨.
Š®­â஫«¥à áç¨â뢠¥â ¨¤¥­â¨ä¨ª â®à ª ¦¤®£® ᥪâ®à  ¨ ¯à®¨§¢®¤¨â
CRC-ª®­â஫ì áç¨â ­­ëå ¡ ©â. …᫨ ®­ ®¡­ à㦨¢ ¥â ®è¨¡ªã CRC ¢ ®¤­®¬ ¨§
ᥪâ®à®¢, ®­ ãáâ ­ ¢«¨¢ ¥â ä« £ DE (Data Error) ¢ ॣ¨áâॠST1 ¨ § ª ­ç¨¢ ¥â
®¯¥à æ¨î (¢ ॣ¨áâॠST0 ¡¨âë D7 ¨ D6 ãáâ ­ ¢«¨¢ îâáï ¢ 0 ¨ 1
ᮮ⢥âá⢥­­®).
Š®¬ ­¤  § ¯¨á¨ ¢® ¬­®£®¬  ­ «®£¨ç­  ª®¬ ­¤¥ ç⥭¨ï ¤ ­­ëå. <20>¨¦¥
¯¥à¥ç¨á«¥­ë ¢á¥ å à ªâ¥à¨á⨪¨,  ­ «®£¨ç­ë¥ ª®¬ ­¤¥ ç⥭¨ï ¤ ­­ëå:
* Š®«¨ç¥á⢮ ¯¥à¥¤ ¢ ¥¬ëå ¤ ­­ëå.
* ”« £ EN (ENd of cylinder).
* ”« £ ND (No Data).
* <20> ã§  ¤® ®â¢®¤  £®«®¢ª¨ HUT.
* ˆ­ä®à¬ æ¨ï, áç¨â뢠¥¬ ï ­  ä §¥ १ã«ìâ â , ¥á«¨ ¯à®æ¥áá®à ¯à¥à뢠¥â
¢ë¯®«­¥­¨¥ ª®¬ ­¤ë.
* Ž¯à¥¤¥«¥­¨¥ DTL, ª®£¤  N=0 ¨«¨ N>0.
०¨¬¥ § ¯¨á¨ ¤ ­­ë¥ ®â ¯à®æ¥áá®à  ¨«¨ ª®­â஫«¥à  <20><EFBFBD> ¤®«¦­ë
¯à¨å®¤¨âì ­¥ ०¥ 1 à §  ¢ 31 ¬ªá¥ª. ¯à¨ ®¤¨­ à­®© ¯«®â­®á⨠¨ 15 ¬ªá¥ª. -
¯à¨ ¤¢®©­®©. ¯à®â¨¢­®¬ á«ãç ¥ ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ OR (Over Run) ¢
ॣ¨áâॠST1 ¨ § ª ­ç¨¢ ¥â ®¯¥à æ¨î.
Write Deleted Data ‡ ¯¨áì 㤠«¥­­ëå ¤ ­­ëå
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Š®¬ ­¤   ­ «®£¨ç­  ª®¬ ­¤¥ Write Data §  ¨áª«î祭¨¥¬ ⮣®, çâ® ¢¬¥áâ®
 ¤à¥á­®£® ¬ àª¥à  ¤ ­­ëå § ¯¨á뢠¥â  ¤à¥á­ë© ¬ àª¥à 㤠«¥­­ëå ¤ ­­ëå.
Read Deleted Data —⥭¨¥ 㤠«¥­­ëå ¤ ­­ëå
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Š®¬ ­¤   ­ «®£¨ç­  ª®¬ ­¤¥ Read Data §  ¨áª«î祭¨¥¬ á«ãç ï, ª®£¤ 
ª®­â஫«¥à ®¡­ à㦨¢ ¥â  ¤à¥á­ë© ¬ àª¥à ¤ ­­ëå ¢ ­ ç «¥ ¯®«ï ¤ ­­ëå ᥪâ®à .
…᫨ ¡¨â SK=0, ª®­â஫«¥à áç¨â뢠¥â ¢á¥ ¤ ­­ë¥ ᥪâ®à , ãáâ ­ ¢«¨¢ ¥â ä« £ CM
¢ ॣ¨áâॠST2 ¨ § ª ­ç¨¢ ¥â ®¯¥à æ¨î. …᫨ ¡¨â SK=1, ª®­â஫«¥à ¯à®¯ã᪠¥â
íâ®â ᥪâ®à ¨ ¯¥à¥å®¤¨â ª ç⥭¨î á«¥¤ãî饣®.
Read a Track —⥭¨¥ ¤®à®¦ª¨
ÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Š®¬ ­¤  ¯®¤®¡­  ª®¬ ­¤¥ Read Data §  ¨áª«î祭¨¥¬ ⮣®, çâ® ¤ ­­ë¥ ¡ã¤ãâ
áç¨â뢠âìáï ­¥¯à¥à뢭® ¨§ ª ¦¤®£® ᥪâ®à  ¤®à®¦ª¨. ‘à §ã ¦¥ ¯®á«¥ ®¡­ à㦥­¨ï
¨­¤¥ªá­®£® ¨¬¯ã«ìá  ª®­â஫«¥à ­ ç¨­ ¥â áç¨â뢠âì ¢á¥ ¯®«ï ¤ ­­ëå ­  ¤®à®¦ª¥
ª ª ­¥¯à¥àë¢­ë© ¡«®ª ¤ ­­ëå. …᫨ ª®­â஫«¥à ®¡­ à㦨¢ ¥â ®è¨¡ªã CRC ¢ ¯®«¥
¨¤¥­â¨ä¨ª â®à  ¨«¨ ¤ ­­ëå, ®­ ¯à®¤®«¦ ¥â áç¨â뢠âì ¤ ­­ë¥ á ¤®à®¦ª¨.
Š®­â஫«¥à áà ¢­¨¢ ¥â ¨­ä®à¬ æ¨î ¨§ ¯®«ï ¨¤¥­â¨ä¨ª â®à , áç¨â ­­ãî ¨§ ª ¦¤®£®
ᥪâ®à , á® §­ ç¥­¨¥¬ ¢ IDR ¨ ãáâ ­ ¢«¨¢ ¥â ä« £ ND ¢ ॣ¨áâॠST1, ¥á«¨ ®­¨
­¥ ᮢ¯ ¤ îâ. <20>¨âë Œ’ ¨ SK ­¥ ®ª §ë¢ îâ ¢«¨ï­¨ï ­  ª®­â஫«¥à.
‚믮«­¥­¨¥ ª®¬ ­¤ë § ª ­ç¨¢ ¥âáï, ª®£¤  ª®­â஫«¥à áç¨â ¥â …Ž’ ᥪâ®à®¢.
…᫨ ª®­â஫«¥à ­¥ ­ è¥«  ¤à¥á­®£® ¬ àª¥à  ¯®«ï ¨¤¥­â¨ä¨ª â®à  ¤® ⮣®, ª ª
¢â®à®© à § ¯à¨­ï« ¨­¤¥ªá­ë© ¨¬¯ã«ìá, ®­ ãáâ ­ ¢«¨¢ ¥â ä« £ Œ€ (Missing
Address Mark) ¢ ॣ¨áâॠST1 ¨ § ª ­ç¨¢ ¥â ®¯¥à æ¨î (¢ ॣ¨áâॠST0
ãáâ ­ ¢«¨¢ îâáï ¡¨âë D7 ¨ D6 ¢ 0 ¨ 1 ᮮ⢥âá⢥­­®).
Read ID —⥭¨¥ ¨¤¥­â¨ä¨ª â®à 
ÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
<20>â  ª®¬ ­¤  ¨á¯®«ì§ã¥âáï ¤«ï ®¯à¥¤¥«¥­¨ï ⥪ã饣® ¯®«®¦¥­¨ï £®«®¢ª¨
§ ¯¨á¨/ç⥭¨ï ­ ª®¯¨â¥«ï. Š®­â஫«¥à § ¯®¬¨­ ¥â ¨­ä®à¬ æ¨î, áç¨â ­­ãî ¨§
¯¥à¢®£® ¢áâà¥ç¥­­®£® ¯®«ï ¨¤¥­â¨ä¨ª â®à  ᥪâ®à . …᫨ ¤® ¯à¨å®¤  ¢â®à®£®
¨­¤¥ªá­®£® ¨¬¯ã«ìá  ª®­â஫«¥à ­¥ ¢áâà¥â¨«  ¤à¥á­®£® ¬ àª¥à  ¯®«ï
¨¤¥­â¨ä¨ª â®à , ®­ ãáâ ­ ¢«¨¢ ¥â ä« £ Œ€ ¢ ॣ¨áâॠST1. …᫨ ¦¥ ª®­â஫«¥à
­¥ ­ è¥« ¤ ­­ëå, â® ®­ ãáâ ­ ¢«¨¢ ¥â ä« £ ND ¢ ॣ¨áâॠST1 ¨ ®¯¥à æ¨ï
§ ª ­ç¨¢ ¥âáï.
Format a Track ”®à¬ â¨à®¢ ­¨¥ ¤®à®¦ª¨
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Š®¬ ­¤  ä®à¬ â¨àã¥â ¢áî ¤®à®¦ªã. <20>®á«¥ ®¡­ à㦥­¨ï ¨­¤¥ªá­®£® ¨¬¯ã«ìá 
­  ¤¨áª § ¯¨á뢠îâáï á«¥¤ãî騥 ¤ ­­ë¥: GAPS,  ¤à¥á­ë© ¬ àª¥à, ¯®«¥
¨¤¥­â¨ä¨ª â®à  ¨ ¯®«¥ ¤ ­­ëå, ᮮ⢥âáâ¢ãî騥 áâ ­¤ àâã IBM System 34
(®¤¨­ à­ ï ¯«®â­®áâì) ¨ IBM System 3740 (¤¢®©­ ï ¯«®â­®áâì).
”®à¬ â § ¤ ¥âáï ¢ ª®¬ ­¤¥ á«¥¤ãî騬¨ ¯à®£à ¬¬¨à㥬묨 §­ ç¥­¨ï¬¨:
* N - ç¨á«® ¡ ©â ¢ ᥪâ®à¥.
* SC - ç¨á«® ᥪâ®à®¢ ­  樫¨­¤à¥.
* GPL - ¤«¨­  ¬¥¦á¥ªâ®à­®£® ¯à®¬¥¦ã⪠.
* D - ¡ ©â ¤«ï § ¯®«­¥­¨ï ®¡« á⨠¤ ­­ëå.
<EFBFBD>⨠¯ à ¬¥âàë ¯¥à¥¤ îâáï ¢ ª®­â஫«¥à ¯à®æ¥áá®à®¬ ­  ä §¥ ¯à¨ª § . <20>®«¥
¤ ­­ëå ª ¦¤®£® ᥪâ®à  ¡ã¤¥â § ¯®«­¥­® ¡ ©â ¬¨ D. <20>®«¥ ¨¤¥­â¨ä¨ª â®à  ¤«ï
ª ¦¤®£® ᥪâ®à  § ¤ ¥âáï ¯à®æ¥áá®à®¬ ­  ä §¥ ¨á¯®«­¥­¨ï. <20>¥®¡å®¤¨¬ë ¯® 4
§­ ç¥­¨ï ¤«ï ª ¦¤®£® ᥪâ®à :
* C - ­®¬¥à 樫¨­¤à 
* H - ­®¬¥à £®«®¢ª¨ (¯®¢¥àå­®áâ¨)
* R - ­®¬¥à ᥪâ®à 
* N - ª®¤ ¤«¨­ë ᥪâ®à 
<EFBFBD>â® §­ ç¨â, çâ® ¤¨áª ¯à¨ ­¥®¡å®¤¨¬®áâ¨, ¬®¦¥â ¡ëâì ®âä®à¬ â¨à®¢ ­ ­¥
¯®á«¥¤®¢ â¥«ì­ë¬¨ ­®¬¥à ¬¨ ᥪâ®à®¢.
<20>®á«¥ ä®à¬ â¨à®¢ ­¨ï ª ¦¤®£® ᥪâ®à  ¯à®æ¥áá®à ¤®«¦¥­ ¯¥à¥¤ âì ­®¢ë¥
§­ ç¥­¨ï C,H,R,N ¤«ï ª ¦¤®£® ᥪâ®à  ­  ¤®à®¦ª¥. ‘®¤¥à¦¨¬®¥ ॣ¨áâà  R
㢥«¨ç¨¢ ¥âáï ­  1 ¯®á«¥ ä®à¬ â¨à®¢ ­¨ï ª ¦¤®£® ᥪâ®à , ¨, á«¥¤®¢ â¥«ì­®,
íâ®â ॣ¨áâà ¡ã¤¥â ᮤ¥à¦ âì §­ ç¥­¨¥ R+1 ¯à¨ áç¨â뢠­¨¨ ­  ä §¥ १ã«ìâ â .
<EFBFBD>â®â ¯à®æ¥áá ¡ã¤¥â ¯à®¤®«¦ âìáï ¤«ï ¢á¥© ¤®à®¦ª¨, ¯®ª  ¢â®à®© à § ­¥ ¡ã¤¥â
®¡­ à㦥­ ¨­¤¥ªá­ë© ¨¬¯ã«ìá. <20>®á«¥ í⮣® ¢ë¯®«­¥­¨¥ ª®¬ ­¤ë § ¢¥àè ¥âáï. …᫨
¯à¨ § ¯¨á¨ ®â ­ ª®¯¨â¥«ï ¯à¨­¨¬ ¥âáï ᨣ­ « Fault, ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â
ä« £ …‘ ¢ ॣ¨áâॠST0 ¨ § ª ­ç¨¢ ¥â ®¯¥à æ¨î (¡¨âë D7 ¨ D6 ¢ ॣ¨áâॠST0
ãáâ ­ ¢«¨¢ îâáï ¢ 0 ¨ 1 ᮮ⢥âá⢥­­®). Žâáãâá⢨¥ ᨣ­ «  Ready á
­ ª®¯¨â¥«ï ¢ ­ ç «¥ ä §ë ¨á¯®«­¥­¨ï â ª¦¥ ¯à¥ªà é ¥â ¢ë¯®«­¥­¨¥ ª®¬ ­¤ë.
â ¡«¨æ¥ ¯à¨¢¥¤¥­ë ᮮ⭮襭¨ï ¬¥¦¤ã N, SC, GPL ¤«ï à §«¨ç­ëå à §¬¥à®¢
ᥪâ®à®¢.
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º SD - (MFM = 0) º DD (MFM = 1) º
ÉÍÍÍÍÍÍËÍÍÍÍÎÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍÎÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍ͹
º‘¥ªâ®àº N º SC º GPL1 º GPL2 º SC º GPL1 º GPL2 º
ÌÍÍÍÍÍÍÎÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍ͹
º 128 º 0 º 1A º 07 º 1B º -- º -- º -- º
º 256 º 1 º 0F º 0E º 2A º 1A º 0E º 36 º
º 512 º 2 º 08 º 1B º 3A º 0F º 1B º 54 º
º 1024 º 3 º 04 º 47 º 8A º 08 º 3F º 74 º
º 2048 º 4 º 02 º C8 º FF º 04 º 99 º FF º
º 4096 º 5 º 01 º C8 º FF º 02 º C8 º FF º
º 8192 º 6 º -- º -- º -- º 01 º C8 º FF º
ÈÍÍÍÍÍÍÊÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍͼ
Scan Commands Š®¬ ­¤ë ᪠­¨à®¢ ­¨ï
ÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Š®¬ ­¤ë ᪠­¨à®¢ ­¨ï ¯®§¢®«ïîâ áç¨â ­­ë¥ á ¤¨áª  ¤ ­­ë¥ áà ¢­¨âì á
¤ ­­ë¬¨, ¢ë¤ ¢ ¥¬ë¥ ¯à®æ¥áá®à®¬ (ª®­â஫«¥à®¬ <20><EFBFBD>). Š®­â஫«¥à áà ¢­¨¢ ¥â
¤ ­­ë¥ ¯®á«¥¤®¢ â¥«ì­®, ¡ ©â §  ¡ ©â®¬ ¨ ¯à®¢¥àï¥â ãá«®¢¨ï:
DD = DP DD <= DP DD >= DP
£¤¥ DD - ¤ ­­ë¥ á ¤¨áª ; DP - ¤ ­­ë¥ ®â ¯à®æ¥áá®à .
<20>®á«¥ ¯à®¢¥àª¨ ¢á¥£® ᥪâ®à , ¥á«¨ ãá«®¢¨¥ ­¥ ¢ë¯®«­ï¥âáï, ¯à®¨§¢®¤¨âáï
¨­ªà¥¬¥­â ­®¬¥à  ᥪâ®à  (R + STR -> R) ¨ ®¯¥à æ¨ï ᪠­¨à®¢ ­¨ï ¯à®¤®«¦ ¥âáï.
ޝ¥à æ¨ï ¡ã¤¥â ¯à®¤®«¦ âìáï ¤® â¥å ¯®à, ¯®ª  ­¥ ¯à®¨§®©¤¥â ®¤­® ¨§ á«¥¤ãîé¨å
ãá«®¢¨©:
* ¢ë¯®«­¨âáï ãá«®¢¨¥ ᪠­¨à®¢ ­¨ï (à ¢­®, ¡®«ìè¥ ¨«¨ ¬¥­ìè¥)
* ¤®á⨣­ãâ ¯®á«¥¤­¨© ᥪâ®à (…Ž’)
* ¯à¨­ïâ ᨣ­ «
…᫨ ãá«®¢¨¥ ᪠­¨à®¢ ­¨ï 㤮¢«¥â¢®à¥­®, ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ SH
(Scan Hit) ¢ ॣ¨áâॠST2 ¨ § ¢¥à蠥⠪®¬ ­¤ã. …᫨ ãá«®¢¨¥ ­¥ 㤮¢«¥â¢®à¥­®
¢ ¯à®¬¥¦ã⪥ ¬¥¦¤ã ­ ç «ì­ë¬ ᥪâ®à®¬ (§ ¤ ­­ë¬ R) ¨ ¯®á«¥¤­¨¬ ᥪâ®à®¬
樫¨­¤à  (…Ž’), ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ SN (Scan Not Satisfied) ¢
ॣ¨áâॠST2 ¨ § ¢¥à蠥⠪®¬ ­¤ã.
…᫨ ¢® ¢à¥¬ï ®¯¥à æ¨¨ ¯®áâ㯨« ᨣ­ « ®â ¯à®æ¥áá®à  ¨«¨ ª®­â஫«¥à 
<EFBFBD><EFBFBD>, ª®­â஫«¥à ¯à¥ªà é ¥â áà ¢­¥­¨¥ ­  ⥪ã饬 ¡ ©â¥ ¨ § ¢¥à蠥⠪®¬ ­¤ã.
<20>¨¦¥ ¢ â ¡«¨æ¥ ¯à¨¢¥¤¥­ë á®áâ®ï­¨ï ¡¨â®¢ SH ¨ SN ¯®á«¥ à §«¨ç­ëå ãá«®¢¨©
᪠­¨à®¢ ­¨ï:
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍ»
º º<>¥£.ST2º º
º ‘ª ­¨à®¢ ­¨¥ ¤®.. ÌÍÍÍËÍÍ͹ <20>ਬeç ­¨¥º
º º SNº SHº º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍ͹
º <20> ¢­® º 0 º 1 º DD = DP º
º º 1 º 0 º DD <>DP º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍ͹
º Œ¥­ìè¥ ¨«¨ à ¢­® º 0 º 1 º DD = DP º
º º 0 º 0 º DD < DP º
º º 1 º 0 º DD > DP º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍ͹
º <20>®«ìè¥ ¨«¨ à ¢­® º 0 º 1 º DD = DP º
º º 0 º 0 º DD > DP º
º º 1 º 0 º DD < DP º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍͼ
…᫨ ª®­â஫«¥à ®¡­ à㦨¢ ¥â  ¤à¥á­ë© ¬ àª¥à 㤠«¥­­ëå ¤ ­­ëå ¢ ®¤­®¬ ¨§
ᥪâ®à®¢ ¨ ¡¨â SK=0, ®­ áç¨â ¥â íâ®â ᥪâ®à ¯®á«¥¤­¨¬ ᥪâ®à®¬ 樫¨­¤à ,
ãáâ ­ ¢«¨¢ ¥â ä« £ CM (Control Mark) ¢ ॣ¨áâॠST2 ¨ § ¢¥à蠥⠪®¬ ­¤ã. …᫨
¦¥ ¡¨â SK=1, ª®­â஫«¥à ¯à®¯ã᪠¥â íâ®â ᥪâ®à ¨ áç¨â뢠¥â á«¥¤ãî騩. í⮬
á«ãç ¥ ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ CM ¢ ॣ¨áâॠST2, ᨣ­ «¨§¨àãî騩 ®
⮬, çâ® ¡ë« ¢áâà¥ç¥­ 㤠«¥­­ë© ᥪâ®à.
Š®£¤  ¢ë ¯à®£à ¬¬¨àã¥â¥ §­ ç¥­¨ï STP (STP=01 ¤«ï ®¡à ¡®âª¨
¯®á«¥¤®¢ â¥«ì­ëå ᥪâ®à®¢, STP=02 ¤«ï ç⥭¨ï ç¥à¥§ ®¤¨­ ᥪâ®à) ¨«¨ Œ’
(Multitrack), ­¥®¡å®¤¨¬® ¯®¬­¨âì, çâ® ¯®á«¥¤­¨© ᥪâ®à ­  ¤®à®¦ª¥ ¤®«¦¥­ ¡ëâì
áç¨â ­. <20> ¯à¨¬¥à, ¥á«¨ STP = 02, Œ’ = 0, ᥪâ®à  ¯à®­ã¬¥à®¢ ­ë
¯®á«¥¤®¢ â¥«ì­® ®â 1 ¤® 26, ª®¬ ­¤ã Scan ­ ç¨­ ¥¬ á ᥪâ®à  21, â® ãᯥ譮
¡ã¤ãâ ®¡à ¡®â ­ë ᥪâ®à  21, 23 ¨ 25. „ «¥¥ ᥪâ®à 26 ¡ã¤¥â ¯à®¯ã饭,   § â¥¬
¯à¨¤¥â ¨­¤¥ªá­ë© ¨¬¯ã«ìá. <20>â® ¢ë§®¢¥â ­¥­®à¬ «ì­®¥ § ¢¥à襭¨¥ ®¯¥à æ¨¨. …᫨
¡ë …Ž’ à ¢­ï«®áì 25,   ᪠­¨à®¢ ­¨¥ ¡ë ­ ç¨­ «®áì á ᥪâ®à  20, â® ®¯¥à æ¨ï
Scan § ¢¥à訫 áì ¡ë ãᯥ譮.
€­ «®£¨ç­® ª®¬ ­¤ ¬ ç⥭¨ï/§ ¯¨á¨, ¯à®æ¥áá®à ¨«¨ ª®­â஫«¥à <20><EFBFBD> ¤®«¦¥­
®¡á«ã¦¨¢ âì ª®­â஫«¥à ª ¦¤ë¥ 27 ¬ªá¥ª. ¯à¨ ®¤¨­ à­®© ¯«®â­®á⨠¨ 13 ¬ªá¥ª.
¯à¨ ¤¢®©­®©. ¯à®â¨¢­®¬ á«ãç ¥ ª®­â஫«¥à ¢ëáâ ¢¨â ä« £ OR (Over Run) ¢
ॣ¨áâॠST1 ¨ ¯à¥ªà â¨â ¢ë¯®«­¥­¨¥ ª®¬ ­¤ë.
Seek Š®¬ ­¤  ¯®§¨æ¨®­¨à®¢ ­¨ï
ÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ƒ®«®¢ª  § ¯¨á¨/ç⥭¨ï ­ ª®¯¨â¥«ï ¯¥à¥¬¥é ¥âáï á æ¨«¨­¤à  ­  樫¨­¤à ¯®
ª®¬ ­¤¥ Seek. Š®­â஫«¥à áà ¢­¨¢ ¥â ᮤ¥à¦¨¬®¥ ॣ¨áâà  PCN (Present Cylinder
Number), ª®â®àë© åà ­¨â ⥪ã饥 ¯®«®¦¥­¨¥ £®«®¢ª¨ ¨ ᮤ¥à¦¨¬®¥ NCN (New
Cylinder Number) - ­®¢®¥ ¯®«®¦¥­¨¥ £®«®¢ª¨, § ¤ ­­®¥ ¢ ª®¬ ­¤¥ ¨ ¢
§ ¢¨á¨¬®á⨠®â १ã«ìâ â  áà ¢­¥­¨ï ¢ë¯®«­ï¥â á«¥¤ãî騥 ¤¥©á⢨ï:
* PCN < NCN - ᨣ­ « ­ ¯à ¢«¥­¨ï ¤«ï ­ ª®¯¨â¥«ï ãáâ ­ ¢«¨¢ ¥âáï ¢ "1" ¨
¢ë¤ ¥âáï ¨¬¯ã«ìá è £ .
* PCN > NCN - ᨣ­ « ­ ¯à ¢«¥­¨ï ¤«ï ­ ª®¯¨â¥«ï ãáâ ­ ¢«¨¢ ¥âáï ¢ "0" ¨
¢ë¤ ¥âáï ¨¬¯ã«ìá è £ .
‘ª®à®áâì ¢ë¤ ç¨ ¨¬¯ã«ìᮢ è £  § ¤ ¥âáï ¢ ª®¬ ­¤¥ Specify §­ ç¥­¨¥¬ SRT
(Stepping Rate Time). <20>®á«¥ ª ¦¤®£® ¨¬¯ã«ìá  è £  ¢­®¢ì áà ¢­¨¢ îâáï §­ ç¥­¨ï
PCN ¨ NCN ¨ ª®£¤  PCN = NCN, ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ SE (Seek End) ¢
ॣ¨áâॠST0 ¨ § ¢¥à蠥⠢믮«­¥­¨¥ ª®¬ ­¤ë.
<20>  ä §¥ ¯à¨ª §  ª®­â஫«¥à ­ å®¤¨âáï ¢ á®áâ®ï­¨¨ FDC Busy (§ ­ïâ),
®¤­ ª® ­  ä §¥ ¨á¯®«­¥­¨ï ª®­â஫«¥à ¯¥à¥å®¤¨â ¢ á®áâ®ï­¨¥ NON Busy (­¥
§ ­ïâ). Š®£¤  ª®­â஫«¥à ­ å®¤¨âáï ¢ á®áâ®ï­¨¨ NON Busy, ¥¬ã ¬®¦­® § ¤ âì
¤à㣨¥ ®¯¥à æ¨¨ Seek ¨ ¢ í⮬ á«ãç ¥ ª®¬ ­¤  ¯®§¨æ¨®­¨à®¢ ­¨ï ¡ã¤¥â
¢ë¯®«­ïâìáï ®¤­®¢à¥¬¥­­® ¤«ï ­¥áª®«ìª¨å (¤® 4-å) ­ ª®¯¨â¥«¥©.
…᫨ ¯¥à¥¤ ­ ç «®¬ ä §ë ¨á¯®«­¥­¨ï ¨«¨ ¢® ¢à¥¬ï ¨á¯®«­¥­¨ï ª®¬ ­¤ë Seek
­ ª®¯¨â¥«ì ­ å®¤¨âáï ¢ á®áâ®ï­¨¨ Not Ready (­¥ £®â®¢), ª®­â஫«¥à
ãáâ ­ ¢«¨¢ ¥â ä« £ NR (Not Ready) ¢ ॣ¨áâॠST0 ¨ ª®¬ ­¤  § ¢¥àè ¥âáï.
Recalibrate <20>¥ª «¨¡à®¢ª  (®âª â)
ÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Š®¬ ­¤  ¯¥à¥ãáâ ­ ¢«¨¢ ¥â £®«®¢ªã ç⥭¨ï/§ ¯¨á¨ ­ ª®¯¨â¥«ï ­ 
¤®à®¦ªã 0. <20> ª®¯¨â¥«ì ¢ í⮬ á«ãç ¥ ¤®«¦¥­ ¢ë¤ âì ᨣ­ « TR00. Š®­â஫«¥à
á¡à á뢠¥â ᮤ¥à¦¨¬®¥ ॣ¨áâà  PCN ¨ ¯à®¢¥àï¥â ᨣ­ « TR00 á ­ ª®¯¨â¥«ï. <20>®ª 
íâ®â ᨣ­ « ¨¬¥¥â ­¨§ª¨© ã஢¥­ì, ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ¢ "1" ᨣ­ «
­ ¯à ¢«¥­¨ï Dir ¨ ¢ë¤ ¥â ¨¬¯ã«ìáë è £  ­  ­ ª®¯¨â¥«ì. Š®£¤  ᨣ­ « TR00
áâ ­®¢¨âáï ¢ë᮪¨¬, ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £ SE (Seek End) ¢ ॣ¨áâà¥
ST0 ¨ § ¢¥à蠥⠪®¬ ­¤ã. …᫨ ¯®á«¥ ¢ë¤ ç¨ 77 ¨¬¯ã«ìᮢ è £  á®áâ®ï­¨¥
ᨣ­ «  ­¥ ¨§¬¥­¨«®áì, ª®­â஫«¥à ãáâ ­ ¢«¨¢ ¥â ä« £¨ SE (Seek End) ¨ EC
(Equipment Check) ¢ ॣ¨áâà ST0 ¨ ª®¬ ­¤  § ¢¥àè ¥âáï. Š®¬ ­¤  ¬®¦¥â
¯à®¨§¢®¤¨âì ४ «¨¡à®¢ªã ®¤­®¢à¥¬¥­­® ¢á¥å 4-å ­ ª®¯¨â¥«¥©. <20>¥ ªæ¨ï ­ 
¨á祧­®¢¥­¨¥ ᨣ­ «  Ready á ­ ª®¯¨â¥«ï  ­ «®£¨ç­  ॠªæ¨¨ ¢ ª®¬ ­¤¥ Seek.
Sense Interrupt Status ‘ç¨â âì á®áâ®ï­¨¥ ¯à¥à뢠­¨ï
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
‘¨£­ « ¯à¥à뢠­¨ï INT £¥­¥à¨àã¥âáï ª®­â஫«¥à®¬ ¢ á«¥¤ãîé¨å á«ãç ïå:
1. <20>  ä §¥ १ã«ìâ â  á«¥¤ãîé¨å ª®¬ ­¤:
* Read Data
* Read a Track
* Read ID
* Read Deleted Data
* Write Data
* Write Deleted Data
* Format a Track
* Scan Sommand
2. ˆ§¬¥­¥­¨¥ ᨣ­ «  Ready á ­ ª®¯¨â¥«ï
3. ª®­æ¥ ª®¬ ­¤ Seek ¨«¨ Recalibrate
4. <20>  ä §¥ ¢ë¯®«­¥­¨ï ¢ ०¨¬¥ NON DMA
<EFBFBD>à¥à뢠­¨ï ¢ á«ãç ïå (1) ¨ (4) «¥£ª® à á¯®§­ îâáï ¯à®æ¥áá®à®¬, â.ª.
¯à®¨§¢®¤ïâáï ¢® ¢à¥¬ï ­®à¬ «ì­®£® ¨á¯®«­¥­¨ï ª®¬ ­¤. ޤ­ ª® ¯à¥à뢠­¨ï ¢
á«ãç ïå (2) ¨ (3) ¬®£ãâ ¡ëâì ¨¤¥­â¨ä¨æ¨à®¢ ­ë ¯à®æ¥áá®à®¬ ⮫쪮 ¯ã⥬
¢ë¯®«­¥­¨ï ª®¬ ­¤ë ç⥭¨ï á®áâ®ï­¨ï ¯à¥à뢠­¨ï. <20>â  ª®¬ ­¤  á¡à á뢠¥â ᨣ­ «
¯à¥à뢠­¨ï ¨ ¯®á।á⢮¬ ¡¨â®¢ 5-7 ॣ¨áâà  ST0 ¯à®æ¥áá®à ¬®¦¥â ®¯à¥¤¥«¨âì
¯à¨ç¨­ã ¯à¥à뢠­¨ï.
ÉÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º SE º INT Code º º
ÌÍÍÍÍÍÎÍÍÍÍÍËÍÍÍÍ͹ º
º ¡¨â º ¡¨â º ¡¨â º <20>à¨ç¨­  ¯à¥à뢠­¨ï º
º 5 º 6 º 7 º º
ÌÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º 0 º 1 º 1 º ˆ§¬¥­¥­¨¥ ᨣ­ «  Readu º
º º º º á ­ ª®¯¨â¥«ï º
ÌÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º 1 º 0 º 0 º <20>®à¬ «ì­®¥ § ¢¥à襭¨¥ ª®¬ ­¤ º
º º º º Seek ¨ Recalibrate º
ÌÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º 1 º 1 º 0 º Žè¨¡®ç­®¥ § ¢¥à襭¨¥ ª®¬ ­¤ º
º º º º Seek ¨ Recalibrate º
ÈÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Š®¬ ­¤ë Seek ¨ Recalibrate ­¥ ¨¬¥îâ ä §ë १ã«ìâ â , ¯®í⮬ã âॡã¥âáï
¨á¯®«ì§®¢ ­¨¥ ª®¬ ­¤ë Sense Interrupt Status ¤«ï ¨å ãᯥ譮£® § ¢¥à襭¨ï ¨
¯à®¢¥àª¨ ¯®«®¦¥­¨ï £®«®¢ª¨ ­ ª®¯¨â¥«ï (PCN).
Specify “áâ ­®¢¨âì ¯ à ¬¥âàë ­ ª®¯¨â¥«ï
ÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Š®¬ ­¤  § ¤ ¥â §­ ç¥­¨ï 3 ¢à¥¬¥­­ëå ¨­â¥à¢ «®¢ - ¯ à ¬¥â஢ ­ ª®¯¨â¥«¥©:
* HUT - ¯ ã§  ¤® ®â¢®¤  £®«®¢ª¨. ‡ ¤ ¥â ¢à¥¬ï ®â ®ª®­ç ­¨ï ®¯¥à æ¨¨
ç⥭¨ï/§ ¯¨á¨ ¤® ¬®¬¥­â  ®â¢®¤  £®«®¢ª¨ ®â ¯®¢¥àå­®á⨠¤¨áª .
‚à¥¬ï § ¤ ¥âáï ¢ ¥¤¨­¨æ å ¯® 16 ¬á¥ª. ¨ «¥¦¨â ¢ ¯à¥¤¥« å
16..240 ¬á¥ª.
* SRT - ¢à¥¬ï è £  £®«®¢ª¨. ‡ ¤ ¥â ¢à¥¬ï § ¤¥à¦ª¨ ¬¥¦¤ã ¤¢ã¬ï
¯®á«¥¤®¢ â¥«ì­ë¬¨ ¨¬¯ã«ìá ¬¨ è £ . ‚à¥¬ï § ¤ ¥âáï ¢ ¥¤¨­¨æ å
¯® 1 ¬á¥ª. ¨ «¥¦¨â ¢ ¯à¥¤¥« å 1..16 ¬á¥ª.
‚­¨¬ ­¨¥! <20>®«ì訥 ç¨á«  § ¤ îâ ¬¥­ì襥 ¢à¥¬ï è £ :
0FH - 1 ¬á¥ª., 0EH - 2 ¬á¥ª. ¨ â.¤.
* HLT - ¢à¥¬ï ¯®¤¢®¤  £®«®¢ª¨. ‡ ¤ ¥â ¢à¥¬ï ¬¥¦¤ã ¢ë¤ ç¥© ᨣ­ « 
¯®¤¢®¤  £®«®¢ª¨ ª ¤¨áªã ¨ ­ ç «®¬ ®¯¥à æ¨¨ ç⥭¨ï/§ ¯¨á¨.
‡ ¤ ¥âáï ¢ ¥¤¨­¨æ å ¯® 2 ¬á¥ª. ¨ «¥¦¨â ¢ ¯à¥¤¥« å 2..254 ¬á¥ª.
‚ᥠ¢à¥¬¥­­ë¥ ¨­â¥à¢ «ë, 㪠§ ­­ë¥ ¢ëè¥, á¢ï§ ­ë á ⠪⮢®© ç áâ®â®©
ª®­â஫«¥à  (CLK, ¢ë¢.19) ¨ ¯à¨¢¥¤¥­ë ¤«ï á«ãç ï, ª®£¤  CLK = 8 Œƒæ (203 ¬¬.
¤¨áª). …᫨ ¦¥ CLK = 4 Œƒæ (133 ¬¬. ¤¨áª), â® ¢á¥ §­ ç¥­¨ï 㬥­ìè âáï ¢ 2
à § .
<20>¨â ND ¢ ª®¬ ­¤¥ ®áãé¥á⢫ï¥â ¢ë¡®à ०¨¬  <20><EFBFBD> ¤«ï ª®­â஫«¥à : ¥á«¨ ¡¨â
ND=1, ¢ë¡¨à ¥âáï ०¨¬ NON DMA (­¥-<2D><EFBFBD>), ¥á«¨ ¦¥ ND=0, â® ¢ë¡¨à ¥âáï ०¨¬
DMA (<28><EFBFBD>).
Sense Drive Status —⥭¨¥ á®áâ®ï­¨ï ­ ª®¯¨â¥«ï
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Š®¬ ­¤  ¬®¦¥â ¡ëâì ¨á¯®«ì§®¢ ­  ¯à®æ¥áá®à®¬, ª®£¤  ¥¬ã ­¥®¡å®¤¨¬® ã§­ âì
á®áâ®ï­¨¥ ­ ª®¯¨â¥«ï. <20>¥£¨áâà ST3 ᮤ¥à¦¨â ¨­ä®à¬ æ¨î ® á®áâ®ï­¨¨ ­ ª®¯¨â¥«ï.
Invalid <20>¥¤®¯ãá⨬ ï ª®¬ ­¤ 
ÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
…᫨ ¢ ª®­â஫«¥à ¯¥à¥¤ ¥âáï ª®¬ ­¤ , ­¥ ®¯®§­ ­­ ï ª ª ®¤­  ¨§
¢ë襯¥à¥ç¨á«¥­­ëå, ª®­â஫«¥à § ¢¥à蠥⠪®¬ ­¤ã. í⮬ á«ãç ¥ ¯à¥à뢠­¨¥ ­¥
£¥­¥à¨àã¥âáï. <20>¨âë 6 ¨ 7 ¢ ॣ¨áâॠá®áâ®ï­¨ï (DIO ¨ RQM) ãáâ ­ ¢«¨¢ îâáï ¢
1, 㪠§ë¢ ï ¯à®æ¥áá®àã ­  ­¥®¡å®¤¨¬®áâì ¢ë¯®«­¥­¨ï ä §ë १ã«ìâ â  - ç⥭¨ï
ॣ¨áâà  ST0. ॣ¨áâॠST0 ­ å®¤¨âáï ¡ ©â 80<38>, ¯®ª §ë¢ î騩 ­¥¤®¯ãá⨬ãî
ª®¬ ­¤ã.
<20>¥®¡å®¤¨¬® ®â¬¥â¨âì, çâ® ¯®á«¥ ®¯¥à æ¨© Seek ¨ Recalibrate
(¢®§­¨ª­®¢¥­¨ï ¯à¥à뢠­¨ï ¯®á«¥ ®ª®­ç ­¨ï ª®¬ ­¤ë), ª®­â஫«¥à ¤®«¦¥­
¯®«ãç¨âì ª®¬ ­¤ã Sense Interrupt Status, ¨­ ç¥ ®­ ¢®á¯à¨¬¥â á«¥¤ãîéãî ª®¬ ­¤ã
ª ª ­¥¤®¯ãá⨬ãî.
<20>®«ì§®¢ â¥«ì ¯à¨ ­¥®¡å®¤¨¬®á⨠¬®¦¥â ¨á¯®«ì§®¢ âì íâã ª®¬ ­¤ã, ª ª
ª®¬ ­¤ã NOP (­¥â ®¯¥à æ¨¨) ¤«ï ¯à¨¢¥¤¥­¨ï ª®­â஫«¥à  ¢ ¨§¢¥áâ­®¥ á®áâ®ï­¨¥
¨«¨ ¢ á®áâ®ï­¨¥ ¡¥§ ®¯¥à æ¨¨.


144
docs/8272CMD.DOC Normal file
View File

@ -0,0 +1,144 @@
‘¨á⥬  ª®¬ ­¤ ª®­â஫«¥à  <20>ƒŒ„ i8272
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º R º ˜¨­  ¤ ­­ëå º º
º ” §  º / ÌÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍ͹ <20>ਬ¥ç ­¨¥ º
º º W º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º º
ºÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>ਪ § º W º Read/Write/Scan º Š®¬ ­¤­®¥ á«®¢® º
º º ÇÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÂÄÄĶ (á¬. â ¡«¨æã) º
º º º 0 ³ 0 ³ 0 ³ 0 ³ 0 ³HDS³DS0³DS1º º
º º ÇÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĶ º
º º º C º º
º º º H º º
º º º R º º
º º º N º º
º º º EOT º º
º º º GPL º º
º º º DTL º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º ˆá¯®«­¥­¨¥ º º ‚믮«­¥­¨¥ ®¯¥à æ¨¨ º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥§ã«ìâ â º R º ST0 º º
º º º ST1 º º
º º º ST2 º º
º º º C º º
º º º H º º
º º º R º º
º º º N º º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Š®¬ ­¤­ë¥ á«®¢ 
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍËÍÍÍÍÍÍÍ»
º Š®¬ ­¤  º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º <20>ਬ. º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍØÍÍÍØÍÍÍØÍÍÍØÍÍÍØÍÍÍØÍÍÍØÍÍÍÎÍÍÍÍÍÍ͹
º Read Data º MT³MFM³ SK³ 0 ³ 0 ³ 1 ³ 1 ³ 0 º º
º Read Del.Data º MT³MFM³ SK³ 0 ³ 1 ³ 1 ³ 0 ³ 0 º º
º Write Data º MT³MFM³ SK³ 0 ³ 0 ³ 1 ³ 0 ³ 1 º º
º Write Del.Data º MT³MFM³ SK³ 0 ³ 1 ³ 0 ³ 0 ³ 1 º º
º Read a Track º MT³MFM³ SK³ 0 ³ 0 ³ 0 ³ 1 ³ 0 º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍØÍÍÍØÍÍÍØÍÍÍØÍÍÍØÍÍÍØÍÍÍØÍÍÍÎÍÍÍÍÍÍ͹
º Scan Equal º MT³MFM³ SK³ 1 ³ 0 ³ 0 ³ 0 ³ 1 º * º
º Scan Low or Eq. º MT³MFM³ SK³ 1 ³ 1 ³ 0 ³ 0 ³ 1 º * º
º Scan High or Eq. º MT³MFM³ SK³ 1 ³ 1 ³ 1 ³ 0 ³ 1 º * º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÊÍÍÍÍÍÍͼ
* ª®¬ ­¤ å ᪠­¨à®¢ ­¨ï ¯®á«¥¤­¨© ¡ ©â ¯à¨ª §  DTL § ¬¥­ï¥âáï ­  STD
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º º R º ˜¨­  ¤ ­­ëå º º
º ” §  º / ÌÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍ͹ <20>ਬ¥ç ­¨¥ º
º º W º 7 ³ 6 ³ 5 ³ 4 ³ 3 ³ 2 ³ 1 ³ 0 º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍ͹
º Read ID º 4AH/0AH º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍ͹
º <20>ਪ § º W º 0 ³MFM³ 0 ³ 0 ³ 1 ³ 0 ³ 1 ³ 0 º Š®¬ ­¤­®¥ á«®¢® º
º º ÇÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄĶ º
º º º 0 ³ 0 ³ 0 ³ 0 ³ 0 ³HDS³DS0³DS1º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º ˆá¯®«­¥­¨¥ º º ‚믮«­¥­¨¥ ®¯¥à æ¨¨ º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥§ã«ìâ â º R º ST0 º º
º º º ST1 º º
º º º ST2 º º
º º º C º º
º º º H º º
º º º R º º
º º º N º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍ͹
º Format a Track º 4DH/0DH º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍ͹
º <20>ਪ § º W º 0 ³MFM³ 0 ³ 0 ³ 1 ³ 1 ³ 0 ³ 1 º Š®¬ ­¤­®¥ á«®¢® º
º º ÇÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄĶ º
º º º 0 ³ 0 ³ 0 ³ 0 ³ 0 ³HDS³DS0³DS1º º
º º ÇÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÁÄÄĶ º
º º º N º <20> §¬¥à ᥪâ®à  º
º º º SC º Š®«¨ç¥á⢮ ᥪâ®à®¢ º
º º º GPL º Œ¥¦á¥ªâ®à­ë© GAP º
º º º D º ‡ ¯®«­¨â¥«ì º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º ˆá¯®«­¥­¨¥ º º ‚믮«­¥­¨¥ ®¯¥à æ¨¨ º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥§ã«ìâ â º R º ST0 º º
º º º ST1 º º
º º º ST2 º º
º º º C º º
º º º H º º
º º º R º º
º º º N º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍ͹
º Recalibrate º 07H º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍ͹
º <20>ਪ § º W º 0 ³ 0 ³ 0 ³ 0 ³ 0 ³ 1 ³ 1 ³ 1 º Š®¬ ­¤­®¥ á«®¢® º
º º ÇÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄĶ º
º º º 0 ³ 0 ³ 0 ³ 0 ³ 0 ³HDS³DS0³DS1º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º ˆá¯®«­¥­¨¥ º º ‚믮«­¥­¨¥ ®¯¥à æ¨¨ º ” §ë १ã«ìâ â  ­¥â º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍ͹
º Sense Interrupt Status º 08H º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍ͹
º <20>ਪ § º W º 0 ³ 0 ³ 0 ³ 0 ³ 1 ³ 0 ³ 0 ³ 0 º Š®¬ ­¤­®¥ á«®¢® º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥§ã«ìâ â º R º ST0 º ” §ë ¨á¯®«­¥­¨ï ­¥â º
º º º PCN º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍ͹
º Specify º 03H º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍ͹
º <20>ਪ § º W º 0 ³ 0 ³ 0 ³ 0 ³ 0 ³ 0 ³ 1 ³ 1 º Š®¬ ­¤­®¥ á«®¢® º
º º ÇÄÄÄÁÄÄÄÁÄÄÄÁÄÄÄÅÄÄÄÁÄÄÄÁÄÄÄÁÄÄĶÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º º º SRT ³ HUT º <20>¥â ä § १ã«ìâ â  º
º º ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÂÄÄĶ ¨ ¨á¯®«­¥­¨ï º
º º º HLT ³ NDº º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍ»
º Sense Drive Status º 04H º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍ͹
º <20>ਪ § º W º 0 ³ 0 ³ 0 ³ 0 ³ 1 ³ 1 ³ 0 ³ 1 º Š®¬ ­¤­®¥ á«®¢® º
º º ÇÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄĶ º
º º º 0 ³ 0 ³ 0 ³ 0 ³ 0 ³HDS³DS0³DS1º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥§ã«ìâ â º R º ST3 º ” §ë ¨á¯®«­¥­¨ï ­¥â º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍ͹
º Seek º 0FH º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍÑÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍ͹
º <20>ਪ § º W º 0 ³ 0 ³ 0 ³ 0 ³ 1 ³ 1 ³ 1 ³ 1 º Š®¬ ­¤­®¥ á«®¢® º
º º ÇÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄÄÅÄÄĶ º
º º º 0 ³ 0 ³ 0 ³ 0 ³ 0 ³HDS³DS0³DS1º º
º º ÌÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍÍÏÍÍ͹ º
º º º NCN º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º ˆá¯®«­¥­¨¥ º º ‚믮«­¥­¨¥ ®¯¥à æ¨¨ º ” §ë १ã«ìâ â  ­¥â º
º º º º ƒ¥­¥à¨àã¥â ¯à¥à뢠­¨¥ º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍ͹
º Invalid º XXH º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍ͹
º <20>ਪ § º W º <20>¥¤®¯ãáâ¨¬ë© ª®¤ ®¯¥à æ¨¨ º º
ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥§ã«ìâ â º R º ST0 º ST0=80H - ¯à¨§­ ª º
º º º º ®è¨¡ª¨ º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ


74
docs/8272FORM.DOC Normal file
View File

@ -0,0 +1,74 @@
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º ”®à¬ â åà ­¥­¨ï ¨­ä®à¬ æ¨¨ ­  £¨¡ª®¬ ¤¨áª¥. º
º ‘â ­¤ àâ IBM System 34 (SD) ¨ IBM System 3740 (DD). º
ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ÉÍÍÍÍÍ» <-- ˆ­¤¥ªá (­ ç «® ¤®à®¦ª¨). Hex Hex
º º ÉÍÍÍÍËÍÍÍÍ»
º º º SD º DD º
º º <-- <20>®á⨭¤¥ªá­ë© ¯à®¬¥¦ã⮪ ÌÍÍÍÍÎÍÍÍ͹
º º „«¨­  ¯à®¬¥¦ã⪠ (¡ ©â) - º 28 º 50 º
º º ‡ ¯¨á뢠¥âáï ¡ ©â - º FF º 4E º
ÌÍÍÍÍ͹ ÈÍÍÍÍÊÍÍÍͼ
º º <-- Š®¤ ᨭåà®­¨§ æ¨¨ ÉÍÍÍÍËÍÍÍÍ»
º º „«¨­  ¯®«ï (¡ ©â) - º 6 º 0C º
º º ‡ ¯¨á뢠¥âáï ¡ ©â - º 00 º 00 º
ÌÍÍÍÍ͹ ÌÍÍÍÍÎÍÍÍ͹
º º <-- €¤à¥á­ ï ¬¥âª  ¨­¤¥ªá  º º º
º º (4 ¡ ©â ) º FC º C2*º
º º ‡ ¯¨á뢠¥âáï ¡ ©â - º ⨠º C2*º
º º º(D7)º C2*º
º º º º FC º
ÌÍÍÍÍ͹ ÌÍÍÍÍÎÍÍÍ͹
º º <-- <20>஬¥¦ã⮪ (¡ ©â) - º 1A º 32 º
º º ‡ ¯¨á뢠¥âáï ¡ ©â - º FF º 4E º
ÈÍÍÍÍͼ ÈÍÍÍÍÊÍÍÍͼ
„ «¥¥ 横«¨ç¥áª®¥ ¯®¢â®à¥­¨¥ ¤«ï ª ¦¤®£® ᥪâ®à :
ÉÍÍÍÍÍ» ÉÍÍÍÍËÍÍÍÍ»
º º <-- Š®¤ ᨭåà®­¨§ æ¨¨. „«¨­ : º 6 º 0C º
º º ‡ ¯¨á뢠¥âáï ¡ ©â - º 00 º 00 º
ÌÍÍÍÍ͹ ÌÍÍÍÍÎÍÍÍ͹
º º <-- €¤à¥á­ ï ¬¥âª  ¨¤¥­â¨ä¨ª â®à  º FE º A1*º
º º (4 ¡ ©â ) º ⨠º A1*º
º º º(C7)º A1*º
º º º º FE º
ÌÍÍÍÍ͹ ÈÍÍÍÍÊÍÍÍͼ
º C º <-- <20>®¬¥à ¤®à®¦ª¨
ÌÍÍÍÍ͹
º H º <-- <20>®¬¥à ¯®¢¥àå­®áâ¨
ÌÍÍÍÍ͹
º R º <-- <20>®¬¥à ᥪâ®à 
ÌÍÍÍÍ͹
º N º <-- Š®¤ ¤«¨­ë ᥪâ®à :
º º 00 - 128, 01 - 256, 02 - 512, 03 - 1024 ¨ â.¤.
ÌÍÍÍÍ͹ ÉÍÍÍÍËÍÍÍÍ»
º º <-- <20>஬¥¦ã⮪. „«¨­ : º FE º 4E º
º º ‡ ¯¨á뢠¥âáï ¡ ©â - º 0B º 16 º
º º º º º
º º º º º
ÌÍÍÍÍ͹ ÈÍÍÍÍÊÍÍÍͼ
º º <-- 2 ¡ ©â  CRC - ª®­â஫ï
ÌÍÍÍÍ͹ ÉÍÍÍÍËÍÍÍÍ»
º º <-- Š®¤ ᨭåà®­¨§ æ¨¨. „«¨­ : º 0B º 16 º
º º ‡ ¯¨á뢠¥âáï ¡ ©â - º FF º 4E º
ÌÍÍÍÍ͹ ÌÍÍÍÍÎÍÍÍ͹
º º <-- €¤à¥á­ ï ¬¥âª  ¤ ­­ëå º ⨠º A1*º
º º º(C7)º A1*º
º º º º A1*º
º º „«ï ¤ ­­ëå - º FB º FB º
º º „«ï 㤠«¥­­ëå ¤ ­­ëå - º F8 º F8 º
ÌÍÍÍÍ͹ ÈÍÍÍÍÊÍÍÍͼ
º º <-- <20>®«¥ ¤ ­­ëå: 128, 256, 512 ... ¡ ©â.
ÌÍÍÍÍ͹
º º <-- 2 ¡ ©â  CRC - ª®­â஫ï
ÌÍÍÍÍ͹
º º <-- <20>®áâᥪâ®à­ë© ¯à®¬¥¦ã⮪. ÉÍÍÍÍËÍÍÍÍ»
º º ‡ ¯¨á뢠¥âáï ¡ ©â º FF º 4E º
º º „«¨­  ¯à®¬¥¦ã⪠ (¡ ©â): ÌÍÍÍÍÎÍÍÍ͹
º º 8 ᥪâ®à®¢ º 3A º 74 º
º º 15 ᥪâ®à®¢ º 2A º 54 º
º º 26 ᥪâ®à®¢ º 1B º 36 º
ÈÍÍÍÍͼ ÈÍÍÍÍÊÍÍÍͼ
⨠- â ªâ®¢ë¥ ¨¬¯ã«ìáë
A1*, C2* - § ¯¨áì á ¢ë¯ ¤¥­¨¥¬ ⠪⮢ëå ¨¬¯ã«ìᮢ


109
docs/8272STAT.DOC Normal file
View File

@ -0,0 +1,109 @@
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º <20>¥£¨áâàë á®áâ®ï­¨ï ST0 - ST3 º
ÌÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¨âº <20> §¢ ­¨¥ º Ž¡®§­º ޝ¨á ­¨¥ º
ÌÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥£¨áâà á®áâ®ï­¨ï ST0 º
ÌÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D7 º Interrupt º IC º <20>¨âë D7,D6 ᮢ¬¥áâ­® ¯®ª §ë¢ îâ ¨á室 ª®¬ ­¤ë, ¢ë§¢ ¢è¥© ¯à¥à뢠­¨¥: º
º D6 º Code º º 00 - ­®à¬ «ì­®¥ § ¢¥à襭¨¥ ª®¬ ­¤ë (NT - Normal Termination) º
º º º º 01 - ®è¨¡®ç­®¥ § ¢¥à襭¨¥ ª®¬ ­¤ë (AT - Abnormal Terminated) º
º º º º ª®¬ ­¤  ¡ë«  ­ ç â , ­® ­¥ ¢ë¯®«­¥­  ãᯥ譮. º
º º º º 10 - ­¥¤®¯ãá⨬ ï ª®¬ ­¤  (IC - Invalid Command). º
º º º º 11 - ­¥­®à¬ «ì­®¥ § ¢¥à襭¨¥ ª®¬ ­¤ë ¨§-§  ¨§¬¥­¥­¨ï ᨣ­ «  Readyº
º º º º á ­ ª®¯¨â¥«ï. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D5 º Seek End º SE º Š®£¤  ª®­â஫«¥à ¢ë¯®«­¨« ª®¬ ­¤ã Seek, íâ®â ¡¨â ãáâ ­®¢«¥­ ¢ "1". º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D4 º Equipment º EC º …᫨ á ­ ª®¯¨â¥«ï ¯à¨è¥« ᨣ­ « Fault ¨«¨ ¯®á«¥ 77 è £®¢ ­¥ ¯®«ã祭 º
º º Check º º ᨣ­ « TR00, íâ®â ¡¨â ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D3 º Not Ready º NR º …᫨ ­ ª®¯¨â¥«ì ¢ á®áâ®ï­¨¨ Not Ready ¨ § ¤ ¥âáï ª®¬ ­¤  ç⥭¨ï º
º º º º ¨«¨ § ¯¨á¨, íâ®â ¡¨â ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D2 º Head Addressº HD º ”« £ ¨á¯®«ì§ã¥âáï ¤«ï 㪠§ ­¨ï á®áâ®ï­¨ï £®«®¢ª¨ ¯à¨ ¯à¥à뢠­¨¨. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D1 º Unit º US1 º „¢  ¡¨â  㪠§ë¢ îâ ­®¬¥à ­ ª®¯¨â¥«ï ¯à¨ ¯à¥à뢠­¨¨. º
º D0 º Select º US0 º º
ÌÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥£¨áâà á®áâ®ï­¨ï ST1 º
ÌÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D7 º End OF º EN º Š®£¤  ª®­â஫«¥à ¯ëâ ¥âáï ¯®«ãç¨âì ¤®áâ㯠ª ᥪâ®àã á ­®¬¥à®¬, º
º º Cylinder º º ¯à¥¢ëè î騬 ­®¬¥à ¯®á«¥¤­¥£® ᥪâ®à  樫¨­¤à , ä« £ ãáâ ­ ¢«¨¢ ¥âáï. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D6 º ----- º º <20>¥ ¨á¯®«ì§ã¥âáï, ¢á¥£¤  = 0 º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D5 º Data Error º DE º ”« £ ãáâ ­ ¢«¨¢ ¥âáï ¯à¨ ¢ë¥­¨¨ ®è¨¡ª¨ CRC ¢ ¯®«ïå º
º º º º ¤ ­­ëå ¨«¨ ¨¤¥­â¨ä¨ª â®à  ᥪâ®à . º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D4 º Over Run º OR º ”« £ ãáâ ­ ¢«¨¢ ¥âáï, ¥á«¨ ª®­â஫«¥à ­¥ ®¡á«ã¦¥­ á¨á⥬®© º
º º º º ¢® ¢à¥¬ï ¯¥à¥¤ ç¨ ¤ ­­ëå (¯®â¥àï ¤ ­­ëå). º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D3 º ----- º º <20>¥ ¨á¯®«ì§ã¥âáï, ¢á¥£¤  = 0. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D2 º No Data º ND º ª®¬ ­¤ å Read Data, Write Deleted Data ¨«¨ Scan ¥á«¨ º
º º º º ª®­â஫«¥à ­¥ ¬®¦¥â ­ ©â¨ ᥪâ®à, 㪠§ ­­ë© ॣ. IDR, ä« £ = "1". º
º º º ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º º º º ª®¬ ­¤¥ Read ID, ¥á«¨ ª®­â஫«¥à ­¥ ¬®¦¥â áç¨â âì ¯®«¥ º
º º º º ¨¤¥­â¨ä¨ª â®à  ᥪâ®à  ¡¥§ ®è¨¡ª¨, ä« £ ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
º º º ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º º º º ª®¬ ­¤¥ Read a Cylinder, ¥á«¨ ­ ç «ì­ë© ᥪâ®à ­¥ ­ ©¤¥­, º
º º º º ä« £ ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D1 º Not º NW º ª®¬ ­¤ å § ¯¨á¨ ¨ ä®à¬ â¨à®¢ ­¨ï, ¥á«¨ ª®­â஫«¥à ®¡­ à㦨¢ ¥â º
º º Writable º º ᨣ­ « § é¨âë ®â § ¯¨á¨ á ­ ª®¯¨â¥«ï, ä« £ ãáâ ­ ¢«¨¢ ¥âáï. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D0 º Missing º MA º …᫨ ­¥ ­ ©¤¥­  ¤à¥á­ë© ¬ àª¥à ¨¤¥­â¨ä¨ª â®à  ᥪâ®à  ¤® ¯à¨å®¤  º
º º Address º º ¢â®à®£® ¨­¤¥ªá­®£® ¨¬¯ã«ìá , ä« £ ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
º º Mark º ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º º º º …᫨ ­¥ ®¡­ à㦥­  ¤à¥á­ë© ¬ àª¥à ¤ ­­ëå ¨«¨ 㤠«¥­­ëå ¤ ­­ëå, ä« £ º
º º º º ãáâ ­ ¢«¨¢ ¥âáï. <20>ਠí⮬ ãáâ ­ ¢«¨¢ ¥âáï ä« £ MD ¢ ॣ¨áâॠST2. º
ÈÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ÉÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
º <20>¨âº <20> §¢ ­¨¥ º Ž¡®§­º ޝ¨á ­¨¥ º
ÌÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥£¨áâà á®áâ®ï­¨ï ST2 º
ÌÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D7 º ------ º º <20>¥ ¨á¯®«ì§ã¥âáï, ¢á¥£¤  = 0. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D6 º Control º CM º ª®¬ ­¤ å Read Data ¨ Scan ¯à¨ ®¡­ à㦥­¨¨ ᥪâ®à  á º
º º Mark º º  ¤à¥á­ë¬ ¬ àª¥à®¬ 㤠«¥­­ëå ¤ ­­ëå ä« £ ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D5 º Data Error º DD º ”« £ ãáâ ­ ¢«¨¢ ¥âáï ¢ "1" ¯à¨ ®¡­ à㦥­¨¨ ®è¨¡ª¨ CRC º
º º in Data º º ¢ ¯®«¥ ¤ ­­ëå ᥪâ®à . º
º º Field º º º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D4 º Wrong º WC º “áâ ­ ¢«¨¢ ¥âáï ᮢ¬¥áâ­® á ¡¨â®¬ ND, ¥á«¨ ᮤ¥à¦¨¬®¥ º
º º Cylinder º º ॣ¨áâà  ®â«¨ç ¥âáï ®â ᮤ¥à¦¨¬®£® ॣ¨áâà  IDR. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D3 º Scan Equal º SH º ª®¬ ­¤ å Scan ¯à¨ 㤮¢«¥â¢®à¥­¨¨ ãá«®¢¨ï "à ¢­®" º
º º Hit º º íâ®â ¡¨â ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D2 º Scan Not º SN º ª®¬ ­¤ å Scan, ¥á«¨ ­¥ ­ ©¤¥­ ᥪâ®à,®â¢¥ç î騩 º
º º Satisfied º º § ¤ ­­®¬ã ãá«®¢¨î, ä« £ ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D1 º Bad º BC º “áâ ­ ¢«¨¢ ¥âáï ᮢ¬¥áâ­® á ¡¨â®¬ ND, ¥á«¨ ᮤ¥à¦¨¬®¥ º
º º Cylinder º º ॣ¨áâà  ®â«¨ç ¥âáï ®â ᮤ¥à¦â¬®£® IDR ¨ = 0FFH. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D0 º Missing º MD º …᫨ ¯à¨ ç⥭¨¨ ­¥ ¢áâà¥ç¥­  ¤à¥á­ë© ¬ àª¥à ¤ ­­ëå ¨«¨ º
º º Address Markº º  ¤à¥á­ë© ¬ àª¥à 㤠«¥­­ëå ¤ ­­ëå, ä« £ ãáâ ­ ¢«¨¢ ¥âáï ¢ "1". º
º ºin Data Fieldº º º
ÌÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º <20>¥£¨áâà á®áâ®ï­¨ï ST3 º
ÌÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D7 º Fault º FT º Žâà ¦ ¥â á®áâ®ï­¨¥ ᨣ­ «  Fault á ­ ª®¯¨â¥«ï. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D6 º Write º WP º Žâà ¦ ¥â á®áâ®ï­¨¥ ᨣ­ «  Write Protect (§ é¨â  ®â § ¯¨á¨) º
º º Protect º º á ­ ª®¯¨â¥«ï. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D5 º Ready º RDY º Žâà ¦ ¥â á®áâ®ï­¨¥ ᨣ­ «  Ready á ­ ª®¯¨â¥«ï. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D4 º Track 00 º T0 º Žâà ¦ ¥â á®áâ®ï­¨¥ ᨣ­ «  Track 00 á ­ ª®¯¨â¥«ï. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D3 º Two Side º TS º Žâà ¦ ¥â á®áâ®ï­¨¥ ᨣ­ «  Two Side á ­ ª®¯¨â¥«ï. º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D2 º Head Addressº HD º “ª §ë¢ ¥â ­  ¢ë¡à ­­ãî ¯®¢¥àå­®áâì ¤¨áª . º
ÌÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
º D1 º Unit º US1 º „¢  ¡¨â  ¯®ª §ë¢ îâ ¢ë¡à ­­ë© ­ ª®¯¨â¥«ì. º
º D0 º Select º US0 º º
ÈÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

2194
docs/I8272.DOC Normal file

File diff suppressed because it is too large Load Diff

BIN
release/LD-ISDOS.EXE Normal file

Binary file not shown.

BIN
release/LD-TRDOS.EXE Normal file

Binary file not shown.