Potrzebujesz pomocy przy przydzielaniu dalekiego wskaźnika na Borland C ++ 3.0

Piszę strukturę gry DOS, aby lepiej nauczyć się C i ogólne zainteresowanie programowaniem na starym sprzęcie (zwłaszcza w systemie, w którym dorastałem).

Usiłuję zaimplementować system podwójnego bufora, ale mam problem z przydzieleniem dalekiego wskaźnika do tablicy 320 * 200.

Początkowo próbowałem użyć malloc, ale dowiedziałem się, że może przydzielić tylko poniżej 64kb. Przeczytałem, że musisz użyć farmalloc (malloc zwraca NULL) i został poprawnie przydzielony. Jednak gdy uruchomiony jest _fmemset lub _fmemcpy .... cały system zawiesza się.

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

kiedy nadejdzie czas wymiany buforów, których używam

_fmemcpy(VGA, backBuffer, 64000);

Program używa modelu małej pamięci.

questionAnswers(1)

yourAnswerToTheQuestion