История изменений
Исправление X512, (текущая версия) :
Хорошо спроектирована для системы, работающей в сегментном режиме на процессоре, который изобрёл кривую архитектуру специально чтобы имитировать 16-разрядное адресное пространство i8080
Я про проектирование API, внутренности Windows много раз менялись. Основное API не связанное с 16 битной сегментной памятью одинаковое в Win16 и Win32. Можно было так писать чтобы один код компилировался в Win16 и Win32. В Watcom C++ можно посмотреть примеры, там почти всё компилируется в Win16 и Win32, а также свою реализацию 32 бит поверх Win16. Примеры из Windows 1.0-3.1 SDK компилируются и запускаются на Windows 10 с минимальной доработкой напильником. Было много программ, у которых были 16 и 32 битные версии и они не сильно отличались друг от друга (дизайн кнопок и диалогов немного другой и всё). Я сам до сих пор пользуюсь одной программой у которой есть Win16 версия.
Аналог Windows 1.0 для 32 или 64-битного режима сейчас на Си напишет любой умный студент за 3-4 месяца.
Не напишет. Основная сложность не реализация, а проектирование API. В Линуксе до сих пор нормальное API спроектировать не могут. Win16 программы даже HiDPI на современных мониторах поддерживают.
Исправление X512, :
Хорошо спроектирована для системы, работающей в сегментном режиме на процессоре, который изобрёл кривую архитектуру специально чтобы имитировать 16-разрядное адресное пространство i8080
Я про проектирование API, внутренности Windows много раз менялись. Основное API не связанное с 16 битной сегментной памятью одинаковое в Win16 и Win32. Можно было так писать чтобы один код компилировался в Win16 и Win32. В Watcom C++ можно посмотреть примеры, там почти всё компилируется в Win16 и Win32, а также свою реализацию 32 бит поверх Win16. Примеры из Windows 1.0-3.1 SDK компилируются и запускаются на Windows 10 с минимальной доработкой напильником. Было много программ, у которых были 16 и 32 битные версии и они не сильно отличались друг от друга (дизайн кнопок и диалогов немного другой и всё). Я сам до сих пор пользуюсь одной программой у которой есть Win16 версия.
Исправление X512, :
Хорошо спроектирована для системы, работающей в сегментном режиме на процессоре, который изобрёл кривую архитектуру специально чтобы имитировать 16-разрядное адресное пространство i8080
Я про проектирование API, внутренности Windows много раз менялись. Основное API не связанное с 16 битной сегментной памятью одинаковое в Win16 и Win32. Можно было так писать чтобы один код компилировался в Win16 и Win32. В Watcom C++ можно посмотреть примеры, там почти всё компилируется в Win16 и Win32, а также свою реализацию 32 бит поверх Win16. Примеры и Windows 1.0-3.1 SDK компилируются и запускаются на Windows 10 с минимальной доработкой напильником. Было много программ, у которых были 16 и 32 битные версии и они не сильно отличались друг от друга (дизайн кнопок и диалогов немного другой и всё). Я сам до сих пор пользуюсь одной программой у которой есть Win16 версия.
Исходная версия X512, :
Хорошо спроектирована для системы, работающей в сегментном режиме на процессоре, который изобрёл кривую архитектуру специально чтобы имитировать 16-разрядное адресное пространство i8080
Я про проектирование API, внутренности Windows много раз менялись. Основное API не связанное с 16 битной сегментной памятью одинаковое в Win16 и Win32. Можно было так писать чтобы один код компилировался в Win16 и Win32. В Watcom C++ можно посмотреть примеры, там почти всё компилируется в Win16 и Win32, а также свою реализацию 32 бит поверх Win16. Было много программ, у которых были 16 и 32 битные версии и они не сильно отличались друг от друга (дизайн кнопок и диалогов немного другой и всё). Я сам до сих пор пользуюсь одной программой у которой есть Win16 версия.