[NTLK] [ANN] ATA Support 1.0RC6.1

From: Paul Guyot (pguyot_at_kallisys.net)
Date: Tue Oct 28 2003 - 01:05:52 PST


Hi all,

I'm pleased to announce ATA Support 1.0RC6.1.

Summary.
--------

This release fixes a bug known as the -1001004 bug where the MP1x0
couldn't use ATA cards. It also fixes another bug for the support of
MP120D and MP130D, but no one noticed it since it was hidden by the
-1001004 bug.

You can download this new build from my website:
http://www.kallisys.com/newton/ata/

Details.
--------
Newtons normally can only use linear cards for storage and these are
becoming difficult to find and expensive. ATA Support is a software
to use the now extremely common ATA cards (like SmartMedia, Sony
MemoryStick or CompactFlash) in Newtons running NewtonOS 2.0 and
higher. I've been working on this project since June 2000 and every
day we're getting closer to a 1.0 release that will be the milestone
where support for ATA cards will reach the ease of use, the
efficiency and the safety of the built-in support for linear cards.

ATA Support 1.0RC6 fixed a bug where MP1x0 would no longer work. RC5
and previous builds only worked in 16 bits mode and I couldn't get
this mode to work with MP1x0s, I can only discuss with cards in 8
bits mode. Most card work in both modes (they do have to work in both
modes), however, unless I figure out how to convince the MP1x0 PCMCIA
controller to make cards work in 16 bits, the buggy ATA cards that
don't work in 8 bits mode will never work with MP1x0. I have received
three reports of such cards and I apologize for these and future
incompatibilities of the like.

Back to RC6.1 release. Since this old bug appeared, I developed a
technique to exchange events with the NewtonScript application. This
technique is based on AEvents and AEventHandler. Unfortunately, the
code actually didn't work with MP1x0 because it relies on the way
methods are called in C++ (also known as the runtime architecture)
and I thought this wouldn't be different on NewtonOS 2.0. Usually,
for a given operating system, the runtime architecture doesn't change
unless the processor does change, because changing it would break so
many software as it defines how the system functions are called from
programs.

The Newton C++ Development tools use the runtime architecture of
NewtonOS 2.1. Consequently, ATA Support could only work on NewtonOS
2.1. As far as I know, the mechanism involved only appears in event
handlers.

In the end I figured it out, and ATA Support 1.0RC6.1 is just RC6
with a workaround for this difference in the runtime architecture.
There is also another fix for a problem with MP120D and MP130D.
MP2x00s and eMate 300 users do not need to upgrade, although an
upgrade shouldn't hurt.

A technote within the Bowels project explaining how to cope with the
difference in the runtime architecture of NewtonOS 2.1 and 2.0 will
be released soon. I've actually started writing it, and the sample
code is actually ready. It will actually also explain how to send
events and receive them within the NewtonScript world, which is
definitely the best way to communicate with the NewtonScript world
from another task. Some other developers might be interested in such
a technique, even on NewtonOS 2.0 (it's actually the technique
provided by Lantern, the Ethernet framework, to communicate between
the drivers and the NewtonScript world).

Paul

-- 
Philosophie de baignoire - consultations sur rendez-vous.
NPDS/NewtonOS: http://newton.kallisys.net:8080/
Apache/FreeBSD: http://www.kallisys.com/
-- 
This is the NewtonTalk list - http://www.newtontalk.net/ for all inquiries
List FAQ/Etiquette/Terms: http://www.newtontalk.net/faq.html
Official Newton FAQ: http://www.chuma.org/newton/faq/


This archive was generated by hypermail 2.1.5 : Tue Oct 28 2003 - 08:30:01 PST