Autor Thema: EmuTOS auf PAK68/2 ...  (Gelesen 69736 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: EmuTOS auf PAK68/2 ...
« Antwort #20 am: Mo 21.11.2016, 12:56:15 »
Andere Boards haben das Problem nicht, denn dort wird das EmuTOS passend ausdekodiert. Das Problem ist PAK-spezifisch, sobald man das auf der PAK installierte TOS benutzt. Onbord-TOS bekommt durch MMU/GLUE den Resetvektor aus dem ROM an die ersten 8 Bytes ab Adresse 0 des 68000 Adressraums eingeblendet. Diese Adresslogik ist aber auf der PAK nicht integriert.

Das ist zwar richtig, aber darüber sind wir doch längst hinweg. Christian hat oben festgestellt, daß das durch die unvollständig ausdekodierte PAK-Adresslogik der ROMs "ganz zufällig" auch für 256k TOS paßt.

Es bleibt bloß noch die Frage, warum's nicht läuft.

Mein Verdacht ist der, daß (wie im anderen Thread, wo's um die CPU-Erkennung geht) der PMMU-Befehl, den EmuTOS absetzt, um einen 030er zu erkennen ebenso wie bei MiNT bei der PAK ohne eine Reaktion ins Leere geht.

EmuTOS setzt (das ist noch innerhalb der ersten hundert Instruktionen des ROMs, da hat der Bildschirm noch keine Chance, irgendwas anderes als schwarz darzustellen) erst das CACR-Register (wenn das funktioniert, ist >= 020 erkannt) und versucht anschließend, das Translation Control-Register zu beschreiben (das gibt es nur bei einem 030er+ oder einem 020er mit 68851 MMU).
Wenn das ohne Protest "hingenommen" wird, beschließt EmuTOS, daß es einen 030er vor sich hat.


And remember: Beethoven wrote his first symphony in C

Offline 1ST1

  • Benutzer
  • Beiträge: 8.661
  • Gesperrter User
Re: EmuTOS auf PAK68/2 ...
« Antwort #21 am: Mo 21.11.2016, 13:16:26 »
Wenn das zufällig mit den 256kB TOS auf der PAK gehen würde, würde mein ST mit der PAK 68/2 kein TOS 1.04 auf der Hauptplatine brauchen. Geht aber nicht ohne. Daher bin ich von deiner Argumentation noch nicht überzeugt. Das einfachste ist vielleicht, testweise mal 1.04 auf die Platine zu stecken und 2.06 auf die Pak und dann schauen dass das Ding startet. Dann mal das 1.04er weg, dann dürfte das Ding nicht mehr starten (so ist es bei mir mit der Original-PAK). Dann 1.04 wieder drauf und Emu-TOS auf die Pak, und wenn das auch nicht klappt 192er EmuTOS auf die Hauptplatine und hoffen dass der Einsprungvektor gleich ist wie beim 256er.
Ausgeloggter Mitleser, der hier NIE mehr aktiv wird. Am besten, meine Inhalte komplett löschen. Dabei berufe ich mich auf mein Urheberrecht, die DSGVO und auf die Rechte, die mir unter Impressunm&Datenschutz zugestanden werden. Tschö!

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: EmuTOS auf PAK68/2 ...
« Antwort #22 am: Mo 21.11.2016, 13:18:14 »
Vielleicht liest Du einfach mal den ersten Beitrag in diesem Fred ...
And remember: Beethoven wrote his first symphony in C

Offline tuxie

  • Benutzer
  • Beiträge: 6.837
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: EmuTOS auf PAK68/2 ...
« Antwort #23 am: Mo 21.11.2016, 13:35:53 »
Habe Holger mal über Whatsapp angeschrieben das er mal reinschaut, vielleicht hat er ja eine Idee
Tschau Ingo

Offline 1ST1

  • Benutzer
  • Beiträge: 8.661
  • Gesperrter User
Re: EmuTOS auf PAK68/2 ...
« Antwort #24 am: Mo 21.11.2016, 15:55:02 »
Vielleicht liest Du einfach mal den ersten Beitrag in diesem Fred ...
Hab ich, beweist aber nichts:

Zitat
"EmuTOS 0.97 in der 256kB Version läuft nicht auf meiner PAK68/2.

TOS 1.04 ist auf dem Mainboard und TOS 2.06 auf der PAK, das läuft wie es soll.

Habe EmuTOS aufgeteilt in vier 64kB Teile und in Eproms gebrannt genau so wie beim TOS 2.06.


Woran kann es liegen das es nicht geht ?"
Deckt sich schlicht nicht mit meiner Erfashrung mit meiner PAK 68/2.
Ausgeloggter Mitleser, der hier NIE mehr aktiv wird. Am besten, meine Inhalte komplett löschen. Dabei berufe ich mich auf mein Urheberrecht, die DSGVO und auf die Rechte, die mir unter Impressunm&Datenschutz zugestanden werden. Tschö!

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: EmuTOS auf PAK68/2 ...
« Antwort #25 am: Mo 21.11.2016, 16:21:12 »
Deckt sich schlicht nicht mit meiner Erfashrung mit meiner PAK 68/2.

Du willst uns damit sagen, daß EmuTOS 256kB auf deiner PAK läuft?
And remember: Beethoven wrote his first symphony in C

Offline czietz

  • Benutzer
  • Beiträge: 3.699
Re: EmuTOS auf PAK68/2 ...
« Antwort #26 am: Mo 21.11.2016, 17:56:37 »
EmuTOS setzt (das ist noch innerhalb der ersten hundert Instruktionen des ROMs, da hat der Bildschirm noch keine Chance, irgendwas anderes als schwarz darzustellen) erst das CACR-Register (wenn das funktioniert, ist >= 020 erkannt) und versucht anschließend, das Translation Control-Register zu beschreiben (das gibt es nur bei einem 030er+ oder einem 020er mit 68851 MMU).
Wenn das ohne Protest "hingenommen" wird, beschließt EmuTOS, daß es einen 030er vor sich hat.

Das ist die initiale Erkennung in startup.S [1], aber später in processor.S [2] wird's nochmal "richtig" gemacht und auch auf das Vorhandensein des Datencache beim 68030 getestet.

[1] https://sourceforge.net/p/emutos/code/ci/master/tree/bios/startup.S
[2] https://sourceforge.net/p/emutos/code/ci/master/tree/bios/processor.S

Offline tuxie

  • Benutzer
  • Beiträge: 6.837
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: EmuTOS auf PAK68/2 ...
« Antwort #27 am: Mo 21.11.2016, 20:07:49 »
Eventuell doch mal versuchen das EmuTOS mit aufs Board zu stecken ? Wäre zwar doppelt gemoppelt aber ein versuch wert.
Tschau Ingo

Offline 1ST1

  • Benutzer
  • Beiträge: 8.661
  • Gesperrter User
Re: EmuTOS auf PAK68/2 ...
« Antwort #28 am: Di 22.11.2016, 07:44:13 »
Deckt sich schlicht nicht mit meiner Erfashrung mit meiner PAK 68/2.

Du willst uns damit sagen, daß EmuTOS 256kB auf deiner PAK läuft?

Nein, aber TOS 2.06 läuft, das aber nicht ohne dass auf der Hauptplatine ein TOS 1.04 steckt. Mittlerweile verstehe ich aber den Mechanismus, der dahintersteckt, nicht mehr, denn ich habe mir mal mit einem Hexeditor die Einsprungadressen in TOS 1.04, 2.06 und EmuTOS 192/256 kB angeschaut, und jeweils bei den 256 kB TOS steht die selbe Sprungadresse ab Byte 4 drin (00E00030), und in den 192ern steht jeweils auch eine gleiche drin ( 00FC0030). Vielleicht muss ich in den 256ern nochmal nachsehen, ob vielleicht auf 00FC0030 noch ein Sprung auf 00E00030 zu finden wäre. Dann würde es passen.
Ausgeloggter Mitleser, der hier NIE mehr aktiv wird. Am besten, meine Inhalte komplett löschen. Dabei berufe ich mich auf mein Urheberrecht, die DSGVO und auf die Rechte, die mir unter Impressunm&Datenschutz zugestanden werden. Tschö!

Offline czietz

  • Benutzer
  • Beiträge: 3.699
Re: EmuTOS auf PAK68/2 ...
« Antwort #29 am: Di 22.11.2016, 08:10:12 »
Nein, aber TOS 2.06 läuft, das aber nicht ohne dass auf der Hauptplatine ein TOS 1.04 steckt.

Es hat ja auch niemand etwas anderes behauptet. Was also "[d]eckt sich schlicht nicht mit [D]einer Erfashrung mit [D]einer PAK 68/2. "?

Mittlerweile verstehe ich aber den Mechanismus, der dahintersteckt, nicht mehr,

Habe ich weiter oben erläutert.

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: EmuTOS auf PAK68/2 ...
« Antwort #30 am: Di 22.11.2016, 08:54:03 »
Habe ich weiter oben erläutert.

Ich hab' ja den Eindruck, daß 1ST1 nur seine eigenen Beiträge liest ...  >:D
And remember: Beethoven wrote his first symphony in C

Offline 1ST1

  • Benutzer
  • Beiträge: 8.661
  • Gesperrter User
Re: EmuTOS auf PAK68/2 ...
« Antwort #31 am: Di 22.11.2016, 09:04:49 »
Dann musst du es wohl mal ausführlicher erklären. Ich kann mir die Erklärung momentan nicht herleiten. 00FC0030 und 00E00030 bekomme ich momentan mit keiner doppelten Einblendung der ROMs zusammen.
Ausgeloggter Mitleser, der hier NIE mehr aktiv wird. Am besten, meine Inhalte komplett löschen. Dabei berufe ich mich auf mein Urheberrecht, die DSGVO und auf die Rechte, die mir unter Impressunm&Datenschutz zugestanden werden. Tschö!

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: EmuTOS auf PAK68/2 ...
« Antwort #32 am: Di 22.11.2016, 11:19:08 »
@Lukas Frank : kannst Du das angehängte Programm mal auf deiner PAK laufen lassen und uns sagen, was es erzählt (in .prg umbenennen)?


And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: EmuTOS auf PAK68/2 ...
« Antwort #33 am: Di 22.11.2016, 12:16:02 »
Der Code macht übrigens das hier:

#include <mint/osbind.h>
#include <setjmp.h>

jmp_buf env;

void access_fault_exception(void) __attribute__((interrupt));
void access_fault_exception(void)
{
Cconws("access fault\r\n");
longjmp(env, 0);
}

void illegal_exception(void) __attribute__((interrupt));
void illegal_exception(void)
{
Cconws("illegal instruction\r\n");
longjmp(env, 0);
}

void linef_exception(void) __attribute__((interrupt));
void linef_exception(void)
{
Cconws("linef exception\r\n");
longjmp(env, 0);
}

void coprocessor_protocol_exception(void) __attribute__((interrupt));
void coprocessor_protocol_exception(void)
{
Cconws("coprocessor protocol violation\r\n");
longjmp(env, 0);
}

void check_pmmu(void)
{
void *old_access, *old_illegal, *old_linef, *old_coproc;

old_access = Setexc(2, access_fault_exception);
old_illegal = Setexc(4, illegal_exception);
old_linef = Setexc(11, linef_exception);
old_coproc = Setexc(13, coprocessor_protocol_exception);

if (!setjmp(env))
{
__asm__ volatile(
" moveq #0,d0 \n\t"
" .long 0xf0390800 \n\t" // pmove 0,tt0
" .long 0x00000000 \n\t"
:
:
: "d0"
);
Cconws("no error\r\n");
}

Setexc(2, old_access);
Setexc(4, old_illegal);
Setexc(11, old_linef);
Setexc(13, old_coproc);
}

int main(int argc, char *argv[])
{
while (Cconis()) Cconin();

Supexec(check_pmmu);
Cconws("\r\nPress key.\r\n");
while (!Cconis());

}
And remember: Beethoven wrote his first symphony in C

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.485
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: EmuTOS auf PAK68/2 ...
« Antwort #34 am: Di 22.11.2016, 13:55:22 »
... kannst Du das angehängte Programm mal auf deiner PAK laufen lassen und uns sagen, was es erzählt (in .prg umbenennen)?

Mit Single TOS 2.06 ohne FPU = linef exception
Single TOS mit FPU = no error

Mit MiNT genau das gleiche ...

Offline HelmutK

  • Benutzer
  • Beiträge: 676
Re: EmuTOS auf PAK68/2 ...
« Antwort #35 am: Di 22.11.2016, 14:41:32 »
Und was kommt bei

ssystem -v CTRLCACHE:0:-1

?

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.485
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: EmuTOS auf PAK68/2 ...
« Antwort #36 am: Di 22.11.2016, 15:51:30 »
Unter TOS kann ich das nicht lesen, ist zu schnell wieder weg ...

Bei MiNT kommt egal ob mit oder ohne FPU "mode:23:0, result:0(0x0)"

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: EmuTOS auf PAK68/2 ...
« Antwort #37 am: Di 22.11.2016, 16:00:05 »
... kannst Du das angehängte Programm mal auf deiner PAK laufen lassen und uns sagen, was es erzählt (in .prg umbenennen)?

Mit Single TOS 2.06 ohne FPU = linef exception
Single TOS mit FPU = no error

Mit MiNT genau das gleiche ...

Hmm. Also macht die PAK genau, was sie soll.
Die MMU-Befehle sind's dann wohl doch nicht, die EmuTOS am Starten hindern...

Mittlerweile bin ich auch dahintergekommen, daß "pmove <ea>,ttx" beim Gespann 68020/68851 gar keine valide Instruktion ist (tt<x>-Register gibt's da gar nicht).

War mir neu, ich dachte bisher, die 68851 MMU wäre dieselbe, die im 030 steckt).
And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.640
Re: EmuTOS auf PAK68/2 ...
« Antwort #38 am: Di 22.11.2016, 16:16:25 »
@Lukas Frank: kannst Du das hier auch noch laufen lassen?

pmove <ea>,tc

(wird von EmuTOS ein wenig später benutzt) ist bei der 68851 MMU ein gültiger Befehl. Passiert da dasselbe?
« Letzte Änderung: Di 22.11.2016, 16:19:40 von mfro »
And remember: Beethoven wrote his first symphony in C

Offline Lukas Frank

  • Benutzer
  • Beiträge: 13.485
  • fancy Atari Musik anDA Dance "Agare Hinu Harukana"
Re: EmuTOS auf PAK68/2 ...
« Antwort #39 am: Di 22.11.2016, 16:22:43 »
Ist das ein neues Programm ?

Oder soll ich es in ttp umbenennen und die Parameter übergeben ?