8bit-Dude Posted December 13, 2018 Share Posted December 13, 2018 (edited) 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 December 13, 2018 by 8bit-Dude Quote Link to comment Share on other sites More sharing options...
ol.sc Posted December 13, 2018 Share Posted December 13, 2018 (edited) Hi, 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. Regards, Oliver Edited December 13, 2018 by ol.sc Quote Link to comment Share on other sites More sharing options...
8bit-Dude Posted December 13, 2018 Author Share Posted December 13, 2018 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... Quote Link to comment Share on other sites More sharing options...
8bit-Dude Posted December 19, 2018 Author Share Posted December 19, 2018 @Oli: I have been busy the last 2 nights, check it out: http://forum.defence-force.org/viewtopic.php?f=23&t=1249&p=18569#p18551 Quote Link to comment Share on other sites More sharing options...
ol.sc Posted December 19, 2018 Share Posted December 19, 2018 Thanks for the link :-) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.