Mehrere DOS Codepages gleichzeitig?

Hallo,

ich schreibe Programme für eine Maschinensteuerung, die
auf einem Industrie-PC unter dem Betriebssystem DOS
(emuliert) läuft.

Für die geplante Internationalisierung der Software ist
es nun erforderlich, zwischen verschiedenen Sprachen
umschalten zu können, so daß man zum Beispiel deutsche
Umlaute und kyrillische Zeichen gleichzeitig auf dem
Bildschirm hat.

Dazu wollte ich nun entweder mehrere Zeichensätze für
die verschiedenen Sprachen gleichzeitig laden oder
benutzerdefinierte Zeichensätze erstellen oder beides.

Mir schwebt eine Lösung vor, bei der man die benötigen
Zeichensätze in Form der DOS-Codepages (also 850, 852
etc.) lädt und dann jeweils in den benötigten
Zeichensatz umschaltet. Wenn man also nur die deutschen
Umlaute benötigt, so reicht der DOS-Zeichensatz der
Codepage 850 aus. Um z.B. kyrillische Zeichen
darzustellen, würde ich die Codepage (glaube 852)
umschalten, das Zeichen ausgeben, und wieder in die
deutsche Codepage zurückschalten.

Ist es überhaupt möglich?

Kann ich überhaupt mehrere DOS-Codepages im Speicher
haben und nach Bedarf so zwischen ihnen umschalten, daß
die vorher dargestellen Zeichen nicht plötzlich
verschwinden oder „übergeblendet“ werden? Ich meine,
daß nach der Umschaltung in die kyrillische Codepage
plötzlich die zuvor dargestellen deutschen Umlaute
„weg“ sind, anstatt diese im Graphikspeicher der
Graphikkarte zu belassen und das kyrillische Zeichen
darzustellen (ich hoffe, ich habe das verständlich
ausgedrückt…)?

Was auch gehen würde möglicherweise, das wäre, die
benötigten Zeichen in eine selbsterstellte und
selbstdefinierte Codepages zu kopieren, weil ich immer
nur die Ziffern, Buchstaben, Satzzeichen und
sprachtypische Sonderzeichen benötige, jedoch keine
anderen Sonderzeichen, und damit 127 Zeichen ausreichen
würden.

Mit welchen Tools könnte man sowas machen?

Danke für jeden Hinweis schonmal,
Snubbelfot.

Hallo,

dazu musste ich erstmal nachsehen, ob mich meine Erinnerung trügt (Codepages stammen aus der Jungsteinzeit der IT), aber es ist schon so wie ich das im Kopf hatte: Codepages wurden realisiert, indem der Encoder umprogrammiert wurde, der aus einem char ein Pixelmuster macht. Das heisst aber, dieser Decoder ist für den ganzen Bildschirm zuständig, ändert man die Codepage, so ändert sich schlagartig die Darstellung aller, insbesondere der bereits geschriebenen Zeichen. Anders ausgedrückt, es kann nur eine geben, Codepage nämlich.

Möglicherweise verhält sich eine Emulation des Bildschirms in diesem Punkt nicht wie das Original, aber wenn das so ist, würde ich mich auf garnichts mehr verlassen. Ausserdem sind Codepages ein Relikt, das selbst die Erfinder gerne vergessen würden.

Für Windows brauchst du sowieso einen Font, der alle nötigen Zeichen in allen Sprachen enthält, sonst erscheinen nur Kästchen, Codepage her oder hin. D.h. du wirst dich wohl mit Unicode anfreunden müssen.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]