Seite 1 von 2

k6dos.sys - Problem mit Speichererkennung

Verfasst: Di 3. Jan 2017, 16:45
von ChrisR3tro
drzeissler hat geschrieben:Egal was ich einstelle (-wcg,...), ich bekomme immer das hier angezeigt:

Code: Alles auswählen

Int15h:E801h Error occured detecting memory size
Hallo zusammen,

Seit ich meine DOS-Zeitmaschine auf das neue Board "DFI K6XV3+/66" umgestellt habe (VIA MVP3 Chipsatz) bekomme ich denselben Fehler bei k6dos.sys. Trotz Fehlermeldung wird der Multiplikator aber anscheinend gesetzt. Nur Write Combining kann nicht aktiviert werden. Die CPU ist dieselbe wie vorher in dem Rechner (AMD K6-III+ mit 400 MHz). Daran kann's nicht liegen.

Hat jemand 'ne Idee?

Gruß
locutus

AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Di 3. Jan 2017, 17:36
von drzeissler
Es funktioniert ja trotzdem, muss was mit dem Chipsatz sein.

Re: AMD K6 System aufbauen

Verfasst: Do 5. Jan 2017, 01:09
von philscomputerlab
Locutus hat geschrieben:
Seit ich meine DOS-Zeitmaschine auf das neue Board "DFI K6XV3+/66" umgestellt habe (VIA MVP3 Chipsatz) bekomme ich denselben Fehler bei k6dos.sys. Trotz Fehlermeldung wird der Multiplikator aber anscheinend gesetzt. Nur Write Combining kann nicht aktiviert werden. Die CPU ist dieselbe wie vorher in dem Rechner (AMD K6-III+ mit 400 MHz). Daran kann's nicht liegen.

Hat jemand 'ne Idee?

Gruß
locutus
Ich verwende SetMUL für den Multi.

Wegen Write Combine, dieses Video ist noch unveröffentlicht, aber hier zeige ich ein paar DOS tools für den K6-2. VGA WC ist schon aktiv, aber für VESA ist viel extra Leistung zum rausholen.


Re: AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Do 5. Jan 2017, 10:27
von ChrisR3tro
Hallo Phil,

wie immer cooles Video! Danke, dass du es hier schon vorab teilst.

Von den Tools k6waon, k6wc und setewb wusste ich noch nichts. Für mich funktioniert mxk6opt auch ganz gut. Ich vermute keine dieser Tools kann man ausführen nachdem man EMM386 geladen hat, korrekt?

Deshalb suche ich nach einem Weg, die Tools vorher (in der config.sys) auszuführen. Früher hat das k6dos.sys ganz gut erledigt, aber leider funktioniert die nicht mehr mit meinem neuen DFI K6XV3+/66 Mainboard.

Gruß
locutus

Re: AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Do 5. Jan 2017, 13:02
von drzeissler
Funktionieren tut das schon, den Fehler kann man doch ignorieren.

Re: AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Do 5. Jan 2017, 13:26
von ChrisR3tro
@drzeissler: Dann wird nur der Multiplikator gesetzt, nicht Write Combining.

Re: AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Do 5. Jan 2017, 13:50
von FGB
Ich kann zur konkreten Problemlösung nichts beitragen, aber ich kann ausschließen, dass der Fehler am MVP3 Chipsatz liegt. Auf den Motherboards PC-CHIPS M577 und EPOX MVP3G5 (Beide mit VIA MVP3 Chipsatz) lief k6dos.sys bei mir problemlos und ohne Fehlermeldung. Auch dein DFI Board scheint bei anderen mit k6dos.sys zu laufen. Es gab von diesem Board zahlreiche Revisionen und unterschiedliche BIOS-Stände.

Welches BIOS hast du installiert? Das letzte BIOS hat jedenfalls schon Support für den K6-III+ (Stand 12.4.2000) - vielleicht läuft das ja anstandslos mit k6dos.sys zusammen?

Re: AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Do 5. Jan 2017, 16:33
von ChrisR3tro
Ich flashe eigentlich grundsätzlich das neuste BIOS. Das war auf der DFI-Seite nicht mehr aufzutreiben. Daher hab ich einfach das "Latest Bios" von Phil's Seite genommen.

Re: AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Do 5. Jan 2017, 19:35
von drzeissler
Kann es nicht auch eine Einstellung im Bios sein?

Re: AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Sa 7. Jan 2017, 15:31
von ChrisR3tro
Etwas mehr Recherche von meiner Seite:

Die Fehlermeldung von k6dos.sys lässt darauf schließen dass folgende Routine verwendet wird, um die Größe des Hauptspeichers in Erfahrung zu bringen:

http://www.uruk.org/orig-grub/mem64mb.html#int15e801 (s. "E801")

Leider weiß ich nicht, warum mein PC damit ein Problem haben soll. Ich habe nun schon verschiedene Speicherriegel 32, 64 und 256MB verwendet und Memory Hole 15-16M mal eingeschaltet im BIOS zum Test. Immer das gleiche Ergebnis. :-(

Re: AMD K6 III+ System aufbauen (Zeitmaschine)

Verfasst: Sa 7. Jan 2017, 15:35
von ChrisR3tro
Nachtrag: Nachdem ich diesen Thread auf Vogons gelesen habe, in dem es um die Unterstützung des Calls in DOSBox geht, glaube ich nun, dass mein BIOS anscheinend nicht alle Register mit Infos füllt:

http://www.vogons.org/viewtopic.php?t=11448

Re: k6dos.sys - Problem mit Speichererkennung

Verfasst: So 8. Jan 2017, 13:11
von ChrisR3tro
Neue Infos:

Ich habe ein kleines Tool geschrieben welches den entsprechenden BIOS-Call den k6dos.sys zur Speichererkennung verwendet mal ausführt und die Ergebnisse der CPU-Register auf den Bildschirm schreibt.

Infos zum Call Int15h / AX=e801h findet ihr hier:

http://www.uruk.org/orig-grub/mem64mb.html#int15e801

Meine Beispielimplementierung:

Code: Alles auswählen

/* 
 * Memory detect tool v1.0
 * -- Put some entertaining description here, if i am not too lazy --
 * 
 */

#include <stdio.h>
#include <i86.h>

void check_e801(union REGS* regs)
{
	(*regs).x.ax = 0xe801;
	(*regs).x.bx = 0;
	(*regs).x.cx = 0;
	(*regs).x.dx = 0;
	(*regs).x.cflag = 0;
	
	int86(0x15, regs, regs);
}

void check_88h(union REGS* regs)
{
	(*regs).h.ah = 0x88;
	(*regs).x.ax = 0;
	(*regs).x.cflag = 0;
	
	int86(0x15, regs, regs);
}


int main(int argc,char **argv)
{
	union REGS regs;
	union REGS regs2;
	
	printf("Memory detect tool v1.0\n");

		
	printf("Checking e801h call...");
	
	check_e801(&regs);

	if (regs.x.cflag != 0)
		printf(" error. :-(");

	printf("\nAX: %x\nBX: %x\nCX: %x\nDX: %x\n", regs.x.ax, regs.x.bx, regs.x.cx, regs.x.dx);
	
	printf("\nChecking 88h call...");
	
	check_88h(&regs2);
	
	if (regs2.x.cflag != 0)
		printf(" error. :-(");
	
	printf("\nAX: %x\n", regs2.x.ax);
	
	return 0;
}
Kompiliert habe ich das ganze mit dem Watcom 16-bit C++-Compiler für DOS (v. 9.5b).

Fazit:

Das aktuellste BIOS (lt. Phil) vom Board DFI K6XV3+/66 Rev.B quittiert den Call e801h mit Carry-Flag != 0 und AX=8601, d.h. er wird nicht unterstützt. Genau deswegen kann k6dos.sys Write Combining nicht aktivieren. Das Board ASUS TX97-XE hingegen liefert hier brauchbare Werte - hier funktionert k6dos.sys erwartungsgemäß korrekt.

Anscheinend ist es nicht gesichert, dass alle BIOSse diese Calls korrekt umsetzen. DOSBox scheint sie z.B. auch nicht zu emulieren. Meine Empfehlung ist deshalb, k6dos.sys nicht zu verwenden, da die Methode zur Erkennung des Hauptspeichers nicht gut umgesetzt ist. Es müssten hier mehrere BIOS-Calls ausgeführt werden, inbesondere auch e820h um eine vernünftige Aussage über Größe des Hauptspeichers treffen zu können. So macht es z.B. der Bootmanager GRUB. Hier gibt's eine Art Fallback. e820h -> e801h -> 88h

Gruß
locutus

Re: k6dos.sys - Problem mit Speichererkennung

Verfasst: So 8. Jan 2017, 13:55
von drzeissler
Ich stecke da jetzt nicht ganz so tief drin, wie äussert sich das mit dem Fehler letztlich?

Re: k6dos.sys - Problem mit Speichererkennung

Verfasst: So 8. Jan 2017, 22:25
von ChrisR3tro
Das Setzen des Multiplikators funktioniert zwar, aber Write Combining wird nicht aktiviert, sodass man Performance verschenkt.

Re: k6dos.sys - Problem mit Speichererkennung

Verfasst: Mo 9. Jan 2017, 07:01
von drzeissler
Wieviel 3% 10%, im Grunde will man den doch unter Dos langsam haben.