Jump to content

Arduino Based Ethernet Adaptor for the Oric Atmos

Recommended Posts

This discussion was started in the wrong section, so I am creating a new thread here.


@Oli: So I would like to use an Arduino with Ethernet Module to interface with IP65 on the Oric Atmos.


On the Atmos side, I found that I/O register #0301 corresponds to a byte on the printer interface (see p229 of this manual: http://www.defence-force.org/computing/oric/library/lib_manual_oric/files/manual_atmos.pdf)

Question 1: Is 1 registers enough??? (i.e: by adding a small layer that sends/fetches data from the printer port and maps it ready for IP65)
Question 2: Can you give me a list of registers needed by IP65, and their function?


On the Arduino side, I found this library which implements the basics of an ethernet layer: https://www.arduino.cc/en/Reference/Ethernet

Question 3: Can you take a quick look and tell me if all the functions needed by IP65 are implemented in this arduino lib?


Many thanks in advance!!!

Edited by 8bit-Dude

Share this post

Link to post
Share on other sites



Your three questions show me that there's a major misconception :-(


IP65 is a TCP/IP library talking to several Ethernet chips (incl. the W5100). That "Arduino Ethernet library" is a TCP/IP library talking to the Ethernet chip W5100. So there's of course no point in stacking both as they roughly do the same. If you want to use that "Arduino Ethernet library" then you'll do so from your game and drop IP65. This is by the way the very same thing you do when you want to use the ESP8266/ESP32. In both scenarios IP65 doesn't play any role aka I'm not involved in any way.


So just in case you want to use IP65:


As I wrote before, IP65 needs the registers of a CS8900A or W5100 or LAN91C96 mapped STRAIGHT into the 6502 address space. As soon as you modify that setup in any way you need to write your own Ethernet driver for IP65.


Apart from that general aspect you need to know that all three Ethernet chips mentioned above support so-called auto-increment registers. That means when it comes to actually transfer data from/to the Ethernet chip RAM to/from the 6502 RAM one simply does successive reads/writes (e.g. LDA <register addr>/STA <register addr>). So even a read from the Ethernet chip register in question has a side effect! Therefore the hardware design needs to make ABSOLUTELY sure that there are no so-called phantom reads at any point in time.




Edited by ol.sc

Share this post

Link to post
Share on other sites

Ok, it makes perfect sense now!


From the above, I understand that the best is to use the Arduino TCP/IP layer.

I will only need to send/fetch the contents of packets, and Arduino will handle the rest...

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...