Stirb A20 Gate Stirb !!!

Smalltalk
Antworten
Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Stirb A20 Gate Stirb !!!

Beitrag von fred19726 » 15.08.2004 22:57:59

Eine kleine gute nacht Geschichte:

Es war einmal ein Fred der wollte bootsplash mal testen ... gesagt getanen:

Kernel gepatcht und installiert
Splash utils installiert
Theme installiert
Grub config angepasst
Neu gebooted

Und ... Ohhh es funktioniert ... sieht nett aus ... so jetzt einloggen und Nvidia Treiber neu installieren ... WTF !?!?! ich kann mich nicht mehr einloggen, die Tastatur funzt net mehr ... seltsam 8O

Also:
Geschaut ob Tastatur eingesteckt ist: O.K.
Neugebooted und ins BIOS gegangen: O.K.
Raus aus dem BIOS und Linux booten lassen: Ja was soll den das ?!? Jetzt geht die Tastatur auf einmal wieder, war wohl nur ein Temporäres Fänomen :)

Gut also noch ein bischen am Theme basteln ... neubooten ... und ... schon wieder geht die Tastatur nicht :evil:

So ging es dann ne weile weiter, bis ich rausgefunden hab das die Tastatur mit einem Bootsplash Kernel nicht mehr geht sobald ich sie in Grub benutze 8O

Dann kam mir eine Idee:
1. Vorletztens hab ich gelesen das daß A20 Gate irgendwie mit dem Tastatur Controler zusammenhängt.
2. Letztens im BIOS hab ich eine Option "A20 Gate mode" mit den auswahlmöglichkeiten "normal" und "fast" gesehen (stand auf "fast")
3. Heute kam mir die Idee: Als ich den 2.6.8er Kernel installiert hab und das Tastatur Problem immer noch nicht weg war die "A20 Gate mode" Option auf "nomal" zu stellen ... :? .oO(ich glaub nicht das es funzt aber wer weis) ... neu gebooted... OHH Wunder die Tastatur funktioniert auch noch nach dem ich sie in Grub benutzt hab.

UND die Moral von der geschicht: Traue dem A20 Gate niemals nicht !
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 15.08.2004 23:08:07

Traue dem A20 Gate niemals nicht !
das A20 gate wird mit der 64bit generation verschwinden, jedenfalls soweit ich weiss ... :-)

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 15.08.2004 23:20:24

startx hat geschrieben:
Traue dem A20 Gate niemals nicht !
das A20 gate wird mit der 64bit generation verschwinden, jedenfalls soweit ich weiss ... :-)
So schnell wirds leider nicht gehen, den sowohl bei Intels Itanium (2) als auch beim Athlon 64 ist es zu finden :(

/edit: siehe hier (ganz unten): http://www.heise.de/ct/02/17/026/
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 16.08.2004 00:39:42

himmel :roll:

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 16.08.2004 10:28:00

Hiess es nicht mal der Itanium sei sooo viel besser weil er nicht auf all die blöde Rückwärtskompatibilität zu achten brauche?
Damit ists scheinbar auch nicht all zu weit her :D

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
arnem
Beiträge: 324
Registriert: 27.03.2003 08:17:25
Wohnort: Flensburg
Kontaktdaten:

Beitrag von arnem » 16.08.2004 13:23:26

Solange auch nur ansatzweise die Möglichkeit besteht, einen neuen x86-Prozessor unter einem Windoof-Wasauchimmer zu betreiben, wird uns das lustige A20-Gate erhalten bleiben...
Meine Meinung :wink:

Musste grad schwer überlegen, wann und warum sich Intel/IBM das lustige A20-Gate ausgedacht hat..
A20-Skurrilität
Nein, nicht die A20 von Lübeck nach Rostock ist gemeint (wiewohl die auch auf viel Widerstand stößt), sondern mein Lieblingsgegner im PC: das A20-Gate. Kaum zu glauben, auch AMD-K7 und Merced werden es noch haben. Seit beinah nun 15 Jahren strampele ich mich gegen diese Ausgeburt ab - ohne Erfolg. Was ist das nun, dieses komische Gebilde?

Der IBM-PC hatte nur einen Adreßraum von 1 MByte (Adreßbits A0...A19). Wegen seiner Segmentierung konnte man logisch jedoch 64 KByte mehr adressieren, genauer gesagt bis zu FFFFh:FFFFh= 10FFFFh. Statt bei solchen Adressen ordentlich mit einem Fehler (Adreßüberlauf) abzubrechen, fing der Prozessor einfach wieder klaglos bei 0 an (ein sogenannter Umlauf oder Wrap around). Das wäre nicht weiter schlimm gewesen, hätten nicht `pfiffige´ Microsoft-Programmierer dieses Feature in einer so gut wie nie gebrauchten DOS-Funktion (INT 30h) mißbraucht.

Als dann die IBM-Entwickler den IBM-AT schufen, meinten sie, auf den Microsoft-Irrweg Rücksicht nehmen zu müssen. Der 286-Prozessor des AT verwaltete nunmehr 16 MByte, ein Umlauf an der 1-MByte-Grenze fand demnach nicht statt. Um ihn nachträglich zu simulieren, bauten die IBM-Entwickler eine Schaltung ein, die die A20-Leitung fest auf Null fixieren konnte - das A20-Gate war geboren. Zur Umschaltung des Gates benutzten sie einen sehr umständlichen und langsamen Weg über den Tastatur-Controller - und das Dümmste: sie versäumten es, den aktuellen Stand des Gates auslesbar zu machen oder zumindest irgendwo abzuspeichern.

Performance-Bremse
Viele Jahre später kam Microsoft mit MSDOS 4 auf die Idee, den knappen DOS-Raum durch eine HMA (Higher Memory Area) zu erweitern, eben durch jenes 64-KByte-Segment, das man noch in der 8088-Betriebsart (Real Mode) zusätzlich erreichen konnte. Nur mußte DOS jetzt bei jedem Aufruf erst einmal den Stand des A20-Gates ergründen. Dazu verglich es die ersten acht Bytes an den Adressen 0 und 1M, die bei blockiertem A20 identisch sein sollten - toll, und die Performance freute sich.

Wenn man ältere c't-Software (frühere ctcm- oder ctmem-Versionen) benutzt und dann Windows 95b hochfahren will, bleibt der Rechner stehen; Grund: die c't-Software schaltet das Gate rücksichtslos frei - was Windows bis zu 95a akzepiert, 95b jedoch nicht.

Schlimm erwischte es auch die Prozessor-Designer. Zum einen kostete das blöde Gate wertvolle Nanosekunden, die insgesamt das Design verlangsamten. Als dann die Prozessoren mit integrierten Caches und spekulativen Möglichkeiten ausgestattet wurden, mußte der Prozessor unbedingt auswerten, wie das A20-Gate aktuell steht, um nicht mit den Adressen durcheinanderzukommen. Upgrade-Prozessoren mit Cache, wie etwa die von Cyrix, hatten ihre liebe Not damit, denn ohne ein A20-Mask-Signal mußten sie Teile des Caches abschalten.

Diverse Bugs in den Prozessoren rund um das A20-Gate (siehe Intels Specification Upgrades) zeugen davon, daß das A20-Handling nicht eben einfach ist. Auch die modernen Pentium- und Pentium-II-Prozessoren haben ihre Probleme mit dem A20-Steinzeitrelikt, zum Beispiel beim SMM. Wenn der Prozessor in den Suspend-Modus geht, während der Tastatur-Controller gerade das dumme Gate umschaltet - dann war´s das.
Aus: http://www.heise.de/ct/98/24/276/default.shtml

Seit dem 80286 hat jeder Intel-Prozzi diese lustige A20-Gate eingebaut - und so wird es sicher auch noch lange bleiben...
Grüße aus Flensburg,
Arne

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 16.08.2004 16:31:39

Seit dem 80286 hat jeder Intel-Prozzi diese lustige A20-Gate eingebaut - und so wird es sicher auch noch lange bleiben...
Leider :(
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Hier ist noch ein lehrreicher Artikel zu dem Thema:

Beitrag von weedy » 23.08.2004 13:18:04

Hier ist noch ein lehrreicher Artikel zu dem Thema:

http://www.elektronik-kompendium.de/sit ... 811181.htm

weedy.

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 23.08.2004 13:20:45

Als der PC seinen Durchbruch geschafft hatte und IBM 1984 den AT mit dem Prozessor Intel 80286 herausbrachte sollten auch alle bereits verbreiteten DOS-Programme korrekt ausgeführt werden.
gibt es denn ÜBERHAUPT noch irgendein laufendes ms-dos programm, dass inkompatibel werden würde, würde man das A20 sterben lassen ...

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 23.08.2004 15:58:38

startx hat geschrieben:gibt es denn ÜBERHAUPT noch irgendein laufendes ms-dos programm, dass inkompatibel werden würde, würde man das A20 sterben lassen ...
Vermutlich MS-DOS selbst. :twisted:

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22359
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 23.08.2004 15:58:54

startx hat geschrieben: gibt es denn ÜBERHAUPT noch irgendein laufendes ms-dos programm, dass inkompatibel werden würde, würde man das A20 sterben lassen ...
Es sind bestimmt noch genug Steinzeitprogramme im Umlauf die dadrauf angewiesen sind.

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 23.08.2004 16:20:30

noch genug Steinzeitprogramme im Umlauf

aber welche??

also im destop-bereich wohl kaum, kann ich mir nicht vorstellen. ausserdem würde ms da wohl kaum rücksicht drauf nehmen.
und wer soo alte software laufen lassen will, soll doch einfach bei alter hardware bleiben.

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 23.08.2004 17:01:47

ausserdem würde ms da wohl kaum rücksicht drauf nehmen.
naja, MS ist teilweise wohl sehr restriktiev was Veränderungen von APIs angeht:

Is schon ne weile her, aber ich hab mal so spaßeshalber mit Win 3.11 Disketten rumgespielt und versucht Programme davon unter win2k zu starten. Es hat funktioniert: du kannst z.B. mit dem Mauseinstelunges Programm von win 3.11 die Maus auch unter win 2k einstellen.
wer soo alte software laufen lassen will, soll doch einfach bei alter hardware bleiben.
Und was macht du wenn z.B. der Arbeitsspeicher von dem tollen 386er der als kassen Computer dient kaputt geht? Klar kann man bei ebay & co. sowas bestimmt noch finden, aber es ist halt doch einfacher einfach ne neue kiste zu kaufen und das das ach so geliebte kassen Programm zu installieren, das massieven gebrauch vom A20 Gate macht und die Mehrwertsteuer zu berechen ;)

Lang lebe das A20 Gate !! *kotz*
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 23.08.2004 17:22:43

fred19726 hat geschrieben:Und was macht du wenn z.B. der Arbeitsspeicher von dem tollen 386er der als kassen Computer dient kaputt geht?
Dann läßt du das Programm halt unter einem 386-Emulator (z.B. Bochs) laufen. Und wenn das nicht geht, bezahlst du einem Programmierer halt 2000?, damit er Bochs zu deinem alten Programm kompatibel macht.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 23.08.2004 17:24:30

fred19726 hat geschrieben:Is schon ne weile her, aber ich hab mal so spaßeshalber mit Win 3.11 Disketten rumgespielt und versucht Programme davon unter win2k zu starten. Es hat funktioniert: du kannst z.B. mit dem Mauseinstelunges Programm von win 3.11 die Maus auch unter win 2k einstellen.
MS-DOS 6/Win 95 (spätere Versionen habe ich nicht getestet, geht aber bestimmt auch) unterstützt sogar noch FCBS (File Control Blocks), ein überbleibsel aus CP/M Zeiten, die schon in MS-DOS 2 als veraltet betrachtet wurden. (Und FCBs unterstützen z.B. keine Verzeichnisse)

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 23.08.2004 17:27:43

fred19726 schrieb
und das das ach so geliebte kassen Programm zu installieren, das massieven gebrauch vom A20 Gate macht und die Mehrwertsteuer zu berechen
naja, du fragst dich bei der gelegenheit endlich mal, ob es nicht zeit ist dein kassenprogramm von 1992 auf EURO umzustellen ...
:wink:

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 23.08.2004 17:30:30

mal im ernst, warum hat man nicht vor 10 jahren oder so den leuten eine umstellungsfrist von z.B. 4-5 jahren gegeben und dann das A20 gate angeschafft? wir haben die jahrtausendwende ja auch nicht wegen dem y2k-bug verschoben.

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 23.08.2004 17:36:45

startx hat geschrieben:fred19726 schrieb
und das das ach so geliebte kassen Programm zu installieren, das massieven gebrauch vom A20 Gate macht und die Mehrwertsteuer zu berechen
naja, du fragst dich bei der gelegenheit endlich mal, ob es nicht zeit ist dein kassenprogramm von 1992 auf EURO umzustellen ...
:wink:
Naja, einfach ein € auf die Anzeige kleben, EUR anstat DM ausdrucken ( so hab ses bei uns um Edeka gemacht), und wenn man Lust hat noch die Preise anpassen ;)
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Beitrag von weedy » 23.08.2004 18:35:52

startx hat geschrieben:
Als der PC seinen Durchbruch geschafft hatte und IBM 1984 den AT mit dem Prozessor Intel 80286 herausbrachte sollten auch alle bereits verbreiteten DOS-Programme korrekt ausgeführt werden.
gibt es denn ÜBERHAUPT noch irgendein laufendes ms-dos programm, dass inkompatibel werden würde, würde man das A20 sterben lassen ...
Das BIOS? Der Bootloader?

weedy.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 23.08.2004 18:41:33

weedy hat geschrieben:Das BIOS? Der Bootloader?
Glaube ich irgendwie nicht... Das BIOS könnte sein, aber das ist ja schnell umgeschrieben.
Da der Bootloader vom BIOS in die ersten 64K geschrieben wird, glaube ich nicht, dass er auf das Adress-wrapping bei FFFF:0010 angewiesen ist. Aber man weiss ja nie :(

Code: Alles auswählen

mov [di],42
inc di
jnc @ok
push ds
add [sp-2],1000h
pop ds
ok:
Hach, das waren noch Zeiten! *würg* ;)

Edit: Ein Leet-Coder würde natürlich den add befehl als

Code: Alles auswählen

add [sp-1],10h
schreiben ;)
Zuletzt geändert von Joghurt am 23.08.2004 18:45:44, insgesamt 3-mal geändert.

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 23.08.2004 18:44:44

für die benutzung des A20 war doch HIMEM zuständig, oder?
also spielt sich das alles doch auf der DOS ebene ab. warum hat man nicht einfach
DOS so gepatcht das es eine andere lösug findet als das A20?

und nochmal gefragt, welchen sinn macht das heute noch? wer kauft sich einen computer
mit 64bit prozessor und lässt darauf ein programm laufen, das ein A20 erwartet?

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 23.08.2004 18:49:08

startx hat geschrieben:mit 64bit prozessor und lässt darauf ein programm laufen, das ein A20 erwartet?
Ein A20 sollte es besser erwarten ;) Alte Programme erwarten ja gerade kein A20; also das von allen Adressen nur die untersten 20 bit Zählen. (FFFF:0010 = 0000:0000)

Edit: Für die jungen unter uns: Im Real-Mode gibt es Segment und Offset, das Segment wird 4 Bit nach links geshiftet und zum offset addiert, um die physikalische Adresse zu bekommen:

Code: Alles auswählen

1234:5678 => 12340h + 5678h => 179b8h
FFFF:0010 => FFFF0h + 0010h => 100000h (mit ak. A20)
                            =>  00000h (ohne ak. A20)
Zuletzt geändert von Joghurt am 23.08.2004 18:52:04, insgesamt 1-mal geändert.

Benutzeravatar
fred19726
Beiträge: 507
Registriert: 18.07.2002 03:38:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Heidelberg (DE)
Kontaktdaten:

Beitrag von fred19726 » 23.08.2004 18:50:57

für die benutzung des A20 war doch HIMEM zuständig, oder?
Ich glaube schon.
2 Dinge sind Unendlich, das Universum und die Menschliche Dummheit,
wobei ich mir beim Universum nicht sicher bin
-- Albert Einstein

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 23.08.2004 18:54:36

/A20CONTROL:ON|OFF
Specifies whether HIMEM is to take control of the A20 line even if A20
was on when HIMEM was loaded. The A20 handler gives your computer access
to the HMA. If you specify /A20CONTROL:OFF, HIMEM takes control of the
A20 line only if A20 was off when HIMEM was loaded. The default setting
is /A20CONTROL:ON.
http://users.cybercity.dk/~bse26236/bat ... IMEM_S.HTM

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Beitrag von startx » 23.08.2004 18:56:57

um hier mal was kreatives vorzuschlagen:
gibt es schon eine petition irgendwo, das A20 endlich abzuschaffen? :wink:

Antworten