Jump to content
IGNORED

How Do You Pass Info Amongst Two or More Atari800Win Emulation Instances?


Recommended Posts

Well, the title says it all... There is some communication functionality built in to the emulator... how do we harness that power?

 

In my earlier post today, i mentioned the possibility of doing a Fairlight CMI reverse engineering. If message passing between different instances of the Atari emulator was available, you would sort of have an infinitely scalable Atari (basically a network of virtual machines, running on the desktop).

 

If this could be done, processing power could be neatly divided amongst multiple running instances of the emulator. So, each Fairlight page could be run on a separate instance.

 

On my antique dual Xeon 550s I can run a whole lot of instances of Atari800Win simultaneously with zero slowdown, so I would imagine that modern PCs should be able to handle this no problem, either.

 

What options do we have here with passing messages to other running emu windows?

 

Some code examples would be welcome.

 

Also, if there was a way to modify the Atari800Win source code to allow each new instance of Atari800Win to create an assigned TCP/IP port for itself (or better yet, a virtual IP address), and a way for other instances to connect to that port (the Atari will still think that it is communicating via serial, the emu could handle fast port switching, based on context (or a broadcast type message to a port-range that could be filtered by each instance for relevant data... sort of like the MIDI protocol)), it would probably be a very good feature to have in the emulator.

 

In fact, a MIDI implementation alone could pass info, by using it in a non-standard way, as a control protocol for any data. In such a case, each instance would receive a MIDI port & channel number. Data would then be passed via System Exclusive, or the Sample Dump Standard (more info here).

 

These are just a few ideas for virtual networking of emu instances. Other thoughts on this are very welcome.

 

 

L8R.

Link to comment
Share on other sites

There's a Kailera (sp?) version of the emulator that supports networking to an extent - maybe something could work there.

 

There's the "R:" device patch. I havent' used it, no idea if some sort of loopback mode might allow 2 instances to communicate.

 

Best bet might be files on a common "H:" path. Problem is, if you have a file open for output on one instance, you probably can't have it open for input on another.

 

I think you can have .ATR images shared, although I imagine some problems might crop up if one instance wants to write to it.

Link to comment
Share on other sites

There's a Kailera (sp?) version of the emulator that supports networking to an extent - maybe something could work there.

 

There's the "R:" device patch. I havent' used it, no idea if some sort of loopback mode might allow 2 instances to communicate.

 

Best bet might be files on a common "H:" path. Problem is, if you have a file open for output on one instance, you probably can't have it open for input on another.

 

I think you can have .ATR images shared, although I imagine some problems might crop up if one instance wants to write to it.

 

- Has anyone successfully used R: to connect two instances of the emulator on the same desktop?

- If so, some code examples would be handy.

 

I'll have to check to see how much of the 850 interface is actually implemented in the code for Atari800Win. I doubt that more than one serial port of the interface was actually implemented.

 

It would be a cool thing if Atari800Win accepted plugins, that had direct access to specific OS routines.

 

I could see a full implementation of the 850 being a very cool thing as a plug in module for use with inter-emulator virtual networking on the desktop.

 

Since this is all software anyway, it would be very cool to mod the 850 handler to allow for multiple 850s in the emu (it could reside in expansion RAM).

 

Given the modular nature of something like that, an add-on to such a plugin could basically turn it into a virtual NIC (down the road).

 

All brainstorming musings aside, there must be a few ways to accomplish inter-emu communication with just the stock Atari800Win emu.

 

- Has anyone tried running a BBS in one window, while connecting from another emu window?

- Has anyone gotten MIDI-maze to run & connect in two windows on the same machine?

- Has anyone redirected normal screen editing I/O handlers to R: and communicated with a different instance of the emu on the same desktop?

- Even just a connection of two terminal windows on the same desktop would be a start, for us to find out the limitations of the R: device on the emu.

 

The H: solution is a creative one, if it works, but just judging from OS design in computer history, it sounds like asking for trouble.

 

Aside from the data rates listed in the tech manuals, what are your real-world experiences with regard to the available data bandwidth on the four ports of the 850? Could the four ports be ganged to increase the throughput? Real-world observations of SIO & joystick port transmissions would also be helpful.

 

Lastly, I wonder if there is a way to mis-use the P: handler to send a chunk of text to a separate instance of the emu. Did the 850 support input or only output on the Parallel port? Could the emu's P: handler spit info out to what it thinks is notepad, but is really a small redirection program that formats the data in a meaningful way for the next emu to be able to use as input (in a quick fashion)?

 

Well, there's a few things to think about...

 

= )

 

 

I'll attach the 850 manual. I'll have to peruse it myself before I start messing around with some of this. In the meantime, must make more coffee!

 

 

L8R.

850ATARI.pdf

850___830_Reference_Text__19xx__Atari_.zip

Edited by UNIXcoffee928
Link to comment
Share on other sites

I wonder would it be worthwhile to write a, say T: driver (for TCP/IP) that allowed IP connectivity via the emulator? Cheating I know, but then you could say:

 

OPEN #1,0,0,"T:192.168.0.2": REM OPEN CHANNEL TO ATARI ON THIS EMULATED IP

PUT #1,T: REM SEND T

GET #1,A; REM GET A

 

etc, etc...

Link to comment
Share on other sites

- Has anyone successfully used R: to connect two instances of the emulator on the same desktop?

- If so, some code examples would be handy.

 

I played around with the R: handler in Atari800WIn and was able to get it to work somewhat. I loaded up AMIS BBS in the emulator and once it was up and running I could telnet to my local machine and connect to the BBS. I don't know how to setup AMIS so I didn't get anything to productive back, but it was a start. I also tried this with the Carina BBS but it wouldn't accept a connection.

 

Dan

Link to comment
Share on other sites

For Atari800Win, it looks like it only accepts connections (for use with an emulator). I do not think that you can "Call out". Thus, you can run a BBS but can not call a BBS.

 

For the Linux version of the emulator (atari800), I wrote most of the R: emulation code (or borrowed enough code and re-wrote it), so I know that you can accept socket connections as well as initiate connections to emulate R: over sockets.

 

Also, I have put some of the 850 manual into HTML format online here:

 

http://geocities.com/vlastaar/850man

Edited by Cybernoid
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

Guest
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.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...