Разумеется, вы правы в том, что наш механизм syscall — это не совсем то, что вы ищете.
Он изначально не предназначен для низкоуровневой эмуляции аппаратных устройств через NMI. Его основная задача иная — это организация надежного и эффективного обмена данными между пользовательской программой, ядром и драйверами.
Главная ценность такого подхода в работе с драйверами устройств, которые требуют неопределённого времени на выполнение операции. Вместо того, чтобы висеть в циклах ожидания, пока устройство выставит некий "бит готовности", ПО может просто запросить выполнение операции через syscall и немедленно продолжить работу (асинхронный режим) или быть заблокированным до её завершения (синхронный режим). Это позволяет централизованно обслуживать все устройства в обработчиках прерываний (ISR), полностью избегая активного ожидания.
Таким образом, наш syscall решает задачи более высокого уровня — не имитация "железа", а создание отказоустойчивой и эффективной системы управления всеми устройствами в целом. Это иная, но не менее мощная архитектурная концепция.
- - - Добавлено - - -
Вы абсолютно правы, и это следствие работы без полной документации в свое время. В итоге получились следующие расхождения с оригинальной платформой:
• Система прерываний: Не была реализована поддержка Interrupt generation control.
• Расширение памяти: Его пришлось проектировать практически с нуля. По счастливой случайности результат оказался схож с расширением от Dk'tronics, которое, если быть точным, и само не является на 100% каноническим. Насколько я помню, в одной из версий РЕ³ даже была выпущена корректировка на этот счёт.
• Цвет: Компоненты цвета у CPC имеют яркость 0, 50 и 100% (но не у Алесты). Впрочем, ретро-компьютеры вообще не проектировались с оглядкой на точную цветопередачу (color rendition).
• Порты: Принтерный порт был реализован иным способом.
• Клавиатура: Перекодировка клавиатуры действительно теряет смысл, когда в распоряжении есть качественные механические кнопки, позволяющие реализовать более простую и эффективную схему.
• Периферия: Такие вещи, как часы (ВИ53, ВВ51), HIGHZ, FUTURE — да, их тоже лучше не реализовывать или переосмыслить.
И, как вы верно заметили, все эти моменты действительно стоит исправить для достижения большей аутентичности. Я это только приветствую.





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
