uDOS (ultra small DOS)

uDOS (ultra small DOS)
25.05.2020 um 19:30 Uhr von Dietrich
Hi,

ich habe ein ultrakleines DOS namens uDOS geschrieben. Die Idee dazu stammt von tebe und später xxl auf Atari Age - deren Versionen haben aber einige Fehler und Ungereimtheiten und sind auch nur spärlich dokumentiert. Geeignet ist uDOS für Spiele, die aus mehreren Dateien bestehen, z.B. mit Leveldateien oder Highscore-Listen.

Features:
- uDOS passt in die 3 Bootsektoren, LOMEM liegt bei $938, also 5-6 KB mehr frei
- Kann Dateien mittels D:-Handler lesen und überschreiben wie jedes andere DOS
- Unterstützt DOS 2.x und MyDOS-Dateien, Single/Medium/Double Density
- Startet beim Booten die COM-Datei "D:AUTORUN" (statt AUTORUN.SYS)
- Unterstützt XIO 40 zum Laden von OBJ/COM-Dateien (AUX1 muss 0 sein)

Einschränkungen:
- Kein DUP-Menü oder DUP-Kommandozeile vorhanden
- Ist nicht resetfest, RESET macht Kaltstart
- Funktioniert nur mit XL/XE-kompatiblem OS (nicht 400/800-OS)
- Funktioniert nur mit D1:, max. 1 Datei gleichzeitig offen
- Kann keine Dateien erzeugen oder verlängern (mehr Sektoren)
- Keine XIO-Funktionen außer XIO 40 (wie Rename, Delete usw.)
- Keine Joker (? und *) in Dateinamen
- Kein Diskwechsel von Single/Medium nach Double Density oder umgekehrt

Weitere Details siehe udosde.txt bzw. udosen.txt im ZIP oder in Kurzform in udos.txt im ATR im ZIP. Das ATR enthält auch ein paar Tools zum BASIC-Ein-/Ausschalten samt Start eines COM/XEX/BASIC-Programms. Dazu kommt noch ein leicht geändertes Turbo-BASIC 1.5, das sich auch ohne normales DOS starten lässt.
Re: uDOS (ultra small DOS)
25.05.2020 um 20:41 Uhr von CharlieChaplin
Hehe,

nach XBDOS und FoxDos nun uDOS - klasse! Wobei dieses Tool durchaus auch ein Release im Abbuc Magazin verdient gehabt hätte...

Was ist eigentlich aus der neuen Version von XDOS geworden, die du mir mal auf der JHV gezeigt hattest (mit vielen externen Tools und daher deutlich niedrigerem memlo als XDOS 2.4x)...?!?
Re: uDOS (ultra small DOS)
26.05.2020 um 15:44 Uhr von pps
Cool, das passt sowas von genial... Ich bin gerade am schreiben... Das DOS werde ich sehr bald ausprobieren.
Re: uDOS (ultra small DOS)
26.05.2020 um 19:27 Uhr von Dietrich
Das freut mich! Ich hatte schon befürchtet, dass das niemand brauchen kann - das Einsatzgebiet für uDOS ist ja recht speziell. Es ist schon cool, was man in den Bootsektoren so unterbringen kann!

Ich habe überlegt, ob ich uDOS fürs Magazin vorsehe. Aber da es fürs nächste wohl zu spät ist und es ähnliche DOSse bereits gibt, habe ich es nun hier untergebracht. Ich habe aber nichts dagegen, wenn es auch in ein ABBUC-Magazin kommt.

XDOS 2.5 habe ich schon länger im Einsatz. Allerdings bin ich mit ein paar Kleinigkeiten noch nicht zufrieden. Außerdem fehlen noch ein paar Treiber und Tools, darunter die 3 größeren Brocken Editor, Konfig-Programm und Filemanager. Am Editor bin ich gerade dran - dank Corona mache ich jetzt Dauer-Homeoffice und spare so jeden Tag 90-120 Minuten Fahrtzeit - echt toll :)

So niedrig ist LOMEM bei XDOS 2.5 aber nicht, ohne Treiber sind wir bei $1D60, mit RAM-Disk-Treiber bei $1DF0 wie bisher.
Re: uDOS (ultra small DOS)
26.05.2020 um 20:01 Uhr von pps
Ich habe ja noch nie mit Nachladen gearbeitet, außer zusammengehängte Dateien mit ini, aber halt nicht über Dos. Daher tippe ich mal, dass ich Dir einige Fragen per PM schicken werde, wie ich das korrekt machen muss. CIO etc. ist noch komplettes Neuland für mich, aber für das Spiel wird es dringend benötigt.
Es ist noch nicht abschließend sicher, aber momentan muss ich schon ab $1700 laden. Das könnte bei den meisten DOS schon nicht mehr gehen. Ich habe den Code noch nicht komplett optimiert, aber so viel geht nicht mehr und einige Sachen müssen noch rein... Es soll aber auf 64k Rechnern und auch ohne Modul laufen, also passt Dein DOS wohl perfekt.

Das DOS von XXL habe ich natürlich schon gesehen, aber er schreibt gerne so, dass einige Rechner außen vor bleiben... Das wäre dann nicht so schön.
Re: uDOS (ultra small DOS)
26.05.2020 um 20:48 Uhr von CharlieChaplin
@pps:
Wenn dein Programm kein RAM unter dem OS benutzt, dann könntest du DOS 2XL vom Autor von Atari++ (thorfdgb oder so ) benutzen. Dieses DOS kann zwar nur 90k und 130k, es nutzt aber fast ausschließlich RAM unter dem OS und hat daher ein memlo von $0794. Es ist, wie zu erwarten, dem DOS XL nachempfunden und daher auch DOS 2 kompatibel (laden + speichern geht normal) und unterstützt auch Autorun.SYS...

Wenn du doch das RAM unter dem OS benötigst, könntest du dir mal LiteDOs 2.x oder 3.x von Mr. Atari anschauen. Dies hat ein memlo von $1000, unterstützt alle möglichen und unmöglichen Formate bis 16MB, ist jedoch leider nicht mehr 100% DOS 2 kompatibel. (LiteDOs kann DOS 2 und MyDOs Formate lesen und ins LiteDOs Format umkopieren; DOS 2 kann wiederum nur die DIR von LiteDOs anzeigen und weder Dateien davon laden, noch darauf schreiben.)

@Dietrich:
Ich freue mich immer über gute Bootloader, mini-DOSse, etc., mit denen ich A8 Programme laden kann, die sonst unter keinem DOS laufen wollen, z.B. alte Abtipplistings die für Betrieb mit dem Datenrekorder gemacht wurden und das DOS überschreiben. (Als nicht-Programmierer kann ich solche Listings ja nicht ändern, also suche ich immer nach Programmen, mit denen ich sowas trotzdem von Diskette laden kann.)

Von C.Strotmann gab/gibt es das 3-Sektor-DOs für Basic-Programme, leider lädt es absolut nix automatisch, man erhält nur den READY Prompt und muss alle Basic Programme manuell laden (oder ich habe noch nicht rausgefunden, wie das dort automatisch geht). In meiner Sammlung habe ich noch ein altes Antic oder Analog Listing, namens "Sequential DOS", damit kann man Basic-Dateien mit dem Befehl CLOAD oder RUN"C:" von Diskette (sic!) laden - aber auch nur manuell, nach dem Erscheinen des Ready-Prompts. (Und es wird ein eigenes Bootformat verwendet, so dass man die Dateien recht umständlich dazu umkopieren muss.) Von XXL gibt es das XbootDOS, es hat mir schon recht gute Dienste geleistet - doch wie schon erwähnt, hat XXL ja die böse Angewohnheit best. A8 Hardware zu boykottieren (U1MB, Incognito, 65816/65802, etc.) und baut absichtlich Code in seine Programme ein (Spiele, Demos, etc.), damit sie damit nicht funktionieren. Zwar besitze ich diese A8 Hardware nicht und es könnte mir dann egal sein, doch unterstütze ich so ein Verhalten nur ungern. Von x0F gab es das FoxDos, das ich bisher aber noch nicht getestet habe, vermutlich lädt es auch nur ML-Dateien... Werde nun also dein uDOS ausführlich testen. Bei meinem Tape2Disk Projekt sind ja auch div. Basic-Tapes dabei, die mit DOS nicht laufen wollen (und die meisten CSIM. unterstützen kein Basic).

War auch so böse, bei (Atari) DOS 2.5 mal das absolute minimum zu konfigurieren, nämlich 1 Laufwerk und 1 Buffer. Damit hat DOS 2.5 ein memlo von 1Bxx oder 1Cxx und lädt zumindest immer noch Basic Dateien anstandslos (auch wenn diese aus mehreren Dateien bestehen und neben Run"D:..." scheint auch Open"D:..." weiter zu funkt.). Ist aber nur eine Notlösung für einige kommerz. Basic-Tapes.
Re: uDOS (ultra small DOS)
26.05.2020 um 21:03 Uhr von pps
CharlieChaplin hat geschrieben:Wenn dein Programm kein RAM unter dem OS benutzt, dann könntest du DOS 2XL vom Autor von Atari++ (thorfdgb oder so ) benutzen. Dieses DOS kann zwar nur 90k und 130k, es nutzt aber fast ausschließlich RAM unter dem OS und hat daher ein memlo von $0794. Es ist, wie zu erwarten, dem DOS XL nachempfunden und daher auch DOS 2 kompatibel (laden + speichern geht normal) und unterstützt auch Autorun.SYS...

Hallo Andreas,

Das DOS habe ich bisher noch nicht registriert... Hoffe ich werde nicht gesteinigt, wo ich doch die Domain für den ATARI++ spende seitdem er damals nur noch schwer auf der alten Domain zu erreichen war, weil alles voller Werbung und Popups war ;)

Dennoch reicht sehr wahrscheinlich das uDOS aus und nur im Bootsektor ist natürlich dann auch schnell geladen ;)
Re: uDOS (ultra small DOS)
26.05.2020 um 21:19 Uhr von Dietrich
@pps:
Beachte, dass uDOS nur wenige Fehlerchecks auf unzulässige Aufrufe hat (384 Bytes für ein DOS sind echt wenig). Wenn du noch keine Erfahrung mit CIO hast, teste deine Routinen am besten erst mit einem normalen DOS (mit Prüfung des CIO-Returncodes), bevor du uDOS benutzt.

Ich habe mal etwas Beispielcode für dich geschrieben (ungetestet!):
(Ich musste das txt in ein zip verpacken, weil das Forum txt-Dateien nicht erlaubt.)
Re: uDOS (ultra small DOS)
26.05.2020 um 21:36 Uhr von pps
Dietrich hat geschrieben:@pps:
Beachte, dass uDOS nur wenige Fehlerchecks auf unzulässige Aufrufe hat (384 Bytes für ein DOS sind echt wenig). Wenn du noch keine Erfahrung mit CIO hast, teste deine Routinen am besten erst mit einem normalen DOS (mit Prüfung des CIO-Returncodes), bevor du uDOS benutzt.

Ich habe mal etwas Beispielcode für dich geschrieben (ungetestet!):
(Ich musste das txt in ein zip verpacken, weil das Forum txt-Dateien nicht erlaubt.)

Danke für die Hilfe. Ich habe schon begonnen im Profibuch zu lesen (auf dem Weg zur/von Arbeit, jetzt darf ich ja wieder da hin), wie das alles geht. Ich muss nämlich unterschiedliche Levels laden können. Das geht mit der Methode alles zusammenzuhängen ja eher nicht. Abspeichern könnte auch noch dazu kommen, sollte ich noch Platz für eine schöne Statistikfunktion übrig haben... Aber wir schauen mal, was geht. Derzeit bin ich dabei einen passenden PM Multiplexer zum basteln, da ich noch etwas mehr Farbe im Spiel benötige ;)
uDOS (ultra small DOS)
Benutzeravatar28.05.2020 um 14:11 Uhr von Erhard
Hi,

Dietrich hat geschrieben:Hi,
- Kann Dateien mittels D:-Handler lesen und überschreiben wie jedes andere DOS

- Kann keine Dateien erzeugen oder verlängern (mehr Sektoren)


was ist mit "überschreiben" gemeint, wenn es keine Datei erzeugen oder verlängern kann?

MfG, Erhard
Re: uDOS (ultra small DOS)
Benutzeravatar28.05.2020 um 15:47 Uhr von atarixle
Ich vermute mal, dass es eine Datei, die 1024 Bytes groß ist, mit weniger oder genau 1024 Bytes überschreiben kann.
Re: uDOS (ultra small DOS)
28.05.2020 um 19:46 Uhr von Dietrich
Genau, man kann vorhandene Dateien überschreiben. Die neu beschriebene Datei kann auch länger als die alte sein, soweit die Daten in die Sektoren der Datei noch reinpassen (uDOS kann nicht auf die VTOC zugreifen). Genaue Details zum Schreiben siehe udosde.txt im Zip.
uDOS (ultra small DOS)
Benutzeravatar29.05.2020 um 15:26 Uhr von Erhard
Hi,

verstanden, danke.

CU, Erhard
Re: uDOS (ultra small DOS)
29.05.2020 um 16:54 Uhr von CharlieChaplin
Hallo Stefan,

heute kam ich endlich dazu uDOs zu testen - und es funkt. leider nicht. Vermutlich mache ich irgendetwas falsch. Wollte testweise ein Atari Basic Programm mit uDOS laden und bekam nur den Ready Prompt. Das gleiche Programm mit XBootDOS lief. Hier meine Vorgehensweise:

XBootDOS (memlo $0980):
1) Disk mit 90k formatiert und XBootDOs darauf initialisiert
2) Autorun draufkopiert (es lädt Basic und ML Dateien, Start.BAS bzw. Start.COM)
3) das kurze Basic Titelprogramm draufkopiert und in Start.BAS umbenannt (es zeigt einen Gr. 2 Titel an und lädt sodann das Spiel)
4) das Basic Spiel draufkopiert
5) neu gebootet - Titel wird angezeigt, Spiel wird geladen und läuft

uDOS (memlo $0937):
1) Disk mit 90k formatiert und uDOs darauf initialisiert
2) RUNBAS.COM draufkopiert und in Autorun umbenannt (es lädt Basic Dateien mit Namen Autorun.BAS)
3) das kurze Basic Titelprogramm draufkopiert und in Autorun.BAS umbenannt (es zeigt einen Gr. 2 Titel an und lädt sodann das Spiel)
4) das Basic Spiel draufkopiert
5) neu gebootet - es erscheint nur der Ready Prompt (entweder wird die Autorun Datei oder die Autorun.BAS Datei nicht geladen) ?!?

Damit du das genauer begutachten kannst, schicke ich dir mal beide Varianten als ATR Images zu. Vielleicht findest du ja den Fehler, vermutlich von mir verursacht...
Re: uDOS (ultra small DOS)
29.05.2020 um 23:28 Uhr von Dietrich
Hi Andreas,

danke für den Test. Das Problem ist das RUNBAS.COM: Die hier benutzte Methode zum BASIC-Pgm-Start funktioniert nicht, wenn das Pgm nachlädt. Ich habe nun einen anderen Weg zum BASIC-Pgm-Start benutzt. Außerdem habe ich noch einen kleinen Fehler in RUNUDOS.COM gefunden, der dazu führt, dass manchmal "Disk #1 Status error" angezeigt wird. Im angehängten Zip ist beides korrigiert (alle anderen Dateien - auch uDOS selbst - sind unverändert).
Re: uDOS (ultra small DOS)
30.05.2020 um 13:58 Uhr von CharlieChaplin
Danke Stefan!

Jetzt funktioklappt uDOS mit Basic Dateien so wie ich es möchte... prima!
Re: uDOS (ultra small DOS)
01.06.2020 um 18:25 Uhr von pps
@Dietrich: Du hast PN ;)
auf ABBUC.de antwortenauf ABBUC.de lesen alle aktiven ABBUC-Forum-Themen zurück zu atarixle.de