IECATA : IDE/CF as Commodore IEC
Asbjørn Djupdal, 2002
IECATA is a hard drive controller for the Commodore IEC serial bus. It enables all computers that has an IEC serial bus port (e.g VIC-20, C-64, C-128) to use cheap, easy to get ATA hard drives (also called IDE hard drives).
- Supports standard ATA hard drives up to 128 gigabytes.
- The whole disk is available as one big partition.
- Supports standard Commodore KERNAL IEC disk commands. This has number of implications:
- May be connected to any computer with an IEC serial bus port (VIC-20, C-64, C-128, and probably others...).
- No driver software is necessary on the computer, the hard drive works like a disk drive with a giant disk in it.
- The IEC bus is very slow, making the hard drive slow. But it is considerably faster than the 1541 disk drive.
- Custom file system that has the following features:
- Supports PRG, and SEQ file types, and a new DIR file type that represents subdirectories.
- Smallest addressable unit: 512 bytes (one ATA logical block).
- Max file size: 32 megabytes.
- Max number of directory entries: 256.
- Max number of nested subdirectories: unlimited.
- No support for USR and REL file types.
- No support for all Commodore DOS commands, especially the memory read/write/execute and block read/write/allocate/free. This implicates that fastloaders, copyprotected games and other programs doing more excotic things with the disk drive won't work.
- No possibility to run whole disk games - C64 files cannot be mapped as a drive.
Connect the IECATA board to the computer and to the ATA disk drive, and power on. If the error light does not turn off after some seconds, try a reset. If that does not help, there is a problem with the hard drive.
The hard drive has the drive number 10 (as opposed to the 1541 that is usually drive 8). Other than that, the hard drive is used in the same way that a 1541 disk drive.
The jumper J2 selects the timings on the serial bus. If open, normal C64 timing is used. If closed, fast VIC-20 timing is used (does not work with C64).
The following disk commands are supported (through disk channel 15):
- CD:<subdir> change directory
- MD:<subdir> make subdirectory
- SD:<subdir> scratch (delete) subdirectories, must be empty
- S:<file>> scratch (delete) files
- R:<new-file>=<old-file> rename file
- N format disk
- I initialize disk (actually ignored)
The syntax of these commands are the same as on Commodore DOS. Where appropriate, you may use wildcards (* and ?) just like on Commodore DOS.
Loading and saving files work just like on a 1541 disk drive. Note that only PRG and SEQ files may be created.
If you read the error channel (channel 15), you get one of these messages:
- 00: No error.
- 20: Initialize error, the hard drive does not have a valid file system.
- 21: Create error, the file or directory you try to create can not be created.
- 22: Not open error, you are trying to access a file that is not open.
- 23: Not found error, the file or directory is not found.
- 24: Syntax error.
- 25: Version message, this is shown after startup and gives the version of the IECATA software.
Examples of use
Loading a file from BASIC: LOAD"filename",10.
Saving a file from BASIC: SAVE"filename",10.
Loading the directory: LOAD"$",10.
Changing the directory: OPEN1,10,15,"CD:mydir":CLOSE1.
Formatting the disk: OPEN1,10,15,"N":CLOSE1.
The IECATA controller card contains an AVR 8515 microcontroller with 32 kilobytes of external SRAM. For more information about the
hardware, see the schematics below.
In IECATA V2 microcontroler AT90S8515 is replaced with ATmega162, which has 16kB Flash memory for program. Changed are also functions of ports B and D. So it is possible to reprogram the microcontroler from C64 level (via IEC) and requires only switching two jumpers.
|Original software by Asbjørn for AT90S8515. Notes says that has some minor problems with ATN handling.
|Corrected one, also AT90S8515. Changed error messages numbers. Changed SD into RD. Corrected ATN handling.
|Next corrections, needs ATmega162 (IECATA V2), as exceeds 8kB.
New, small board is designed. The 32kB SRAM and 74LS573 buffer is located under the controller. Works with no changes in software.
As ATMEGA8515 is used, the software was recompiled with V3.0 version number. Also, the device number is stored in EEPROM and can be changed with GO:n command.
* New IEC device number is used after IECATA reset.
|Device number||10, fixed||14, fixed||8 to 15*|
|Startus codes (errors) returned by IECATA|
|Not open error||22||61||61|
|Not found error||23||62||62|
Plans for 2008
- Parallel IEC (1551 like)
- SD card support
- .C64 file support
Files for download
- ieca006s.png 54.8kB (2008-03-21 17:06), uploaded by Jarek Adamski
- Schematic v006 (added resistor missed in v005).
- dev8-11.zip 36.3kB (2007-06-10 00:42)
- Four version of IECATA "flash.hex" (AT90S8515 firmware) with different device number to 8, 9, 10, 11. Not tested.
- iec0010d.jpg 86.0kB (2007-05-07 00:46)
- Monitor zoom with IECATA directory.
- iec0010c.jpg 74.5kB (2007-05-07 00:46)
- IECATA board placed over C64 case.
- iec0010b.jpg 59.4kB (2007-05-07 00:46)
- IECATA board connected with 2.5" harddisk.
- iec0010a.jpg 72.3kB (2007-05-07 00:46)
- Zoom to mouned board IECATA.
- iecata_wersja_finalna.jpg 86.4kB (2006-11-16 21:17), uploaded by bzyq
- Final look of the mounted controller together with a hard disk and own power supply.
- iecata_ver1.0_zestaw.jpg 82.0kB (2006-11-12 18:00), uploaded by bzyq
- Complete set while tests with C128D computer.
- iecata_ver1.0.jpg 68.1kB (2006-11-12 17:54), uploaded by bzyq
- First mounted item of IECATA controller.
- iecata_jozsef.zip 391.0kB (2006-11-11 02:01)
- Alternative board data (pictures, gerber files, part list).
- iecatadosprg.zip 4.5kB (2006-11-11 01:17), uploaded by bzyq
- [hu] Simple DOS for C64, working with IECATA controller, description in Hungarian.
- ieca-005.zip 46.4kB (2006-11-15 22:13)
- Schematic and board v005. Eagle data files.
- ieca-005.png 8.9kB (2006-11-07 10:43)
- Elements setting on v005 board. Picture generated by Eagle.
- iecata.tgz 197.4kB (2006-04-13 23:50)
- [en] Full documentation. Schematics in PDF and PS, boards as PS files, software compileable for Linux.
- iecata.pdf 63.8kB (2002-08-17 18:09)
- Original IECATA schematics, extracted from "iecata.tgz" archive.
Links to other pages
- IEC-ATA, page of Asbjørn Djupdal. Original documentaion source and prototype pictures.
- How to build IECATA into 1541-II case.
- Order form: do it yourself IECATA board, kit, or ready for use module (no case, no disk, no power supply and no IEC slots).
- [de] IECATA V2 - other board design with ATmega162 and patched software.
- ZX1541 : ZX81
- Commodore 1541 disk interface for ZX81.