KMK/JŻ IDE

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 01:05, 11 gru 2004
Krap (Dyskusja | wkład)
(opis jaki mam, to wrzucam. :))
← Previous diff
Wersja z dnia 11:35, 3 mar 2005
KMK (Dyskusja | wkład)

Next diff →
Linia 1: Linia 1:
-<pre>+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.
- Date: 28 Dec 1995 15:20:18 -0500+
- From: CONRADUS@plearn.edu.pl (KMK)+
-A message to Operating Systems/Disk Operating Systems developers.+Interfejs wykorzystuje istniejący w systemie operacyjnym mechanizm pozwalający na podłączanie w standardowy, zdefiniowany przez Atari sposób urządzeń równoległych tak, by zostały automatycznie zainicjowane po włączeniu zasilania komputera (rodzaj tzw. plug-n-play). W związku z tym zastosowanie interfejsu nie wymaga w żaden sposób ingerencji w kod systemu operacyjnego.
-Dear developer!+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ż DOS-y normalnie nie pracują z sektorem o wielkości 512 bajtów, sterownik interfejsu ma dwa tyrby pracy:
-We are pleased to present you a preliminary document about our+* tryb "rzeczywisty", w którym transmitowane są sektory 512-bajtowe
-IDE hard drive interface for Atari 130XE (and compatible)+* tryb "emulacji", w którym 1 sektor 512-bajtowy wykorzystywany jest do zapisania dwóch sektorów 256-bajtowych
-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,+Tryb emulacji charakteryzuje się mniejszą szybkością operacji I/O niz tryb rzeczywisty - różnica jest szczególnie drastyczna przy zapisie.
-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+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:.
-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,+Interfejs współpracuje ze wszystkimi znanymi (autorom) modelami twardych dysków oraz z kartami CF.
-decide to support the features described below and don't hesitate+
-to send us your comments, if any.+
- +
- Regards+
- +
- Konrad Kokoszkiewicz+
- E-mail: conradus@plearn.edu.pl+
- S-mail: ul. Tomaszowska 95/37+
- PL-26-420 Nowe Miasto nad Pilica+
- POLAND+
- +
- ***+
- +
- IDE Hard Drive Interface v.1.0 - a preliminary document+
- +
- Copyright (c) 1995-1996 by Jacek Zuk and Konrad Kokoszkiewicz+
- +
- Made in Poland+
- +
- ***+
- +
-The IDE package contains:+
- +
-1) the IDE interface+
-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+
- +
-I. Introduction+
-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+
- +
-Seven years ago, when I first heard about hard drives for the+
-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+
-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+
-happened, when a friend of mine has found a "Technical Reference+
-Manual" for a Caviar WDAC2200. I read this paper very carefully,+
-then went to Jack - a person, who looks to know everything about+
-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+
-(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+
- +
-The Interface's internal software provides two modes: native and+
-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.+
-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.+
- +
-III. How to make it work (step by step)+
- +
-1) Make sure, that the power on your computer is turned off.+
-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+
-in their internal status registers *before* the spin-up process+
-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+
- +
-SHIFT/RESET disables the drive. The drive will remain spinning,+
-but the partitions will not respond to operating system requests+
-(error 138). To enable it again just press the RESET key.+
-SELECT/RESET forces the cold boot.+
- +
-V. Write-protection feature+
- +
-The IDE hard drive interface provides the write-protection+
-feature to minimize a risk of accidental data damage caused by+
-viruses, damaged software or children. When a partition is+
-locked, there's NO POSSIBILITY to write data to this partition or+
-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+
- +
-Some software, especially games and demos, have their own disk+
-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+
-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+
-must provide a small partition to use it in such manner. Though+
-the D10-D15 partitions are invisible for existing operating+
-systems and cannot be accessed by DOS, they may be booted as+
-well. When you are partitioning your drive, create a small (up to+
-520 physical blocks) disk, for example D10:. When you complete+
-the installation and make the drive work, execute the FHCOPY.COM+
-file from the utilities disk, then copy your floppy to the D10:.+
-Now execute the FDISK, select the "Partitioning" option from the+
-main menu, then press the TAB key twice to move the cursor to the+
-menu at the bottom right corner of the screen. Select the "Opts"+
-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+
- +
-The IDE drive interface is able to handle two IDE devices+
-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+
-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+
-partitions.+
- +
-VIII. Software development information+
- +
-The IDE drive partitions operate as normal floppy drives or+
-ramdisks and can be accessed via OS DISKINT (453) and SIOINT+
-(459) routines. All the partitions recognize the following+
-commands:+
- +
-1) Standard subset+
- +
-R - read a sector - this command reads a specified logical sector+
-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>+

Wersja z dnia 11:35, 3 mar 2005

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.

Interfejs wykorzystuje istniejący w systemie operacyjnym mechanizm pozwalający na podłączanie w standardowy, zdefiniowany przez Atari sposób urządzeń równoległych tak, by zostały automatycznie zainicjowane po włączeniu zasilania komputera (rodzaj tzw. plug-n-play). 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ż DOS-y normalnie nie pracują z sektorem o wielkości 512 bajtów, sterownik interfejsu ma dwa tyrby 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

Tryb emulacji charakteryzuje się mniejszą szybkością operacji I/O niz tryb rzeczywisty - różnica jest szczególnie drastyczna przy zapisie.

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 współpracuje ze wszystkimi znanymi (autorom) modelami twardych dysków oraz z kartami CF.

Personal tools