Binärloader unter Atari Basic...


Binärloader unter Atari Basic...

von CharlieChaplin » So 1. Sep 2013, 19:10
Hallo,

für den Software-Wettbewerb bzw. einem kleinen Auswahlmenü hierzu benötige ich dringend einen Binärloader unter Basic, also eine MC-Routine mit der ich vom Atari Basic aus eine *.COM/*.XEX Datei laden kann. Habe den gleichen Loader wie letztes Jahr benutzt aber irgendwie will der nicht laden. Mein benutzter/geklauter Loader ging in etwa so:

120 Close #1:Open #1,4,0,"D:Filename.COM":X=USR (hHld invers irgendwas):

Leider funkt. das diesmal nicht (warum auch immer). Die zu ladende COM/XEX Datei schaltet als erstes das Basic ab (via Page 4 bzw. $0400-042C), installiert dann eine Reset=Kaltstart-Routine ($0244-0244) und dann die eigentlichen Daten ab ca. $2000. Als DOS ist aus Platzgründen auf der Disk ein XDOS 2.4N drauf (nur DOS.SYS), könnte also auch daran liegen, das es nicht klappt...

Weiss hier jemand wie das geht und könnte *bitte* ein Beispiel posten? Wobei, neben einem Programmbeispiel (Listing) könnte ich auch ein Attachment gebrauchen (*.LST/*.BAS), um das Ganze gleich auf den Atari zu kopieren und auszuprobieren... Danke !

-Andreas Koch.

Re: Binärloader unter Atari Basic...

von Bunsen » So 1. Sep 2013, 20:03
Wende dich mal an Stefan (D.)! Er lädt dir unter Basic und XDOS alles, was du möchtest.

Re: Binärloader unter Atari Basic...

von kfischer » Sa 12. Apr 2014, 12:08
Hallo Andreas,

CharlieChaplin hat geschrieben:... geklauter Loader ging in etwa so ...


den gleichen Loader habe ich auch (wahrscheinlich von dir, von einer SoMag Disk) geklaut. In der Regel läuft das bei mir unter DOS 2.5 / Atari BASIC prima. Ggf. hänge ich vorher noch die BASOFF-Routine vor das ML-File, falls die BASIC-Abschaltung notwendig ist.

Aber leider klappt das nicht mit allen ML-Files, was sich oft dadurch bemerkbar macht, dass die Grafik zerstört wird oder das Programm sich von selbst zurücksetzt. Hast du inzwischen diesbezüglich was neues erfahren können?

Gruß
Klaus

Re: Binärloader unter Atari Basic...

von pps » Sa 12. Apr 2014, 12:50
Da bietet sich doch das tolle MyPicoDos von Hias an. Klein, flexibel und das Beste: Sowohl Assembler-, als auch BASIC Programme lassen sich damit starten.

Re: Binärloader unter Atari Basic...

von kfischer » Sa 12. Apr 2014, 14:43
Hallo Ralf,

ich benutze MyPicoDOS recht oft, wenn ich viele kleine Programme bzw. das MyPicoBoot, wenn ich nur ein Programm auf der Diskette habe. Wenn ich aber nur 2 oder 3 Programme habe, die thematisch zusammen gehören, finde ich ein Auswahlmenue in GRAPHICS 1 sehr schön.

Es geht mir hierbei auch mehr um die grundsätzliche Möglichkeit, wie man ein ML-File von BASIC aus laden und starten kann.

Viele Grüße
Klaus

OT: Die NY Disks sind wirklich eine Augenweide :notworthy:

Re: Binärloader unter Atari Basic...

von CharlieChaplin » Sa 12. Apr 2014, 18:22
Hallo Klaus,

das Problem lag (damals) am XDOS, das diesen weit verbreiteten ML-Loader nicht mag/nicht unterstützt. Laut Stefan Dorndorf sollte das aber in der nächsten Version von XDOS klappen (schrieb er mir damals, im September oder Oktober 2013). Ob es inzwischen eine neue Version von XDOS gibt, bei der dies und auch weitere Sachen upgedatet wurden (siehe Topic zu XDOS), kann ich nicht sagen - jedenfalls habe ich schon lange kein Update mehr von XDOS gesehen. Der simple ML-Loader klappt übrigens unter DOS 2.0s, DOS 2.0d, DOS 2.5, Turbo-DOS und einigen anderen DOS 2.x Versionen, da war/ist XDOS leider inkompatibel...

Im XDOS muss(te) man sich mit einem XIO-Befehl für ML-Load unter Atari Basic behelfen, schau einfach mal im betreffenden Abbuc Magazin oder Sondermagazin nach, da habe ich es im Basic-Menü per REM-Zeile eingetragen. Diesen ML-Loader findet man übrigens in recht vielen Magazinen, bei denen ein Basic-Auswahlmenü verwendet wird, z.B. bei fast allen Ausgaben der Diskline. Wobei die XIO-Lösung für Anfänger wie mich schon deutlich einfacher zu merken und einzusetzen ist, als diese MC-Routine des ML-Loaders...

Nebenbei: Wenn ein Programm unbedingt Atari Basic aber wegen nachladenden Dateien auch ein DOS benötigt, dann hilft MypicoDOS leider nicht weiter. In solchen Fällen benutze ich DOS und mein billiges Basic-Auswahlmenü, das mit einem ML-Loader versehen wird, wenn außer den Basic-Programmen auch ein ML-File geladen werden muss. Aus Platzgründen ist es beim ASC halt oft notwendig Basic und ML-Files oder TB XL und ML Files auf einer Diskette unterzubringen (und zwar von einem Menü aus startbar, sonst beschweren sich die User)...

Gruß, Andreas Koch.

Re: Binärloader unter Atari Basic...

von kfischer » So 13. Apr 2014, 07:08
Hallo Andreas,

danke für deinen ausführlichen Beitrag. Dass XDOS unseren "geklauten" ML-Loader mit dem kryptischen USR-Befehl nicht unterstützt habe ich auch schon bemerkt. Auch MyPicoBoot hat damit ein Problem, wenn ich z. B. ein BASIC-Programm, das diesen Loader enthält mit BAS2COM in eine Binärdatei umwandle. Auch habe ich festgestellt, dass der geöffnete Kanal zwingend die #1 haben muss, eine andere Kanalnummer geht nicht. Das Ganze ist wohl fest auf Atari BASIC, DOS 2.x und Kanal #1 fixiert. Wäre ja schön, wenn ich die kryptischen/inversen Zeichen (es sind ja nur 4 Bytes) im ADR-Argument verstehen würde ...

Ich habe auch mal die letzten Heftdisketten /Sondermagazindisketten durchgeforstet, aber bin nicht fündig geworden. Hätte mal gerne gewusst, wie so ein XIO-Befehl aussieht. Nach dem was ich weiss, käme da nur XIO 40 infrage und genau dieses Kommanndo wird von DOS 2.x einschließlich Turbo-DOS nicht unterstützt, aber von XDOS, MyDOS und SDX.

Ich forsche mal weiter!

Schönen Sonntag noch,
Klaus

P.S.: Damit die Leute wissen, was wir beide meinen, hänge ich mal ein Screenshot an. Vielleicht kann ja jemand die kryptischen Zeichen entschlüsseln?
Loader.jpgLoader.jpg

Re: Binärloader unter Atari Basic...

von CharlieChaplin » Mo 14. Apr 2014, 23:02
Hallo Klaus,

habe ich mich wohl schlecht ausgedrückt und du hast daher falsch gesucht. Im ersten Post ging es u.a. um einen ML-Loader für mein Basic-Menü, das ich für den ASC (Abbuc Software Contest) immer verwende und auch für den ASC 2013 verwenden wollte. Für XDOS braucht es zu diesem Zweck aber einen XIO-Befehl...

Das Basic-Menü findest du nun natürlich auf dem Abbuc Magazin mit den Programmen für den ASC 2013, das dürfte Magazin 114 oder 115 sein. Die Lösung für XDOS bzw. der XIO-Befehl heißt XIO 80:

XIO 80,#1,0,0,"Dx:Filename.Ext"

um via XDOS ein ML-File von Atari Basic aus einzuladen. Aber vielleicht kann man mit XDOS ja schon bald den ML-Loader der anderen DOS 2.x Versionen benutzen (sobald Stefan das in XDOS eingebaut/geändert hat).

Nebenbei, manche ML-Files lassen sich unter TB XL mit BLOAD oder BRUN nicht laden, mit dem ML-Loader (Z=USR...) laufen einige dann aber doch...

Gruß, Andreas Koch.

P.S.: Eine gute Übersicht der XIO-Kommandos unter versch. DOS-Versionen findet man u.a. hier:
https://atariwiki.org/wiki/Wiki.jsp?pag ... %20Handler

Binärloader unter Atari Basic...

von Erhard » Sa 26. Apr 2014, 07:25
Hi,

das X=USR(...) ruft aus BASIC ein Maschinenprogramm auf.

Übersetzt steht da

PLA
JMP($15C8)

(Das "S" soll ein Dollarzeichen sein, läßt sich hier nicht tippen)

Offenbar ein Sprung ins DOS zu der Funktion "Lade Binärdatei").

Die Adresse einer solchen Routine kann von DOS zu DOS woanders liegen. Nur das Atari-OS und SpartaDOS haben für solche Fälle Vektor-Tabellen an einheitlichen Adressen.

CU, Erhard