TashTalk USB

09:00:07:FF:FF:FF is the default broadcast address for EtherTalk Phase 2 and it could change depending on zone. Only Phase 1 used FF:FF:FF:FF:FF:FF. Network "0" should only appear on broadcast packets (ie: 0.255), otherwise its not valid. The ImageWriter LocalTalk card has a few NBP bugs too, which makes things fun.
 
Hard-coding a destination network to '0' in the lookup packet looks to be a fix. Netatalk shows up in the results now. It is too early to make noise with the ImageWriter so I'll test that later. Now to consider how to handle such workarounds...
 
The ImageWriter shows up now too. I should add that this is over ethernet on windows - localtalk still doesn't show everything.

Printing isn't working yet either, it hangs querying printer status.
 
I put together a little PR that should fix the broadcast MACs. I admittedly mostly use Phase 1 so had not noticed things did not work with Phase 2. If you have time to check it out of course before I merge: https://github.com/FeralFirmware/TailTalk/pull/18

I'm kinda curious though why you had to use a network of 0 with the NBP lookup on EtherTalk - maybe @NJRoadfan knows? I would have thought that a network number not matching your own would mean the client would respond back to the wrong address (i.e 0.$SOCK instead of $NET.$SOCK that the client auto assigned), or does Netatalk/normal clients just ignore the net num for responses?
 
From Inside AppleTalk:

Node ID $FF indicates a broadcast to all nodes with a network number equal to that indicated by the specified network number. As long as this network number is nonzero, the packet is refered to as a network-specific broadcast. Although it will be received by all AppleTalk nodes on the data link, it should only be accepted by those with the indicated network number.

If the network number is zero, node ID $FF indicates either a network-wide or zone-specific broadcast. A network-wide broadcast is sent to all AppleTalk nodes on the data link and should be accepted by all those nodes. A zone-specific broadcast is sent to a particular zone multicast address. DDP should always accept such a packet, however higher level protocols like NBP and ZIP will discard the packet if it is not intended for the node’s zone (see Chapter 8, “Zone Information Protocol,” for details of zone multicast addressing).

Node ID 0 indicates any router on the network specified by the network number part of the node address. Packets addressed to node ID 0 are routed through the internet until they reach the first router directly connected to a network whose range includes the indicated network number. The packet is then delivered to that router. This facility is used by NBP.

Node ID $FE is reserved on EtherTalk and TokenTalk networks and should not be used as a node ID. This address is a valid node ID on LocalTalk networks
 
Last edited:
Back
Top