programa DOS no WinXP Pro

2

Eu tenho um programa DOS antigo (EarlyBird - EB.EXE) que funcionou bem por muitos anos no meu sistema WIN XP Pro. O programa é iniciado por um atalho para o exe (um arquivo * .pif eu acredito) e é executado pelo NTVDM e parece usar AUTOEXEC.NT e CONFIG.NT.

Desde que me mudei dos EUA para o Reino Unido, mudei recentemente a opção regional para o Reino Unido dos EUA. Agora a janela 'DOS' não exibirá os caracteres de "desenho da caixa" corretamente.

Se eu iniciar um prompt do CMD e digitar chcp, ele exibirá a página de código como 850, que parece estar OK, embora tenha sido 437. No entanto, o programa DOS do Early Bird tem uma saída do shell do DOS e se eu usar esse tipo CHCP eu recebo a resposta 1252.

Eu tenho, com a ajuda fornecida por @Doktoro Reichard, realizado vários experimentos, incluindo a configuração da página de código no registro, iniciando um arquivo .bat com uma força via chcp para várias páginas de código, nenhuma delas parecia funcionar .

Por fim, reverti o local de volta para os EUA e os caracteres de desenho de caixa agora estão funcionando bem. Estranhamente, uma saída do DOS do programa EB STILL mostra o cp como 1252, enquanto um prompt do CMD mostra 437. Isso é confuso.

No entanto, eu realmente quero que a localidade do Windows seja no Reino Unido (por vários motivos, como formatos de data, relógio de 24 horas, etc.), mas ainda preciso que meu antigo programa DOS funcione corretamente.

Existe uma maneira de definir a localidade para o Reino Unido e ainda obter os caracteres de desenho corretos em NTVDM por meio do atalho * .pif?

Obrigado

David

    
por David 14.06.2014 / 17:25

1 resposta

2

Você respondeu de maneira não intencional à sua pergunta:

... but I have recently changed the regional option to UK from US.

É por isso que o prompt de comando não está exibindo os caracteres corretos. De acordo com a documentação sobre o chcp :

CHCP.com

Change the active console Code Page. The default code page is determined by the Windows Locale.

Syntax:

CHCP code_page

     code_page  - A code page number (e.g. 437)

Ao mudar dos EUA para a Página de Códigos do Reino Unido, você também mudou a aparência dos caracteres. Se você observar as imagens a seguir, poderá ver por que os caracteres da caixa não estão sendo renderizados: porque eles não estão lá:

Felizmente, a solução é simples: execute chcp 850 (que, embora não seja a versão original dos EUA, é compatível principalmente com a Página de códigos 437) ou chcp 437 no início do prompt de comando atual.

Code Page 437 (IBM-ASCII)

Code Page 437 (IBM-ASCII)

.

Code Page 1252 (Western Europe)

Code Page 1252 (Western Europe)

    
por 14.06.2014 / 17:50

Tags