Hilfe gesucht: Netzwerk-Interface (n. 2-Rechner-Interface)

1, 2

Hilfe gesucht: Netzwerk-Interface (n. 2-Rechner-Interface)

von andreasb » Do 21. Apr 2005, 16:46
Bei der ABBUC-RAF die diese Netzwerkinterfaces herstellt, habe ich bereits über die Mailadresse der Webseite nachgefragt. Bisher blieb leider eine Antwort aus. Wer weiß wo die Mail landete...

Ich suche Beispielcode, am besten Atari Basic oder zur Not TurboBasic, wie man dieses Interface nutzen kann.

Ich möchte dass der eine Atari dem anderen mitteilt, dass nun die nächste Aktion ausgeführt werden kann. Das soll in beide Richtungen funktionieren. Ist es z.b. möglich, dass der eine Atari dem anderen in eine bestimmte Speicherzelle schreibt?

Da es zwei Games dafür gibt, muss das ja irgendwie gehen...

Vielleicht schaut einer der "Erbauer" in dieses Forum. Aber auch Infos von anderen sind sehr willkommen.

Andreas

von mega-hz » Do 21. Apr 2005, 22:35
Es gibt viele wege, 2 xl`s zu verbinden... man könnte z.b. die joystick-ports also PORT A der PIA miteinander verbinden, dann muss jedoch die "Treibersoft" darauf achten, das immer nur einer gerade sendet, sonst gibt kurzschlüsse... aber für ein spiel wird dies sicher nicht so gut sein...
ne andere möglichkeit wäre adressdekoder für die adresse,die "geshared" werden soll und 2 8Bit-Latches a la 74373 o.Ä. die WR bzw. Enable leitungen müssten dann von jeweils dem anderen xl kommen, wenn dann auf die adresse zugegrieffen wird, wird der inhalt des 1-Byte-Rams (das Latch) übermittelt bzw. gelesen... man könnte auch direkt in die adresse schreiben, jedoch sollte während des schreibzugriffes die CPU und Antic angehalten werden... nur mal so ein paar spontane Ideen von mir...
mfg,
Wolfram.

von andreasb » Do 21. Apr 2005, 23:07
Danke für die Infos. Mir scheint das nur etwas zu aufwändig. Zumal ich die Interfaces ja auch schon besitze. Ich möchte nur mal wissen wo die Programmierer der beiden Games die die 2RI verwenden, die Infos her haben.

von Mathy » Fr 22. Apr 2005, 00:44
Hallo Leute

Die beiden Rechner am 2RI wissen garnicht dass es noch einen anderen Rechner gibt. Wenn das 2RI sieht das eines von Beiden Daten verschickt, wird dem anderen Rechner vorgegauchelt, der Bus waere nicht frei/es seie kein Geraet anwesent. Zirka einer Sekunde nachdem der erste Rechner aufgehoert hat den SIO Bus zu benutzten, wird der SIO Bus wieder freigeschaltet. Das 2RI arbeitet automatisch, also ohne Kommando's von einem der Rechner.

@Andreas

Welche Spiele sollen dass den sein?

Tschuess

Mathy

von andreasb » Fr 22. Apr 2005, 02:06
Hallo Mathy,

Zur Zeit gibt es zwei Programme, die dieses Netzwerk-Interface unterstützen:

* Multi Dash (von Jiri Bernasek, BEWESOFT)
* Maze of Agdagon (von der Agdagon Group)

Beides sind Labyrinthspiele, die mit bis zu 8 Spielern gespielt werden können.

Die zwei Programme sind in den Diskettenmagazinen des ABBUC e.V. erschienen. 'Multi Dash' befindet sich auf der Diskette des Sondermagazin Nr. 27, 'Maze of Agdagon' ist auf der Magazindiskette Nr. 50 zu finden.

Sourcecode Beispiele habe ich keine finden können.

von andreasb » Fr 22. Apr 2005, 09:37
So. Jetzt ist es mir peinlich. Das Interface heißt natürlich nicht 2-Rechner-Interface (obwohl das auch passen würde) sondern Netzwerk-Interface. Hat keiner gemerkt :)

Hier ist die Seite der RAF zum NI
http://www.abbuc-raf.de/networkd.htm

von Mathy » Fr 22. Apr 2005, 09:46
Hallo Andreas

Das habe ich mir fast schon gedacht.

Ich hoffe immer noch, es kombiniert mal jemand 2RI und Netzwerkinterface in einem.

Wie das MultiLink Interface funktioniert findest Du im ABBUC magazin von vor einiger Zeit (Artikel van Dipl.Paed. Magenheimer) oder auch auf meiner Internetseite unter http://www.mathyvannisselroy.nl/special%20stuff.htm#multilink im File NTWGAME.ARC.

Tschuess

Mathy

von andreasb » Fr 22. Apr 2005, 14:06
Hallo Mathy,
danke! die Source habe ich heruntergeladen, die drei Artikel gelesen und mir den Sourcecode angesehen.

Ich kann nur sagen: "Oh Mann!" - Assembler!...

Ich kann kein Stück Assembler. Ich verstehe nicht mal welche Adressen da angesprohen werden. Noch dazu sind in den Sourcen die DOS Routinen lt. Dokumentation ausgeblendet. (Die brauche ich aber).

Ist es möglich einen Teil dieser Routinen so umzusetzen, dass man sie von Basic aus nutzen kann? Es geht nur darum ein "Do it" und ein "ok" zu erkennen / zu setzen. So, dass der zweite Atari wiederum dies erkennt, usw. Es braucht ja nur ein Byte in einer bestimmten Speicherzelle. Hat jemand Ahnung von Assembler und würde sich das mal ansehen? Es ist nicht viel Code.

von andreasb » Sa 23. Apr 2005, 19:44
Jetzt wird es sogar noch einfacher dank Mathy, bzw. Jiri. Die Routinen gibt es bereits alle. Hier sind die formatierten Sourcen für das Netzwerk-Interface

Macro ASM Routinen zur Ansteuerung des Netzwerk-Interfaces

Eigentlich wird nur der o.g. Teil gebraucht. Könnte daraus jemand BITTE einen Handler erstellen? Das würde schon genügen, damit man über das Netzwerk-Interface mit anderen Ataris kommunizieren kann.

Ich würde es sehr gerne selbst machen, habe aber absolut Null Ahnung von Assembler. Ich weiß auch nicht was alles erforderlich ist um daraus einen Handler zu schreiben. Das einzige das ich dazu weiß ist dass es eine Handler-Tabelle gibt in der die Adressen stehen wo sich die Routinen befinden müssen. Zum greifen so nah und doch so fern... *heul* :cry:
---------------------------------

Und falls jemand Games für das Interface schreiben will, wären auch die folgenden Sourcen interessant.

Macro ASM Game-Beispiel-Programm zur Nutzung des Netzwerk-Interfaces
Macro ASM Routine die die ersten beiden Teile zur kompilierung zusammenfügt

Beschreibung von Jiri Bernasek Teil (1) Theorie
Beschreibung von Jiri Bernasek Teil (2) Beschreibung Speicheradressen
Beschreibung von Jiri Bernasek Teil (3) Hinweise

von cas » Sa 23. Apr 2005, 20:58
Hallo Andreas,

es muesste moeglich sein einen Netzwerk Handler zu erstellen (Vorschlag: "N:"). Dieser kann dann aus Basic/Turbo-Basic etc angesprochen werden. D.h. mit einem XIO Befehl muss man erst angebenen an welchen Rechner man senden will, und dann kann man die Daten Byteweise per "PUT" senden. Auf der anderen Seite werden die Daten per "GET" empfangen. Das ist nicht schnell, aber einfach.

Würde ich gerne machen, aber: Woher soll ich nur die Zeit nehmen soetwas zu machen? (Frust)

Ciao

Carsten

von Mathy » So 24. Apr 2005, 00:02
cas hat geschrieben:(Vorschlag: "N:"). Dieser kann dann aus Basic/Turbo-Basic etc angesprochen werden. D.h. mit einem XIO Befehl muss man erst angebenen an welchen Rechner man senden will, und dann kann man die Daten Byteweise per "PUT" senden. Auf der anderen Seite werden die Daten per "GET" empfangen. Das ist nicht schnell, aber einfach.


Man koennte auch "Nx:" benutzen. Dann koennte man sogar von DOS aus Dateien verschicken und empfangen. Manche DOSse gehen sogar bis "D15:" wenn ich mich nicht irre.

Einige meiner Ideen wie man das Netzwerkinterface verbessern koennte habe ich auf meiner Site hier http://www.mathyvannisselroy.nl/special%20stuff.htm#Multijoy_Improvements beschrieben. Dafuer wuerden wir aber jemanden brauchen, der elektrotechnisch unterlegt ist.

Tschuess

Mathy

von andreasb » So 24. Apr 2005, 01:09
Es wäre natürlich schön wenn man Hardware teilweise kombinieren könnte. In meinem Fall würden mir jedoch schon die Treiber für das vorhandene genügen. Aber wenn nicht mal die Hardware da ist, wird das ja nie etwas.

Ich denke die Erweiterung / Kombination vorhandener Hardware kann man später in einem zweiten Schritt machen.

Mit diesen Treibern / Handlern für das Netzwerkinterface wären endlich Türen und Tore offen um Netzwerk-Programme umsetzen zu können. Ich denke dass die meisten kein Assembler können und deshalb das Netzwerkinterface nicht genutzt wird.

Was für ein Klang würde es wohl geben wenn man 8 Ataris über Netzwerk so kombinieren könnte, dass die jeweils vorhandenen 4 Stimmen ein einziges Musikstück ergibt? polyphon, 32 Stimmen!

@CAS: Wirklich schade! Aber das Problem haben viele.

von cas » So 24. Apr 2005, 11:17
Mathy hat geschrieben:
cas hat geschrieben:(Vorschlag: "N:"). Dieser kann dann aus Basic/Turbo-Basic etc angesprochen werden. D.h. mit einem XIO Befehl muss man erst angebenen an welchen Rechner man senden will, und dann kann man die Daten Byteweise per "PUT" senden. Auf der anderen Seite werden die Daten per "GET" empfangen. Das ist nicht schnell, aber einfach.


Man koennte auch "Nx:" benutzen. Dann koennte man sogar von DOS aus Dateien verschicken und empfangen. Manche DOSse gehen sogar bis "D15:" wenn ich mich nicht irre.



Hallo Mathy,

klar, "Nx:" ist eine gute Idee.

Zum Schreiben auf Rechner 2:

Code: Alles auswählen
OPEN #1,8,0,"N1:"
PRINT #1,"Hallo Rechner #1"
CLOSE #1


Das "N1:" bezieht sich hier auf den Empfängerrechner, d.h. wird senden hier die Daten zu dem Rechner mit der ID 1.

Zum Lesen auf Rechner 1:

Code: Alles auswählen
OPEN #1,4,0,"N1:"
INPUT #1,A$
CLOSE #1
PRINT A$


Das "N1:" bezieht sich hier (auch) auf den Empfängerrechner, d.h. wird enpfangen hier die Daten als Rechner mit der ID 1.

von Mathy » So 24. Apr 2005, 18:29
Hallo Leute

@cas: Der Treiber sollte dabei auf sowohl empfangenden als sendenden Rechner laufen, damit auch ja keine Daten empfangen werden wenn der Rechner/User das nicht will. Mit ein bisschen Hardware koennte man die ID's festlegen. Wenn man das automatisch von Rechner oder Interface machen laesst, weiss der Benutzer nie genau, welcher Rechner auf welches ID hoert.

@Andreas: Die Zusammenfuegung von Netzwerkinterface und 2RI waere super. Aber in den Paragrafen ueber meine Ideen wie man das Netzwerkinterface verbessern koennte, rede ich ueber die Trennung von Treiber und Software. Die Software an sich (Tool, Game, etc.) waehre dann auch durch Benutzung entsprecher Treiber mit anderen Interfaces zu benutzen. So wie man dass vom Modem(interface) oder Drucker kennt. Und davon, dass wenn nicht der Pokey, sondern das Interface des Mastercomputers (der Rechner der als erstes gestartet wird) denn Synchronisationspulse erstellt, man 4 Stimmen an jeden Rechner benutzen kann, statt nur 2 bei Master wie im Moment.

Tschuess

Mathy

von cas » So 24. Apr 2005, 20:47
Hallo Mathy,

[quote="Mathy"] Hallo Leute

@cas: Der Treiber sollte dabei auf sowohl empfangenden als sendenden Rechner laufen, damit auch ja keine Daten empfangen werden wenn der Rechner/User das nicht will.
[\quote]

Da der Atari keine Netzwerktreiber im ROM hat, muss der Treiber sicher auf beiden Rechnern laufen. Anders geht es technisch nicht. Und wenn kein Treiber geladen ist, dann können auch keine Daten ohne Wissen des Benutzers ausgetauscht werden.

[quote="Mathy"]
Mit ein bisschen Hardware koennte man die ID's festlegen. Wenn man das automatisch von Rechner oder Interface machen laesst, weiss der Benutzer nie genau, welcher Rechner auf welches ID hoert.
[\quote]

Die Hardware ist ja schon fertig und in Benutzung. Und die ID sollte immer per Software festgelegt werden, das ist viel flexibler wenn mehr als 2 Rechner kommunizieren. (oder jumperst Du Deine IP Addresse in der Netzwerkkarte?). Es muss ja auch soetwas wie Broadcast oder Multicast geben (d.h. einer sendet an viele).

Ciao

Carsten

von Mathy » So 24. Apr 2005, 21:39
Hallo Cas

Man koennte ja zB. "N0:" (N null) benutzen um Daten an alle Rechner zu schicken. Oder nur "N:". Bei "P:" reagieren ja auch alle Drucker und bei "Px:" nur bestimmte. Das bei "P:" nur einen Rechner reagieren sollte, bei "N:" aber mehrere Geraete reagieren koennen, dafuer kann man ja Vorkehrungen in der Routine integrieren.

Die Hardware koennte man eventuel (ist keine Pflicht) noch verbessern. Und wenn man Treiber und Software trennt, koennte man ueber zB. das USB Modul ein Bluetooth (die neue Norm erlaubt die Nutzung mehrerer Bluetooth-geraete zur gleichen Zeit am gleichen Rechner. Der Apple Imac G5 hat als Option die Nutzung von Drahtlose Maus und Tastatur ueber Bluetooth) Sender/Empfaengen benutzen. Oder vielleicht WLAN oder was aehnliches. Man wirdt damit unabhaengig vom Netzwerkinterface und koennte dann sogar einen Emulator mit ins Netzwerk mit einbeziehen. Dass koennte man aber auch mit einem "Netzwerkinterface auf SIO2PC" adapter realisieren.

Tschuess

Mathy

von andreasb » So 24. Apr 2005, 22:49
Gestern hatte ich an Jiri Bernasek geschriebenm, in der Hoffnung dass er hilft. Hier seine Antwort:

-----------------

Hello Andreas,

It's nice that you're still planning some new things to be done on
Atari, and expanding the number of applications for my interface... But I think that implementing this game-network to a Basic-style programming (or standard OS in general) is a quite difficult and problematic thing.

In fact, a network-game is a kind of multi-tasking, running the game itself together with the network-communication, with special
requirements on the game-code structure in addition (as seen in my source code). Because of this, pretty high speed is required from all the software-components, and - maybe even more important - there are lots of problems with the OS (which is not designed for this kind of use), and even some bugs in the Atari-hardware (the 6502 processor, to be exact) makes the whole thing a bit more difficult. That's why I made the networking-framework in such a way - assembler-code working without of the OS - and believe me, that I did maximum to have the result easy-to-use for another game-coders. Or easiest of the possible...

Thinking about a handler-style driver co-operating with Basic, I see
quite a few problems. The speed, and problems with interrupt-routines of the OS of course (as said above), then there's a problem with booting all the software, since transferring Basic-code over the network wouldn't be that simple like in Assembler, and then the structure of the program: To keep all working fine on several computers together, the networking-routines need to take the overall control, rather than the "main" game-code... Since the concept of Handlers is quite reverse, it'll need a lot of buffering, handshaking and such to keep it running, further decreasing the speed of the whole thing.

By the way, if we abstract from the matter of speed, you're able to
"broadcast" bytes over the network from any computer to all the others just by Poking from Basic into the POKEY's registers. But this is quite useless, since you need a kind of protocol for controlling the whole network, error-detecting and such...

In simple words, I think that an implementation under normal OS would be much more complicated, and probably the result wouldn't be fast enough for a real use.

Maybe I'll try to think about the subject a bit, but I'm not giving any
promises now - to tell the truth, I have a lot of personal problems with re-forming my private life to an acceptable form, dealing with big problems from the past, and therefore I've not much time and motivation for the Atari now. Didn't turn it on for months, to be honest.

And one more notice: Some people asked me, whether it's possible to use the networking-interface for an ordinary data-transfer, or not. The answer is, that this is a bit too limited, but still the network may be connected to XL/XE simultaneously with other peripherals (assuming that only one computer in the network is communicating with local peripherals at the same time), and data may be sent in a "broadcasting" fashion using the B-Tape extension of BW-DOS, or an other high-speed tape system
of a similar style. Just Save the data, and simultaneously Load them on the other comps...

Greetings from the sunny spring-time Prague. Have a nice day!

Jirí Bernášek, also known as BEWESOFT.

von Mathy » So 24. Apr 2005, 23:16
Hallo Andreas

Jiri spricht ueber "some people". Ich frag mich wer ausser mir zu diesen Leuten gehoert. 8)

Tschuess

Mathy

von CharlieChaplin » Di 26. Apr 2005, 01:33
Ts,
da hatte ich mir doch schon fast gedacht, dass es um die Netzwerkverbindung geht (multilink-netzwerk oder gamelink 1+2).
Wer ab und zu meine Artikel liest, der weiss vielleicht, das es das system in 2 Varianten gibt:

- gamelink-1 von dataque via Joystickports, bisher begrenzt auf 2 Rechner und auch erst 2 Spiele erhältlich (Tic Tac Two und Battle Ships). eines der beiden Spiele war aber in Atari Basic programmiert. Sources und Baupläne gab es aber keine dazu, da Dataque die sachen 1989/90 kommerziell vertreiben wollte...

- Gamelink-2 von dataque via SIO ports, dank der Games von Bewesoft auch "multilink"-netzwerk genannt. Neben Maze of Agdagon und Multi-Dash gibt es noch Multi-Race und Multi-worms (daher die Bezeichnung "multilink"). Jiri Bernasek war so nett, zu multi-worms und somit für das multi-link die assembler sources zu releasen. ausserdem hat er auch ein schönes Gr.8 bild gezeichnet, mit dem es möglich ist, die hardware selber zu bauen (was u.a. die RAF ja tut). Mit diesem System können 2-8 Rechner vernetzt werden, je nach Rechnertyp, Programm und Controller stehen dann bis zu 8, 16 oder 32 Joysticks bzw. 16, 32 oder 64 Paddles zur Verfügung...

--------------------------------------------------------

LEider sind die Spiele bisher nicht so das gelbe vom Ei, sie sind bei weniger als 4 Spielern totlangweilig. Wer aber dennoch mal gerne simpel + einfach + kostenlos die Hardware basteln möchte um zu Testzwecken zwei Rechner zu vernetzen, der tue folgendes:

1) Man nehme ein SIO-Kabel mit verschraubten Stecker-Enden.
2) Gr.8-Bild von Jiri laden und anschauen oder ausdrucken...
3) man sieht hier rechts auf dem Bild die einfache Version für zwei Rechner...

(Jiri ging davon aus, dass man zwei SIO-Kabel benutzen würde, braucht man aber nicht unbedingt - eines reicht schon... ein SIO-Kabel besteht aus 13 Drähten, auf dem Bild sind alle schön durchnummeriert; ausserdem sieht man, dass bei beiden SIO-Kabeln die drähte 3 und 5 vertauscht werden...)

4) nimmt man nur ein SIO-Kabel, dann einfach ein ende aufschrauben und nun die Drähte 3 und 5 suchen und miteinander vertauschen. danach den stecker wieder zuschrauben und ggf. mit einem kleinen Fähnchen (Papier+Tesafilm) versehen, dass dieses SIO-Kabel nun ein Netzwerkkabel ist. Dann kann man es nämlich nicht mit anderen SIO-Kabeln verwechseln... ausserdem läßt sich das Ganze jederzeit wieder rückgängig machen, sprich man kann aus dem Netzwerkkabel wieder ein ganz normales SIO-Kabel machen...

Tja, und dann braucht man nur noch 2 Rechner, 2 Bildschirme, ein Datengerät (Floppy, Tape, Harddisk, CF, CD, DVD, etc.), ein Programm für das Netzwerk, ein normales SIO-Kabel und last not least eine Netzwerkverbindung (einfaches 2-Rechner-Netzwerkkabel oder umfangreichere 2-8 Rechner Verbindung). Den ersten Rechner schliesst man zunächst normal an das Datengerät und den Bildschirm an. Dann das Programm booten und danach das normale SIO-Kabel und Datengerät vom Rechner 1 entfernen. Nun das Netzwerkkabel (oder die Netzwerkverbindung) in Rechner 1 und 2 einstecken und Rechner 2 einschalten. Wenn alles klappt, dann bootet Rechner 2 jetzt direkt von Rechner 1. Man hört ein ultraspeed Ladegeräusch (jedoch ohne die typischen floppy-unterbrechungen) und das Netzwerk-Programm wird geladen.

Sodann kann man eines der erwähnten Spiele (Maze of agdagon, multirace, Multidash, multiworms) mit mehreren Spielern und Computern + bildschirmen ausprobieren. Platzsparend kann man ja zwei 37er TV`s nehmen, darauf die Ataris platzieren und alles auf einen kleinen tisch stellen... leider fehlt bei 2 Spielern etwas der fun-faktor - aber für einen kostenlosen Test reicht das ja...

Wer die software und alles weitere für gamelink-1 (joyports) und/oder gamelink-2 (multilink-netzwerk) haben möchte, der kann mir ja mailen: ampatabbucde

Gruss, Andreas Magenheimer.

P.S.: Modem-Software+Hardware, Gamelink-Hardware+Software, etc. etc. ist auch recht ausführlich im A8FAQ von michael Current erwähnt. dieses FAQ sollte eigentlich jeder Atarianer einmal lesen, auch wenn es in englisch ist...

von CharlieChaplin » Di 26. Apr 2005, 01:42
Tja,
was die Ideen von Mathy bezüglich eines Upgrades der Netzwerk-Hardware angeht - grundsätzlich eine gute Idee. Allerdings müsste dann wohl auch die bisherige software gepatcht werden. und solange es für das netzwerksystem nicht bessere und interessantere Spiele gibt (und vor allem meeehhrrr Spiele gibt), wird sich wohl kaum einer für diese hardware interessieren...

Weitere Spiele-Ideen für das Netzwerksystem hatte ich ja mal in einer Artikel Serie ("Software-ideen-Pool") aufgezählt. Leider ist im ABBUC Magazin (Nr. 74) bisher nur Teil eins dieser Serie erschienen und alles weitere wartet noch auf Veröffentlichung (jedoch kann man fast alle Texte hier auf der abbuc homepage lesen)...

-Andreas Magenheimer.
1, 2