|
|
| 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>
| |