Этот код сделан с помощью Microsoft Visual Studio 1.52 для 16-битных систем. Это были первые дни C ++, и реализации на самом деле не соответствовали стандартам. Там даже не было никакого стандарта.
Итак, он определяет bool для char, так как у этого компилятора C ++ нет встроенного типа bool, и он хочет его.
far
обозначает дальний указатель , который является указателем, состоящим из селектора сегмента и смещения, так что вы можете указывать на вещи вне ваших обычных 64 КБ памяти, на которые могут обращаться «нормальные» указатели , Сегодня вы вряд ли увидите что-либо подобное, например, плоское адресное пространство, если оно обычно используется, и части (в ОС или загрузчике), которые все еще должны заботиться о модели сегментированной памяти процессоров X86, часто пишутся на ассемблере