Autor Thema: AtariX => MagicOnLinux  (Gelesen 11264 mal)

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.488
Re: AtariX => MagicOnLinux
« Antwort #300 am: Do 08.01.2026, 10:22:10 »
Windows unterstützt UTF-16 schon mindestens seit win32s. Und man kann die Funktionen auch direkt aufrufen (_wfopen etc.). D.h. man kann auch einfach kleine Wrapper schreiben, die utf-8 in UTF-16 wandeln, und die entsprechenden Funktionen dann umbiegen.

Für Windows gibt es allerdings momentan noch ein anderes Problem: die ganzen fopenat(), statat() etc. Funktionen sind dort nicht verfügbar. Die müsste man erst nachbilden.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 110
Re: AtariX => MagicOnLinux
« Antwort #301 am: Fr 09.01.2026, 11:03:07 »
Auch wenn es höchstens anekdotische Evidenz hat, habe ich die Unterstützung von ROM-Steckmodulen (cartridges) eingebaut. Programmtechnisch war das sehr einfach. Ich wollte auch noch etwas mit dem MIME-Zeugs spielen und habe dabei  auch etwas gelernt.

Was ich nicht hingekriegt habe, und das Schweigen der Spezifikation ist hier wundersam im Einklang mit dem Fehlen von Beispielen, ja sogar mit der Nichtexistenz jeglicher Nachfragen, ist eine Kombination aus Merkmalen. Also was will ich eigentlich? Die Datei muß (a) am Anfang die magischen Werte haben, und sie muß (b) eine Länge von 128k+4 haben und muß (c) die Dateiendung .stc haben. Das wollte noch niemand. Jemals ever. Im Ergebnis werden jetzt alle Dateien erkannt, die (a) die magischen Werte haben oder (b) die Dateiendung ".stc". Das ist suboptimal.

Für den Zugriff kann man den ROMDRVR.PRG nehmen, der aber nur eine mangelhafte Teilmenge der DOS-Aufrufe unterstützt, insbesondere fehlen die neueren D***dir()-Funktionen. Im übrigen gehört sowas auch in den Kernel oder den Emulator, wenn man es ernsthaft verwenden wollte. Folglich sieht man das ROM nur per Fsfirst()/next(), also z.B. von MCMD aus. Es ist halt ein Hack. Oder Spielerei.

Auch wenn es vermutlich keine einzige ROM-Cartridge gibt, die irgendeinen praktischen Nutzen hat, so hat man dann wenigstens jetzt ein buntes Bildchen. Ich denke, daß Hatari die .stc-Dateien unterstützt, auch wenn ich es nicht ausprobiert habe.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.488
Re: AtariX => MagicOnLinux
« Antwort #302 am: Fr 09.01.2026, 12:07:11 »
Ja, ist zweifelhaft, ob man solche ROM-Cartridges findet, wenn dann müsste man sich die schon selber bauen irgendwie. In den meisten Fällen wird der Port für Kopier-Schutz Dongles benutzt. Ausnahme ist wohl das Diagnose-Cartridge, das macht aber auf einem Emulator wenig Sinn.

Ist also die Frage ob man sowas überhaupt unterstützen muss. Besonders, wenn die mime-type Erkennung möglicherweise mit anderen Dateien vom Typ *.stc kollidiert (openOffice scheint sowas z.B. zu generieren wenn man für StarOffice exportiert, siehe auch https://sembiance.com/fileFormatSamples/document/starOfficeSpreadsheet/example.stc).

Offline AndreasKromke

  • Benutzer
  • Beiträge: 110
Re: AtariX => MagicOnLinux
« Antwort #303 am: Fr 09.01.2026, 13:35:37 »
Ja, ist zweifelhaft, ob man solche ROM-Cartridges findet
Die habe ich massenweise gefunden. Sonst wäre ich auch nicht auf die Idee gekommen, das auszuprobieren. Ich glaube, ich habe die bei atari-forum.com gesehen. Nur die wenigsten sind Diagnose-ROMs. Die haben auch eine andere Kennung, also einen anderen magischen Wert.

Und ja, .stc ist LibreOffice-Zeugs. Deshalb bin ich ja auch unzufrieden. Vielleicht sollte ich die Dateiendung weglassen bei der MIME-Definition. Ich hatte halt gehofft, daß ich die mit den magischen Bytes ver-und-en kann.

Offline czietz

  • Benutzer
  • Beiträge: 3.968
Re: AtariX => MagicOnLinux
« Antwort #304 am: Fr 09.01.2026, 17:06:09 »
.stc ist m.W. die Endung, die Steem eingeführt hat. Viele der Cartridge-Dumps sind aber eben nur Speicher-Dumps, also exakt 64*1024 oder 128*1024 Bytes lang. Du solltest also nicht exakt 128*1024 + 4 Bytes erwarten, sondern mind. auch die zwei anderen Größen akzeptieren.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 110
Re: AtariX => MagicOnLinux
« Antwort #305 am: So 11.01.2026, 10:24:09 »
Bin gerade dabei, die PDLG.SLB mittels Thorstens "reverse engineer"-Quellen zu bauen, und bin darüber gestolpert, daß man noch ein Bit im SLB setzen muß, damit es funktioniert. Dafür hatte ich RUNOPTS vorgesehen, das steht so auch in meiner Doku. Insofern alles gut.

Aber: Das runopts, das ich im Internet gefunden habe, ist hoffnungslos veraltet:
Tools/runopts.ttp, Copyright (c) Julian F. Reschke, Mar  6 1994                                     
                                                                                                   
usage: runopts [-crsv][-p type][-t tpasiz]                                                         
          [[+-][fhlm]] files...                                                                     
                                                                                                   
-c, --changes-only   Display only changed files                                                     
-f, +f               Fastload flag                                                                 
-h, +h               Shared text segment flag                                                       
-l, +l               Load to Alternate RAM flag                                                     
-m, +m               Malloc from Alternate RAM flag                                                 
-p, --protection M   Protection mode M (p, s, g, or r)                                             
-r, --reset          Reset all reserved fields                                                     
-s, --silent         No warnings                                                                   
-t, --tpa-size T     Set TPA size field to T                                                       
-v, --verbose        Be verbose                                                                     
    --help           Show this help screen                                                         
    --version        Display version string                                                         

In meinen Archiven finde ich hingegen:

Tools/runopts.ttp, Copyright (c) Julian F. Reschke, Oct 28 1997                                     
                                                                                                   
Gebrauch: runopts [-crsv][-p type][-t tpasiz]                                                       
             [[+-][fhlmS]] Dateien...                                                               
                                                                                                   
-c, --changes-only   Nur geänderte Dateien anzeigen                                                 
-f, +f               Fastload flag                                                                 
-h, +h               Shared text segment flag                                                       
-l, +l               Load to Alternate RAM flag                                                     
-m, +m               Malloc from Alternate RAM flag                                                 
-p, --protection M   Schutzmodus mode M (p, s, g, or r)                                             
-r, --reset          Alle reservierten Felder löschen                                               
-s, --silent         Keine Warnungen ausgeben                                                       
-S, +S               'Kleine' TPA anlegen (MagiC)                                                   
-t, --tpa-size T     TPA-Größenfeld auf T setzen                                                   
-v, --verbose        Sei gesprächig                                                                 
    --help           Diese Information anzeigen                                                     
    --version        Versionsinformation anzeigen                                                   

, und diese neue Version brauche ich auch.

Soweit, so gut. Aber gibt es eine offizielle Quelle für die Mupfel und ihre Dienstprogramme? Gibt es vielleicht noch neuere Versionen? Oder ist der Reschke (Bruder der berühmten Fernseh-Frau?) gar mit gutem Beispiel vorangegangen und hat die Quellen veröffentlicht? Leider kann ich da wenig finden. Auch nicht in [https://github.com/reschke].

Die Mupfel liegt wohl hier: [https://github.com/gereons/gemini/tree/main/MUPFEL] oder hier [https://github.com/gereons/gemini2/tree/main/MUPFEL]. Hat die mal jemand gebaut? Gibt's da eine "binary distribution"? Hier finde ich aber keine runopts. Die gehörten wohl nicht direkt zur Mupfel, sondern zu den Mupfel-Tools von Julian.

In Thorstens repo liegt übrigens auch ein runopts, das ist aber auch das alte.
« Letzte Änderung: So 11.01.2026, 10:25:09 von AndreasKromke »

Offline AndreasKromke

  • Benutzer
  • Beiträge: 110
Re: AtariX => MagicOnLinux
« Antwort #306 am: So 11.01.2026, 10:37:52 »
Schau an, ich habe auch noch diese hier (in MUPFTLBT.ZIP):

Tools/runopts.ttp, Copyright (c) Julian F. Reschke, Dec 27 1999                                     
                                                                                                   
Gebrauch: runopts [-crsv][-p type][-t tpasiz]                                                       
             [[+-][fhlmS]] Dateien...                                                               
                                                                                                   
-c, --changes-only   Nur geänderte Dateien anzeigen                                                 
-f, +f               Fastload flag                                                                 
-h, +h               Shared text segment flag                                                       
-l, +l               Load to Alternate RAM flag                                                     
-m, +m               Malloc from Alternate RAM flag                                                 
-p, --protection M   Schutzmodus mode M (p, s, g, or r)                                             
-r, --reset          Alle reservierten Felder löschen                                               
-s, --silent         Keine Warnungen ausgeben                                                       
-S, +S               'Kleine' TPA anlegen (MagiC)                                                   
-t, --tpa-size T     TPA-Größenfeld auf T setzen                                                   
-v, --verbose        Sei gesprächig                                                                 
    --help           Diese Information anzeigen                                                     
    --version        Versionsinformation anzeigen

Das gehört zu:

Mupfel-Tools Release 15 vom 1999-12-27 (MUPFTL15.TOS)

Hier gibt es jedes Dienstprogramm zweimal, einmal monolithisch und einmal mit "dosix001.slb", wodurch die einzelnen Programme kleiner werden. Ich habe tatsächlich keine Erinnerung daran, woher ich das bekommen habe, vielleicht von ihm selber, aber ich hatte damals nicht einmal Internet zuhause.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.488
Re: AtariX => MagicOnLinux
« Antwort #307 am: So 11.01.2026, 11:02:54 »
Dafür hatte ich RUNOPTS vorgesehen

Du kannst auch PH_BIT3 nehmen. Die Quellen dafür sind sogar in deinem Archiv ;) https://gitlab.com/AndreasK/Atari-Mac-MagiC-Sources/-/blob/master/MagiC/TOOLS/SLB_DEMO/SRC/PH_BIT3.C?ref_type=heads


Zitat
gibt es eine offizielle Quelle für die Mupfel und ihre Dienstprogramme?

Für Mupfel mittlerweile ja, für die Tools leider nicht.


Zitat
Hat die mal jemand gebaut?

Ja. Die Sourcen scheinen sogar etwas neuer zu sein als die letzte veröffentlichte Version 1.9a. Für die Tools nutzt das aber leider nichts, da die (wie du schon festgestellt hast), von Julian Reschke sind, und nicht direkt zu Gemini gehören.

Offline don_apple

  • Benutzer
  • Beiträge: 31
Re: AtariX => MagicOnLinux
« Antwort #308 am: Mo 12.01.2026, 11:56:03 »
@AndreasKromke Habe gerade versucht die aktuelle Version von MagiConLinux auf macOS zu bauen, und dabei die folgenden Fehler bekommen:
...
/Users/frank/Source/magiclinux/src/register_model.cpp:96:23: error: use of undeclared identifier 'htobe16'
                ret = htobe16(src[0]);
                      ^
/Users/frank/Source/magiclinux/src/register_model.cpp:101:23: error: use of undeclared identifier 'htobe32'
                ret = htobe32(src[0]);
                      ^
...
** BUILD FAILED **


The following build commands failed:
CompileC /Users/frank/Source/magiclinux/build/build/magic-on-linux.build/Release/Objects-normal/x86_64/register_model.o /Users/frank/Source/magiclinux/src/register_model.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler (in target 'magic-on-linux' from project 'MagicOnLinux')
(1 failure)
Wenn ich in src/register_model.cpp am Anfang bei den includes ein
#include "Globals.h"
hinzufüge sind die Fehler weg.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 110
Re: AtariX => MagicOnLinux
« Antwort #309 am: Mo 12.01.2026, 11:59:12 »
...hinzufüge sind die Fehler weg.
Danke fürs Ausprobieren!
Die letzten Änderungen betreffen das ROM-Modul, das ist im Registermodell angesiedelt.

Offline AndreasKromke

  • Benutzer
  • Beiträge: 110
Re: AtariX => MagicOnLinux
« Antwort #310 am: Gestern um 23:00:38 »
Bin gerade über den THEMES-Ordner gestolpert. Hatte völlig vergessen, was der da soll. Putzig. Aber die Aqua-Fensterränder passen nicht so recht zum restlichen Look&Feel des Systems.