📂 Документ: orion128-soft-ordos-vbox_clean.html


 

VBOX Драйвер оконного интерфейса Ориона -128, работа в OR DOS, Сугоняко, Пушков

Описано в журнале Радио №5 - 1996 г

На 10.07.2021 последней версией OR DOS является релиз 4.03 от 1993г , прошивки ниже ORDOC написана написана Сафроновым и Сугоняко и остается до настоящего времени, описание будет позже. Все журналы "Радио"  с упоминанием Ориона

Драйвер ищется на диске В, потом на диске А

Стандарты ПО, адресов и портов

VBOX V1 - оконный драйвер ORDOS V4.03 VBOX V1 - оконный драйвер ORDOS V4.03  VBOX V1 - оконный драйвер ORDOS V4.03 VBOX V1 - оконный драйвер ORDOS V4.03

Как оказалось классная вещь.

 СТАНДАРТНЫЙ ДРАЙВЕР ОКОННОГО ИНТЕРФЕЙСА VBOX V1.00

(C) ORIONSOFT, 1993 В.Сафронов, В.Пушков, Радио №5 - 1996 г

Драйвер VBOX - это небольшая оверлейная программа, которая загружается в область стандартного знакогенератора (0F000H), и после выполнения самоуничтожается, распаковывая его из ПЗУ.
VBOX формирует ("открывает") цветное окно с возможностью его последующего удаления с экрана ("закрытия"). Указанная возможность реализуется с помощью специально организованной стековой структуры скрытых оконных файлов. При открытии окна информация экрана (изображение и цвет) предварительно сохраняется на заданном диске под именем (%n) , где n - порядковый номер окна. При закрытии окна драйвер ищет на диске последний файл (с наибольшим номером) и считывает из него информацию на прежнее место экрана, после чего файл удаляется.
Драйвер допускает работу не только в 16-цветном режиме экрана, но и в монохромном, когда область цветовых атрибутов экрана занята файлами квазидиска B, ORDOS.

VBOX V1 - оконный драйвер ORDOS V4.03

Входные параметры:

HL - адрес левого верхнего угла открываемого окна;
BC - размеры открываемого окна: B - ширина, C - высота;
DE - цвета: D - тени (если задана), E - окна;
A - режим, определяемый комбинацией разрядов:

D7 - признак открытия окна:
1 - открыть окно;
0 - закрыть окно;

Для D7=1:
D6 - признак очистки изображения в окне:
1 - очистить окно;
0 - оставить прежнее изображение;

Для D7=1:
D5 - признак рамки:
1 - нарисовать одинарную рамку;
0 - без рамки;

D4 - признак тени (D7=1) или блокировки окна (D7=0):
Для D7=1:
1 - с тенью;
0 - без тени;
Для D7=0:
1 - восстановление окна блокируется;
0 - окно восстанавливается из файла;

D3 - признак сохранения (D7=1) или удаления (D7=0):
Для D7=1:
1 - перед открытием окна экран сохраняется;
0 - экран не сохраняется в файле;
Для D7=0:
1 - после закрытия окна файл удаляется;
0 - файл остается на диске;

D2 - признак самоуничтожения VBOX из памяти:
1 - уничтожить распаковкой знакогенератора;
0 - оставить в памяти;

D1 D0 - выбор квазидиска для оконных файлов:

0 0 - выбирается текущий квазидиск;
0 1 - квазидиск B;
1 0 - квазидиск C;
1 1 - квазидиск D.

Выходные параметры:

Для D7=1:
A = 00H, "z" - ошибок нет, окно открыто,
A = 01H, "nz" - ошибка параметров HL, BC (выход за пределы экрана),
A =0FFH, "nz" - диск, выбранный для сохранения "оконных" файлов, заполнен;
Признак "c" - разрешается 16-цветный режим, "nc" - только монохромный режим (включается автоматически, если граница файлов диска "B" больше 0BFFFH);

Для D7=0:
A = 00H, "z" - ошибок нет, окно закрыто, A =0FFH, "nz" - на выбранном диске "оконных" файлов нет;
Признак "c" - разрешается 16-цветный режим, "nc" - только монохромный режим (включается автоматически, если граница файлов диска "B" больше 0BFFFH).

Особенности использования

Все регистры, кроме (A), сохраняются.
Драйвер VBOX занимает адреса 0F000H..0F2FFH. Если задан признак его самоуничтожения, то дополнительно задействуется область 0F300H..0F307H под блок распаковки знакогенератора и возврата. Если VBOX остается в памяти, вывод символов на экран с использованием стандартного знакогенератора (0F000H) запрещен.
Для использования драйвера необходимо наличие файла VBOX на диске B или A. Вызов драйвера осуществляется после загрузки этого файла с передачей управления по адресу "посадки". Если VBOX не самоуничтожался, загрузку с диска можно не производить. При старте вызывающая программа должна удалить с выбранного диска все "оконные" файлы (это необходимо на тот случай, если они остались на диске после некорректного выхода из программы нажатием клавиши "Сброс"), для чего организуется циклический вызов VBOX в режиме закрытия окна до тех пор, пока он формирует признак "z", т.е. пока есть "оконные" файлы. При этом можно задать признак блокировки восстановления окон на экране, чтобы предотвратить вывод "мусора".
Сразу после закрытия всех окон необходимо проанализировать признак переноса, возвращаемый драйвером, и, если разрешен цветной режим ("c"), включить его, предварительно выполнив инициализацию цветовых атрибутов экрана. Дело в том, что если был установлен монохромный режим из-за "наползания" файлов диска B на цветовое ОЗУ (цвет экрана "поврежден"), то выключить монохромный режим можно только после того, как цвет будет восстановлен.

VBOX автоматически устанавливает монохромный режим, если область цвета недоступна (при этом внутри драйвера блокируется запись цветовых атрибутов на экран с установкой признака "nc"). Включение монохромного режима также должно производиться в вызывающей программе после записи любых файлов на диск B, если граница файлов превысила значение 0BFFFH.
Если предполагается работа только в цветном режиме, то перед обращением к VBOX программа должна ограничить размер диска B на уровне 0BFFFH, предварительно проверив, что файлы расположены ниже (в противном случае работа с цветом невозможна, и необходимо выйти в ORDOS, чтобы удалить ненужные файлы, как это делается, например, в BASIC "ORION").

26.11.93 Текст подготовил В.Пушков

 

Работа в CP/M-80 программы и железо

Подробнее будет на www.orion128.ru

 

Программы DS DOS

 

 

Полезные и интересные статьи

На предыдущую страницу  На главную страницу  На следующую страницу