Software > Alternative Betriebssysteme

MagiC Hades Sourcecode

(1/8) > >>

KarlMüller:
Um das ganze mal zu entzerren.

Was bisher geschah:

--- Zitat von: Thorsten Otto am Mo 03.12.2018, 13:57:11 ---
--- Zitat von: TheNameOfTheGame am So 25.11.2018, 17:32:17 ---Hades? Ich sehe das BIOS nicht. Ist es möglich?

--- Ende Zitat ---

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?

--- Ende Zitat ---


--- Zitat von: KarlMüller am Mo 03.12.2018, 18:09:39 ---
--- Zitat von: Thorsten Otto am Mo 03.12.2018, 13:57:11 ---
--- Zitat von: TheNameOfTheGame am So 25.11.2018, 17:32:17 ---Hades? Ich sehe das BIOS nicht. Ist es möglich?

--- Ende Zitat ---

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?

--- Ende Zitat ---

;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?

--- Ende Zitat ---


--- Zitat von: Thorsten Otto am Mo 03.12.2018, 19:18:58 ---
--- Zitat von: KarlMüller am Mo 03.12.2018, 18:09:39 ---Noch etwas?

--- Ende Zitat ---

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:

--- Code: ---gpip:      equ $FFFFFA81 ; TTMFP: Interface Port Datenregister

--- Ende Code ---

Hat der Hades den "normalen" MFP gar nicht?

--- Ende Zitat ---


--- Zitat von: KarlMüller am Mo 03.12.2018, 20:01:25 ---
--- Zitat von: Thorsten Otto am Mo 03.12.2018, 19:18:58 ---Ja, ein paar SCSI-Addressen noch, aber die standen noch als Kommentar irgendwo anders.

--- Ende Zitat ---
Das liegt daran, weil die Routinen eins zu eins den Modifikationen des TOS 3.06 für den Hades entnommen sind.


--- Zitat von: Thorsten Otto am Mo 03.12.2018, 19:18:58 ---Was mich noch irritiert:

--- Code: ---gpip:      equ $FFFFFA81 ; TTMFP: Interface Port Datenregister

--- Ende Code ---

Hat der Hades den "normalen" MFP gar nicht?

--- Ende Zitat ---
Doch hat er. Liegt ganz normal an den Adressen wie beim ST/TT.

--- Ende Zitat ---

KarlMüller:

--- Zitat von: Thorsten Otto am Mo 03.12.2018, 20:31:01 ---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.

--- Ende Zitat ---

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:

--- Code: ---$00004b54: _msec
$00004b56: _prtbbval
$00004f58: _supstk 2*1024=$800
$00005758: _prtbflg
$0000575A: _prtbdmask

--- Ende Code ---
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.

Thorsten Otto:
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).

KarlMüller:

--- Zitat von: Thorsten Otto am Di 04.12.2018, 23:46:46 ---Ja genau, die meinte ich. ...

Wenn du da mehr weisst, immer her damit

--- Ende Zitat ---
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.

Thorsten Otto:

--- Zitat von: KarlMüller am Sa 08.12.2018, 10:18:04 ---Andere alternative wäre ein vorhandenes MAGIC.RAM vom Hades.

--- Ende Zitat ---

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.
--- Ende Zitat ---

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.

--- Ende Zitat ---

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.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln