*. Сделать правильную эмуляцию экрана.
   мультиколор упорно глючит. Похоже, ещё где-то какая-то ошибка, или 
   неверное понимание сути процесса.
   Нужно сделать синхронизацию с доступом к памяти. Но проблема - как не
   потерять при этом точность встроенного таймера.
   Наверно надо вообще с нуля заново всё писать.

*. Сделать правильную эмуляцию спикера.
   Так и не понял чего нужно. То ли эмулировать параллельно подключенный 
   конденсатор, то ли преобразовывать импульсы ШИМ в амплитуду, то ли оба вместе.

*. готовы рендеры на OpenGL, DIBDraw, Direct3D9 и Direct2D.
   DIBDraw - наиболее удачный вариант.
   OpenGL - очень медленно работает на некоторых видеокартах.
   Direct3D9 - красиво работает, есть сглаживание. Но проблемы с переключением
       в полноэкранный режим. Но жрёт больше процессорного времени, чем DIBDraw
   Direct2D - что-то среднее между Direct3D9 и OpenGL, по ощущениям - тормознутее
       даже чем OpenGL
   Старый рендер на DirectX7 работает плохо под вин7, всё хочет цветовую схему
       отключить.
   Vfw32.lib; - либы для DIBDraw
   d2d1.lib; - либы для Direct2D
   d3d9.lib;D3dx9.lib;DxErr.lib - либы для Direct3D9 

*. Сделать виртуальную клавиатуру.

*. починить проверку на запуск только одной копии проги.
   две проги в общем-то и не запускаются, но вторая тупо вываливается с ошибкой,
   не даёт создать новый фрейм и из-за этого появляется сообщение, что не
   удалось создать пустой документ.
   И параметры не передаёт.
   А надо ли не давать запускать несколько копий? Может пусть будет сколько угодно?
   Только надо будет переделать в mdi приложение

*. Сделать проверку на наличие ресурсов, если чего-то нужного нету - выходить
   с сообщением об отсутствии нужных компонентов.
   Частично сделано. Сообщение выдаётся, но в результате ещё и сообщается
   что не удалось создать пустой документ. Надо чтобы просто молча выходило,
   но как это сделать вообще никаких идей нет.

*. узнать, как в реестре хранить параметры в удобочитаемой форме, и как 
   не хранить некоторые.
   Пока усилия на разработку не оправдывают результата. Вот когда совсем 
   делать будет нечего, тогда и можно будет переписать на свои 
   CWinAppEx::LoadState, CWinAppEx::SaveState

*. сделать возможность выбора необходимых файлов, находящихся в любом месте,
   а не только в заданной директории: .bin, .tap и т.д.
   Если чего-то нет в привычной директории, надо вызывать диалог с лазаньем 
   по всему компьютеру. Сохранение по-прежнему, в заданные каталоги.

*. Улучшить визуально Debugger, сделать подсветку переходов.
   Для подсветки переходов нужно полностью переписать отладчик, придумать его
   заново.

*. В окне портов-регистров добавить 177130,177132. и добавить их к сохраняемым
   регистрам, ну и регистры винчестера заодно.

*. Мышь марсианка, сделать захват мыши как в vmware

   маска	функция
   0040		левая кнопка
   0100		правая кнопка
   0010		влево
   0002		вправо
   0001		вверх
   0004		вниз

   и ещё входной бит:
   маска 0010, надо отсылать мыши команду о том, что данные приняты.

*. Добавить эмуляцию самарского контроллера HDD,
   вся необходимая информация уже есть.


!. Так вот, интервал времени между КСИ и началом отображения первой видимой строки в реальной БК0011М гораздо больше, чем в эмуляторе уважаемого GID prod., благодаря которому, удалось таки "вспомнить молодость". За что GID-у большое спасибо! :)

Прерывание по вектору 100 сделано на внешней схеме - триггер D3.2, логика D6.3, счетчик D28, триггер D35. Из сигнала синхронизации выделяется ССИ (строчный синхросигнал) и взводит счетчик D20, если приходит сигнал WTI - запись в сдвиговый регистр (вывод видео), происходит сброс счетчика. Если WTI больше нет (вывод на экран закончился) следующий ССИ запускает триггер D3.2 - происходит перывание по вектору 100. 
т.е прерывание происходит сразу после окончания вывода на экран, а не по КСИ. 