Binärloader unter Atari Basic...

Bild Alles zum Thema Programmierung
Bild All around programming

Moderatoren: Sven, Sleepy, Wolfgang, cas, des-or-mad

Binärloader unter Atari Basic...

Beitragvon CharlieChaplin » So 1. Sep 2013, 18: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.
CharlieChaplin
Night&Day Poster
Night&Day Poster
 
Beiträge: 2162
Registriert: Do 1. Jan 1970, 01:00

Re: Binärloader unter Atari Basic...

Beitragvon Bunsen » So 1. Sep 2013, 19:03

Wende dich mal an Stefan (D.)! Er lädt dir unter Basic und XDOS alles, was du möchtest.
ABBUC Bundesliga 13. Platz 15/16, 21. Platz 14/15, 15. Platz 13/14, 10. Platz 12/13, 4. Platz 11/12, 7. Platz 10/11, 3. Platz 09/10, 3. Platz 08/09, 3. Platz 07/08, 4. Platz 06/07, 3. Platz 05/06, 4. Platz 04/05, 4. Platz 03/04
Bunsen
Night&Day Poster
Night&Day Poster
 
Beiträge: 2617
Registriert: Do 1. Jan 1970, 01:00
Wohnort: Linden in Dithmarschen/Schleswig-Holstein

Re: Binärloader unter Atari Basic...

Beitragvon kfischer » Sa 12. Apr 2014, 11: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
Benutzeravatar
kfischer
Star Poster
Star Poster
 
Beiträge: 572
Registriert: Sa 18. Aug 2012, 10:54
Wohnort: Alsdorf bei Aachen

Re: Binärloader unter Atari Basic...

Beitragvon pps » Sa 12. Apr 2014, 11: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.
PP´s of STARSOFT Berlin
pps
Star Poster
Star Poster
 
Beiträge: 645
Registriert: Do 1. Jan 1970, 01:00
Wohnort: Berlin

Re: Binärloader unter Atari Basic...

Beitragvon kfischer » Sa 12. Apr 2014, 13: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:
Benutzeravatar
kfischer
Star Poster
Star Poster
 
Beiträge: 572
Registriert: Sa 18. Aug 2012, 10:54
Wohnort: Alsdorf bei Aachen

Re: Binärloader unter Atari Basic...

Beitragvon CharlieChaplin » Sa 12. Apr 2014, 17: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.
CharlieChaplin
Night&Day Poster
Night&Day Poster
 
Beiträge: 2162
Registriert: Do 1. Jan 1970, 01:00

Re: Binärloader unter Atari Basic...

Beitragvon kfischer » So 13. Apr 2014, 06: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?
Dateianhänge
Loader.jpg
ML-Loader in BASIC
Loader.jpg (13.36 KiB) 3211-mal betrachtet
Benutzeravatar
kfischer
Star Poster
Star Poster
 
Beiträge: 572
Registriert: Sa 18. Aug 2012, 10:54
Wohnort: Alsdorf bei Aachen

Re: Binärloader unter Atari Basic...

Beitragvon CharlieChaplin » Mo 14. Apr 2014, 22: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
CharlieChaplin
Night&Day Poster
Night&Day Poster
 
Beiträge: 2162
Registriert: Do 1. Jan 1970, 01:00

Binärloader unter Atari Basic...

Beitragvon Erhard » Sa 26. Apr 2014, 06: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
Benutzeravatar
Erhard
Star Poster
Star Poster
 
Beiträge: 519
Registriert: Do 1. Jan 1970, 01:00
Wohnort: Radevormwald


Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast