Сделать мультизадачной Старую платформу? Или Новую платформу с поддержкой старых?
Годах 96-98 в клубе заговорили про разрабатываемый кем-то "совершенно новый контроллер", не просто позволяющий подрубать к БК IDE устройства, но еще и добавляющий оперативку и самое главное - позволяющий реализовывать мультизадачность (95 винда тогда на многих подействовала как толчок к движению. Одним - в сторону ПиСюка, другим - к дальнейшему апгрейду БК по образу и подобию ПиСюка)
На пару с Саймоном мы тогда решили, что будущее БК может быть только в карманном варианте (Как раз пошла мода на карманные телефонные книги, под них и хотелось "закосить"). Стали обсуждать как ввести мультизадачность. Вариант по трассировке, как в игрушке Valley, отпал сразу - ненадежно + тормоза. Следующая идея была в подмене памяти по выполнению очередной команды, но требовалось выяснить, является ли очередная операция чтения памяти выборкой очередной команды или же это выборка данных. Затык продолжался пару месяцев, пока не стукнула идея проверить запрос на DMA, не помню как он у 1801 называется. Но где-то прошла инфа, что и здесь ловить нечего. Тогда остался только один вариант - вызывать "останов" и выполнением нескольких команд (их надо подбирать заново, я все записи потерял) можно было недеструктивно отличить операцию чтения данных от операции выборки команды, после чего смело перходить к процедуре смены процесса. Скажу сразу - потери времени на переключение процессов вышли бы значительные, вдобавок потребовалась бы куча логики (мы так даже схематически не смогли отрисовать, как это выглядело бы в реалии) даже с пременением шустрых микроконтроллеров от Атмела для анализа обращения к памяти, что однозначно поставило крест на "карманности" предполагаемой БКшки. На сем "проект" благополучно помер...