Project catweasel: Difference between revisions

From www.evillabs.net
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 5: Line 5:
[[Image:CatWeasel-Mk2-Anniversary.jpg]]
[[Image:CatWeasel-Mk2-Anniversary.jpg]]


The CatWeasel Mk2 was designed to work only on the Amiga 1200 (via the 'clockport' internal expansion adapter, or the Amiga 4000's IDE interface (which, due to a feature of its design, allowed extra hidden IDE control ports to be available as a side-band).
The CatWeasel Mk2 was designed to work only on the Amiga 1200 (via the 'clockport' internal expansion interface), or the Amiga 4000's IDE interface (which, due to a feature of its design, allowed extra hidden IDE control ports to be available as a side-band).




0x1f0-0x1f7 => Pass through to IDE devices
0x1f0-0x1f7 => Pass through to IDE devices
0x3f6      => Pass through to IDE devices
0x3f6      => Pass through to IDE devices
0x3f0-0x3f5 => Controls the CatWeasel Mk2
0x3f0-0x3f5 => Controls the CatWeasel Mk2


== Interfacing with Linux ==
== Interfacing with Linux ==


Unfortunately, we can't just plug the CastWeasel Mk2 into an IDE cable and go. The PATA IDE ports on the 'upper' range of the the PATA interface are trimmed to only port 0x3f6. Ports 0x3f0-0x3f5 (needed for the CatWeasel interface) are not available.
Unfortunately, we can't just plug the CastWeasel Mk2 into a PC's IDE port and go. The PATA IDE ports on the 'upper' range of the PC IDE interface are trimmed to only port 0x3f6. Ports 0x3f0-0x3f5 (needed for the CatWeasel interface) are not available.


However, we can use the CatWeasel Mk2 via the IDE port on almost any x86 Linux machine with native PATA IDE ports, with a simple IDE cable modification. By swapping the IDE_CS0 (pin 37) and IDE_CS1 (pin 38) lines, we can make a dedicated PATA IDE cable to talk to the CatWeasel Mk2.
However, we can use the CatWeasel Mk2 via the IDE port on almost any x86 Linux machine with native PATA IDE ports, with a simple IDE cable modification. By swapping the IDE_CS0 (pin 37) and IDE_CS1 (pin 38) lines, we can make a dedicated PATA IDE cable to talk to the CatWeasel Mk2.
Line 20: Line 22:
# Build a 40-pin IDE cable with a twist on the next to last two lines (37 and 38).
# Build a 40-pin IDE cable with a twist on the next to last two lines (37 and 38).
#* This swaps the chip selects  (IDE_CS0 and IDE_CS1) for the upper and lower set of registers. In this way, ports 0x1f0-0x1f7 will now actually be sent as ports 0x3f0-0x3f7.
#* This swaps the chip selects  (IDE_CS0 and IDE_CS1) for the upper and lower set of registers. In this way, ports 0x1f0-0x1f7 will now actually be sent as ports 0x3f0-0x3f7.
# Connect the 'Weasel' cable from a PATA motherboard port to the CatWeasel Mk2.
# Connect this 'CatWeasel IDE' cable from a PATA motherboard port to the CatWeasel Mk2.
#* NOTE: A USB to IDE adapter will *not* work. You must use a motherboard PATA port!
#* NOTE: A USB to IDE adapter will *not* work. You must use a motherboard PATA port!
#* NOTE: The 'index' pin is may not removed on some the CatWeasel Mk2 IDE connectors. Please be careful when removing it.
#* NOTE: The 'index' pin may not removed on the CatWeasel Mk2 IDE connector of some models. Please be careful if you need to remove it.
# Apply the following software patches as needed:
# I have updated the following CatWeasel software:
#* [[http://www.github.com/ezrec/cw2dmk]] Mk2 via IDE support for Tim Mann's [[http://www.tim-mann.org/catweasel.html cw2dmk]] tool.
#* [[http://www.github.com/ezrec/cw2dmk/tree/v4.4-ide cw2dmk v4.4-ide]] Mk2 via IDE support for Tim Mann's [[http://www.tim-mann.org/catweasel.html cw2dmk]] tool for preserving TRS-80 disk image.
#* [[http://github.com/ezrec/cw/tree/v0.13-ide cw v0.13-ide]] Mk2 via IDE support for Karsten Scheibler's [[http://unusedino.de/cw/ cw]] Linux kernel driver and ''cwtool'' utility.
 
I am undecided about Michael Krause's block-level [[http://www.soundtracker.org/raw/cwfloppy/index.html cwfloppy]] driver, as it has no write support for Linux 2.6. It is more likely that I will work on a user-space FUSE block driver that uses the Karsten Scheibler's ''cwio'' library as a back end. Not a pressing problem at the moment. It should be a Small Matter of Programming.

Latest revision as of 00:00, 7 August 2010

CatWeasel Mk2 Floppy Controller

The CatWeasel Mk2 Floppy Controller is available from [Individual Computers], and is readily available on the Ebay and Resale markets.

The CatWeasel Mk2 was designed to work only on the Amiga 1200 (via the 'clockport' internal expansion interface), or the Amiga 4000's IDE interface (which, due to a feature of its design, allowed extra hidden IDE control ports to be available as a side-band).


0x1f0-0x1f7 => Pass through to IDE devices

0x3f6 => Pass through to IDE devices

0x3f0-0x3f5 => Controls the CatWeasel Mk2

Interfacing with Linux

Unfortunately, we can't just plug the CastWeasel Mk2 into a PC's IDE port and go. The PATA IDE ports on the 'upper' range of the PC IDE interface are trimmed to only port 0x3f6. Ports 0x3f0-0x3f5 (needed for the CatWeasel interface) are not available.

However, we can use the CatWeasel Mk2 via the IDE port on almost any x86 Linux machine with native PATA IDE ports, with a simple IDE cable modification. By swapping the IDE_CS0 (pin 37) and IDE_CS1 (pin 38) lines, we can make a dedicated PATA IDE cable to talk to the CatWeasel Mk2.

  1. Build a 40-pin IDE cable with a twist on the next to last two lines (37 and 38).
    • This swaps the chip selects (IDE_CS0 and IDE_CS1) for the upper and lower set of registers. In this way, ports 0x1f0-0x1f7 will now actually be sent as ports 0x3f0-0x3f7.
  2. Connect this 'CatWeasel IDE' cable from a PATA motherboard port to the CatWeasel Mk2.
    • NOTE: A USB to IDE adapter will *not* work. You must use a motherboard PATA port!
    • NOTE: The 'index' pin may not removed on the CatWeasel Mk2 IDE connector of some models. Please be careful if you need to remove it.
  3. I have updated the following CatWeasel software:
    • [cw2dmk v4.4-ide] Mk2 via IDE support for Tim Mann's [cw2dmk] tool for preserving TRS-80 disk image.
    • [cw v0.13-ide] Mk2 via IDE support for Karsten Scheibler's [cw] Linux kernel driver and cwtool utility.

I am undecided about Michael Krause's block-level [cwfloppy] driver, as it has no write support for Linux 2.6. It is more likely that I will work on a user-space FUSE block driver that uses the Karsten Scheibler's cwio library as a back end. Not a pressing problem at the moment. It should be a Small Matter of Programming.