BWDos+Turbo Basic+SIO2USB+16MB-Image Highspeed aktivieren?

1, 2

BWDos+Turbo Basic+SIO2USB+16MB-Image Highspeed aktivieren?

von mp-one » Do 19. Mär 2009, 19:39
Hallo,

ich habe ein bißchen weiter experimentiert und

- mit MakeATR 0.6 ein 16MB Image angelegt und
- im SpartaDOS X Format formatiert.
- dann BeWeDos 1.3 auf das Image kopiert und mit
- boot xbw130.dos bootbar gemacht
- sowie eine Startup.bat mit Turbo Basic angelegt
- dann alles auf den USB-Stick und
- den 800XL mit SIO2USB gebootet.

Soweit klappt alles, er bootet und lädt Turbo Basic. Der Datentransfer geht aber sehr langsam in Normalspeed. Das SIO2USB untertützt ja laut Handbuch Highspeed, daher wäre die Frage, ob überhaupt und wie ich für die obige Konstellation das Highspeed aktivieren kann.

Gruß,

Michael

Re: BWDos+Turbo Basic+SIO2USB+16MB-Image Highspeed aktiviere

von GoodByteXL » Fr 20. Mär 2009, 08:58
mp-one hat geschrieben:Hallo,

ich habe ein bißchen weiter experimentiert und

- mit MakeATR 0.6 ein 16MB Image angelegt und
- im SpartaDOS X Format formatiert.
- dann BeWeDos 1.3 auf das Image kopiert und mit
- boot xbw130.dos bootbar gemacht
- sowie eine Startup.bat mit Turbo Basic angelegt
- dann alles auf den USB-Stick und
- den 800XL mit SIO2USB gebootet.

Soweit klappt alles, er bootet und lädt Turbo Basic. Der Datentransfer geht aber sehr langsam in Normalspeed. Das SIO2USB untertützt ja laut Handbuch Highspeed, daher wäre die Frage, ob überhaupt und wie ich für die obige Konstellation das Highspeed aktivieren kann.

Gruß,

Michael


Aber BeweDOS unterstützt kein Highspeed.

Re: BWDos+Turbo Basic+SIO2USB+16MB-Image Highspeed aktiviere

von mp-one » Fr 20. Mär 2009, 10:40
GoodByteXL hat geschrieben:Aber BeweDOS unterstützt kein Highspeed.


Zumindest für die XF551 gibt es ja das XFSIO Kommando, um HS mit dieser Floppy zu aktivieren.

Einen Patch für das DOS gibt es da wohl nicht, damit es auch HS mit anderen Laufwerken lernt?

Gruß,

Michael

von atarixle » Fr 20. Mär 2009, 14:33
an der Stelle hilft eigentlich nur ein Austausch des Betriebssystems ... und zwar des OS-ROM-Moduls

ich weiss grad nicht, wie mein OS heißt (beetle weiß das aber), aber bei mir sind die High-Speed-Routinen direkt im ROM, so dass kein anderes DOS eine extra-Unterstützung dafür braucht.

von mp-one » Fr 20. Mär 2009, 16:36
atarixle hat geschrieben:an der Stelle hilft eigentlich nur ein Austausch des Betriebssystems ... und zwar des OS-ROM-Moduls

ich weiss grad nicht, wie mein OS heißt (beetle weiß das aber), aber bei mir sind die High-Speed-Routinen direkt im ROM, so dass kein anderes DOS eine extra-Unterstützung dafür braucht.


Hallo,

folgende Variante funktioniert: XDOS24F (die HighSpeed-Variante) und von dort Turbo Basic laden. High Speed bleibt dann im TB aktiv. Es liegt also wohl wirklich an BeWeDos. Schade, gerade für die großen Images wäre HS nämlich klasse.

Ein neues OS-ROM-Modul ist zwar eine Möglichkeit, aber dann hat man das High Speed ja nur "bei sich zu hause". Gibt man ein Programm weiter und der User hat kein solches ROM, wird es u.U. sehr langsam.

Gruß,

Michael

von dl7ukk » Fr 20. Mär 2009, 17:14
Hallo Michael,
mp-one hat geschrieben:Ein neues OS-ROM-Modul ist zwar eine Möglichkeit, aber dann hat man das High Speed ja nur "bei sich zu hause". Gibt man ein Programm weiter und der User hat kein solches ROM, wird es u.U. sehr langsam.



oder Du pachst das OS des ATARI beim Hochfahren per Autorun.sys. Autorun.sys muss es doch bei BeweDos auch geben, oder? Jedenfalls hat Hias bei seinem HS Patch die Möglichkeit dabei, dass laufende OS des A8 zu patchen.

z.b. HS-Patch


Red' mal mit ihm!

von HiassofT » Fr 20. Mär 2009, 17:32
dl7ukk hat geschrieben:oder Du pachst das OS des ATARI beim Hochfahren per Autorun.sys. Autorun.sys muss es doch bei BeweDos auch geben, oder? Jedenfalls hat Hias bei seinem HS Patch die Möglichkeit dabei, dass laufende OS des A8 zu patchen.

Dann klappt aber TurboBasic nicht mehr (der Patch braucht ja das RAM unter dem OS).

Die einzige Möglichkeit ist, ähnlich wie der XF-Treiber von Bewedos, irgendwo im RAM einen knapp 1k grossen, freien Block zu finden, dort die Highspeed Routine hinzuladen und den SIO-Vektor im Bewedos auf die neue Routine (statt $E459) zu setzen.

Das Umbiegen des SIO-Vektors ist kein Problem, aber einen knapp 1k grossen Block zu finden dürfte schwierig sein - direkt hinter dem DOS wird's wohl zu eng, der Rest von $2080-$BFFF ist dann von TurboBasic belegt, man müsste also das Memlo von TB anheben und dort Platz schaffen...

so long,

Hias

von mp-one » Fr 20. Mär 2009, 17:47
Hallo dl7ukk & Hias!

Hab's eben mit HISIO und HISION probiert: BeWeDos selbst scheint in Hispeed (DIR, ...) soweit zu funktionieren. Wenn man dann Turbo Basic lädt, lädt er zuerst auch noch in HS, wechselt dann aber ca. ab der Mitte des Ladevorgangs in Normal-Speed. Das gleiche Phänomen tritt z.B. auch bei KEDIT auf. Der lädt und speichert dann auch nur in Normalspeed. Ich habe noch die Variante von Turbo-Basic 3.2q, die eigentlich für Sparta-Dos 3.2 war, hier. Vielleicht geht die...

[UPDATE] ... nein geht nicht.

Gruß,

Michael

von mp-one » Fr 20. Mär 2009, 17:50
dl7ukk hat geschrieben:... Autorun.sys muss es doch bei BeweDos auch geben, oder?


...es gibt die STARTUP.BAT, dort kann man es platzieren...

von mp-one » Fr 20. Mär 2009, 19:49
HiassofT hat geschrieben:Das Umbiegen des SIO-Vektors ist kein Problem, aber einen knapp 1k grossen Block zu finden dürfte schwierig sein - direkt hinter dem DOS wird's wohl zu eng, der Rest von $2080-$BFFF ist dann von TurboBasic belegt, man müsste also das Memlo von TB anheben und dort Platz schaffen...


Hallo Hias,

dafür reichen meine Kenntnisse leider nicht :roll:. Das Turbo Basic 3.2q, was für SpartaDos angepasst wurde, hat auch nur so um die 20K frei. Wurde dort ähnlich vorgegangen? Auf 1-2K kann man aber sicher verzichten für die HS-Routine.

Gruß,

Michael

von dl7ukk » Fr 20. Mär 2009, 20:14
Hi mp-one, Hias

HiassofT hat geschrieben:der Patch braucht ja das RAM unter dem OS


@Hias

ich hätte es wissen müssen, Du hast es ja in der Beschreibung vom HS-Patch beschrieben.
(Leider wieder mal etwas gelesen und ... vergessen.) :(

@mp-one
.... und dafür müsste eben das TurboDos auch gepatcht werden und das ist nicht mal so schnell gemacht. Schade eigentlich!

von mp-one » Fr 20. Mär 2009, 20:24
dl7ukk hat geschrieben:@mp-one .... und dafür müsste eben das TurboDos auch gepatcht werden und das ist nicht mal so schnell gemacht. Schade eigentlich!


@hias: Klasse, dass es überhaupt so einen HS-Patch von Dir gibt!! War mir neu. Schade, dass man ihn nicht in die Page 6 quetschen kann.

@dl7ukk: ja, es wäre nämlich prima, mit Turbo Basic und den großen BeWe-Dos Images in Hispeed zu arbeiten. Nur so ist es ja möglich auch mal größere Dateien zu bearbeiten als 10-20KBytes.

Die Alternative mit SpartaDos 3.2 und dem angepassten Turbo Basic 3.2q hat eben den Nachteil, dass nur 20KB frei sind zum Programmieren. Also 14 weniger als normal.

von cas » Fr 20. Mär 2009, 21:20
Hallo Michael,

überlege mal ob Du dir nicht ein alternatives OS (vielleicht Umschaltbar) wie QMEG-OS einbaust, damit ist auch BeWe-DOS und auch andere DOS Systeme immer mit HighSpeed und Du must dich nicht immer nach Treibern umschauen.

Ciao

Carsten

von HiassofT » Sa 21. Mär 2009, 15:02
mp-one hat geschrieben:@hias: Klasse, dass es überhaupt so einen HS-Patch von Dir gibt!! War mir neu.

Danke!

Du kannst mit dem Patch übrigens auch ein ROM-File erzeugen und damit ein Eprom brennen - dann hast Du die Highspeed Routine fix im OS drin. Ich arbeite gerade an einer neuen Version, damit gehen dann bis zu 126kbit/sec (wenn es das SIO Gerät unterstützt).

Ich hatte nun aber noch eine andere Idee: Wir könnten versuchen einen 4k RAM Block von $B000-$BFFF abzuzwacken und dort den Highspeed Code reinzulegen. Damit wären dann im TurboBasic immerhin 30k frei.

Von TB aus sollte das kein Problem sein, man braucht nur einen kleinen Reset-Handler (zB über CASINI), der RAMTOP (106) fix auf 176 (statt 192) setzt. Etwas schwieriger ist es wenn man den Highspeed Code vor TurboBasic laden möchte: Dazu muss man TB ein wenig patchen, das setzt nämlich beim Laden RAMTOP fix auf 192.

so long,

Hias

von mp-one » Sa 21. Mär 2009, 17:55
HiassofT hat geschrieben:
mp-one hat geschrieben:@hias: Klasse, dass es überhaupt so einen HS-Patch von Dir gibt!! War mir neu.

Danke!

Du kannst mit dem Patch übrigens auch ein ROM-File erzeugen und damit ein Eprom brennen - dann hast Du die Highspeed Routine fix im OS drin. Ich arbeite gerade an einer neuen Version, damit gehen dann bis zu 126kbit/sec (wenn es das SIO Gerät unterstützt).

Ich hatte nun aber noch eine andere Idee: Wir könnten versuchen einen 4k RAM Block von $B000-$BFFF abzuzwacken und dort den Highspeed Code reinzulegen. Damit wären dann im TurboBasic immerhin 30k frei.

Von TB aus sollte das kein Problem sein, man braucht nur einen kleinen Reset-Handler (zB über CASINI), der RAMTOP (106) fix auf 176 (statt 192) setzt. Etwas schwieriger ist es wenn man den Highspeed Code vor TurboBasic laden möchte: Dazu muss man TB ein wenig patchen, das setzt nämlich beim Laden RAMTOP fix auf 192.

so long,

Hias



Hallo Hias,

das sind gute Ideen. Ich hatte auch überlegt (ohne es jetzt ohne weiteres umsetzen zu können), ob man, ähnlich wie bei der PM-Grafik, das RAMTOP heruntersetzt, HISIO dort oberhalb reinlädt und dann den SIO-Vektor verändert. Der RSESET-Handler ist nötig, damit nach RESET nicht wieder die normale SIO-Routine angesprungen wird, nehme ich an? Könnte man denn die HISIO mit BLOAD von TB aus laden und aktivieren? Das wäre ja ganz gut, wenn man Hispeed quasi optional vom Programm aus aktivieren könnte und dann bewusst auf 4K-RAM verzichtet. Auch das vorherige runtersetzen des RAMTOP ist ja kein Problem. Läuft der Patch denn an beliebigen Adressen und wäre es möglich einen Dump des eigentlichen Patches zu machen und den dann direkt in den Speicher zu laden? Ich vermute aber, es muss noch mehr berücksichtigt werden.

Gruß,

Michael

von mp-one » Sa 21. Mär 2009, 17:58
cas hat geschrieben:Hallo Michael,

überlege mal ob Du dir nicht ein alternatives OS (vielleicht Umschaltbar) wie QMEG-OS einbaust, damit ist auch BeWe-DOS und auch andere DOS Systeme immer mit HighSpeed und Du must dich nicht immer nach Treibern umschauen.

Ciao

Carsten


Hallo Carsten,

ein anderes ROM wollte ich momentan nicht so gerne nehmen, da sonst bei der Weitergabe eines Programms nicht jeder Nutzer die HiSpeed ohne weiteres nutzen könnte.

Gruß,

Michael

von HiassofT » Sa 21. Mär 2009, 19:15
Hallo Michael!

mp-one hat geschrieben:das sind gute Ideen. Ich hatte auch überlegt (ohne es jetzt ohne weiteres umsetzen zu können), ob man, ähnlich wie bei der PM-Grafik, das RAMTOP heruntersetzt, HISIO dort oberhalb reinlädt und dann den SIO-Vektor verändert.

Ja, genau. Bewedos hat übrigens einen eigenen SIO-Vektor, irgendwo bei $07xx (steht in der Anleitung).

Der RSESET-Handler ist nötig, damit nach RESET nicht wieder die normale SIO-Routine angesprungen wird, nehme ich an?

Nicht ganz. Der SIO-Vektor in Bewedos ändert sich bei einem Reset (wahrscheinlich) nicht, aber der Reset-Handler sollte dann RAMTOP runtersetzen - sonst ist bei einem "GRAPHICS 8" o.ä. plötzlich der Hisio Code futsch.

Der Reset Handler macht dann im Prinzip nichts anderes als "POKE 106,176; GRAPHICS 0".

Könnte man denn die HISIO mit BLOAD von TB aus laden und aktivieren? Das wäre ja ganz gut, wenn man Hispeed quasi optional vom Programm aus aktivieren könnte und dann bewusst auf 4K-RAM verzichtet. Auch das vorherige runtersetzen des RAMTOP ist ja kein Problem.

Ja, das ist kein Problem. Wenn Du Dich um das setzen von RAMTOP (auch bei einem Reset) selber kümmerst, muss auch kein Init-Code im Hisio ausgeführt werden - einfach den Code ins RAM laden und dann den SIO-Vektor von Bewedos auf $B000 (o.ä.) umbiegen.

Läuft der Patch denn an beliebigen Adressen und wäre es möglich einen Dump des eigentlichen Patches zu machen und den dann direkt in den Speicher zu laden? Ich vermute aber, es muss noch mehr berücksichtigt werden.

Der SIO Code läuft (im Prinzip) an beliebigen Adressen, aber er muss natürlich fix für eine bestimmte Adresse assembliert werden.

Es gibt allerdings auch die Möglichkeit, den Code für beliebige Adressen zu relozieren, ohne ihn neu zu assemblieren (das habe ich für AtariSIO gemacht, damit es die ladbare Highspeed Routine - wie die Speedy - unterstützt). Ich muss aber erst sehen, ob das nach den ganzen Änderungen noch richtig funktioniert.

Einen Relocator für den Atari habe ich nicht, aber das geht recht einfach (auch in TurboBasic) zu implementieren: Am Ende des Codes steht eine Liste mit den absoluten Adressen im Hisio Code. Der Code selber wird für $1000 assembliert, Du musst dann nur die Liste durchgehen, die entsprechenden 2 Bytes im Code auslesen, $1000 abziehen, die Start-Adresse des Codes dazuzählen und die beiden Bytes im Code entsprechend auf die neue Adresse ändern.

Wenn ich Zeit habe, kann ich das mal ausprobieren. Kann aber noch ein wenig dauern.

so long,

Hias

von HiassofT » Sa 21. Mär 2009, 20:08
So, ein erster, schneller Versuch: http://www.horus.com/~hias/tmp/bwtbhi.zip

Auf der Disk sind TurboBasic (TURBOBAS.COM) und der Hisio Code assembliert für $B800 (HIB800.COM). Laden und aktivieren in TB geht so:

Code: Alles auswählen
POKE 106,176:GR.0
BLOAD "D:HIB800.COM"
DPOKE $B801, DPEEK(DPEEK(10)-10):REM alten SIO-Vektor sichern
DPOKE DPEEK(10)-10, $B803: REM Hisio in BeweDos eintragen.

Die ersten 3 Bytes ($B800-$B802) enthalten ein "JMP $E459", danach kommt der eigentliche Code. Bei D1: bis D4: wird der Highspeed Code verwendet, bei allen anderen Geräten der originale SIO Code (bzw. der SIO-Code von BeweDos, zB für Ramdisks auf D8:).

so long,

Hias

von mp-one » So 22. Mär 2009, 12:20
HiassofT hat geschrieben:So, ein erster, schneller Versuch: http://www.horus.com/~hias/tmp/bwtbhi.zip

Auf der Disk sind TurboBasic (TURBOBAS.COM) und der Hisio Code assembliert für $B800 (HIB800.COM). Laden und aktivieren in TB geht so:

Code: Alles auswählen
POKE 106,176:GR.0
BLOAD "D:HIB800.COM"
DPOKE $B801, DPEEK(DPEEK(10)-10):REM alten SIO-Vektor sichern
DPOKE DPEEK(10)-10, $B803: REM Hisio in BeweDos eintragen.

Die ersten 3 Bytes ($B800-$B802) enthalten ein "JMP $E459", danach kommt der eigentliche Code. Bei D1: bis D4: wird der Highspeed Code verwendet, bei allen anderen Geräten der originale SIO Code (bzw. der SIO-Code von BeweDos, zB für Ramdisks auf D8:).

so long,

Hias



Hias, Wahnsinn :notworthy: und besten Dank schon mal!

Ich werde das heute nachmittag sofort ausprobieren.

Gruß,

Michael

von mp-one » So 22. Mär 2009, 21:17
Hallo Hias,

Deine Routine funktioniert super!! Vielen Dank für Deine schnelle Hilfe. Da sieht man, wo die Experten sitzen :D! Ich habe erste Tests auf meinem 800XL mit SIO2USB durchgeführt. So wie es aussieht, steht jetzt eine Top-Möglichkeit zur Verfügung, auf Basis von Turbo Basic XL 1.5, Standard-Hardware (64KB), dem freien BeWe-Dos und großen Images Programme für den ATARI zu entwickeln. Ich werde zusehen, dass ich Deine Routine irgendwie sinnvoll einsetze und hoffe, dass sich auch andere Programmierer dafür interessieren.


Dazu aber noch mal folgende Fragen:

- wenn ich zu Beginn des TB-Programms POKE 106,176: GR.0 aufrufe, bleibt die 176 als RAMTOP doch auch nach GRAPHICS-Befehlen erhalten. Nur für den Fall, dass man RESET drückt, wird vom OS wieder die 192 nach Adresse 106 geschrieben. Oder gibt es nocht andere Fälle, die RAMTOP zurücksetzen, ein Sprung durch den RESET-Vektor, oder so? Hier gibt es auch ein Beispiel, wie man nach RESET BASIC-Befehle ausführen lassen kann: http://www.atarimagazines.com/compute/issue37/atari_reset_run.php

- woher kommt es, dass Du 16 Pages = 4K reserviert hast, die Routine selber ist ja nur knapp 1KB groß. Müssen da auch "gerade Grenzen" teilbar durch <xx>KB beachtet werden? Wie auch immer, ~30KB frei sind schon klasse und wenn's mal nicht reicht, lädt man eben dank HISIO800 turboschnell ein Programmmodul nach!

Beste Grüße und nochmals vielen Dank!!!

Michael
1, 2