Win3x.Org

Windows & DOS Community

EGA.CPI corrigé pour DR-DOS

Répondre   Page 1 sur 1  [ 5 messages ]
Auteur Message
gm86
Sujet du message : EGA.CPI corrigé pour DR-DOS
Publié : 21 mars 2013 22:26
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 453
Inscription : 01 sept. 2008 19:07
 
Mises à jour pour DR DOS : EGA.CPI avec page de code 853 corrigée

La page de code 853 (inspirée du Latin-3) est supportée mais non documentée dans DR DOS 6.0/7.03. Ainsi, elle n'est reconnue ni par NLSFUNC ni par COUNTRY.SYS bien qu'EGA.CPI la contienne...
Par exemple, imaginons que les quatres premières commandes suivantes soient lancées au démarrage par AUTOEXEC.BAT (DISPLAY.SYS étant actif) et que les autres soient tapées par l'utilisateur :
C>NLSFUNC C:\DRDOS\COUNTRY.SYS
NLSFUNC V3.02       Support de langue nationale.
Copyright (c) 1988, 1989, 1990, 1991 Digital Research Inc. Tous droits réservés.



C>MODE CON: CP PREP=((853) C:\DRDOS\EGA.CPI)
Fonction de préparation de page de codes terminée

C>MODE CON: CP SEL=853
Fonction de sélection de page de codes terminée

C>KEYB FR+,850

C>CHCP 437

C>CHCP 853
Page de codes incorrecte. NLSFUNC n'est pas chargé
ou COUNTRY.SYS est introuvable

C>CHCP 850

C>KEYB FR,850

C>MODE CON: CP SEL=853
Le clavier ne prend pas en charge cette page de codes

C>CHCP
Page de code active: 850

C>KEYB
Programme de clavier chargé: FR, page de codes 850

Nous remarquons que CHCP ne peut ni savoir si la page 853 est active ni la sélectionner.
Après être revenu à la page matériel 437 (mais on aurait pu choisir une page de codes logicielle préalablement préparée et reconnue), si on sélectionne de nouveau la page 853 via l'utilitaire MODE, ce dernier nous averti que le clavier n'est pas pas prévu pour — bien qu'elle soit compatible avec la page multilingue 850, le caractère « ÿ » mis à part.

Notons les caractères accentués de l'Espéranto :
134 ?   143 ?   155 ?   157 ?   159 ?   172 ?
168 ?   169 ?   198 ?   199 ?   236 ?   237 ?
Les caractères 170, 208, 209, 221, 238, 241 & 251 n'ont aucun rôle et sont représentés par des blancs.
Le caractère 240 (SHY, Soft hyphen) qui est normalement le trait d'union conditionnel est toutefois toujours affiché (sous la forme du trait de césure).

Liens.
INT 21h/AX=6602h (page de codes 853 non documentée sous DR DOS 6) :
http://www.oopweb.com/Assembly/Document ... INTERRUP.H
MS-DOS Codepage 853 (Multilingual Latin 3):
http://www.kostis.net/charsets/cp853.htm

Le but de la proposition.
Hélas, dans notre cas, le caractère 159 (?) est remplacé par le caractère 173 (s cédille minuscule). Nous constatons aussi que le caractère 158 (signe de multiplication) est remplacé par le caractère 184 (s cédille majuscule) et le 141 (i accent grave) par le 213 (i sans point semblable au chiffre 1 en indice).

Le fichier EGA.CPI est donc erroné : il y a des doublons. Heureusement, en explorant la table 850 dans le fichier EGA.CPI (qui débute par les octets 52h & 03 pour 0352h=850) on trouve aisément l'octet référençant le symbole « multiplier » (02 précédant l'octet non nul 01). Ensuite, dans la table 853 (débutant par les octets 55h & 03 pour 0355h=853), nous identifions la lettre « x » suivie de l'octet 01 à l'emplacement du caractère 157 ainsi que la lettre « z » suivie de l'octet 01 à l'emplacement du caractère 166. On devine donc que le caractère 159 ne peut être référencé que par la lettre « y » toujours suivie de l'octet 01. Quant au caractère 141, il suffit de l'entrer suivi de l'octet nul.
...voilà pourquoi je vous propose le fichier EGA.CPI corrigé pour DR DOS. NOTA : on retrouve le fichier erronée de DR DOS 6 dans DR-DOS 7.03 !

Téléchargement

>>>> EGA.CPI révisé (miroir de Vorro)
>>>> EGA.CPI révisé (miroir de Big Monstro)

Utilisation


Prenez l'exemple français (COUNTRY=033 et KEYB FR).
CONFIG.SYS :
COUNTRY=033,850,C:\DRDOS\COUNTRY.SYS
DEVICE=C:\DRDOS\DISPLAY.SYS CON=(EGA,,1)
AUTOEXEC.BAT :
NLSFUNC C:\DRDOS\COUNTRY.SYS
MODE CON: CP PREP=((853) C:\EGA.CPI)
MODE CON: CP SEL=853
KEYB FR+,850
NLSFUNC permet trois choses d'après le numéro de pages de codes spécifié par CHCP :
- modifier les paramètres de COUNTRY liés à la page de codes (correspondances majuscule-minuscule) ;
- sélectionner la page de codes ;
- configurer KEYB selon les caractères disponibles.
Si vous souhaitez utiliser une autre page (par exemple, la page de codes matérielle qu'on n'a pas besoin de préparer), utilisez CHCP :
C>CHCP 437
En revanche, pour revenir à la page de codes 853 tout en restant compatible avec la page de codes multilingue 850 qui n'est pas préparée, il faut entrer les trois commandes suivantes (au clavier ou à l'aide d'un fichier batch) :
C>CHCP 850

C>KEYB FR,850

C>MODE CON: CP SEL=853
Le clavier ne prend pas en charge cette page de codes
Comme cité plus haut, ignorez ce dernier message.


Dernière modification par gm86 le 23 mai 2018 23:25, modifié 1 fois.

Haut
Profil Citer
Big Monstro
Sujet du message : Re: EGA.CPI corrigé pour DR-DOS
Publié : 20 sept. 2013 22:25
Administrateur
Avatar de l’utilisateur
En ligne
 
Messages : 2922
Inscription : 27 juin 2003 15:15
PC Rétro : 80486 DX2/66, MS-DOS & Windows 95
 
Merci pour ces explications fort instructives !

Edit du 17/12/2017 : cette contribution de gm86 sur DR-DOS se trouvait auparavant à l'intérieur d'un autre topic. Je l'ai séparé du reste car j'estime que sa correction mérite bien un sujet à part entière, aux côtés des autres réalisations des membres de Win3x.Org (d'où le faible nombre de consultations, ne vous y fiez pas, c'est un sujet nouvellement créé) + ajout d'un miroir de ma part :D


Dernière modification par Big Monstro le 17 déc. 2017 21:13, modifié 2 fois.

Haut
Profil Citer
gm86
Sujet du message : Re: EGA.CPI corrigé pour DR-DOS
Publié : 23 mai 2018 23:01
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 453
Inscription : 01 sept. 2008 19:07
 
Je me rends compte que le texte se rapportant au patch PAT312 de DR DOS 6 se balade dans le message principal :
  • la dernière partie du spoiler commençant par J'avais auparavant écrit un petit TSR ;
  • la dernière partie du message entier, intitulée patch de la fonction 26h dans IBMDOS.COM.
Je remercie tout de même Big Monstro d'avoir créé un sujet exprès.

_________________

C:\ONGRTLNS.W95


Haut
Profil Citer
Big Monstro
Sujet du message : Re: EGA.CPI corrigé pour DR-DOS
Publié : 23 mai 2018 23:08
Administrateur
Avatar de l’utilisateur
En ligne
 
Messages : 2922
Inscription : 27 juin 2003 15:15
PC Rétro : 80486 DX2/66, MS-DOS & Windows 95
 
Mille excuses :o

Sur ce, je t'invite à corriger le message :)


Haut
Profil Citer
gm86
Sujet du message : Re: EGA.CPI corrigé pour DR-DOS
Publié : 23 mai 2018 23:29
Membre inscrit
Avatar de l’utilisateur
Hors-ligne
 
Messages : 453
Inscription : 01 sept. 2008 19:07
 
Pas grave. Voilà, c'est fait. Je garde précieusement les coupes (PAT312) ci-dessous :
J'avais auparavant écrit un petit TSR palliant l'erreur de copie de la fonction 26h du DOS. J'ai décidé que ce dernier problème devait dorénavant être supprimé à la source. J'ai donc tenté de déceler l'emplacement de la fonction 26h dans le DOS. Le débogage pas-à-pas n'étant guère possible avec un système non réentrant, j'ai par conséquent consulté les fichiers sources d'OpenDOS 7.10, descendant de DR DOS, et repéré la fonction grâce aux similitudes du code.

La fonction 26h de l'interruption 21h de DR DOS 6 commence ainsi :
	les	di,[bp-4]
	mov	es,es:[di+16h]
Cette dernière ligne correspond à
	mov	es,es:reg_CS[di]
dans le fichier PROCESS.A86 d'OpenDOS.
Or la valeur de reg_CS vaut 14h, comme on peut le vérifier dans le fichier PCMODE.EQU, car le DOS enregistre les registres du processeur dans une pile dans l'ordre suivant :
Registre AX BX CX DX SI DI BP DS ES IP CS Flag
Base+hex 00 02 04 06 08 0A 0C 0E 10 12 14 16


Patch de la fonction 26h dans IBMDOS.COM :
Copier FCT26.BAT avec FCT26.SID dans le répertoire racine contenant le fichier système et le lancer.
fct26.bat
Contenu de FCT26.BAT :
attrib -rsh ibmdos.com
sid < fct26.sid
attrib +rsh ibmdos.com
Contenu de FCT26.SID :
rIBMDOS.COM
s1A2A
14
.
wIBMDOS.COM
q
echo.
La dernière ligne est ajoutée pour s'assurer que la lettre q soit suivie d'un retour à la ligne.

La somme de contrôle du nouveau IBMDOS.COM est A0C6h :
C:\>xdir ibmdos.com /c
rsa-h-      39 239  21/03/13  22:22   A0C6  c:ibmdos.com
1 fichiers au total   39 239 octets au total
La modification correspond donc au patch PAT312 décrite dans la note 11 du texte suivant :
http://www.freedos.org/technotes/press/ ... s-hist.txt
Je verrai plus tard où les mettre. Bonne nuit.

_________________

C:\ONGRTLNS.W95


Haut
Profil Citer
Afficher : Trier par : Ordre :
Répondre   Page 1 sur 1  [ 5 messages ]
Revenir à « Projets aboutis »
Aller :