Uknc RAM description
Оригинальный документ RAM.LST составлен Alex_K (Alexey Kisly).
Contents
- 1 ОБЛАСТЬ ВЕКТОРОВ ПРЕРЫВАНИЙ И СТЕК (0-1777)
- 2 БУФЕРА (2000-2267)
- 3 СПИСКИ ВИДЕОСТРОК (2270-7037)
- 4 ЯЧЕЙКИ ОБЩЕГО НАЗНАЧЕНИЯ (7040-7055)
- 5 ВЫЗОВЫ СИСТЕМНЫХ ПОДПРОГРАММ В ДИСПЕТЧЕРЕ ПРОЦЕССОВ (7056-7127)
- 6 ЯЧЕЙКИ ОБЩЕГО НАЗНАЧЕНИЯ (7130-7151)
- 7 РЕЖИМЫ МЕНЮ УСТАНОВКА И ЗАГРУЗКА (7152-7175)
- 8 ЯЧЕЙКИ ДРАЙВЕРА КЛАВИАТУРЫ (7176-13141)
- 9 ЯЧЕЙКИ ДРАЙВЕРА ТЕКСТОВОГО ТЕРМИНАЛА
ОБЛАСТЬ ВЕКТОРОВ ПРЕРЫВАНИЙ И СТЕК (0-1777)
1. Вектора прерывания (0-377)
0 207 команда RETURN 4,6 160200,600 вектор прерывания по обработке ошибки канала 10,12 160210,600 вектор прерывания по обработке резервной команды 24,26 160220,600 вектор прерывания по обработке аварии сетевого питания 30,32 174270,0 вектор прерывания по обработке команды EMT 34,36 174334,200 вектор прерывания по обработке команды TRAP 100,102 174612,200 сетевой таймер 300,302 175412,200 клавиатура 304,306 174612,200 программируемый таймер 314,316 176130,200 сигнал RESET на магистрали ЦП 320,322 175700,200 канал 0, приемник 324,326 175540,200 канал 0, источник 330 177066 канал 1, приемник 340,342 175762,200 канал 2, приемник 270,272 0,2270 адрес первой видеостроки
2. 414-447 -- стек пультового отладчика
3. ОЗУ пультового отладчика (450-567)
Адрес Смещение Комментарии 450 0 Значение R0 452 2 ----/--- R1 454 4 ----/--- R2 456 6 ----/--- R3 460 10 ----/--- R4 462 12 ----/--- R5 464 14 ----/--- SP 466 16 ----/--- PC 470 20 ----/--- PS 472 22 Адрес открытой ячейки 474 24 Содержимое открытой ячейки 476 26 Указатель на область со смещением 70-117 500 30 Адрес выводимой надписи (СТОП, ЗАВИСАНИЕ и т.д.) 502 32 Byte Значение 'R или 'A (вывод регистров или точек останова) 503 33 Byte Значение 10(8) или 4(8)(число регистров или точек останова) 504 34 Разрешение(0)/запрет(2) вывода надписей (СТОП, ЗАВИСАНИЕ) 506 36 Выход в меню загрузки(0)/в монитор(2) (для ЦП) 510 40 Просмотр памяти ПП(0)/ЦП(4) (для ПП) 512 42 Ключ 125252 (производить или не производить тест памяти) 514 44 Ключ продолжения выполнения (для ЦП) 520 50 Адрес 0-точки останова 522 52 Адрес 1-точки останова 524 54 Адрес 2-точки останова 526 56 Адрес 3-точки останова 530 60 Значение 0-точки останова 532 62 Значение 1-точки останова 534 64 Значение 2-точки останова 536 66 Значение 3-точки останова 540-567 70-117 Буфер для сохранения адресов при открытии ячеек с помощью НР+стрелки
БУФЕРА (2000-2267)
2000-2177 (200) - буфер для хранения символов, подлежащих выводу на экран (передаются от ЦП по каналу 0 или от ПП по запросам EMT 42, EMT 44, EMT 46). Обрабатывается драйвером текстового терминала. 2200-2237 (40) - буфер для хранения одиночных ASCII-кодов и адресов на строки символов, формируемых драйвером клавиатуры (передаются ЦП по каналу 0 или программам ПП по запросам EMT 22 и EMT 24). Направление передачи зависит от содержимого ячейки 7042. Элемент буфера занимает одно слово, если старший байт равен нулю, то в младшем содержится код клавиши в КОИ-8, в противоположном случае элемент содержит адрес строки символов, конец строки - байт с кодом 0. 2240-2257 (20) - буфер для хранения скэн-кодов клавиш, на которые назначен автоповтор (буфер автоповтора). Формируется драйвером клавиатуры. 2260-2267 (10) - буфер для хранения скэн-кодов нажатия и отжатия клавиш. Заполняется подпрограммой обслуживания прерывания клавиатуры.
СПИСКИ ВИДЕОСТРОК (2270-7037)
Список видеострок начинается с ячейки 270
270,272 0,2270 - 1-я неотображаемая видеострока Ячейки с 2270 по 2362 содержат следующую информацию: n,n+2 0,n+4 - 15 неотображаемых видеострок (со 2-й по 16-ю) 2364,2366 0,2372 - 17-я неотображаемая видеострока, следующий элемент является регистром управления отображением 2370,2372 - регистр управления отображением для верхней информационной строки 2374,2376 - 0,2406 - 18-я неотображаемая видеострока, следующий элемент является регистром управления цветом 2400,2402 - регистр управления цветом для верхней информационной строки 2404,2406 - 0,2410 - 19-я неотображаемая видеострока 2410-2456 - список 10 видеострок для верхней информационной строки Адрес начала видеопамяти - 175700 (длина видеостроки - 50(8)) 2460,2462 - регистр управления отображением для экрана пользователя 2464,2466 - 11 видеострока верхней информационной строки. Адрес начала видеопамяти - 176520 (длина видеостроки - 120(8)) 2470,2472 - регистр управления цветом для экрана пользователя 2474,2476 - разделительная видеострока между верхней информационной строкой и экраном пользователя/установки. Адрес начала видеопамяти - 177460 (длина видеостроки - 120(8)) 2500-4666 - список 286 видеострок экрана пользователя Адрес начала видеопамяти 100000 (длина видеостроки - 120(8)) 4670,4672 - регистр управления отображением для экрана установки 4674,4676 - 1-я видеострока верней части экрана установки. Адрес начала видеопамяти - 177460 (длина видеостроки - 50(8)) 4700,4702 - регистр управления цветом для экрана установки 4704-5026 - список 21 видеостроки верхней части экрана установки. Для всех этих видеострок начало видеопамяти - 177460, а длина видеостроки - 50(8) 5030-6606 - список 220 видеострок для области отображения меню УСТАНОВКА Адрес начала видеопамяти - 154540 (длина видеостроки - 50(8)) 6610-6736 - список 22 видеострок нижней части экрана установки Для всех этих видеострок начало видеопамяти - 177460, а длина видеостроки - 50(8) 6740,6742 - регистр управления отображением для нижней информационной строки 6744,6746 - разделительная видеострока между экраном пользователя/установки и нижней информационной строкой. Для этой видеостроки адрес начала видеопамяти - 177460, длина - 50(8). 6750,6752 - регистр управления цветом для нижней информационной строки 6754-7026 - список 11 видеострок для нижней информационной строки Адрес начала видеопамяти - 176570 (длина видеостроки - 50(8)) 7030 177460 \ 7032 7034 | 7034 177460 | Завершающий цикл 7036 7034 /
ЯЧЕЙКИ ОБЩЕГО НАЗНАЧЕНИЯ (7040-7055)
7040 - сохраняется значение SP при проверке присутствия контроллера дисковода 7042 - передача ASCII-кодов клавиатуры ЦП по каналу 0 (значение 2) или прог- рамме ПП по запросам EMT 22 или EMT 24 (значение 0) 7044 - разрешение обращения к программе управления дисковым накопителем. Положительное значение разрешает обращение. При отрицательном значении происходит обращение к программе управления кассетами ПЗУ. 7046 - длительность звукового сигнала в тиках сетевого таймера. Сначала необходимо включить звуковой сигнал, установив соответствующие биты в регистре системного управления. Потом в ячейке 7046 установить длительность сигнала. Через этот промежуток времени подпрограмма обработки прерываний сетевого таймера отключит звуковой сигнал. BIS #600,@#177716 ; Включить сигнал MOV #20,@#7046 ; Установить длительность
ВЫЗОВЫ СИСТЕМНЫХ ПОДПРОГРАММ В ДИСПЕТЧЕРЕ ПРОЦЕССОВ (7056-7127)
В цикле вызываются 10 системных подпрограмм (в скобках указана точка входа):
- Драйвер клавиатуры (104306)
- Драйвер канала 2 (125030)
- Драйвер текстового терминала (111144)
- Обслуживание переключения курсора (176056)
- Обслуживание меню УСТАНОВКА (100040)
- Обслуживание меню ЗАГРУЗКА (100742)
- Драйвер принтера (176076)
- Вызов п/п пользователя (176116)
- Запуск теста (176460)
- Фиктивная п/п (174222)
Фиктивная п/п служит для передачи управления на начало цикла.
Поиск осуществляется с ячейки A=7060. Нулевое значение означает ее пропуск и просмотр следующей (диапазон 7060-7102). Ненулевое значение - вызов соот- ветствующей системной п/п. Значение A+2 заносится в ячейку 7056, а адрес запуска берется из ячеек 7104-7126. Если данная ячейка содержит нуль, то производиться вызов п/п командой CALL по адресу пуска. Ненулевое значение - осуществляется переход командой JMP на адрес по значению ячейки, ячейка очищается.
Ячейки из диапазона 7060-7102 используются как индикаторы вызова, а для 1-й и 3-й п/п также как счетчики числа принятых скэн-кодов и символов по каналу 0/запросам EMT 42/44/46 соответственно.
ЯЧЕЙКИ ОБЩЕГО НАЗНАЧЕНИЯ (7130-7151)
7130 - длительность вращения двигателя дисковода после прекращения выполнения операции. Задается в тиках сетевого таймера и устанавливается п/п обслуживания накопителя (значение 372(8) (5 секунд)) 7132 - адрес п/п выключения двигателя дисковода. Устанавливается п/п обслужи- вания накопителя (значение 134454) и вызывается п/п обработки прерываний сетевого таймера по истечении времени, заданного в ячейке 7130. 7134 - управление состоянием курсора: 0 - выключить курсор в старой позиции и включить его в новой позиции; 2 - не изменять состояние курсора; 4 - выдержка временных интервалов горения курсора (мигание). 7136 - тип рулона экрана пользователя - плавный(0) или дискретный(2) 7140 - адрес пуска п/п пользователя по запросу через канал 2 7142,7144 - сохранение значения SP в режиме УСТАНОВКА 7146 - пользовательский (=0) или системный (!=0) режим клавиатуры 7150 - режим вывода в верхнюю информационную строку: 0 - вывод разрешен; 177772(-6) - вывод блокирован.
РЕЖИМЫ МЕНЮ УСТАНОВКА И ЗАГРУЗКА (7152-7175)
7152 - текущий пункт меню УСТ 7154 - --------/--------- УСТ/система команд 7156 - --------/--------- УСТ/формат экрана 7160 - --------/--------- УСТ/цвет символа 7162 - --------/--------- УСТ/цвет знакоместа 7164 - --------/--------- УСТ/цвет экрана 7166 - --------/--------- УСТ/цвет курсора 7170 - --------/--------- УСТ/рулон 7172 - --------/--------- УСТ/таймер 7174 - --------/--------- ЗАГРУЗКА
ЯЧЕЙКИ ДРАЙВЕРА КЛАВИАТУРЫ (7176-13141)
Указатели на буферы (7176-7211)
7176 - указатель для чтения с буфера 2260-2267 (буфер скэн-кодов) 7200 - указатель для записи в буфер 2260-2267 7202 - указатель для чтения с буфера 2240-2257 (буфер автоповтора) 7204 - указатель для записи в буфер 2240-2257 7206 - указатель для чтения с буфера 2200-2237 (буфер ASCII-кодов) 7210 - указатель для записи в буфер 2200-2237
В байтах 7212 и 7213 сохраняются коды отжатия регистровых клавиш при исполнении комбинаций REG/ФИКС
7214 - адрес текущей таблицы раскладки клавиатуры 7216 - адрес предыдущей таблицы раскладки клавиатуры Байт 7220 - режим заглавные(0)/строчные(40(8)) буквы Байт 7221 - предыдущий режим букв 7222 - последовательность посылки кодов 16(8) и 17(8) при нажатии и отжатии АЛФ. Младший байт содержит код нажатия, старший - отжатия. 7224 - код, посылаемый при отжатии АЛФ. Нулевое значение означает запрет посылки. Байт 7226 - задержка при автоповторе: 2 (40 мс) - нормальный автоповтор; 1 (20 мс) - ускоренный автоповтор. Байт 7227 - текущее используемое время для реализации автоповтора: 31(8)(0.5 сек) - между нажатием и автоповтором; 2,1 - описано выше. Значения задержек устанавливаются драйвером клавиатуры 7230 - разрешение исполнения TRAP 2 по окончании обслуживания очереди скэн-кодов нажатия и отжатия. Это необходимо, если по прерыванию от канала 0/запросу EMT 22/24 затребовано очередное значение для передачи, а буфер ASCII-кодов был пуст. 7232 - разрешение(0)/запрет(!=0) передачи одиночных символов в буфер ASCII-кодов
Таблицы раскладки клавиатуры (7234-11013)
Раскладка основного регистра (7234-7513) ----/---- нижнего регистра (7514-7773) ----/---- ГРАФ регистра (7774-10253) ----/---- УПР регистра (10254-10533) ----/---- ФИКС регистра (10534-11013)
Для каждой клавиши выделено одно слово. Если старший байт равен нулю, то младший содержит код КОИ-8. Старший байт равен 1, младший - код регистровой клавиши:
0 - НР 1 - АЛФ 2 - ГРАФ 3 - УПР 4 - ФИКС 5 - УСТ 6 - УПР+ПОМ (включение/выключение режима ИСУ) 7 - УПР+ИСП (печать экрана)
В последнем случае (старший байт больше 1) это слово содержит адрес строки символов. Конец строки - байт 0.
Сперва в таблице идут клавиши с X0Y5 по X0Y15 (скэн-коды 5 - 17), далее с X1Y5 по X1Y15 (скэн-коды 25 - 37) и т.д. по X7Y5 - X7Y15 (скэн-коды 165 - 177).
Буфер 11014-11053 используется для сохранения режимов дополнительной клавиатуры при исполнении последовательностей Esc = и Esc >.
11014 - режим не ДКЛ(0)/ДКЛ(!=0), далее сохраняются значения клавиш <ВВОД>, <.>,<0>,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<+>,<->,<,>.
Буфер 11054-11137 используется для сохранения режимов клавиш при переключении между системным и пользовательским режимами.
11054 - пользовательский(0)/системный(!=0) режим, далее сохраняются значения клавиш <0>,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<ВК>,<ВВОД>,<ПОМ>,<ИСП>, <ВВЕРХ>,<ВНИЗ>,<ВЛЕВО>,<ВПРАВО>,<НР+ВВЕРХ>,<НР+ВНИЗ>,<НР+ВЛЕВО>,<НР+ВПРАВО>, <ПРОБЕЛ>,<ЗАБОЙ>,<СБРОС>.
11140 содержит 0. Это используется при начальной установке клавиш К1-К25.
Буфер 11142-13137 используется для сохранения строк символов, назначенных на клавиши К1-К25.
13140 - указатель для записи в буфер 11142-13137
ЯЧЕЙКИ ДРАЙВЕРА ТЕКСТОВОГО ТЕРМИНАЛА
TODO: Дооформить остальную часть документа