Welcome, Guest. Please login or register.

Author Topic: Amiga Ethernet Problems  (Read 4674 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show all replies
Re: Amiga Ethernet Problems
« on: August 15, 2012, 08:10:57 PM »
* Setup a unix PC as a DHCP server with some Ethernet MAC / IP / high level decoder
 * See if link is established in both directions

If you get ethernet frames in both directions and received then you have come far. The next step is to make sure ARP tables contain the correct IP. Then you can try out UDP (like NFS) or TCP (like FTP). DNS (using UDP) is quite convinient too (check /etc/resolv.conf).

How does it show up in the device list? as MAC address or IP? I think you could investigate if the Amiga IP stack is setup correctly.
 

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show all replies
Re: Amiga Ethernet Problems
« Reply #1 on: August 15, 2012, 10:30:18 PM »
Time to write a new TCP stack for Amiga? ;)
Last time I checked all existing stacks has serious, but different flaws..
 

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show all replies
Re: Amiga Ethernet Problems
« Reply #2 on: August 15, 2012, 11:00:38 PM »
According to quick read of the thread "Roadshow for 68K -Needs your support!" it seems to not happen. And will only be in binary form..

What is needed is something that works for KS1.3 with 68000 and better so it works on stock A500. Source should be included as well with a free license. Modularly based such that many cards can be supported and different types of protocols (arp/MAC, IP, DHCP, TCP, DNS).

The flaws:
 * MiamiTCP - no DHCP
 * Genesis - bugs, but 30% faster than MiamiTCP, requires MUI
 * AmiTCP
 * SANA - can't deal with promiscuous mode (broadcast problems too?)
etc..

Oh and you can't fix anything because the source is closed. And if you do fix.. can distribute due license. Author contact is lost in space..
« Last Edit: August 15, 2012, 11:14:52 PM by freqmax »
 

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show all replies
Re: Amiga Ethernet Problems
« Reply #3 on: August 16, 2012, 12:57:46 PM »
Quote from: matthey;703700
That's unrealistic for most modern stacks. Miami needs more than 512k with a GUI. Genesis looks like it can do with closer to 256k. The 68000 does not have as good of code density as the 68020+. A useful TCP/IP program is needed on top of that like a browser. Miami will run with 2.x if you choose an older more basic GUI. Genesis probably needs 3.x for Reaction or MUI. A 68000 with <1MB and KS1.3 is barbaric. Please upgrade if you want to run anything besides games.


A lot of things can be done with 68000 + 1 MB. But you have to skip the fancy GUI stuff and the upgrade hysteria. Using different binaries for 68000 and 68020 is also common and thus solves the code density problem.
A useful TCP/IP program may be Telnet and FTP, and definitely distributed filesystem(s).

Point is being able to use the same software foundation for all Amiga models. That reduces the number of source code modules to keep track of.

Quote from: matthey;703700
Genesis works with Reaction or MUI. The AmigaOS 3.9 version uses Reaction as default. Although AmigaOS 3.9 requires a 68020+, it looks like Genesis is compiled for the 68000 and can use the 68000 AmiTCP kernel. There is a lot of compiler fluff in the main Genesis program. I have a working modified version for the 68020+ that saves about 15k in program size and I haven't even optimized in the 68020+ integer multiplication and division yet. It would probably be possible to save 40k as the optimization is poor. What bugs do you know about?


MUI seems overkill for basic connectivity. And the bugs I read about on eabime (or something alike it).

Quote from: matthey;703700
I did find some very suspicious code in a function starting at $148b0. It looks like this:

lab_148b0:
   link a5,#0
   move.l d2,-(sp)
   move.l (8,a5),d2
   jsr lab_232
   move.l d2,-(sp)
   jsr lab_23a
   nop
   dc.w 0,$4e55 ;this would be an ori.b #$55,d0 but it's obviously not
   dc.w 0 ;this would also be the start of a ori.b with the next function used as the data

lab_148cc:
   link a5,#0
   move.l d2,-(sp)
   ...

This function would likely result in a crash (illegal instruction, illegal address or similar) or at least trashed memory as it falls into the next function with the wrong offset. It's strange how such code could be produced by a compiler. I created a fix in my modified Genesis program although I haven't figured out what causes this function to be executed yet. It is called (jsr) from 4 places in the program. Any other known bugs?


Personally I prefer to have the source code and fix things there rather than to rely on magic binary changes to fix things.

A basic network package would be configured using textfiles. Provide connectivity using driver layer, MAC to IP mapping via ARP, IP routing, and UDP/TCP. Then DHCP and WLAN configuration can be available as applications. Such that Telnet/FTP works. Anything else would be optional.
 

Offline freqmax

  • Hero Member
  • *****
  • Join Date: Mar 2006
  • Posts: 2179
    • Show all replies
Re: Amiga Ethernet Problems
« Reply #4 on: August 16, 2012, 02:34:58 PM »
There's a TCP stack for Commodore 64..