Welcome, Guest. Please login or register.


Author Topic: SymbOS (Read 446226 times)

Offline ssr86

  • EP user
  • *
  • Posts: 355
  • Country: pl
Re: SymbOS
« Reply #690 on: 2015.June.06. 08:58:57 »
No, I already have several mouses and interfaces for my EP....

What I really want is that soon every EP user got one....
Oh, sorry, but I just found it funny that you post about mice so much;P
Hope you didn't get offended.

Offline gflorez

  • EP addict
  • *
  • Posts: 3607
  • Country: es
    • Támogató Támogató
Re: SymbOS
« Reply #691 on: 2015.June.06. 09:22:03 »
Offended? Why? My answer was only a joke re-using your words....

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #692 on: 2015.June.15. 00:25:48 »
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 W5100 card. EdoZ made a little video for demonstating this:

https://www.youtube.com/watch?v=gAHQ4fkgOMc

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

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)

(click to enlarge)



TBH we had a lot fun again today!

But as I want to have it running everywhere 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 so much to the EP ethernet hardware!! (since April all work on this project is completely platform independant, so every line of code is for the EP as well!).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: SymbOS
« Reply #693 on: 2015.June.15. 00:35:17 »
Very amazing! :smt038

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #694 on: 2015.June.15. 19:50:19 »
Cool!!! I wish there would be SymbOS for EP with w5300 support (the hardware is planned) since I've started to write the emulation in my ... hmm newer ... emulator (Xep128), but since there is no software I can test with, it seems not to be an easy task :)
« Last Edit: 2015.June.15. 20:00:08 by lgb »

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #695 on: 2015.June.15. 20:39:03 »
You already implemented W5300 support in your new emulator?? When you send me the specs we can try some tests! :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #696 on: 2015.June.15. 20:44:03 »
You already implemented W5300 support in your new emulator?? When you send me the specs we can try some tests! :)

"started to write" (the code) only :-) Actually I can only follow the w5300 datasheet and implementing something like that :-)

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #697 on: 2015.June.15. 21:09:51 »
IIRC Bruce is using the indirect access, which is working with I/O ports. Did you already ask Bruce how it will be accessed?

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #698 on: 2015.June.15. 21:13:37 »
IIRC Bruce is using the indirect access, which is working with I/O ports. Did you already ask Bruce how it will be accessed?

Yes, of course. Simply the indirect mode of w5300 which requires only 8 (well,actually only 6 from the space of 8 ...) I/O ports. Thus, what I want to implement by specification is a subset of w5300 in indirect mode (subset, because its nature - emulation using the host OS tcp/ip, where I call the OS which runs the emulator as "host OS"). So things like raw mode and like won't work too much this way.

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #699 on: 2015.June.15. 21:29:22 »
So do you emulate these 6 ports exactly (maybe only in TCP mode)?

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #700 on: 2015.June.15. 21:42:01 »
So do you emulate these 6 ports exactly (maybe only in TCP mode)?

Yes, basically, w5300 is a 16 bit device, but can be used with 8 bit bus as well, where two ports form one "true" 16 bit wide port, the order of ports are the opposite what we are familiar with Z80 and x86 byte order though. The 0x400 internal register space (which can be used as-is in direct mode, but it's not our case) means actually 0x200 ports (in 16 bit mode). The only three registers (but x2 as with 8 bit mode) used in indirect mode is basically MR (mode register), IDM_AR (the adress of the register you want to select) and IDM_MR (read/write the selected resister then). Actually it's kinda easy to implement, the hard part is to emulate those tons of registers you can access via this indirect scheme then. Some of them I simply don't care like MAC address, gateway etc, as host OS would do things anyway. Of course socket registers should be implemented, and basically the network API of the host OS should be accessed as "they would be" w5300 registers with this rather thin emulation layer. I can see what I can do, the problem that it's platform specific, til now my emulator (Xep128) as used SDL it was easy to compile for Windows without minor or any change (as I don't have windows, it's just a bonus for me, but still it's important for others maybe). However network is something different, so I have to adopt things to be somewhat platform specific, or I can try to use a layer like SDL_net which hides the implementation details of a give platform behind a common API, as regular SDL does for video and audio already, for example.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #701 on: 2015.June.15. 23:14:50 »
Moreover: using the TCP/IP stack of the host OS is tricky. UDP and TCP connecting may work, listening can have issues if the given port is already used by the host OS. Also, local ports used by the EP side may be mapped to another on the host OS side. ICMP is kinda hard, but unless you feel "ping or die", some can live without that. It's because (at least on UNIX like OSes) a regular process can't operate with ICMP stuffs because of security reasons. Of course RAW mode is a big no-no. I would "patch off" DHCP like requests sent by the emulated EP and "answer" from the emulator itself, since for real the emulated EP does not have discrete IP address but the host OS's one, so a real DHCP request to the network won't work too much (at least if there is EP software which can do DHCP ... Can SymbOS do?). Sounds a bit complicated, but still, I think, it's easier to do than writing a TCP/IP implementation and using a pseudo raw (or whatever we want to name it) interface in the host OS (when the emulator really has a separated IP address!). I thought I am crazy enough to get an idea like this, but "of course" there are no new ideas: it seems FUSE (ZX Spectrum emulator mainly for UNIX-like systems) has w5100 (yeah, not 5300) with a similar implementation and theory and also limitations ...

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #702 on: 2015.June.19. 09:12:05 »
Prodatron, how mouse detection is implemented in SymbOS/EP? I only ask this because I noticed an odd behaviour with my Enterprise-128 (Xep128) emulator. Mouse is only emulated, if you click inside the emulation window ("mouse grab mode"), before that, you can use numeric keypad arrow keys as joystick. If I start SymbOS in mouse grab mode, it works. But if I don't it's useless the enter into mouse grab mode, pointer does not react as well. Zozo commented (and it seems the only logical answer) this as SymbOS should have some kind of mouse detection, and if it fails at the startup, mouse won't work even if you plug it meanwhile (or in an emulator: if mouse emulation is switched on meanwhile). It's a problem, as some EP software seem to be picky when having mouse emulated (like EPDOS) if it would use joystick for example. So I can't see a clear solution now, unless if I can implement a workaround, to "cheat" for SymbOS there is some mouse, even if it's not emulated at the detection time only later. Of course it's not a fatal error, as user can enter into mouse grab mode with a click before starting SymbOS, but it's somewhat uncomfortable as for example I always forget it, and have to restart SymbOS to work this around. Thanks for your answer in advance!

Offline Prodatron

  • EP user
  • *
  • Posts: 256
  • Country: de
  • Back on the Z80
    • http://www.symbos.de
Re: SymbOS
« Reply #703 on: 2015.June.19. 10:56:09 »
That's true, it detects the mouse during startup. It has to decide if it will handle the signals from control port 1 as coming from a joystick or from a mouse. If it's a mouse, it will stay in mouse mode, otherwise it will stay in joystick mode. For the MSX version I added a key combination to start this detection later again. It seems, that I have to do the same for the EP now, too :)
I never had this problem with MSX emulators btw. Here you always choose in the settings, what is connected at which control port (joystick or mouse or nothing). Can't you do the same in Xep128?

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: SymbOS
« Reply #704 on: 2015.June.19. 11:31:17 »
I never had this problem with MSX emulators btw. Here you always choose in the settings, what is connected at which control port (joystick or mouse or nothing). Can't you do the same in Xep128?

Of course I can. But what I wanted to have some kind of "adaptive" stuff, so if user expressed their will to use mouse we need no more complex interaction like do a configuration setting. I mean: mouse emulation only works if user clicked on the emulated screen first, which cause to enter into mouse grab mode (ie: the PC mouse cursor is hide and you can't leave the window). This also causes in Xep128 to change the emulation from joystick to mouse. Maybe this is not the best idea, indeed ... I only thought that I can detect somehow that SymbOS tries to test if joystick presents and then I can auto-switch into mouse emulation, for example. Just for that, I should know what exactly SymbOS does to detect joystick/mouse. But now I am thinking if it worth at all to try to implement something like this ...