News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Prodatron

SymbOS network support development

Started by Prodatron, 20:33, 23 March 15

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Apollo

@rpalmer:
thanks for the information, I didn't know about CPCIP to be honest but it nice to hear about such projects. So kudos to all of you implementing IPv4 network stacks and even more to implement features like DHCP! I never even dreamed about to be once able to have a DHCP server allocating an IP address to my CPC, ever!

@prodatron:
thanks for the addition info, sadly the SF3 never got finished as it would be a nice extension over SF2 as far I remember the specs. Especially nowadays it is much cheaper to produce low volume hardware as it was 5 years ago.
CPC - My beloved first computer!

Prodatron

Seems, that the website with CPCIP isn't online anymore?
Attached is the CPCIP package, which was developed 1999-2001 by Mark Rison.


GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Prodatron

I was implementing a "localecho" network adapter, which just echos incoming TCP and UDP packets. This makes it possible to do important basic tests on the CPC emulator as well, which is good, as debugging in WinApe is much more comfortable than on the real hardware. So I was able to start 4 Telnet sessions at the same time, while the 5th session returned with a "no free socket" error:
[attach=2]
I am now planning to implement a real "localhost" network adapter, as this is probably good when writing network apps - in this case, some server apps are required as well though.

After fixing a bug in the routine for generating random local ports (49152–65535) it was possible to start multiple Telnet sessions on the real hardware:


HispaMSX-BBS was even complaining, that it wouldn't be possible to be there two times :D

(but with my Z80 it was :D )

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

seanb

Quote from: Prodatron on 12:13, 31 May 15

HispaMSX-BBS was even complaining, that it wouldn't be possible to be there two times :D

(but with my Z80 it was :D )


Have you just taken the first steps to create HAL  :o
Thou shall not question Captain Wrong!

Prodatron

Trebmints Unify IDE for SymbOS is now supporting TCP as well and therefore most of the important network capabilities at all.

Today Trebmint implemented the TCP API of the Network Daemon and so we were able to make a successful test this evening:
[attachimg=1]
Sending data packages to the echotool on my Notebook worked well:
[attachimg=2]

The impressive thing is the little amount of code you have to write to get such a result including
- opening connection
- send data
- receive data
- close the connection
...:

Function Net_Event
    If Net.Event.Type And 128  Then
        Label1.Text=Net.TCP.String.Receive(Net.Event.Bytes.Received)  // ("RECEIVE TCP")
        Label1.Refresh
    EndIf
EndF


// Event Control Button2 ("OPEN TCP")
Function Button2_Event
    myip$=Net.DNS.Resolve("192.168.178.58")
    Net.TCP.Client.Open(10000,myip$,10000)
    Label3.Text="IP:"+myip$
    Label3.Refresh
EndF


// Event Control Button3 ("CLOSE TCP")
Function Button3_Event
    Net.TCP.Close
EndF


// Event Control Button4 ("SEND TCP")
Function Button4_Event
    Net.TCP.Send(Control.Text(TextLine1)))
EndF

And that's it. Coding network apps on Z80 machines can't be easier :)

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

ronaldo

Wow! Man! This was impossible even on our imaginations years ago. Thank you for your hard work  :)

Prodatron

Quote from: ronaldo on 20:32, 01 June 15
Wow! Man! This was impossible even on our imaginations years ago. Thank you for your hard work  :)

This morning I was connected with my Z80 to a Commodore C128, which is running 24/7 as a BBS via Telnet:
[attach=2]

TBH that was quite impressive to speak to another 8bit directly :)

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

ronaldo

Quote from: Prodatron on 21:51, 01 June 15
TBH that was quite impressive to speak to another 8bit directly :)

It actually is. It is something new even for our present days: imagining this running 25 years ago... It'd have been like magic :D

TFM

Quote from: ronaldo on 21:59, 01 June 15
It actually is. It is something new even for our present days: imagining this running 25 years ago... It'd have been like magic :D


25 years ago I used a nice 2400 baud modem to chat with mailboxes, but it was not a Commodore  ;)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Prodatron

Today EdoZ asked me, why not implementing a nice little command line tool, and so I couldn't resist and programmed NETSTAT, known from BSD, Linux and Windows   :P
[attach=2]
You can see it in the lower left shell window. I have been connected with the HispaMSX-BBS, ASCII-Star Wars (towel.blinkenlights.nl) and Telehack.com. The network daemon provides a function to send the status of all available sockets, and so netstat is using this to display it in exactly the same way like you know it from the "big" one. Now you can figure out, if there is a backdoor application installed in SymbOS or not  :D .

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Trebmint

Hey guys, I've been working on getting Prodatron symbos networking into unify the last week, and its great. We're going to have a decent amount of cool network software ready for the launch of the beta 3/network daemon.


Problem is for the CPC is that as yet we have no hardware or emulation that allows us to use it other than localhost, so unlike the MSX (and soon EP) we wont be able to play online against each other. Any Hardware or Emulator guys out there we need you?

Prodatron

#111
During the last days a lot stuff happend. The Network Daemon is now fully configurable, and the new "Driver" tab shows the status of the LEDs of the currently used MSX ethernet card. EdoZ made a little video for demonstating this:



You can see, how especially TX, RX and Link react on EdoZ char typing in the Telnet console.
At the same time Trebmint completed a huge part of the network support in the Unify IDE. That made it possible to write a simple but fully working internet messenger, called the "Simple Messenger", for SymbOS with Unify, which only consists of 30 lines of code - the initial development took 5 minutes :D

And so today we were able to have this very special moment: I started two instances of the messenger as a server on my 8bit machine in Germany, and EdoZ from The Netherlands and NYYRIKKI from Finland connected as clients from their Z80 computers directly over the internet. So I had two chat sessions running on my Z80. As this worked well, NYYRIKKI and EdoZ opened a direct chat session as well. All three MSX were connected to each other at the same time!

(click to enlarge)



TBH we had a lot fun again today! :)

But as I am developing everything on the CPC with WinApe I also created the "localhost" driver this week. It already supports TCP and a fake kind of DNS, which is fine for 90% of the apps.
This was a test on the Amstrad CPC:



Let's keep this all finished for a beta release end of this month :) And I am looking forward to any CPC network hardware like the W5100 or Octos ESP8266, soon (since April all work on this project is completely platform independant :) ).

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

ronaldo

This is absolutely unbelivable. Can't wait to see this working on my real Amstrad CPC someday soon :D

FloppySoftware

Congratulations! Very impressive!  :o
floppysoftware.es < NEW URL!!!
cpm-connections.blogspot.com.es

Ygdrazil

This is so great  ;D


/Ygdrazil

CraigsBar

All we need now is a Ethernet m4x card.
IRC:  #Retro4All on Freenode

TotO

Quote from: CraigsBar on 09:47, 16 June 15
All we need now is a Ethernet m4x card.
I think that you only have to connect a TTL to Ethernet module on the MiniBooster...
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

CraigsBar

I like the sound of that. All these minibooster addons, mouse, network, rtc ... Will they ever exist? And would it be possible to use them at the same time. I mean symbos would benefit from all of them.
IRC:  #Retro4All on Freenode

Prodatron

I posted this Minibooster AddOn (ESP8266) from Octoate some pages ago, which was already working:
SymbOS network support development


GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

TFM

Quote from: Prodatron on 15:36, 16 June 15
I posted this Minibooster AddOn (ESP8266) from Octoate some pages ago, which was already working:
SymbOS network support development


On the pictures I see the Mother X4 with cards and I see th ESP working in ... I guess ... BASIC.


Do you have implemented it for SymbOS now? A dream comes true!  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

KaosOverride

From my side bad news. Definitely the WZ5100 in  IO port mode doesn't work well. In some way when you make some reads / writes, the counter position makes more than one jump. I'll have to redo the full project with a microcontroller in the middle, ATMEGA, or the like...  The memory range mode probes to work OK at ZX Spectrum and MSX. Also SPI mode is an option, because there are a lot of cheap WZ5100 modules with SPI only interface. So If I manage the MCU to work as an I/O port to "RAM" emulation, then... I have hope :D

Also if someone wants to try with WZ5100 at the CPC we can join forces!!
KaosOverride · GitHub
MEGA Amstrad Public Amstrad folder

Prodatron

#121
Here is another video for new CPC ethernet hardware motivation :P




GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Edoz(MSX)

Crazy to see both screens like this :D

seanb

Ha. Love the zilog z80 inside logo
Thou shall not question Captain Wrong!

MacDeath

what about Gameboy's Webcam ?  ;D

Also can't a quite standard Arduino+ethernet shield combo be used as proper network card ?

Powered by SMFPacks Menu Editor Mod