Re: [NTLK] Lantern, Get_Card_Info.pkg & IBM Ethernet Credit CardII

From: Paul Guyot (pguyot_at_kallisys.net)
Date: Sat Feb 01 2003 - 02:13:04 PST


À (At) 0:52 -0500 1/02/03, David Holmes écrivait (wrote) :
>Paul, I appreciate all this useful detail. I will do some
>more rereading and looking at code with this new info.

Did I mention that Lantern Data Link Layer Tools pdf is a good manual
for this kind of details?

>I decided to try another card I had as well but while this
>one at least gets the RecognizeCard() it seems that the
>productname is a problem - it is a Linksys with the ID
>which includes the chars "(" and ")" and it seems I can't
>make constants that will pass the Install (NE2K) no matter
>what I try. Ok, so perhaps I'm a slightly better assembler
>programmer than NewtonScripter.

Very probably because parentheses aren't a problem. Hiroshi says
there is an issue with the CIS string is longer than 64 or 32
characters (or something like this), which seems weird to me as one
could very probably convince Lantern to work with such cards.
Still. If you have parentheses, just put them in the strings as in:
Constant kDeviceCISProductName := "look, I have (parentheses)";

> > GetCardInfo is a very special card handler. It tells the system that
>
>By "tells the system it doesn't recognize any card" you are
>referring to the return value (kError_Unrecognized_Card)

Yes, exactly.

> > it doesn't recognize any card and then it copies the data somehow to
>> display it later from the NewtonScript task.
>
>This also makes more sense now with your explanation about the
>card handlers / Newton Devices. Let me see if I have this
>right - because the other cards I tried had CIS data that the
>card server could parse, the card server calls RecognizeCard()
>so the original version of GetCardInfo works. But because the
>IBM card has CIS data that the card server cannot parse, then
>ParseUnrecognizedCard() is called. In the changed GetCardInfo
>with the expanded ParseUnrecognizedCard(), now the new
> inCard->GetCardManufacturer() (etc.) works like RecognizeCard()
>did and displays the data for the IBM card.

It was able to get this information. But some other CIS records might
be unreadable (by the Newton) and therefore the error in the parsing
and the fact that the card server calls ParseUnrecognizedCard. CIS
records include the voltage of the card, the kind of card, etc. Not
being able to read it entirely could bring issues.

All that to say that you could patch Lantern card handler (Newton
Devices) to work with unrecognized card, but you might have issues.
In particular, Hiroshi says that if the Newton accesses a 3V card at
5V, it can damage both the card and the Newton. You've be warned....

In case you really want to try to modify Newton Devices, change word
at 0x2AEE from 00EB to 0182. It should plug ParseUnrecognizedCard to
RecognizeCard (untested). Beware at what kind of card you insert
afterwards.

Paul

-- 
NPDS: http://newton.kallisys.net:8080/
Apache: 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 : Sun Feb 02 2003 - 20:30:00 PST