══════════════════════════════════════════════════════════════ ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓ ▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓▓▓▓ ▓ ▓ ▓ ▓ ▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓ ▓ ▓▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓▓ ▓▓ ▓ ▓▓▓▓▓ ▓▓▓▓▓▓ ▓ ▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓ ▓▓▓▓▓▓ ▓▓▓▓▓ ══════════════════════════════════════════════════════════════ Tехническая документация. Операционная система для БК0011М. ══════════════════════════════════════════════════════════════ Компоновка, добавления и редактирование : DieMon Software Inc. ══════════════════════════════════════════════════════════════ ─────────────────── Расположение на диске ──────────────────── 0 блок - загрузчик системы 2-11 блоки - каталог устройства 12-.. блоки - блоки,отведенные под файлы ─────────────── Расположение записей о файлах ──────────────── первый блок в каталоге: W0............физический номер блока W2............общее число блоков на диске W4,W6.........123123 для CSIDOS-3 W10(123123)...принадлежность диска системе CSIDOS W12...........не используется (=0) B14-B777......записи о файлах остальные блоки каталога: W0............физический номер блока W2-W12........не используется (=0) B14-B777......записи о файлах ────────────────── Элемент записи о файле: ─────────────────── Элемент каталога содержит всю информацию о файле (директории), размер элемента каталога 24 байта: B0...........=1-310.номер директории =311...плохое место (ну очень плохое) =312...удаленная директория либо запись, не содержащая информацию: (удаляется после сквизирования) =376...дырка (от бублика) =377...удаленный файл, который можно восста- новить =0.....конец каталога B1<0 .........защита от удаления B2-B14........имя файла с расширением (без точки) B15...........статус файла: 7 бит- признак длины в блоках 3 бит- признак файла для БК0010 =1 - БК0011М; =0 - БК0010 остальные биты- копия регистра 177717 (страницы если кто-то забыл) W16...........начальный блок файла W20...........адрес загрузки W22...........длина файла ══════════════════════════════════════════════════════════════ Распредeление адресного пространства в системе "CSIDOS-3.20" ══════════════════════════════════════════════════════════════ Страницы 0,1,2,3,4 использюутся в различных программах по сво- ему усмотрению. Страница 5 является экраном. Страница 7 : Полностью вся система расположена в системной странице с номе- ром 7. Собственно CSIDOS расположена с 45000 до 50000, т.е. за- нимает 3000 байтов. С 54300 до 63000 расположена программа об- служивания оконного интерфейса и с адреса 63000 находится опе- рационная оболочка CC-SHELL. 40000-44777...системная область монитора БК0011М и "CSIDOS-3.20".Сюда лазить не рекомендуется. 45000-47777...ядро системы.Сюда лазить нельзя. 50000-54277...знакогенератор. Сюда вообще-то тоже нельзя. 54300-62777...TURBO VISION. И здесь копаться нельзя 63000-63777...главный блок оболочки "Х-SHELL". если его испортить, в оболочку больше не попадешь. 64000-77777...оболочка. Если испортить ее, то прекраща- ется выполнение командного файла, дочиты- вается кусок оболочки с системного диска, и запускается со старыми данными оболочка. страница 6 : 100000-111777...оболочка.Те же положения, что и для 64000-77777 в 7-й странице. 120000-127777...каталог левой панели 130000-137777...каталог правой панели Если сказать обобщенно,то: -если вы хотите быстро вернуться в оболочку, то можно исполь- зовать адреса 112000-137777 в 7-й странице -если вы используете адреса 64000-137777, то тоже можете вер- нуться в оболочку после ее автодозагрузки с системного диска -если вам не потребуется возвращаться в оболочку, то смело можете использовать адреса 63000-137777 -если вам не нужен TURBO VISION, то можно использовать адреса 50000-137777. -ну а если после загрузки программы,вам вообще ничего не пот- ребуется, то вам доступна вся память компьютера. Естественно, что все сказанное справедливо только для страниц 7 и 6. Другие страницы доступны полностью и по любым адресам, в любое время не зависимо от условий и погоды. И не следует держать подключенной страницу 7 или 6, лучше забудте что они вообще есть. Более того, их не надо подключать и для того, что- бы выполнить ЕМТ115 или ТRAP. Система позваляет хранить, запи- сывать и читать файлы длиной до 200000 байт, если длина файла задана в байтах, и хранить длиной до 32 мегабайт если длина задана в блоках (такие файлы можно читать и писать только по частям). Да и еще: в оболочку можно вернуться примерно так: RET -если стек еще в порядке, или так: HALT -если вектор 4 еще цел, а можно вот так: JMP @#200 -если там еще что-то есть, и даже так: MOV #54400,@#177716 JMP @#63000 -если хоть там что-нибудь осталось. ─────────── Адреса, содержащие некоторые точки входа ───────── JMP @63120 - вход в оболочку без переоткрывания панелей (пример: запуск программы "graber4.exe") Но надо быть уверенным, что страницы 5,6,7 не бы- ли существенно изменены. (поэкспериментируйте) JMP @63136 - вход в оболочку с переоткрыванием панелей, но без перечитывания каталогов панелей. (пример: возврат из "csiview.exe") Существуют и другие точки входа, но они мало инте- ресны для широкого применения и потому здесь не рассматриваются ══════════════════════════════════════════════════════════════ При запуске файла из оболочки устанавливаются текущими те директория и привод, которые: -были на текущей панели (на которой стоял файловый курсор) -были установлены последней командой CD, если файл запус- кался из командного файла ══════════════════════════════════════════════════════════════ ══════ Системные ячейки, используемые ядром CSIDOS 3.20 ══════ 40520-41520...область для чтения одного блока каталога B41521.....=10 статус БК0010, =0 статус БК0011М (действителен при записи файла на диск) B41522.....номер привода B41523.....номер директории W41524.....адрес записи о файле в блоке каталога W41532.....номер блока для каталога W41534.....начальный блок свободной области 42602.....54 байта.Копия магнитофонного блока параметров W42666.....страницы 0 и 1 (слово для записи в 177716) 43552-43640...блок параметров дисковода 44000-44377...служебные ячейки CSIDOS B47774.....номер системного привода B47775.....если не равен 0 то после операции двигатель дисковода забывает выключаться. @::От меня лично: ( DieMon Soft. Inc.) 56120 =200 Длина звука нажатой кл-ши (R1) CSI. 56124 =4 Тон звука (R0) ( CALL @#143654 ) 56140 .... П/п вывода курсора мыши. =207 - Курсор не выво- дится. Перед записью #207, сохранить содержимое этой ячейки. 56502 .... Код символа по TRAP. Обнулять, чтобы не было "за- цикливания" по выходу из п/п. ══════════════════════════════════════════════════════════════ ВСЕ АДРЕСА ДЕЙСТВИТЕЛЬНЫ ПРИ ПОДКЛЮЧЕННОЙ 7-Й СТРАНИЦЕ В НУЛЕВОЕ ОКНО. ══════════════════════════════════════════════════════════════ ────────── Системные ячйки используемые "X-SHELL" : ────────── W63002 .. номер панели (0 или 2) ! W63004 .. номер версии (3020) ?*W63006 .. тип панели: 0-FULL, 20-BRIEF, 177776-TREE, 177777-INFO !*W63012 .. адрес каталога *W63016 .. адрес файла на который указывает файловый курсор *B63036 .. номер привода *B63037 .. номер директории !*W63042 .. емкость устройства в блоках *W63046 .. количество занятых блоков *W63062 .. количество блоков в выделеных файлах *W63066 .. количество выделенных файлов !*W63076 .. адрес курсора на экране !*W63102 .. адрес панели на экране !*W63106 .. адрес поля на экране для каталога ! W63074 .. адрес начала bat-файла в памяти W63112 .. адрес имени файла на который указавает курсор (не зависит от номера панели) ! B63114 .. номер системного привода W63116 .. адрес программы для чтения каталога чужих систем (используется программой "graber4.exe") Если содержимое равно 0 то программа отсутствует. Эта программа должна находится в 4-й странице с адреса 135000 и иметь первое слово 123123, затем коды программы. @::От меня лично: ( DieMon Soft. Inc.) 61404 =11 Высота символов по TRAP. Условные обозначения: !....содержимое этой ячейки менять нельзя! W,B..размер ячейки: слово или байт. *....доступ к этой ячейке имеет примерно такой вид: MOV @#63002,R0 ;загрузить номер панели в R0 MOV 63012(R0),R1 ;загрузить адрес каталога текущей ;панели в R1 то есть в адресе 63012 лежит адрес каталога для панели 0 (ле- вой), а в адресе на 2 больше адрес каталога для панели 2 (правой). ────────────────── Работа с накопителем ( ями ) ────────────── Обращение к системе происходит через магнитофонный блок пара- метров, состоящий из 54 байт. Адрес блока помещается в R0 и подается команда EMT 115. В нулевом байте блока помещается ко- манда системе.При записи и переименовании файла система смотрит первый байт: если он содержит 0 или 1, то если находится файл с таким же именем на диске, то он удаляется, если первый байт содержит код 2, то при обнаружении файла с таким же именем вы- дается ошибка (код 20). Перед работой с диском, если нет уве- ренности что система проинициализирована, то нужно сделать это в программе (если это не покажется трудным): MOV #54400,@#177716 ;инициализация с сохране- CALL @#45010 ;нием ранее установленного ;привода. или MOV #54400,@#177716 ;инициализация с установкой MOV #DRIVE,R0 ;нового привода DRIVE CALL @#45000 ; ──────────────────── Блок параметров чт/зап. ───────────────── 0 (2)... команда системе 2 (2)... адрес 4 (2)... длина (при записи) 6 (20).. имя файла (трансформируется в формат CSIDOS) 26(1),27(1).. страницы 0 и 1 соответственно (отрицательное значение - подключение текущих страниц,взятых из ячейки 114) Блок ответа 30 (2)... адрес загрузки прочитанного файла 32 (2)... длина прочитанного файла 34 (20).. имя прочитанного файла ─────────────────── Команды системы ( чт/зап ) ─────────────── Данные команды записываются в первый байт блока параметров: 0...запись файла на диск (или спасти его, как у англичан) 200...резервирование блоков. Если 52(R0)=0, то запись о файле в каталог не заносится. Выход: R3-номер первого блока, следующего за прочитаным. 1...чтение файла 201...чтение метки файла из каталога в 30(R0). 2...поиск файла. В адресе 41524 наход. адрес записи о файле 3...RENAME. 6(R0)- новое имя, 34(R0)- имя из каталога 4...чтение файла.Выход: R3-номер блока следующего за прочит. 5...выключение двигателя (если еще не выкрутился) 6...удаление файла (не печальтесь его еще может быть и можно востановить в программе "cds2.exe") 7...запись файла: 2(R0)...адрес файла в памяти 4(R0)...длина файла в байтах 26(R0)..окна 30(R0)..адрес для каталога 32(R0)..окна для каталога 207...то же что и команда 7 но длина в блоках 10...не используется (выключение двигателя, для настырных) 11...чтение файла без номера директории. Выход: R3-номер блока 211...то же что и 201 но без номера директории 12...удаление директории (вот ее вы уже не востановите) 13...создание директории (если такой нет) и вход в нее 14...операции с установкой пути: 54(R0)- начало описания пути (106 байт максимум) далее байт 0 и код любой и перечис- ленных команд.После выполнения команды возвращается ста- рый драйвер и директория (возвращение блудного сына) Если код команды 177,то после поиска пути устанавлива- ется новая директория и драйвер, описанные в пути. 15...трансформация имени файла. Вход: 6(R0)- имя для транс- формации.Выход: 34(R0)- странсформированное (уф-ф!) имя. 16...чтение по номеру блока 2(R0)- адрес для массива 4(R0)- длина массива 6(R0)- номер блока на диске 17...запись по номеру блока (см. ком. 16) 20...установка привода. 2(R0)- номер привода. 21...чтение файла. ответ в блок параметров не передается. (для наиболее привередливых программ) В командах,если файл вылезает за пределы страницы, подключен- ной в верхнее окно, адрес файла должен быть кратен 1000, тогда система подключает две страницы, следующие по порядку от стра- ницы в верхнем окне, и продолжает операцию. Следует заметить что система подключит новые страницы лишь в том случае, когда номера страниц заданы явно. например: 1,2 - страницы заданы явно: 1 страница в нижнее окно, 2 страница в верхнее окно, 0,0 - заданы неявно: страницы берутся из ката- лога. (справедливо только при чтении) 177,2 - одна из страниц задана не явно: 177- это код страницы 7 377,3 - одна из страниц задана не явно: 377- это означает, что в данном окне остается ранее подключенная страница. В байтах 26 и 27 магнитофонного блока пареметров хранятся стра- ницы для работы с диском. Если они равны 0,0 при чтени, берут- ся номера страниц из каталога, при другой операции это страни- цы 0,0. Tак как страницы подключаются через монитор БК0011М, то ошибку отловить невозможно (при неправильных номерах страниц операция прекращается, устанавливается бит C- ошибка, а вот код ошибки может быть любым("ку" как,говорится в одном из филь- мов :) так что за кодами страниц следите сами. Если в данной операции страницы безразличны, то можно просто очищать ячейку 26(R0). ════════ Ошибки, выдаваемые системой в адресе 52(R0) ═════════ при oшибке после EMT 115 устанавливается бит C 1-13.....стандартные ошибки КНГМД 14.....не используется в данной версии 15.....нет места на диске или в каталоге 16.....диск не в формате "CSIDOS" 17.....файл или директория не найдены 20.....файл уже есть ══════════════════════════════════════════════════════════════ ┌══════════════════════════════════════════════════┐ │ ■■■■■■┐ ■■┐ ■■┐ ■■■■■■┐ ■■■■■■┐ ■■■■■┐ ├┐ │ └─■■┌─┘ ■■│ ■■│ ■■┌──■■┐ ■■┌──■■┐ ■■┌──■■┐ ││ │ ■■│ ■■│ ■■│ ■■│ ■■│ ■■■■■■┌┘ ■■│ ■■│ ││ │ ■■│ ■■│ ■■│ ■■■■■■┌┘ ■■┌──■■┐ ■■│ ■■│ ││ │ ■■│ └■■■■■┌┘ ■■┌──■■┐ ■■■■■■┌┘ └■■■■■┌┘ ││ │ └─┘ └────┘ └─┘ └─┘ └─────┘ └────┘ ││ │ ■■┐ ■■┐ ■■┐ ■■■■■■┐ ■■┐ ■■■■■┐ ■■┐ ■■┐ ││ │ ■■│ ■■│ ■■│ ■■┌────┘ ■■│ ■■┌──■■┐ ■■■┐ ■■│ ││ │ ■■│ ■■│ ■■│ └■■■■■┐ ■■│ ■■│ ■■│ ■■┌■┐■■│ ││ │ └■■┐■■┌┘ ■■│ └───■■┐ ■■│ ■■│ ■■│ ■■│└■■■│ ││ │ └■■■┌┘ ■■│ ■■■■■■┌┘ ■■│ └■■■■■┌┘ ■■│ └■■│ ││ │ └──┘ └─┘ └─────┘ └─┘ └────┘ └─┘ └─┘ ││ └╤══════════════[(C)1994 CAROLINE─SOFTWARE─INC.]═══┘│ └══════════════════════════════════════════════════┘ ══════════════════════════════════════════════════════════════ В последнее время появилось много систем использующих окна, но все они имеют как отдельные так и общие большие недостатки: почти все они исключают работу в цветном режиме, нелепая имит ация теней (я в жизни не видел белых теней), придающая довольно глупый вид программе, недопустимо медленный вывод окна. Практически все системы с окнами являются неотъемлемой частью программы с которой они работают, они закрыты от внешнего мира. Система "TURBO VISION" свободна от этих недостатков и облада- ет рядом приемуществ : - система полностью самостоятельна. К ней можно обращаться из любой программы, находящейся в любой странице по любым адре- сам; - она не занимает рабочей памяти; - поддерживает режим 128/256 Кбайт при расширении памяти; - работает в режиме 64 символа в строке; - текст читабелен на ЦТВ и ЧБ мониторах; - многоуровневый режим вывода окон; - поддерживает мышь (без контроллера),что дает возможность соз- давать программы не требующие клавиатурного вмешательства; ══════════════════════════════════════════════════════════════ Система находится в 7 странице по адресам 54300-62776 ──────────── Описание команд "TURBO VISION v3.0" ───────────── Данная система является монитором для CSIDOS-3nn Все обращения к данной системе осуществляются через каманду TRAP #X. Система находится в системной странице, а обращаться можно из любой страницы, лишь копия системного регистра должна находить- ся по адресу @#114 В качестве экрана система использует 5 страницу. Примеры приведены в мнемонике ассемблера MICRO-11D. Стек пользователя должен находиться ниже адреса 40000. ══════════════════════════════════════════════════════════════ ВНИМАНИЕ ! С целью уменьшения программы TURBO VISION, ошибки не проверя- ются, поэтому, воизбежании зависаний и глюков, а так-же других, негативных и побочных явлений, не следует вводить данные, выхо- дящие за диапазон допустимых в данной команде !!! ══════════════════════════════════════════════════════════════ Инициализация системы: MOV #54400,@#177716 CALL @#45010 CALL @#54300 или МOV #54400,@#177716 MOV #DRIVE,R0; номер привода для CSIDOS CALL @#45000 CALL @#54300 После этого все обращения через TRAP будут перехватываться "TURBO VISION", а ЕМТ 115 будет работать с диском #DRIVE. ══════════════════════════════════════════════════════════════ -TRAP 0 - передает управление программе, находящейся по адресу 63000 в системной странице (CCSHELL). ══════════════════════════════════════════════════════════════ -TRAP 2,3 - устанавливает страницу и адрес буфера под со- хранение места, на которое будет выводиться окно. МОV #ADDRES,R0 или : TRAP 3 TRAP 2 .#ADDRESS .#PAGE .#PAGE .#ADDRES - адрес буфера (100000 и выше) .#PAGE - страница под буфер (0,1,2,3,4,6) ══════════════════════════════════════════════════════════════ -TRAP 4,5 - опрос клавиатуры. В R0 возвращается код сим- вола или адрес мыши, а также устанавливаются биты СП. МОV #SUBR,R0 или : ТRАP 5 TRAP 4 .@SUBR SUBR - адрес подпрограммы, которая выполняется, если не нажата никакая клавиша. Если адрес меньше 2, то п/п не выполняется. Если четный - кур- сор не выводится, если нечетный - выводится моргающий курсор. Биты СП, устанавлевымые при выходе: Z-нажата клавиша "КТ" (в R0 кoд 3) N-нажата клавиша в регистре "АР2" V-нажата правая кнопка мыши (В R0 адрес мыши) C-нажата левая кнопка мыши (В R0 адрес мыши) ══════════════════════════════════════════════════════════════ -ТRAP 6,7 - вывод символа в открытое окно. МОV #SYMBOL,R0 или TRAP 7 TRAP 6 .#SYMBOL Управляющие коды: .B:2 - очистка окна,начиная с текущей строки и до кон- ца .B:10 - курсор влево ; .B:12 - ПС+ВК ; .B:14 - очистка всего окна ; .B:31 - курсор вправо ; .B:32 - курсор вверх ; .B:33 - курсор вниз ; .B:40 и выше - печатаемые символы ══════════════════════════════════════════════════════════════ -TRAP 10,11 - ввод или редактирование строки. Выводится ин- версная строка для редактирования. Если пер- вая нажатая кл-ша "управляющая", то строка с- брасывается. После этого происходит ее редак- тирование. Выходные данные как у TRAP 4,5. MOV #STROKA,R0 или TRAP 11 TRAP 10 .@STROKA STROKA: .B:34 .A:привет от CAROLINE SOFTWARE. .B:0 Первый байт строки не выводится и показывает, максимально возможное кол-во символов. После редактирования, незначащие пробелы заполняют- ся нулями. ══════════════════════════════════════════════════════════════ -TRAP 12,13 - вывод строки символов. Управляющие коды: .B:1 .A:вывод строки по середине строки окна .B:0 ; .B:3 .A:вывод заголовка в открытое окно .B:0 ; .В:16 .В:20 .В:10 .В:201 .В:210 .В:0 ;разметка окна ли- ниями по горизонтали; .В:17 .В:ХCUR .B:YCUR; установка новых координат курсо- ра; .В:20+COL; установка цвета фона (0,1,2,3) ; .В:24+COL; установка цвета символов (0,1,2,3) ; MOV #STROKA,R0 или TRAP 13 TRAP 12 .@STROKA STROKA: .B:23 .B:25 .B:1 .A:сброс .B:0 .B:12 .A:перевод .В:0 ══════════════════════════════════════════════════════════════ -ТRAP 14,15 - установка координат курсора в окне. MOV (PC)+,R0 или TRAP 15 .B:XCUR .B:YCUR .B:XCUR .B:YCUR TRAP 14 ══════════════════════════════════════════════════════════════ -TRAP 16,17 - установка аттрибутов. MOV #SYMB*4+FON,R0 или TRAP 13 TRAP 12 .#SYMB*4+FON ══════════════════════════════════════════════════════════════ -TRAP 20 - закрытие последнего открытого окна, и восста- новление состояния предыдущего окна (коорди- наты, цвет фона, символов ) либо экрана. Только в том случае, когда окно открывалось с включенным битом 15 ( см. TRAP 22,23 ) ══════════════════════════════════════════════════════════════ -TRAP 22,23 - открытие нового окна. MOV #ADRSCR,R0 или TRAP 23 TRAP 22 .#ADRSCR .@WINDOW .@WINDOW WINDOW: .#REGIM .B:XLEN .B:YLEN ADRSCR - адрес вывода окна (100000 и выше). Он дожен быть четным XLEN - ширина окна в байтах ( четное число ) YLEN - высота окна в символьных строках REGIM - ячейка режимов: бит 15 =1 - запомнить место под окном (это окно можно закрыть) =0 - не запоминать - / - (это окно нельзя закрыть) бит 14 =1 - окно с тенью =0 - окно БЕЗ тени бит 13 =1 - вывести текст в окне =0 - нет - / - бит 12 =1 - вывести бары код: цвет: =0 - нет - / - бит 5 =1 - тень вся черная 00 - черный =0 - тень прозрачная 01 - синий биты 2,3 - цвет символов 10 - зеленый биты 0,1 - цвет фона 11 - красный Если установлен 13 бит то после YLEN ставится .@ADRTEXT ( Формат, как в TRAP 12,13 ) Если установлен бит 12 то дописывается база данных для баров. ( Формат такой же, как и у TRAP 34,35 ). После открытия окна, вся информация выводится только в это ок- но, все скроллинги будут затрагивать только это окно,координаты курсора будут отсчитываться от левого верхнего угла этого окна. ══════════════════════════════════════════════════════════════ -TRAP 24,25 - переназначение рабочего пространства на экра- не, минуя закрытие/открытие окон. MOV #ADRSCR,R0 или TRAP 25 TRAP 24 .#ADRSCR .B:XLEN .B:YLEN .B:XLEN .B:YLEN ADRSCR - aдрес на экране (100000 и выше). Должен быть нечетным XLEN - ширина пространства в байтах ( четное ). YLEN - высота пространства в символьных строках. ══════════════════════════════════════════════════════════════ - ТRAP 26,30 - чтение адреса курсора и координат курсора со- ответственно, которые помещаются в R0. ══════════════════════════════════════════════════════════════ - TRAP 34,35 - вывод баров. MOV #ADRBAR,R0 или TRAP 35 TRAP 34 .@ADRBAR ADRBAR: .B:B1X .B:B1Y .B:B2X .B:B2Y ... .B:ATTR .B:377 .@SUBR1 .@SUBR2 ... .A:BAR1 .B:0 .A:BAR2 ... ...... ... ...... .B:0 .B:0 B1X,B1Y,B2X,B2Y,... - описание позиций (координат) ба- ров в окне ( на экране ) в симв. значениях ATTR - фон и цвет бара когда он выбран. Если установлен бит 7 то при выборе баров блокируются клавиши "стрелка ВЛЕВО", "стрелка ВПРАВО" (организуется режим-PULLDOWN) SUBR1,SUBR2, - подпрограммы которые выполненяются в зависимости от выбранного бара. Если при завершении подпрограммы установлен бит "С",то происходит отказ от дальнейшего выбора баров. BAR1,BAR2,....- надписи баров. Бар выбирается стрелками и мышью, активизируется клавишей ВВОД или левой кнопкой мыши, отказ от баров производится клавишей "КТ" или правой кнопкой мыши. ══════════════════════════════════════════════════════════════ -ТРАP 36,37 - вывод строки символов на экран по адресу. MOV #ADRSCR,R0 или TRAP 37 TRAP 36 .#ADRSCR .@STRING .@STRING .#ADRSCR - адрес экрана от 100000. STRING: .A:Строка как в TRAP 12,13 .B:0 В строке можно установить цвет фона и символов также, как в TRAP 12,13. ══════════════════════════════════════════════════════════════ -TRAP 40,41 - аналогично TRAP 4,5, но задержки при автопов- торе не происходит... ══════════════════════════════════════════════════════════════ (С) 1994 А.МЕЛЬНИКОВ CAROLINE SOFTWARE INC. г.САМАРА (C) 1995 A.V.M. Caroline Sofware Inc. Samara-city, Russia. Я думаю вы простите мои дурацкие вставки-шутки, но поверьте, что писать документацию такая скукотища. Алексей Мельников ══════════════════════════════════════════════════════════════ Отредактировано и "скомкано" из двух-трех разных файлов : 10.09.2000 (C) DieMon Software Inc. Samara City. (PFPI/FDN GC) ══════════════════════════════════════════════════════════════