Skip to content

v1.2.5 Uthernet socket mode enabled

Latest

Choose a tag to compare

@eositis eositis released this 07 Oct 22:05
· 1 commit to main since this release

V1.2.5-eo

Introducing IPRAW(socket) mode data transfers to the Uthernet II emulation. Effectively this is a TCP offload engine, handing off the header creation and data encapsulation to the NIC, reducing Apple IIc compute workload.

Tested with a2osx and a2stream. a2stream crashes when the graphics mode switches to double hi res. Issue still under investigation. a2osx telnet and web services work. There are stability issues causing the stack to crash. these are also being investigated.

summary: works, but not stable. still a ton of effort needed.

1.2 series: Uthernet II emulation on Pico 2 W (RP2350). Use megaflash-pico2.uf2 from this folder.

Since V1.2.4-eo

W5100 socket mode (TCP / UDP / IPRAW)

  • Sn_IR / IR: write-1-to-clear. IMR resets to 0x0F so socket events show in IR unless the host masks them.
  • Deferred commands: TCP, UDP, and IPRAW OPEN, CONNECT, LISTEN, SEND, DISCON, and CLOSE finish on core 0. Sn_CR stays set until that command completes. MACRAW stays on the existing path.
  • SEND: TCP retries until the whole TX span is accepted, then raises SEND_OK once. UDP and IPRAW raise SEND_OK only when the send succeeds.
  • Status: LISTEN 0x14, CLOSE_WAIT 0x1C on peer FIN (unread RX kept), FIN_WAIT, LAST_ACK. DISCON shuts the TX side; CLOSE aborts.
  • OPEN then CONNECT: Sn_SR is published only after the defer slot is free, so a driver that treats status as command-done (a2stream) can issue CONNECT.
  • TCP RX: a segment that does not fit the socket ring is held. The advertised window follows host RECV and an 8 KiB socket (TCP_WND 8192).
  • Station address: STA address, gateway, and netmask are copied into SIPR / GAR / SUBR until the Apple writes those registers.