Precisa de ajuda para alocar um ponteiro distante no Borland C ++ 3.0

Eu estou escrevendo uma estrutura de jogo DOS para aprender C melhor e um interesse geral em programar em hardware antigo (especialmente no sistema que eu cresci com).

Eu estou tentando implementar um sistema de buffer duplo, mas estou tendo problemas para alocar um ponteiro longe para um array de 320 * 200.

No começo eu estava tentando usar malloc mas descobri que só pode alocar abaixo de 64kb. Eu li que você precisa usar o farmalloc (malloc retorna NULL) e alocado corretamente. No entanto, quando _fmemset ou _fmemcpy é executado ... todo o sistema congela.

backBuffer = (unsigned char far*) farmalloc(64000);

quando é hora de trocar buffers eu uso

_fmemcpy(VGA, backBuffer, 64000);

O programa está usando o modelo de memória pequena.

questionAnswers(1)

yourAnswerToTheQuestion