Код:
МОНИТОР-4
===========
НОВАЯ ВЕРСИЯ М2. (СКОРОСТНЫЕ ДРАЙВЕРА И НОВЫЕ ФУНКЦИИ)
Г.НОВОЧЕРКАССК ВОРОНИН В.А.
НОВЫЙ РЕЗИДЕНТНЫЙ МОНИТОР М4 РАБОТАЕТ С КЛАВИАТУРОЙ МС7007.
НОВАЯ ВЕРСИЯ M4.01
1 ПОСЛЕ ТЩАТЕЛЬНОГО АНАЛИЗА ДРАЙВЕРА ВЫВОДА СИМВОЛА, ЕГО
УДАЛОСЬ ЗНАЧИТЕЛЬНО СОКРАТИТЬ В РАЗМЕРАХ, И ПРИ ЭТОМ
НЕМНОГО ПОДНЯТЬ СКОРОСТЬ ВЫВОДА.
2 ПОЯВИЛОСЬ СВОБОДНОЕ МЕСТО, АЖ 32 БАЙТА.
ПРИ ОТСУТСТВИИ ROM-ДИСКА, М4 ОЧИЩАЕТ ЭКРАН, ВЫВОДИТ СООБЩЕНИЕ
ОБ ОТСУТСТВИИ ROM-ДИСКА И ЖДЁТ КОГДА ЕГО ПОДКЛЮЧАТ. НАЖАТИЕ НА
ЛЮБУЮ КЛАВИШУ ПРИВОДИТ К ПЕРЕЗАПУСКУ М4 ПО ТЁПЛОМУ СТАРТУ.
М4 НАПИСАН ТОЛЬКО РАДИ ПОВЫШЕНИЯ СКОРОСТНЫХ ХАРАКТЕРИСТИК
ДРАЙВЕРОВ. ВОТ, ЧТО МНЕ УДАЛОСЬ СДЕЛАТЬ:
1.НОВЫЙ ДРАЙВЕР ОПРОСА КЛАВИАТУРЫ ВЗЯТ ГОТОВЫЙ.
(РАДИО 1991 N_12 СТР.40 Б.ФРОЛКИН, А.МАКАРОВ)
ДОЛЖЕН ПРЕДУПРЕДИТЬ, СКОРОСТЬ ОПРОСА КЛАВИАТУРЫ ВЫРОСЛА
ТАК СИЛЬНО, ЧТО ПЕРВОЕ ВРЕМЯ ВЫ ЧАСТО БУДЕТЕ УЛЕТАТЬ В ДОС.
ВОЗМОЖНО, ЧТО ВАШИ НЕКОТОРЫЕ ПРОГРАММЫ ЗАРАБОТАЮТ ШУСТРЕЕ.
(F803H)
2.ПРОЦЕНТОВ НА ДЕСЯТЬ УДАЛОСЬ ПОДНЯТЬ СКОРОСТЬ ВЫВОДА СИМВОЛА.
В ДРАЙВЕРАХ М1 M2 И M3 СКОРОСТЬ ВЫВОДА СИМВОЛА ЗАВИСЕЛА ОТ
ЗНАЧЕНИЯ КООРДИНАТЫ КУРСОРА ПО ГОРИЗОНТАЛИ, ЧЕМ ПРАВЕЕ, ТЕМ
ДОЛЬШЕ (F809H,F80FH)
3.УСКОРЕН САМ ПРОЦЕС ВЫВОДА СИМВОЛЬНОЙ СТОРОКИ, ПЛЮС БОЛЕЕ
БЫСТРЫЙ ВЫВОД САМОГО СИМВОЛА (F818H)
4.ЗНАЧИТЕЛЬНО УСКОРЕН ПРОЦЕС ОЧИСТКИ ЭКРАНА, А ТАКЖЕ РАБОТА
ФУНКЦИИ 1BH,4AH (ОЧИСТКА ЭКРАНА НИЖЕ КУРСОРА)
5.ИСПРАВЛЕНА ОШИБКА В РАБОТЕ ФУНКЦИИ 1BH,4BH (СТИРАНИЕ СТРОКИ
ПРАВЕЕ КУРСОРА), И БОЛЕЕ ЧЕМ НА ПОРЯДОК УСКОРЕНА ЕЁ РАБОТА.
ОШИБКА ЗАКЛЮЧАЛАСЬ В ТОМ, ЧТО ПРИ ВЫПОЛНЕНИИ ФУНКЦИИ В САМОЙ
НИЖНЕЙ СТРОКЕ ЭКРАНА ПРОИСХОДИЛ СКРОЛИНГ, А ЭТО СВОДИЛО
НА НЕТ ВСЕ ПРЕИМУЩЕСТВА ФУНКЦИИ.
В М4 ВСТРОЕНО ЧЕТЫРЕ НОВЫЕ ФУНКЦИИ:
1 - 1BH,50H ЗАПОЛНЕНИЕ ОГРАНИЧЕННОГО УЧАСТКА ПАМЯТИ,
КОНСТАНТОЙ, НА ЛЮБОЙ СТРАНИЦЕ.
ДЛЯ ЭТОГО НУЖНО ПЕРЕДАТЬ:
1BH,50H,N,??,??,??,??,??
1BH - ВЫЗОВ ФУНКЦИИ
50H - ИМЯ ФУНКЦИИ
0-3 - N СТРАНИЦЫ ОЗУ
?? - РАЗМЕР ПО ГОРИЗОНТАЛИ В БАЙТАХ
?? - РАЗМЕР ПО ВЕРТИКАЛИ В ТОЧКАХ
?? - СТАРШИЙ БАЙТ АДРЕСА (ЛЕВЫЙ ВЕРХНИЙ УГОЛ)
?? - МЛАДШИЙ БАЙТ АДРЕСА
?? - КОНСТАНТА
НАИБОЛЕЕ УДОБНО ИСПОЛЬЗОВАТЬ В П/П F818H. ФУНКЦИЯ ИСПОЛЬЗУЕТ
РЕГИСТРЫ H: L: A: РЕГИСТРЫ B: C: D: E: СОХРАНЯЮТСЯ.
ИСПОЛЬЗОВАНИЕ П/П 0F809H ИЛИ П/П 0F80FH НЕ ВЫГОДНО!!!.
ОСНОВНОЕ ПРИМЕНЕНИЕ ФУНКЦИИ, ОЧИСТКА "ОКНА" НА ЭКРАНЕ И ЕГО
БОЕВАЯ РАСКРАСКА. В ПРИНЦИПЕ МОЖНО "ЗАЛИВАТЬ" ЛЮБЫЕ УЧАСТКИ ОЗУ,
НА ЛЮБОЙ СТРАНИЦЕ. ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ ЦВЕТ, ТО ПРЕДВАРИТЕЛЬНО
НЕОБХОДИМО УБЕДИТСЯ В ТОМ, ЧТО НА ДИСКЕ B: ЕСТЬ МЕСТО. ДЛЯ ЭТОГО
ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ORDOS MXDSK. В СЛУЧАЕ НЕ КОРРЕКТНОЙ ДАЧИ
ДАННЫХ ПРОЦЕСОР УЙДЕТ ПО АНГЛИЦКИ, НЕ ПРОЩАЯСЬ.
2 - 1BH,51H РИСОВАНИЕ ТРЕХ ВИДОВ РАМОК:
1 - ОДИНАРНАЯ
2 - ДВОЙНАЯ
3 - "ОБ'ЕМНАЯ"
ДЛЯ ЭТОГО НУЖНО ПЕРЕДАТЬ:
1BH,51H,N,??,??,??,??,N
1BH - ВЫЗОВ ФУНКЦИИ
51H - ИМЯ ФУНКЦИИ
N - 1,2,3 ТИП РАМКИ
?? - РАЗМЕР ПО ГОРИЗОНТАЛИ В БАЙТАХ
?? - РАЗМЕР ПО ВЕРТИКАЛИ В ТОЧКАХ
?? - СТАРШИЙ БАЙТ АДРЕСА (ЛЕВЫЙ ВЕРХНИЙ УГОЛ)
?? - МЛАДШИЙ БАЙТ АДРЕСА
N - СМЕШЕНИЕ ВНУТРЕННЕЙ РАМКИ НА N ТОЧЕК (ТОЛЬКО ДЛЯ ТИПА N2,
ДЛЯ ТИПОВ 1 И 3 ЧИСЛО НЕ ИГРАЕТ РОЛИ, НО ДОЛЖНО БЫТЬ).
НАИБОЛЕЕ УДОБНО ИСПОЛЬЗОВАТЬ П/П 0F818H. ФУНКЦИЯ ИСПОЛЬЗУЕТ
РЕГИСТРЫ H: L: A: РЕГИСТРЫ B: C: D: E: СОХРАНЯЮТСЯ.
ИСПОЛЬЗОВАНИЕ П/П 0F809H ИЛИ П/П 0F80FH НЕ ВЫГОДНО!!!.
3 - 1BH,52H РИСОВАНИЕ ГОРИЗОНТАЛЬНОЙ ЛИНИИ:
ДЛЯ ЭТОГО НУЖНО ПЕРЕДАТЬ:
1BH,52H,N,N,??,??,??,N
1BH - ВЫЗОВ ФУНКЦИИ
52H - ИМЯ ФУНКЦИИ
N - ПЕРВЫЙ БАЙТ
N - ПОСЛЕДНИЙ БАЙТ
?? - РАЗМЕР В БАЙТАХ
?? - СТАРШИЙ БАЙТ АДРЕСА (ЛЕВЫЙ КРАЙ)
?? - МЛАДШИЙ БАЙТ АДРЕСА
N - КОНСТАНТА
НАИБОЛЕЕ УДОБНО ИСПОЛЬЗОВАТЬ В П/П 0F818H. ФУНКЦИЯ ИСПОЛЬЗУЕТ
РЕГИСТРЫ H: L: A: РЕГИСТРЫ B: C: D: E: СОХРАНЯЮТСЯ.
ПЕРВЫЕ ДВА ПАРАМЕТРА ВВЕДЕНЫ ДЛЯ РАСШИРЕНИЯ ВОЗМОЖНОСТЕЙ
ФУНКЦИИ. ФУНКЦИЯ УЧИТЫВАЕТ СОДЕРЖИМОЕ БАЙТА (ORA M) ПО ТЕКУЩЕМУ
АДРЕСУ, ПОЭТОМУ СТИРАТЬ ЭТА ФУНКЦИЯ НЕ МОЖЕТ.
4 - 1BH,53H РИСОВАНИЕ ВЕРТИКАЛЬНОЙ ЛИНИИ:
ДЛЯ ЭТОГО НУЖНО ПЕРЕДАТЬ:
1BH,52H,N,N,??,??,??,N
1BH - ВЫЗОВ ФУНКЦИИ
52H - ИМЯ ФУНКЦИИ
N - ПЕРВЫЙ БАЙТ
N - ПОСЛЕДНИЙ БАЙТ
?? - РАЗМЕР В ТОЧКАХ
?? - СТАРШИЙ БАЙТ АДРЕСА (ВЕРХНИЙ КРАЙ)
?? - МЛАДШИЙ БАЙТ АДРЕСА
N - КОНСТАНТА
НАИБОЛЕЕ УДОБНО ИСПОЛЬЗОВАТЬ П/П 0F818H. ФУНКЦИЯ ИСПОЛЬЗУЕТ
РЕГИСТРЫ H: L: A: РЕГИСТРЫ B: C: D: E: СОХРАНЯЮТСЯ.
ПЕРВЫЕ ДВА ПАРАМЕТРА ВВЕДЕНЫ ДЛЯ РАСШИРЕНИЯ ВОЗМОЖНОСТЕЙ
ФУНКЦИИ. ФУНКЦИЯ УЧИТЫВАЕТ СОДЕРЖИМОЕ БАЙТА (ORA M) ПО ТЕКУЩЕМУ
АДРЕСУ, ПОЭТОМУ СТИРАТЬ ЭТА ФУНКЦИЯ НЕ МОЖЕТ.
ИСПОЛЬЗОВАНИЕ РАМКИ ТИП 3 БЕЗ ЦВЕТА НЕ ДАЕТ ХОРОШИХ РЕЗУЛЬТАТОВ
ВОЗМОЖНЫЕ ВАРИАНТЫ РАМОК НАХОДЯТСЯ В ФАЙЛЕ MON4.PC ФАЙЛ
УПАКОВАН В ФОРМАТЕ PENX$. ЭТО СДЕЛАНО ДЛЯ ТОГО, ЧТОБЫ ВЫ СМОГЛИ
ПОСМОТРЕТЬ СТАРЫМ МОНИТОРОМ. ТО ЧТО ВЫ УВИДЕЛИ, ПРОСТО МАЛЕНЬКАЯ
ДЕМОНСТРАЦИЯ ВОЗМОЖНОСТЕЙ ДВУХ НОВЫХ ФУНКЦИЙ. ИНВЕРСИЯ ЭКРАНА
ДАНА СПЕЦИАЛЬНО ДЛЯ НАГЛЯДНОСТИ. ФУНКЦИИ 1BH,52H И 1BH,53H
В ПОСТРОЕНИИ РИСУНКОВ НЕ УЧАСТВОВАЛИ.
ИЗ М4 ИЗЪЯТЫ СЛЕДУЮЩИЕ ФУНКЦИИ:
1BH+41H - СМЕСТИТЬ КУРСОР НА ОДНУ ПОЗИЦИЮ ВВЕРХ (19H)
1BH+42H - СМЕСТИТЬ КУРСОР НА ОДНУ ПОЗИЦИЮ ВНИЗ (1AH)
1BH+43H - СМЕСТИТЬ КУРСОР НА ОДНУ ПОЗИЦИЮ ВПРАВО (18H)
1BH+44H - СМЕСТИТЬ КУРСОР НА ОДНУ ПОЗИЦИЮ ВЛЕВО (08H)
1BH+45H - СТИРАНИЕ ЭКРАНА (1FH)
1BH+48H - УСТАНОВИТЬ КУРСОР В ЛЕВЫЙ ВЕРХНИЙ УГОЛ (0CH)
ДЛЯ ВЫПОЛНЕНИЯ ЭТИХ ФУНКЦИЙ ТРЕБУЕТСЯ ДВА БАЙТА, ХОТЯ САМ
ДРАЙВЕР ПОНИМАЕТ ОДНОБАЙТОВЫЕ УПРАВЛЯЮЩИЕ КОДЫ. ИЗ ЭТОГО
СЛЕДУЕТ ЗАКОНОМЕРНЫЙ ВОПРОС, А ЗАЧЕМ ЭТИ ФУНКЦИИ ?.
END