KMK/JŻ IDE: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
opis jaki mam, to wrzucam. :)
 
 
(Nie pokazano 63 wersji utworzonych przez 8 użytkowników)
Linia 1: Linia 1:
<pre>
{{grafr|kmkjzkomplet.jpg}}
Date: 28 Dec 1995 15:20:18 -0500
From: CONRADUS@plearn.edu.pl (KMK)


A message to Operating Systems/Disk Operating Systems developers.
Interfejs IDE, znany także jako "KMK/JŻ". Opracowany w roku 1995 przez [[Jacek Żuk|Jacka Żuka]] (hardware) oraz [[KMK]] (software) interfejs równoległy przeznaczony do podłączania napędów IDE/AT-BUS do komputerów serii [[XE]].


Dear developer!
Klonem tego interfejsu jest [[IDEa]]. Natomiast nowszą wersją, jaka pojawiła się w roku 2011, jest [[IDE Plus]].


We  are pleased to present you a preliminary document  about  our
==Informacje ogólne==
IDE  hard  drive  interface  for  Atari  130XE  (and  compatible)
computers.  As existing Disk Operating Systems aren't able to use
all  the capabilities we provided,  we are kindly asking  you  to
upgrade  the  latest  versions of your  work  and  implement  the
specific IDE features,  those have been described below. The four
general  problems  we  found trying to use any  of  the  existing
DOSes, are as follows:


1) All DOSes we tested,  i.e. SpartaDOS 3.2g,  SpartaDOS X 4.20,
Interfejs wykorzystuje istniejący w systemie operacyjnym mechanizm tzw. [[nowe urządzenia|nowych urządzeń]]. W związku z tym zastosowanie interfejsu nie wymaga w żaden sposób ingerencji w kod systemu operacyjnego.
MyDOS 4.53 and BWDOS 1.10,  when they have been executed, seem to
force  the  DUNIT  (301)  value to  1.  Such  action  is  not
necessary,  because the DUNIT is already set by the XL OS's RESET
routines,  and is obnoxious,  because,  as a result,  the DOS  is
unable to read its config files, when the system has been started
from a partition other, than D1:.
2)  All  the DOSes we tested are unable  to  read/write  512-byte
sectors,  so they are unable to work in the IDE native mode  (see
below).  The interface provides the emulation mode to handle 256-
byte sector operations,  but, as a result, the drive is unable to
reach its full speed. Especially any writes to the hard drive are
very  slow.  The implementation of the 512 byte allocation  units
may also be profitable in the future, if we decide to add support
for DMA transfers.
3)  All the DOSes we tested are unable to handle  big  partitions
(i.e.  over  16  MB limit).  The implementation of the  512  byte
allocation  units  may solve this problem in a  part  (the  limit
would  be  32  MB per partition then),  but,  if  you  decide  to
implement  big  partitions handling,  we advise you  to  consider
about  using the 23-bit sector addressing in conjuntion with  the
larger allocation units (see below for details).
4) All the DOSes we tested are unable to handle disks D10-D15.


Operating  Systems  developers  please note,  that  there  is  no
Wewnętrzne oprogramowanie interfejsu pozwala na zaadresowanie dysków o pojemności do 8 GB (16777216 sektorów po 512 bajtów). Dysk można podzielić na 16 partycji o łącznej pojemności 8 GB (może to być 1 partycja o rozmiarze 8 GB). Jednak, ponieważ większość DOS-ów (oprócz [[SpartaDOS X]] 4.39) normalnie nie pracuje z sektorem o wielkości 512 bajtów, sterownik interfejsu ma dwa tryby pracy:
necessity to set the DUNIT value in the OS BOOT routine, as  the
DUNIT is already set by previous RESET routines.


We  hope, that you will take these problems into  consideration,
* tryb "rzeczywisty", w którym transmitowane są sektory 512-bajtowe
decide to support the features described below and don't hesitate
* tryb "emulacji", w którym 1 sektor 512-bajtowy wykorzystywany jest do zapisania dwóch sektorów 256-bajtowych
to send us your comments, if any.


                                                          Regards
W trybie rzeczywistym szybkość odczytu i zapisu waha się w granicach od 50 do 80 kilobajtów na sekundę. Wahania te zależą od rodzaju zastosowanego napędu, a także od kolejności odczytu sektorów - sekwencyjny odczyt kolejnych sektorów jest tu najszybszy. Tryb ten jest możliwy do wykorzystania pod [[SpartaDOS X]] v.4.39 i nowszymi.


                                            Konrad Kokoszkiewicz
Tryb emulacji charakteryzuje się ok. dwukrotnie mniejszą szybkością odczytu niż tryb rzeczywisty oraz czterokrotnie mniejszą szybkością zapisu. To ostatnie wynika z faktu, że dwa sektory 256-bajtowe zapisywane są w jednym sektorze 512-bajtowym. Wyniki testu szybkości przeprowadzonego programem [http://drac030.krap.pl/rwtest.arc RW-Test] działającym pod [[SpartaDOS X]], tryb emulacji:
                                  E-mail: conradus@plearn.edu.pl
                                    S-mail: ul. Tomaszowska 95/37
                                PL-26-420 Nowe Miasto nad Pilica
                                                          POLAND


                              ***
* DOS writing: 8713.666 B/sek.
* DOS reading: 36714.887 B/sek.
* DOS average: 22714.276 B/sek.


    IDE Hard Drive Interface v.1.0 - a preliminary document
Co ciekawe, szybkość zapisu bardzo zależy od zastosowanego napędu. Np. na dysku Toshiba MK2103MAV pomiarowa szybkość zapisu (pod tym samym DOS-em) to 12 kB/s, a karty CF są jeszcze nieco szybsze. Poniżej wyniki testu przykładowej karty CF (Kingston 256MB):


  Copyright (c) 1995-1996 by Jacek Zuk and Konrad Kokoszkiewicz
* DOS writing: 14269.1046 B/sek.
* DOS reading: 41892.6276 B/sek.
* DOS average: 28080.8661 B/sek.


                        Made in Poland
Od wersji sterownika 1.8 tryb emulacji podzielony jest na "podtryby":


                              ***
* pierwotny, emulujący gęstość [[DD]] (256 bajtów na sektor)
* nowy, emulujący gęstość [[ED]] (128 bajtów na sektor).


The IDE package contains:
Przełączenie następuje automatycznie. Ta zmiana została wprowadzona celem poprawienia kompatybilności z programami całodyskowymi i uruchamiania ich z przeznaczonej do tego partycji.


1) the IDE interface
Oprogramowanie interfejsu pozwala na start systemu z dowolnej partycji, co jest teoretycznie niemożliwe w [[XL OS]]. Sterownik interfejsu ucieka się w związku z tym do pewnego triku, który zapobiega przestawieniu numeru dysku startowego na D1:.
2) a power supply
3) a cable to connect the interface with a drive
4) utilities disk with MyDOS 4.53
5) this document


Index rerum
[[Grafika:kmkjzzob.jpg]]
[[Grafika:kmkjzbezob.jpg]]


I.        Introduction
Interfejs niestety nie jest przelotowy - aczkolwiek na płytce jest miejsce przeznaczone na wlutowanie [[gniazdo cartridge'a|gniazda cardridge'a]].
II.      Capabilities overview
III.      How to make it work (step by step)
IV.      Keystrokes
V.        Write-protection feature
VI.      Executing non-DOS software
VII.      Dual drive configuration
VIII.    Software development information
IX.      Memory usage
X.       Error messages


I. Introduction
==Lista dysków==


Seven  years ago, when I first heard about hard drives  for  the
Interfejs współpracuje ze wszystkimi znanymi (autorom) modelami twardych dysków oraz z kartami CF. Oto lista twardych dysków i kart CF, które działają z całą pewnością:
Atari 8-bit, a 20 MB SCSI device's price was over 600 USD and, of
course,  was  out of reach for people in a country on  the  wrong
side  of  the Iron Courtain,  where wages were about 20  USD  per
month. The 1050 floppy drive was a dream - what would I say about
the hard one...?


Over  the  next six years many things have  been  changed.  Among
===Conner Peripherals===
others, the Iron Courtain got rusty, we have started earning more
money,  got  some new Atari computers  and,  simultaneously,  the
prices of hard drives have gone down dramatically...  and one day
I realised,  that it is possible to obtain an IDE hard drive  for
the  beloved 8-bit Atari with very reasonable  price!  But  there
still was no documentation and the only one,  that I knew,  was a
theory  about writing 'new device' handlers for the XL  operating
system...


The  most  important  thing on my "way to  the  hard  drive"  has
* Conner CP-3000: 40 MB, 3,5 cala
happened, when a friend of mine has found a "Technical Reference
* Conner CP-2088: 80 MB, 2,5 cala
Manual" for a Caviar WDAC2200.  I read this paper very carefully,
* Conner CP-30254H: 240 MB, 3,5 cala
then went to Jack - a person, who looks to know everything about
* Conner CFS-1621A: 1,5 GB, 3,5 cala
wires and other strange gadgets, those have been fixed inside and
seem to make it work.  About a week later Jack said, that  there
was no objections (contraindications, as we used to say) to build
an interface - so the project started.


The last year we spent thinking,  talking,  building the hardware
===Fujitsu===
(Jack), writing the software (me), testing, fixing bugs, catching
incompatibilities,  and learning,  learning,  learning.  We  have
discovered  a  lot of strange things about Ataris  and  IDE  hard
drives (some of them have been mentioned below).  Finally, we are
pleased  to  present you our results - we tried to make  them  as
professional,  as  it have been allowed by the limited  (2k)  ROM
space,  not  very "elastic" operating system and not  very  great
processing  power of the Atari 8-bit computer.  I hope  you  will
agree, that we did a good job.


II. Capabilities overview
* Fujitsu MPC 3043AT: 4,3GB, 3,5 cala


The Interface's internal software provides two modes:  native and
===Hitachi===
emulation.  The  native mode uses a 512 byte physical block as  a
logical data sector,  the emulation mode uses the physical  block
to  store two 256 byte logical data sectors.  ALL existing  DOSes
require the emulation mode to work properly.


Maximum drive capacity: 8388607 physical blocks on each device.
* Hitachi DK238A-43: 4,3 GB, 2,5 cala
Maximum number of partitions: 15
Maximum capacity of a partition: 8388607 logical sectors
Logical  sector length:  256 or 512 bytes (larger blocks will  be
implemented in the future)
Average speed: 58 kilobytes per second (native mode, R/W)
              32 kilobytes per second (emulation mode, reading)
              7 kilobytes per second (emulation mode, writing)
Booting from any partition
Write protection capability
8 jumpers to set the device number for the operating system


Note, that ALL existing DOSes limit the partition size to 16 MB.
===IBM===


III. How to make it work (step by step)
* IBM DBOA 2540: 517 MB, 2,5 cala


1) Make sure, that the power on your computer is turned off.
===Kingston===
2) Insert the interface to the connector at the back side of  the
computer.
3)  Connect  the interface and a 3,5" IDE drive with  the  cable.
Caution:  You may damage the drive if the interface cable is  not
connected properly. Make sure, that pin 1 on the cable (red line)
is  connected  to pin 1 on the drive and on  the  interface  (red
dot).
4) Connect the power supply and the drive.
5) Insert the utilities disk into drive 1.
6)  Turn  on  the power on the hard drive  and  on  the  computer
holding down the SHIFT key.  Make sure,  if the drive is spinning
up properly.  If not,  turn the power off,  check the connections
and  try again.  Note,  that some very old drives need A  LOT  of
power, so our power supply may not be sufficient.
7)  Be patient - the Interface waits some seconds when the  drive
is spinning up.
8) When the MyDOS is ready to use, execute the FDISK.COM file.
9)  A menu should appear.  If you see a message like "Device  not
found" instead,  please turn the power off,  check the connection
between the interface and the computer, then try again. Check the
jumper position.
10) Select the "Surface test" from the main menu. Your drive will
be  tested  for bad sectors.  If the test  finishes  without  any
message,  the  drive is in good condition - no bad  sectors  have
been found.
11)  Select the "Partitioning" from the main menu.  "Total"  will
indicate  you total amount of 512 byte sectors,  that  have  been
found  on the drive,  "Remain" - total amount  of  sectors,  that
haven't  been  allocated  yet,  "Specs" will  show  a  number  of
cylinders, heads and sectors per track.
12) Use arrows to select a drive you want to be a partition.
13)  Press the RETURN key and type in a number of  sectors,  that
you  want to be allocated to the partition.  Note,  that it is  a
number of real,  512 byte sectors,  so if you specify 32767,  the
DOS partition will have 65534 logical, 256-byte sectors.
14)  Press RETURN to confirm the number of sectors or  press  ESC
key to cancel.
15)  If you want to have more partitions,  repeat the last  three
steps as many as you want.
16) Press the TAB key and select a partition, that you want to be
the BOOT partition.  If you are the SpartaDOS X user and you want
to have the CONFIG.SYS on the hard drive, the BOOT partition must
be D1:,  so you should change the physical number of your  floppy
drive to D2: or another.
17) Press RETURN key to set the BOOT partition.
18)  Press  the  TAB key to move the cursor to the  menu  at  the
bottom right corner of the screen.
19) Select the "Opts" option.
20) Select the boot type according to your system configuration:
- "control",  if you want to boot up MyDOS (or another DOS)  from
other  partition than D1:  The interface will take  full  control
over  the boot process.
- "pass",  if you want to boot up MyDOS (or another DOS) from D1:
The interface will pass the control over the boot process to  the
operating system.  Select this option,  if you have any  troubles
with the "controlled" boot up - the interface, taking the control
over  the boot process,  uses some hints that may not  work  with
some  DOSes,  cartridges  or  upgraded  (customized)  operating
systems.  You MUST select this option, if you are the SpartaDOS X
user.
21) Press ESC to exit the "Options" menu
22) Select the "Write" option to write the new partition table to
the drive.
23) Press ESC to return to the main menu
24) Select the "Soft format" option from the menu. The FDISK will
attempt  to  build new directories on the  attached  partitions.
Note, that the SpartaDOS 3.2 does not provide such action - to do
it, you must use a separated formatter, as the P_FORMAT.COM.
25) Exit the FDISK.
26) Write the DOS file(s) to the BOOT partition.  If you are  the
MyDOS user,  select the "H" option from the DUP menu.  If you are
the  SpartaDOS 3.2 user,  copy the DOS to the BOOT partition  and
use the BOOT command to make the disk bootable.
27) Press SELECT/RESET to cause the cold boot.  The DOS will load
itself from the drive - the installation process is completed.


Some IDE drives used to clear the BUSY and assert the READY  bits
* Kingston 256 MB (CF Orange Label): TOSHIBATHNCF256MPG
in  their internal status registers *before* the spin-up  process
* Kingston 512 MB (CF Elite Pro Blue Label): SAMSUNG512-S 3.3V
is  finished - the drive looks to be ready,  but isn't  ready  in
fact  and  cannot  execute any commands  (very  strange,  by  the
way...).  To prevent such troubles during power up,  the internal
software waits about 5 seconds before taking any action with  the
IDE controller. This delay is not necessary during the cold boot,
that  has  been caused by pressing SELECT/RESET or via  OS  entry
RESETCD (477).  In such case the internal software uses a  fast
initialization method.  However, if you turn the power switch off
and on very quickly,  the initial routines may not recognize this
boot process as a real power up.  As a result,  the boot  process
will  crash.  To prevent such problems,  after turning the  power
off,  you  should always wait 10-15 seconds before turning it  on
again.  This  time  should be sufficient to  invalidate  internal
flags, that have been located in RAM.


IV. Keystrokes
===Maxtor===


SHIFT/RESET disables the drive.  The drive will remain  spinning,
* Maxtor 7245AT: 240 MB, 3,5 cala
but the partitions will not respond to operating system  requests
* Maxtor 7345AT: 340 MB, 3,5 cala
(error 138). To enable it again just press the RESET key.
* Maxtor 91366U4: 13 GB, 3,5 cala
SELECT/RESET forces the cold boot.
* Maxtor 6YL080L0: 81 GB, 3,5 cala
* Maxtor 6YL120L0: 122 GB, 3,5 cala


V. Write-protection feature
===Quantum===


The  IDE  hard  drive  interface  provides  the  write-protection
* Quantum LPS170A: 163 MB, 3,5 cala
feature  to minimize a risk of accidental data damage  caused  by
* Quantum Fireball 1080AT: 1 GB, 3,5 cala
viruses, damaged  software  or children.  When  a  partition  is
* Quantum Fireball 1280AT: 1,3 GB, 3,5 cala
locked, there's NO POSSIBILITY to write data to this partition or
* Quantum Fireball EL: 4,9 GB, 3,5 cala
unlock it by asserting commands, causing a cold boot or  turning
the  power off and on.  Damaging a write-protected  partition  by
writing  accidental  data  to random  memory  locations  is  also
*practically* impossible - the risk is very small.


VI. Executing non-DOS software with the hard drive
===Samsung===


Some software, especially games and demos, have their own  disk
* Samsung SV0643D: 6 GB, 3,5 cala
formats  and cannot be copied to a partition.  However,  the  IDE
software provides limited capabilities to execute such programs.


If  you  selected  the  "controlled"  hard  drive  boot  when
===Seagate===
partitioning  the drive and your BOOT partition is not  the  D1:,
you  may run the non-DOS disk from the floppy drive.  To  do  it,
insert the disk into the floppy disk drive then press SELECT  and
RESET keys holding down the SHIFT key.  The internal software  of
the IDE Interface will pass its initialization routines and  your
computer  will boot up from the floppy.  The hard drive  will  be
"invisible" for the system.


If  you want to execute such software from the  hard  drive, you
* Seagate ST-157A: 40 MB, 3,5 cala
must provide a small partition to use it in such  manner.  Though
* Seagate ST-1102A: 81 MB, 3,5 cala
the  D10-D15  partitions  are invisible  for  existing  operating
* Seagate ST-9190AG: 164 MB, 2,5 cala
systems  and  cannot be accessed by DOS, they may be  booted  as
* Seagate ST-3290A: 261 MB, 3,5 cala
well. When you are partitioning your drive, create a small (up to
* Seagate ST-3660A: 540 MB, 3,5 cala
520 physical blocks) disk, for example D10:.  When you  complete
* Seagate ST-3630A: 631 MB, 3,5 cala
the installation and make the drive work, execute the FHCOPY.COM
* Seagate ST-3850A: 810 MB, 3,5 cala
file from the utilities disk, then copy your floppy to the D10:.
* Seagate ST-31276A: 1,2 GB, 3,5 cala
Now execute the FDISK, select the "Partitioning" option from the
* Seagate ST-32122A: 2 GB, 3,5 cala
main menu, then press the TAB key twice to move the cursor to the
* Seagate ST-33232A: 3 GB, 3,5 cala
menu at the bottom right corner of the screen.  Select the "Opts"
* Seagate ST-340016A: 40 GB, 3,5 cala
option, then  set  the  "Drive  redirection"  to  D10:.  If  the
"controlled" boot-up has been selected, you must change it now to
the "pass" mode.  Write new partition table, exit the FDISK  and
reboot the system - the non-DOS program will load itself from the
hard drive.  To return to the previous configuration, insert the
utilities  disk  to your floppy disk  drive, reboot  the  system
holding  down the SHIFT key, then execute the FDISK, reset  the
"Drive redirection" to D1: and "Boot type" to its previous state,
write  the  new partition table, exit the FDISK and  reboot  the
system.


VII. Dual drive configuration
===Toshiba===


The  IDE  drive  interface  is able to  handle  two  IDE  devices
* Toshiba MK2103MAV: 2,1 GB, 2,5 cala
configured  as  master and slave drives (please refer  the  drive
manual to connect it and set up properly).  However, some drives,
when  they are configured to work as the slave  device, used  to
wait  some seconds before they start spinning.  For this  reason,
the Interface DOES NOT INITIALIZE the slave drive during power up
or reset.  It would make little sense,  because the drive is  not
spinning (i.e. is not ready) at that time. As a result, the slave
drive remains not initialized,  even if the boot process has been
finished and the system looks to be ready to use.


If the slave drive have finished the spin-up process,  there  are
===Western Digital===
two ways to make it work properly:
1)  assert the ALL RESET command (see next section), or
2)  force the system to read a sector from  any  partition,  that
have  been allocated to the slave drive - if the drive is  ready,
it will be recalibrated automatically.


Please  DO  NOT start the operating system from the  slave  drive
* Western Digital WDC 130AB: 30 MB, 2,5 cala
partitions.
* Western Digital WDC AC2200F: 202MB, 3,5 cala
* Western Digital Caviar 2850: 814 MB, 3,5 cala - z BIOS-em v.1.6 i nowszymi


VIII. Software development information
==Uwagi==
* Interfejs, jak większość innych tego typu urządzeń, w czystej postaci wymaga "dostrojenia" (układu RC) pod dany egzemplarz komputera, bez czego nie zawsze działa prawidłowo przy przełożeniu z jednego komputera do drugiego. Przyczyną są różnice w parametrach płyt głównych ośmiobitowego Atari (konkretnie w jakości i opóźnieniach sygnału fi2).


The  IDE  drive  partitions operate as normal  floppy  drives  or
==Zobacz też==
ramdisks  and can be accessed via OS DISKINT (453)  and  SIOINT
(459)  routines.  All  the partitions recognize  the  following
commands:


1) Standard subset
* [[KMK/JŻ IDE FDISK|Opis programu FDISK]]
* [[KMK/JŻ IDE FDISK II|Opis programu FDISK II]]
* [[KMK/JŻ IDE FAQ]]
* [[Rejestry KMK/JŻ IDE]]
* [[IDEa]]
* [[IDE Plus]]


R - read a sector - this command reads a specified logical sector
[[Kategoria:Peryferia 8-bit]]
from  a specified partition.  It reads ALWAYS THE  WHOLE  LOGICAL
SECTOR,  i.e. 256 or 512 bytes, according to the current mode and
regardless  of  the DBYT value.  The sector number  is  a  24-bit
value, the most significant byte (now called DAUX3) is located at
307  (this byte was unused by the XL OS).  Sector numbers  less
than  00001  or  greater than maximum  sector  number  for  the
specified partition are invalid and will cause the error 144.
 
P - put a sector - writes data to a specified logical sector on a
specified  partition.  There  are  the  same  restrictions,  as
mentioned  above.  This  command  will  return  status  144  when
attempting to execute on a write-protected partition.
 
W - write a sector - the same, as "P" command.
 
S  - read status block - transfers the 4-byte disk status to  the
memory. The bit of the first byte are as follows:
    7 - not used by the hard drive
    6 - write protection enabled
    5 - double density drive (always 1)
    4 - master present (usually 1)
    3 - slave present
    2 - not used by the hard drive
    1 - not used by the hard drive
    0 - not used be the hard drive
The second byte provides reversed (eor'ed with F) value of  the
IDE controller error register. The bits are as follows:
    7 - BBD - Bad block detected
    6 - ECC - Error correction code (uncorrectable error)
    5 - NUL - unused, always 1
    4 - IDNF - ID not found (target sector could not be found)
    3 - NUL - unused, always 1
    2 - AC - Aborted command
    1 - TK0 - Track 0 error (unable to find a valid track 0)
    0 - DAMNF - Data address mark not found
The normal (default) value of this byte is F. The next byte has
a  dummy value 0.  The last byte of the status block holds  the
number of retries for the software IDE handler in ROM.
 
N  - read configuration - reads the 12-byte PERCOM block  to  the
memory. The values returned by a partition are as follows:
    0 - number of tracks (always 1)
    1 - revision number (0 = 1.0)
    2 - total number of logical sectors, the middle byte
    3 - total number of logical sectors, the low byte
    4 - total number of logical sectors, the high byte
    5 - additional information:
        bit 3 - IDE hard drive partition (always 1)
        bit 2 - double density drive (always 1)
        bit 1 - 8 inch floppy disk drive (always 0)
    6 - number of bytes per logical sector, high byte
    7 - number of bytes per logical sector, low byte
    8 - unused, always F
    9 - value 9
    10 - value 4
    11 - value 5
The last three bytes contain an identifier of the hard drive type
("IDE").
 
2) Specific ones
 
6  -  sleep  drive - stops the  drives  and  deactivates  their
internal controllers. See ALL RESET command for the DCB variables
details.
 
7  - all reset - resets,  recalibrates and  reinitializes  both
hard  drives.  It is the only way to exit the  Sleep  mode.  This
command  needs  the number of any partition stored to  the  DUNIT
(301).  The  master drive must be present while asserting  this
command, otherwise the timeout error will occur.
 
C  -  identify drive - transfers the 512 bytes  of  data,  that
specify  the drive's parameters.  The fields are as follows (F  =
fixed value, V = variable, R = reserved, should be zero):
    0 - vendor specific information, bits are as follows:
          15 - 0, reserved for non-magnetic devices (F)
          14 - vendor specific (F)
          13 - vendor specific (F)
          12 - vendor specific (F)
          11 - vendor specific (F)
          10 - vendor specific (F)
          9 - vendor specific (F)
          8 - vendor specific (F)
          7 - removable media device, if 1 (F)
          6 - removable controller and/or device, if 1 (F)
          5 - vendor specific (F)
          4 - vendor specific (F)
          3 - vendor specific (F)
          2 - vendor specific (F)
          1 - vendor specific (F)
          0 - reserved (R)
    2 - number of cylinders (F)
    4 - reserved (R)
    6 - number of heads (F)
    8 - vendor specific
    10 - vendor specific
    12 - number of sectors per track (F)
    14 - vendor specific
    16 - vendor specific
    18 - vendor specific
    20-39 - serial number, ASCII characters (F)
    40 - vendor specific
    42 - vendor specific
    44 - number of ECC bytes transferred on LONG operations (F)
    46-53 - firmware revision, ASCII characters (F)
    54-93 - controller model number, ASCII characters (F)
    94 - numbers of sectors/interrupt R/W multiples, bits:
          15-8 - vendor specific
          7-0 - 0 = READ/WRITE MULTIPLE not implemented (F)
                1-F = maximum number of sectors that can  be
transferred per interrupt on READ/WRITE MULTIPLE commands (F).
    96 - reserved (R)
    98 - capabilities, bits:
          15 - reserved (R)
          14 - reserved (R)
          13 - 1 = standard standby timer values are supported
              0 = standby timer values are vendor specific (F)
          12 - reserved (R)
          11 - 1 = IORDY supported (F)
              0 = IORDY may be supported (F)
          10 - 1 = IORDY can be disabled (F)
          9 - 1 = LBA supported (F)
          8 - 1 = DMA supported (F)
          7-0 - vendor specific (F)
    100 - reserved (R)
    102 - PIO data transfer cycle timing (F)
    104 - DMA data transfer cycle timing (F)
    106-511 - reserved
All values are in standard low/high convention.  Some  parameters
are  defined  as a string of ASCII  characters.  For  the  string
"Copyright",  the  character "C" is the first byte,  "o"  is  the
second byte etc.  When such fields are transferred,  the order of
transmission is:
- the 1st character ("C") is on bits 15 through 8 of the 1st word
- the 2nd character ("o") is on bits 7 through 0 of the 1st word
- the 3rd character ("p") is on bits 15 through 8 of the 2nd word
- the 4th character ("y") is on bits 7 through 0 of the 2nd word
  etc.
Note,  that the DMA transfers,  although may be supported by  the
drive itself,  may not be supported by the current version of the
interface's hardware.  Please also refer the SLEEP DRIVE  command
to get an information about the DCB variables.
 
E  - force media change - forces the interface to  re-read  the
partition table from the drive.
 
All  other commands will cause error 139 (negative  acknowledge).
Note,  that the software does not provide a FORMAT DISK command -
it hasn't been implemented to prevent an accidental data  damage.
The drive must be formatted using a separated program.
 
Operating  system  developers  should  note,  that  the  internal
software  of the IDE Interface changes the DUNIT (301)  to  the
BOOT partition number during boot up.
 
IX. Memory usage
 
The  Interface's  internal  software  uses  the  following  RAM
locations: 1 and 4-C. The PDVMSK (247), PDVRS (248) and
DCB  variables  (especially DAUX3 307) should be used  only  in
their proper functions (please DO NOT use them as temporary  data
registers!).  The  400-6FF  area should  also  remain  intact
during the cold boot.
 
X. Error messages
 
You can get the following error reports from the IDE drive:
 
138  -  Timeout  error - attempting to read or write  data  to  a
partition, that is physically allocated to the slave drive, while
the slave drive is busy,  not ready or does not exist at all;  or
attempting  to  assert the ALL RESET command,  while  the  master
drive  is  not  present.  It  may  occur,  if  you  accidentally
disconnect the master drive or disconnect the slave drive without
reconfiguring  your  system.  It  may  also  indicate  a  damaged
partition  table  - please reboot your  system.  If  this  action
doesn't  cause any effect,  you must use the FDISK to repair  the
partition  table.  See  also  section  VII.  -  "Dual  drive
configuration".
 
139 - Invalid command
 
144 - Device done error:
1)  the  software attempted to write data  to  a  write-protected
partition.
2)  the software attempted to read or write data outside  of  the
limits, those are valid for the partition.
3) there is a bad sector on the partition.  Please assert the "S"
command to get the value of the internal IDE error register.
4)  the  interface's  software is unable to  handle  your  drive.
Please run the FDISK and select the "Surface test" from the  main
menu.  If the test fails and you know, that your drive is in good
condition  (no bad blocks) for sure,  please assert the  IDENTIFY
DRIVE command (from a BASIC,  for example),  copy the buffer to a
file and send the file to us.
 
Konrad M.Kokoszkiewicz (KMK)
E-mail: conradus@plearn.edu.pl
 
** Ea natura multitudinis est:
** aut servit humiliter, aut superbe dominatur. (Livius)
********************************************************
 
</pre>

Aktualna wersja z 29 cze 2016, 12:12

Interfejs IDE, znany także jako "KMK/JŻ". Opracowany w roku 1995 przez Jacka Żuka (hardware) oraz KMK (software) interfejs równoległy przeznaczony do podłączania napędów IDE/AT-BUS do komputerów serii XE.

Klonem tego interfejsu jest IDEa. Natomiast nowszą wersją, jaka pojawiła się w roku 2011, jest IDE Plus.

Informacje ogólne

Interfejs wykorzystuje istniejący w systemie operacyjnym mechanizm tzw. nowych urządzeń. W związku z tym zastosowanie interfejsu nie wymaga w żaden sposób ingerencji w kod systemu operacyjnego.

Wewnętrzne oprogramowanie interfejsu pozwala na zaadresowanie dysków o pojemności do 8 GB (16777216 sektorów po 512 bajtów). Dysk można podzielić na 16 partycji o łącznej pojemności 8 GB (może to być 1 partycja o rozmiarze 8 GB). Jednak, ponieważ większość DOS-ów (oprócz SpartaDOS X 4.39) normalnie nie pracuje z sektorem o wielkości 512 bajtów, sterownik interfejsu ma dwa tryby pracy:

  • tryb "rzeczywisty", w którym transmitowane są sektory 512-bajtowe
  • tryb "emulacji", w którym 1 sektor 512-bajtowy wykorzystywany jest do zapisania dwóch sektorów 256-bajtowych

W trybie rzeczywistym szybkość odczytu i zapisu waha się w granicach od 50 do 80 kilobajtów na sekundę. Wahania te zależą od rodzaju zastosowanego napędu, a także od kolejności odczytu sektorów - sekwencyjny odczyt kolejnych sektorów jest tu najszybszy. Tryb ten jest możliwy do wykorzystania pod SpartaDOS X v.4.39 i nowszymi.

Tryb emulacji charakteryzuje się ok. dwukrotnie mniejszą szybkością odczytu niż tryb rzeczywisty oraz czterokrotnie mniejszą szybkością zapisu. To ostatnie wynika z faktu, że dwa sektory 256-bajtowe zapisywane są w jednym sektorze 512-bajtowym. Wyniki testu szybkości przeprowadzonego programem RW-Test działającym pod SpartaDOS X, tryb emulacji:

  • DOS writing: 8713.666 B/sek.
  • DOS reading: 36714.887 B/sek.
  • DOS average: 22714.276 B/sek.

Co ciekawe, szybkość zapisu bardzo zależy od zastosowanego napędu. Np. na dysku Toshiba MK2103MAV pomiarowa szybkość zapisu (pod tym samym DOS-em) to 12 kB/s, a karty CF są jeszcze nieco szybsze. Poniżej wyniki testu przykładowej karty CF (Kingston 256MB):

  • DOS writing: 14269.1046 B/sek.
  • DOS reading: 41892.6276 B/sek.
  • DOS average: 28080.8661 B/sek.

Od wersji sterownika 1.8 tryb emulacji podzielony jest na "podtryby":

  • pierwotny, emulujący gęstość DD (256 bajtów na sektor)
  • nowy, emulujący gęstość ED (128 bajtów na sektor).

Przełączenie następuje automatycznie. Ta zmiana została wprowadzona celem poprawienia kompatybilności z programami całodyskowymi i uruchamiania ich z przeznaczonej do tego partycji.

Oprogramowanie interfejsu pozwala na start systemu z dowolnej partycji, co jest teoretycznie niemożliwe w XL OS. Sterownik interfejsu ucieka się w związku z tym do pewnego triku, który zapobiega przestawieniu numeru dysku startowego na D1:.

Interfejs niestety nie jest przelotowy - aczkolwiek na płytce jest miejsce przeznaczone na wlutowanie gniazda cardridge'a.

Lista dysków

Interfejs współpracuje ze wszystkimi znanymi (autorom) modelami twardych dysków oraz z kartami CF. Oto lista twardych dysków i kart CF, które działają z całą pewnością:

Conner Peripherals

  • Conner CP-3000: 40 MB, 3,5 cala
  • Conner CP-2088: 80 MB, 2,5 cala
  • Conner CP-30254H: 240 MB, 3,5 cala
  • Conner CFS-1621A: 1,5 GB, 3,5 cala

Fujitsu

  • Fujitsu MPC 3043AT: 4,3GB, 3,5 cala

Hitachi

  • Hitachi DK238A-43: 4,3 GB, 2,5 cala

IBM

  • IBM DBOA 2540: 517 MB, 2,5 cala

Kingston

  • Kingston 256 MB (CF Orange Label): TOSHIBATHNCF256MPG
  • Kingston 512 MB (CF Elite Pro Blue Label): SAMSUNG512-S 3.3V

Maxtor

  • Maxtor 7245AT: 240 MB, 3,5 cala
  • Maxtor 7345AT: 340 MB, 3,5 cala
  • Maxtor 91366U4: 13 GB, 3,5 cala
  • Maxtor 6YL080L0: 81 GB, 3,5 cala
  • Maxtor 6YL120L0: 122 GB, 3,5 cala

Quantum

  • Quantum LPS170A: 163 MB, 3,5 cala
  • Quantum Fireball 1080AT: 1 GB, 3,5 cala
  • Quantum Fireball 1280AT: 1,3 GB, 3,5 cala
  • Quantum Fireball EL: 4,9 GB, 3,5 cala

Samsung

  • Samsung SV0643D: 6 GB, 3,5 cala

Seagate

  • Seagate ST-157A: 40 MB, 3,5 cala
  • Seagate ST-1102A: 81 MB, 3,5 cala
  • Seagate ST-9190AG: 164 MB, 2,5 cala
  • Seagate ST-3290A: 261 MB, 3,5 cala
  • Seagate ST-3660A: 540 MB, 3,5 cala
  • Seagate ST-3630A: 631 MB, 3,5 cala
  • Seagate ST-3850A: 810 MB, 3,5 cala
  • Seagate ST-31276A: 1,2 GB, 3,5 cala
  • Seagate ST-32122A: 2 GB, 3,5 cala
  • Seagate ST-33232A: 3 GB, 3,5 cala
  • Seagate ST-340016A: 40 GB, 3,5 cala

Toshiba

  • Toshiba MK2103MAV: 2,1 GB, 2,5 cala

Western Digital

  • Western Digital WDC 130AB: 30 MB, 2,5 cala
  • Western Digital WDC AC2200F: 202MB, 3,5 cala
  • Western Digital Caviar 2850: 814 MB, 3,5 cala - z BIOS-em v.1.6 i nowszymi

Uwagi

  • Interfejs, jak większość innych tego typu urządzeń, w czystej postaci wymaga "dostrojenia" (układu RC) pod dany egzemplarz komputera, bez czego nie zawsze działa prawidłowo przy przełożeniu z jednego komputera do drugiego. Przyczyną są różnice w parametrach płyt głównych ośmiobitowego Atari (konkretnie w jakości i opóźnieniach sygnału fi2).

Zobacz też