Existe alguma maneira de converter um aplicativo DOS de 16 bits em um aplicativo de 32 bits, para que eu não seja limitado pelo limite de 16383? Ou talvez haja uma maneira de executar um aplicativo de 16 bits como um aplicativo de 32 bits sem convertê-lo?
Não tenho o código fonte do programa, portanto não posso reconstruí-lo de nenhuma maneira.
obrigado
conversion
32-bit
ms-dos
simulation
16-bit
Daniel Wardin
fonte
fonte
O que serviços como o Good Old Games fazem para fazer jogos realmente antigos (dos ex de 16 bits) funcionarem em sistemas modernos é empacotar o executável e uma máquina virtual juntos para que o jogo pense que está sendo executado no DOS enquanto a VM traduz todas as interação de hardware de baixo nível que os jogos do DOS fazem nos comandos padrão do sistema operacional Windows / Mac / Linux.
Você pode fazer o mesmo para executar aplicativos herdados em hardware moderno, fazendo com que o novo sistema operacional pense que está executando um aplicativo de 32 bits; mas todas as antigas limitações do sistema de 16 bits permanecerão.
fonte
Estou assumindo que, pelo limite de 16383, você quer dizer o tamanho máximo inteiro de uma variável que um software de 16 bits pode manipular (e faz tanto tempo desde que eu fiz isso que precisei procurar). Não existe uma maneira real de fazer isso sem alterar o tipo de variável - nesse caso, inteiros curtos para inteiros longos.
Vamos supor que temos um software mágico que nos permite executar um software de 16 bits com todos os atributos de um sistema de 32 ou 64 bits - você poderá acessar mais memória, mas essa ainda é uma variável inteira curta de 16 bits. Você também pode acelerar as coisas executando várias instâncias. No entanto, não se transforma simplesmente um número inteiro curto em um inteiro longo, alterando a arquitetura.
Não há absolutamente nenhuma maneira, sem hackear o código fonte (quase) para corrigir isso. Eu acho que, se você fosse um ninja de 1337 desmontável, poderá executar um dissimulador, descobrir onde está essa variável e convertê-la em um inteiro longo. No entanto, nesse ponto, é melhor você descobrir qual é a lógica do software e reescrevê-lo.
Fontes: documentação do cabeçalho C ++
fonte