Autor Thema: MagiC Hades Sourcecode  (Gelesen 32298 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline KarlMüller

  • Benutzer
  • Beiträge: 420
MagiC Hades Sourcecode
« am: Di 04.12.2018, 19:34:13 »
Um das ganze mal zu entzerren.

Was bisher geschah:
Hades? Ich sehe das BIOS nicht. Ist es möglich?

Gerade mal getestet. Da scheint noch eine Datei für zu fehlen (hades.inc) scheinbar mit Definitionen für die Hardware-Addressen. Er meckert über solche Sachen wie pci_vga_reg, hlt (head load time) etc. Weiss jemand wo man da Ersatz für finden kann?

Hades? Ich sehe das BIOS nicht. Ist es möglich?

Gerade mal getestet. Da scheint noch eine Datei für zu fehlen (hades.inc) scheinbar mit Definitionen für die Hardware-Addressen. Er meckert über solche Sachen wie pci_vga_reg, hlt (head load time) etc. Weiss jemand wo man da Ersatz für finden kann?

;video auflîsung  2=st high 6=tt high           
vidmo:          equ 2
vidmo00:        equ vidmo*$100           
pci_vga_base:   equ $80000000   ;screen ram beginn
isa_vga_base:   equ $ff000000   ;screen ram beginn
pci_vga_reg:   equ $b0000000   ;vga register
isa_vga_reg:   equ $fff00000   ;vga register
pci_conf1:   equ $a0010000   ;pci config
pci_conf2:   equ $a0020000   ;pci config
pci_conf3:   equ $a0040000   ;pci config
pci_conf4:   equ $a0080000   ;pci config
mem_max:   equ $40000000   ;memory maximum 1 GB

;hades hardwareregister
main_status:   equ $fff00080
data_reg:   equ $fff00082
ldor:      equ $fff000c0
ldcr:      equ $fff000e0

; Hardwareregister
dmahigh:   equ $FFFF8608
dmamid:      equ $FFFF860B
dmalow:      equ $FFFF860D
gpip:      equ $FFFFFA81   ; TTMFP: Interface Port Datenregister

; sonstige Variablen
defhdinf:   equ $302      ; Default hdinf. byt 0 -> anzahl versuche byt 1 -> taktrate (hd default)
ed:      equ 0         ; clockraten fÅr verschiedene format
hd:      equ 2
dd:      equ 3
hlt:      equ 3         ;head load time in milisekunden (in 1ms schriten 1-128ms)
hut:      equ 120         ;head unload time in ms (in 16ms schritten 8-120ms)

Noch etwas?

Noch etwas?

Ja, ein paar SCSI-Addressen noch, aber die standen noch als Kommentar irgendwo anders. Den Rest konnte ich mir grösstenteils zusammen reimen.  Vielen Dank!

Was mich noch irritiert:
gpip:      equ $FFFFFA81 ; TTMFP: Interface Port Datenregister

Hat der Hades den "normalen" MFP gar nicht?

Ja, ein paar SCSI-Addressen noch, aber die standen noch als Kommentar irgendwo anders.
Das liegt daran, weil die Routinen eins zu eins den Modifikationen des TOS 3.06 für den Hades entnommen sind.

Was mich noch irritiert:
gpip:      equ $FFFFFA81 ; TTMFP: Interface Port Datenregister

Hat der Hades den "normalen" MFP gar nicht?
Doch hat er. Liegt ganz normal an den Adressen wie beim ST/TT.

Offline KarlMüller

  • Benutzer
  • Beiträge: 420
Re: MagiC Hades Sourcecode
« Antwort #1 am: Di 04.12.2018, 19:46:38 »
Bleibt nur noch eine Ungereimtheit: im exception-handler wird der SP auf eine Addresse gesetzt die nirgendwo definiert ist. In der ST-Version wird das nicht gemacht. Da muss ich mir jetzt noch ein freies Plätzchen suchen.

Ich nehme an Du meinst in HAD_EXEC.S die Variable "startup_stk". Die ist
startup_stk:   equ $5758

Allerdings macht das meiner Meinung keinen Sinn bei MagiC. Die Adresse stammt aus TOS 3.06

Auszug aus der BSS von TOS 3.06:
$00004b54: _msec
$00004b56: _prtbbval
$00004f58: _supstk 2*1024=$800
$00005758: _prtbflg
$0000575A: _prtbdmask
Wenn ich das richtig verstanden habe ist das der Supervisor Stack.

Könnte in MagiC dazu den Inhalt der Variable pgm_superst genutzt werden? Diese wird zumindest am Anfang des Bios definiert.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.315
Re: MagiC Hades Sourcecode
« Antwort #2 am: Di 04.12.2018, 23:46:46 »
Ja genau, die meinte ich. Dort Addressen von TOS 3.06 zu nehmen macht logischerweise keinen Sinn, die internen Variablen von Magic sind natürlich ganz woanders.

Ob man den  pgm_superstk nehmen kann bin ich nicht sicher, sieht mir so aus als ob der nach Ausführung der Auto-Ordner-Programm vom AES geerbt wird. Der liegt auch nicht am  Anfang des BIOS, sondern wird per Mxalloc angefordert. Ich bin mir auch nicht ganz sicher warum das überhaupt gemacht wird, das wird weder in der "normalen" Version von MagiC, noch in TOS 3.06 gemacht. I.d.R. wird das Programm kurz danach sowieso beendet. Wenn du da mehr weisst, immer her damit ;) Mit Hades kenne ich mich kaum aus (gibt ja auch nicht viel offizielle Dokumentation dazu).

Offline KarlMüller

  • Benutzer
  • Beiträge: 420
Re: MagiC Hades Sourcecode
« Antwort #3 am: Sa 08.12.2018, 10:18:04 »
Ja genau, die meinte ich. ...

Wenn du da mehr weisst, immer her damit
Tut mir leid ich habe da auch nicht mehr und versuche auch nur aus dem wenig was zu finden.

Hier kann nur Andreas Kromke oder Fredi Aschwanden helfen. Andere alternative wäre ein vorhandenes MAGIC.RAM vom Hades.

Der Code von MagiC ist fast ein zu ein aus dem was ich als Patch kenne. In letztem fehlt die Möglichkeit per "Return" ins Programm zurück zukehren.
Der Sinn des ganzen könnte sein das der vorhanden Stack nicht überschrieben wird um korrekte Daten aus dem möglicherweise defekten Stack zu bekommen. Die exception Routine spring ja mal nach reg_aus oder string_out.
Wenn nur die Kaltstart Funktion vorhanden wäre, würde ich einfach in hades.inc der Variable startup_stk einen Speicherbereich zuordnen.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.315
Re: MagiC Hades Sourcecode
« Antwort #4 am: Sa 08.12.2018, 10:43:31 »
Andere alternative wäre ein vorhandenes MAGIC.RAM vom Hades.

Würde ich auch nehmen ;) Wenn ich davon ausgehe, daß da nur Kleinigkeiten anders als in dem veröffentlichten Source sind, sollten sich die Stellen eigentlich relativ schnell finden lassen.

Zitat
In letztem fehlt die Möglichkeit per "Return" ins Programm zurück zukehren.

Das ist auch so eine Sache. IMHO macht es in den wenigsten Fällen Sinn zu versuchen das Programm fortzuführen. In den meisten Fällen würde der gleiche fehlerhafte Befehl nur gleich wieder ausgeführt werden, und dann gleich wieder krachen.

Zitat
einfach in hades.inc der Variable startup_stk einen Speicherbereich zuordnen.

Ja, habe ich jetzt auch erstmal gemacht, damit es sich übersetzen lässt.

PS.:
Gabs eigentlich jemals ne 'offzielle' ROM-Version von Magic 6? Ich hab hier nur ein Tool gefunden das ein *.ram reloziert, scheint aber nur für ältere MagiX-Versionen zu funktionieren.

Offline TheNameOfTheGame

  • Benutzer
  • Beiträge: 90
  • Almost Heaven, West Virginia
Re: MagiC Hades Sourcecode
« Antwort #5 am: So 09.12.2018, 14:43:53 »
Ich habe 2 magic.ram-Dateien auf meinem Hades.
Im AUTO-Ordner befindet sich mhades.ram
Auf dem C-Drive-Root befindet sich magic.ram
Hier sind sie.

Edit:  Auch magxboot.prg und magxbo32.prg aus dem AUTO-Ordner.

« Letzte Änderung: So 09.12.2018, 15:04:23 von TheNameOfTheGame »

Offline KarlMüller

  • Benutzer
  • Beiträge: 420
Re: MagiC Hades Sourcecode
« Antwort #6 am: So 09.12.2018, 16:56:33 »
Danke für Dateien!

Im AUTO-Ordner befindet sich mhades.ram
Das ist ein verschlüsselte Version. Wahrscheinlich die 6.20. Kann/konnte man mal bei ASH downloaden.

Auf dem C-Drive-Root befindet sich magic.ram
Die passt. Thorsten wird es auch schon gesehen haben, die eigenartige Adresse ist dort auch drin.

Du kannst ja mal die Version testen, welche im anderen Thread im Archiv "mmilan.zip.pdf" drin ist.
« Letzte Änderung: So 09.12.2018, 17:32:34 von KarlMüller »

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.315
Re: MagiC Hades Sourcecode
« Antwort #7 am: So 09.12.2018, 17:24:26 »
Ja, danke, hatte auch schon festgestellt daß die eine Version verschlüsselt ist. Wäre auch seltsam, das Bootprogramm ist identisch zu der normalen Version, und das sucht nur nach magic.ram.

Offline TheNameOfTheGame

  • Benutzer
  • Beiträge: 90
  • Almost Heaven, West Virginia
Re: MagiC Hades Sourcecode
« Antwort #8 am: So 09.12.2018, 17:49:01 »
Ja, danke, hatte auch schon festgestellt daß die eine Version verschlüsselt ist. Wäre auch seltsam, das Bootprogramm ist identisch zu der normalen Version, und das sucht nur nach magic.ram.

Ah, mhades.ram ist nur ein Relikt. Es war schon da, als ich die Maschine kaufte.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.315
Re: MagiC Hades Sourcecode
« Antwort #9 am: Mo 10.12.2018, 21:59:43 »
Schon mal vorab ein paar sachen die mir in der Zwischenzeit aufgefallen sind:

  • Das Bios-Datum der angehängten Datei ist vom 5.5.2001, die Sourcen hatten ursprünglich 11.09.2001. Ausser den unten genannten Sachen konnte ich aber keine Unterschiede feststellen.
  • Die Version ist eine US-Version, und hat auch nicht das PAL-Flag im Header gesetzt. Das PAL-Flag wird (warum auch immer) in den veröffentlichten Sourcen immer gesetzt.
  • Die Tastatur-Tabellen haben (im Gegensatz zu den Sourcen) auch Alt-Tabellen. Macht das überhaupt Sinn für eine US-Tastatur?
  • Der _IDT Cookie wird entgegen des OS-Headers auf $112e wie bei der deutschen Version gesetzt. Kann es sein daß die Tastatur-Tabellen und der Header nachträglich gepatcht wurden?
  • Einige Texte wie z.b. SYSTEM ÜBERSCHRIEBEN sind seltsamerweise trotzdem in deutsch
  • Rogers MBSU Patch ist da offensichtlich drüber gelaufen (deaktiviert den Floppy-Test beim booten, und gaukelt dem System stattdessen 2 Floppies vor). In der übersetzten Version ist der jetzt nicht mehr drin, wenn man das möchte einfach nochmal drüber laufen lassen, funktioniert auch mit der neuen Version.
  • Auch wenns keinen Sinn macht, verwendet er $5758 als Supervisor-Stack im Exception-Handler. Offensichtlich hat da jemand vergessen das anzupassen. $5758 ist für MagiC ungeeignet, weil es ausserhalb des vom System reservierten Bereichs liegt (oberhalb von _membot)
  • Die XFS95 Routinen sind da seltsamerweise einkompiliert, werden aber scheinbar nicht angesprochen.
  • Allgemein scheinen die Hades TOS Sourcen auf TOS 3.05 zu basieren. Ich hab jetzt noch nicht geprüft ob sich in den übernommenen Stellen bei 3.06 was geändert hat. Überhaupt scheint (vermutlich noch aus der Zeit von KAOS) ziemlich viel bei TOS "geklaut" zu sein.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.315
Re: MagiC Hades Sourcecode
« Antwort #10 am: Mi 12.12.2018, 06:56:05 »
So, nochmal aktualisierte Versionen für Hades und Milan. Die Hades-Version benutzt bei Exceptions jetzt den Stack der auch beim booten benutzt wird (ist eh nur relevant wenn Programme abstürzen). Beide Versionen sind komplette deutsch (inklusive Tastatur-Tabellen), wenn man andere braucht ist die einfachste Möglichkeit sie extern zu laden (siehe auch http://atari-forum.com/viewtopic.php?f=28&t=34608)

Ansonsten nicht viel geändert. Was ich noch gesehen habe, daß in der original-Hades-Version von TheNameOfTheGame offensichtlich ein Fehler in der Einbindung des FPSP060 war, die wohl dazu führen müsste daß der Versuch CAS/CAS2 zu emulieren fehlschlägt. Wer Lust hat kanns ja mal testen.

Im übrigen sind die Sourcen mit meinen Änderungen jetzt auch auf github verfügbar.

Offline TheNameOfTheGame

  • Benutzer
  • Beiträge: 90
  • Almost Heaven, West Virginia
Re: MagiC Hades Sourcecode
« Antwort #11 am: Mi 12.12.2018, 15:01:20 »
Danke Schön!

Offline Ektus

  • Benutzer
  • Beiträge: 919
Re: MagiC Hades Sourcecode
« Antwort #12 am: Mi 12.12.2018, 18:42:33 »
Ich habe die MAGIC.RAM auf meinem Milan 040 gegen diese Version (12.12.2018) ausgetauscht, der Rechner startet noch :-)

MagiC-Net läuft, Mailabruf mit MyMail und mit IN2CAT hat geklappt.

Dabei fällt mir noch eine Beschränkung von MagiC ein: Die Anzahl der möglichen Einträge in Laufwerk U: ist begrenzt. Kann der Wert erhöht oder dynamisiert werden? Im Moment muß ich einige Laufwerke aus U: löschen um Platz für die UNIX-artigen Wurzelverzeichnissse (BIN, ETC, HOME, OPT, USR und so weiter) zu schaffen.


Vielen Dank für die Weiterentwicklung meines Lieblings-Betriebssystems!


Mit freundlichen Grüßen
Ektus.


Offline KarlMüller

  • Benutzer
  • Beiträge: 420
Re: MagiC Hades Sourcecode
« Antwort #13 am: Fr 14.12.2018, 08:31:06 »
Dabei fällt mir noch eine Beschränkung von MagiC ein: Die Anzahl der möglichen Einträge in Laufwerk U: ist begrenzt. Kann der Wert erhöht oder dynamisiert werden?
Dynamisch natürlich schon möglich, nur ist mir der Aufwand zuhoch. Was vielleicht noch einfacher ging ist die Anzahl der Einträge  in der magx.inf festzulegen.

Habe es mal probeweise von 64 auf 100 Einträge gesetzt.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.315
Re: MagiC Hades Sourcecode
« Antwort #14 am: Fr 14.12.2018, 09:13:13 »
Dynamisch dürfte nicht so einfach werden, wenn ich das richtig sehe ist die Speicherverwaltung zu dem Zeitpunkt noch nicht initialisiert. Den Wert zu erhöhen wie Karl es getan hat, oder auch aus der MAGX.INF zu lesen dürfte aber gehen.

Bist du in der Lage einfache Änderungen selber vorzunehmen, und dann den Kernel zu übersetzen? Nicht daß es sehr grosse Mühe machen würde, aber wenn wir hier nach jeder kleinen Änderung neue Versionen anhängen, führt das früher oder später sehr schnell zu Chaos.

Offline Ektus

  • Benutzer
  • Beiträge: 919
Re: MagiC Hades Sourcecode
« Antwort #15 am: Fr 14.12.2018, 15:52:37 »
Bist du in der Lage einfache Änderungen selber vorzunehmen, und dann den Kernel zu übersetzen? Nicht daß es sehr grosse Mühe machen würde, aber wenn wir hier nach jeder kleinen Änderung neue Versionen anhängen, führt das früher oder später sehr schnell zu Chaos.

Theoretisch schon, ein Pure-C müßte ich haben. Ich bräuchte aber eine komplette Entwicklungsumgebung, also MagiC-Sourcen, benötigte Bibliotheken und Konfigurationsdateien für Pure-C, am liebsten als Archiv zum einfach auspacken und loslegen. Oder gibt es Git für MagiC oder MiNT?

Jetzt am Wochenende und dann von Weinachten bis 07. Januar habe ich keinen Zugriff auf den Milan, nur den CT2A Falcon und den CT63 in Vollausstattung.

MfG
Ektus.

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 1.315
Re: MagiC Hades Sourcecode
« Antwort #16 am: Fr 14.12.2018, 17:34:03 »
Es gibt Git für Mint: http://tho-otto.de/crossmint.php dort dann nach git-2.16 suchen. Die Binärpakete sollten funktionieren, hab sie aber nur kurz getestet. Könnte sein daß es Probleme mit SSL-Verbindungen gibt. Ob sie auch unter MagiC funktionieren kann ich nicht sagen, die sind halt mit der mintlib kompiliert. Vermutlich scheitert das an der fehlenden MintNET-Unterstützung in MagiC.

Ich habs bei mir so eingerichtet, daß ich die tools vom Host benutze, und die Sourcen in ein Verzeichnis auschecke an das ich vom Emulator aus dran komme.

Wenns mit git nicht klappt, einfach auf https://github.com/th-otto/MagicMac gehen, dort den Button "Clone or Download" anklicken, und dann als ZIP herunter laden. Nachteil ist halt daß du das beim nächsten mal wieder machen musst, wenn sich das Repo geändert hat.

Ein paar Dateien von Pure-C musst du dann noch in die Verzeichnisse kopieren (sollte in BUILDING.md erläutert sein), dann Projekt-Datei auswählen und loslegen.

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: MagiC Hades Sourcecode
« Antwort #17 am: Fr 14.12.2018, 17:37:52 »
Es gibt Git für Mint: http://tho-otto.de/crossmint.php dort dann nach git-2.16 suchen. Die Binärpakete sollten funktionieren, hab sie aber nur kurz getestet.

Auf meiner Firebee funzt git (in der ColdFire Version) problemlos.
And remember: Beethoven wrote his first symphony in C

Offline TheNameOfTheGame

  • Benutzer
  • Beiträge: 90
  • Almost Heaven, West Virginia
Re: MagiC Hades Sourcecode
« Antwort #18 am: Sa 15.12.2018, 06:09:07 »
Schon mal vorab ein paar sachen die mir in der Zwischenzeit aufgefallen sind:

  • Das Bios-Datum der angehängten Datei ist vom 5.5.2001, die Sourcen hatten ursprünglich 11.09.2001. Ausser den unten genannten Sachen konnte ich aber keine Unterschiede feststellen.
  • Die Version ist eine US-Version, und hat auch nicht das PAL-Flag im Header gesetzt. Das PAL-Flag wird (warum auch immer) in den veröffentlichten Sourcen immer gesetzt.
  • Die Tastatur-Tabellen haben (im Gegensatz zu den Sourcen) auch Alt-Tabellen. Macht das überhaupt Sinn für eine US-Tastatur?
  • Der _IDT Cookie wird entgegen des OS-Headers auf $112e wie bei der deutschen Version gesetzt. Kann es sein daß die Tastatur-Tabellen und der Header nachträglich gepatcht wurden?

Ja, ich habe die PAL-Flag und die Tastatur-Tabellen für US Version gepatcht, damit meine Tastatur funktioniert und 60Hz.

Offline Ektus

  • Benutzer
  • Beiträge: 919
Re: MagiC Hades Sourcecode
« Antwort #19 am: Sa 15.12.2018, 16:16:41 »
Es gibt Git für Mint: http://tho-otto.de/crossmint.php dort dann nach git-2.16 suchen. Die Binärpakete sollten funktionieren, hab sie aber nur kurz getestet.

Auf meiner Firebee funzt git (in der ColdFire Version) problemlos.
Bei mir läuft es noch nicht. Unter MiNT auf dem CT63 Rechner kommt bei git clone ein fatal: unable to  access 'https://github.com/th-otto/MagicMac/': SSL certificate problem: unable to get local issuer certificateca-certificates habe ich schon geholt und in / ausgepackt, was fehlt noch?

MfG
Ektus.