БК-0010 — различия между версиями

Материал из ZX-PK.ru
Перейти к: навигация, поиск
Строка 1: Строка 1:
<font color=red>UNDER CONSTRUCTION</font><br><br>
 
 
'''Группа:''' [[БК-0010]]-совместимый<br>
 
'''Группа:''' [[БК-0010]]-совместимый<br>
 
'''Процессор:''' [[К1801ВМ1]] 16 бит 3 МГц<br>
 
'''Процессор:''' [[К1801ВМ1]] 16 бит 3 МГц<br>
Строка 96: Строка 95:
  
 
==Стандартный набор программ ввода-вывода==
 
==Стандартный набор программ ввода-вывода==
 +
 +
<table border="1" style="border-collapse: collapse" cellpadding=2>
 +
<tr>
 +
  <td><b>адрес</b></td>
 +
  <td><b>ЕМТ</b></td>
 +
  <td><b>описание</b></td>
 +
  <td><b>вход</b></td>
 +
  <td><b>выход</b></td>
 +
</tr>
 +
<tr><td colspan=5><b>Драйвер клавиатуры</b></td></tr>
 +
<tr>
 +
  <td>100742o</td>
 +
  <td>ЕМТ 4</td>
 +
  <td>инициализация драйвера клавиатуры</td>
 +
  <td></td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>101010o</td>
 +
  <td>ЕМТ 6</td>
 +
  <td>чтение кода символа с клавиатуры</td>
 +
  <td></td>
 +
  <td>R0 - символ</td>
 +
</tr>
 +
<tr>
 +
  <td>101724o</td>
 +
  <td>ЕМТ 10</td>
 +
  <td>чтение строки с клавиатуры</td>
 +
  <td>R1 — адрес буфера строки<br>R2l — длина строки<br>R2h - символ-ограничитель</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>102004o</td>
 +
  <td>ЕМТ 12</td>
 +
  <td>установка ключей клавиатуры</td>
 +
  <td>R0 — номер ключа (1-10)<br>R1 — адрес текста ключа</td>
 +
  <td></td>
 +
</tr>
 +
<tr><td colspan=5><b>Драйвер ТВ-монитора</b></td></tr>
 +
<tr>
 +
  <td>100140o</td>
 +
  <td>ЕМТ 14</td>
 +
  <td>инициализация драйвера ТВ-монитора</td>
 +
  <td></td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>102234o</td>
 +
  <td>ЕМТ 16</td>
 +
  <td>вывод символа и переключение режимов</tdr>
 +
  <td>R0l — код</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>107050o</td>
 +
  <td>ЕМТ 20</td>
 +
  <td>вывод строки символов</td>
 +
  <td>R1 — адрес строки символов<br>R2l — длина строки<br>R2h - символ-ограничитель</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>107106o</td>
 +
  <td>ЕМТ 22</td>
 +
  <td>запись символа в служебную строку</td>
 +
  <td>R0 — код символа (0-сброс строки)<br>R1 — номер позиции в служебной строке </td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>107272o</td>
 +
  <td>ЕМТ 24</td>
 +
  <td>установка положения курсора</td>
 +
  <td>R1 — координата х<br>R2 — координата y</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>107502o</td>
 +
  <td>ЕМТ 26</td>
 +
  <td>не используется</td>
 +
  <td></td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>107612o</td>
 +
  <td>ЕМТ 30</td>
 +
  <td>рисование точки</td>
 +
  <td>R0 - цвет<br>R1 — координата х<br>R2 — координата y</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>107776o</td>
 +
  <td>ЕМТ 32</td>
 +
  <td>рисование линии</td>
 +
  <td>R0 - цвет<br>R1 — координата х<br>R2 — координата y</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>110310o</td>
 +
  <td>ЕМТ 34</td>
 +
  <td>чтение слова состояния дисплея</td>
 +
  <td></td>
 +
  <td>R0 — слово состояния дисплея</td>
 +
</tr>
 +
<tr><td colspan=5><b>Драйвер магнитофона</b></td></tr>
 +
<tr>
 +
  <td>116076o</td>
 +
  <td>ЕМТ 36</td>
 +
  <td>передача управления драйверу магнитофона</td>
 +
  <td>R1 — адрес блока параметров</td>
 +
  <td></td>
 +
</tr>
 +
<tr><td colspan=5><b>Драйвер ТЛГ-канала</b></td></tr>
 +
<tr>
 +
  <td>117462o</td>
 +
  <td>ЕМТ 40</td>
 +
  <td>инициализация драйвера</td>
 +
  <td>R0 — номер скорости обмена</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>117474o</td>
 +
  <td>ЕМТ 42</td>
 +
  <td>передача байта на линию</td>
 +
  <td>R0l — байт</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>117566o</td>
 +
  <td>ЕМТ 44</td>
 +
  <td>прием байта с линии</td>
 +
  <td></td>
 +
  <td>R0l — байт</td>
 +
</tr>
 +
<tr>
 +
  <td>117704o</td>
 +
  <td>ЕМТ 46</td>
 +
  <td>передача блока данных на линию</td>
 +
  <td>R1 — адрес<br>R2 — длина в байтах</td>
 +
  <td></td>
 +
</tr>
 +
<tr>
 +
  <td>117722o</td>
 +
  <td>ЕМТ 50</td>
 +
  <td>приём блока данных с линии</td>
 +
  <td>R1 — адрес<br>R2 — длина в байтах</td>
 +
  <td></td>
 +
</tr>
 +
</table>
  
 
==Ссылки==
 
==Ссылки==

Версия 10:16, 24 апреля 2012

Группа: БК-0010-совместимый
Процессор: К1801ВМ1 16 бит 3 МГц
ОЗУ: 32 Кб
ПЗУ: ПЗУ 24 Кб (программа Монитор, плюс в БК0010 Фокал и тесты, а в БК0010.01 Бейсик)
Разъемы: Системная шина, параллельный порт (16+16 бит), магнитофон, НЧ видео 256x256, НЧ видео 512x256, блок питания
Видео: Контроллер К1801ВП1-037. 256x256 4 цвета (красный, синий, зеленый, черный). 512x256 2 цвета.
Звук: бипер
Внешние устройства в комплекте: МСТД с компьютером БК0010.01
Разработан: 1983 год

О компьютере

Видеорежимы

Компьютер поддерживает четыре видео режима:

  • 512x256 2 цвета.
  • 512x64 2 цвета.
  • 256x256 4 цвета.
  • 256x64 4 цвета.

В режимах 64 пикселя по вертикали, графика/текст отображается в верхней четверти экрана. Нижние 75% экрана всегда черные. Этот видеорежим использует всего 4 Кбайт памяти, то есть для пользователя остается 28 Кб ОЗУ. (Видео режим высотой 256 пикселей использует 16 Кб памяти и пользователю остается только 16 Кб)

В 4-х цветных режимах используются цвета: черный, красный, синий, зеленый. Программной возможности изменить эти цвета нет.

Видео контроллер формировал сразу два видео сигнала 512x256/64 и 256x256/64. И каждый видео сигнал был подключен к собственному разъему на задней стенке компьютера. Пользователь должен был перетыкать вручную провод от монитора при использовании различных программ.

Пример изображения, если монитор подключен к выходу ЦТВ, когда требуется ТВ:

Bk bug 1.gif

Если же подключить монитор к выходу ТВ, когда требуется ЦТВ, то синий и зеленый цвета будут отображаться в виде штриховки, одинаково для пользователя.

Bk bug 2.png

Переключить видеорежим (512x256/64 и 256x256/64) в Бейсике можно комбинацией клавиш АР2 ; (в эмуляторе CTRL ;)

Что бы подключить компьютер к телевизору через разъем SCART, на 16 вывод SCART требуется подать напряжение 5 Вольт (это включит режим RGB). Это напряжение можно взять с разъема ТВ.

Команды монитора

M[адрес]Загрузка программы с магнитофона. Адрес можно не указывать. После загрузки в ячейке 264 содержится адрес загрузки, а ячейке 266 длина.
L[адрес]Загрузка программы с линии. Адрес можно не указывать. После загрузки в ячейке 264 содержится адрес загрузки, а ячейке 266 длина.
S[адрес]Запуск программы. Адрес можно не указывать, тогда используется адрес из ячейки 264
PЗапуск пользовательского ПЗУ (аналогично команде S140000)
FЗапуск ПЗУ с Фокалом / Бейсиком (аналогично команде S120000)
TЗапуск ПЗУ с тестами (аналогично команде S160000).

Выход из Бейсика в монитор по команде MO. Выход из Фокала в монитор по команде PASS MONITOR.

Карта памяти

АдресМодель БК0010Модель БК0010.01
000000o-000777o0000h-01FFhОЗУ. Вектора прерываний, системные переменые и стек.
001000o-037777o0200h-3FFFhОЗУ пользователя
040000o-077777o4000h-7FFFhОЗУ экрана
010000o-117777o8000h-9FFFhПЗУ. Монитор и драйверы
120000o-137777oA000h-BFFFhПЗУ ФокалПЗУ Бейсик
140000o-157777oC000h-DFFFh-ПЗУ Бейсик
160000o-177577oE000h-FEFFhПЗУ Тесты-
177600o-177777oFF00h-FFFFhСистемные регистры

Карта УВВ

АдресОписание
177660oFFB0hРегистр состояния клавиатуры.
  • бит 7=1 - С прошлого чтения этого бита была нажата клавиша. Только чтение. При чтении сбрасывается в 0.
  • бит 6=0 - Прерывание от клавиатуры разрешено.
177662oFFB2hРегистр данных клавиатуры.
  • биты 15-7 - всегда раны нулю 0. Только чтение.
  • быты 6-0 - код последней нажатой клавиши.
177664oFFB4hРегистр смещения
  • бит 9 - отключение отображения нижних 3/4 экрана.
  • биты 7-0 - смещение видеопамяти в строках (или 64 байтах).
177714oFFCChРегистр программируемого порта ввода-вывода.
  • биты 15-0 - Чтение из порта ввода, запись в порт вывода.
177716oFFCEhРегистр системного порта.

Чтение

  • биты 15-8 - Старший бит адреса пуска процессора, младший бит всегда равен 0.
  • бит 7=0 - Готовность ТЛГ-линии.
  • бит 6=0 - Нажата клавиша клавиатуры.
  • бит 5 - Чтение бита данных с магнитофона.
  • бит 4 - Чтение бита данных с ТЛГ-линии.
  • биты 3-0 - Режим работы процессора.

Запись

  • бит 7=0 - включить двигатель магнитофона.
  • бит 6 - запись на магнитофон и вывода звука.
  • бит 5 - запись на магнитофон или сигнал готовности ТЛГ-линии.
  • бит 4 - передача данных на ТЛГ-линию.

Стандартный набор программ ввода-вывода

адрес ЕМТ описание вход выход
Драйвер клавиатуры
100742o ЕМТ 4 инициализация драйвера клавиатуры
101010o ЕМТ 6 чтение кода символа с клавиатуры R0 - символ
101724o ЕМТ 10 чтение строки с клавиатуры R1 — адрес буфера строки
R2l — длина строки
R2h - символ-ограничитель
102004o ЕМТ 12 установка ключей клавиатуры R0 — номер ключа (1-10)
R1 — адрес текста ключа
Драйвер ТВ-монитора
100140o ЕМТ 14 инициализация драйвера ТВ-монитора
102234o ЕМТ 16 вывод символа и переключение режимов</tdr> R0l — код
107050o ЕМТ 20 вывод строки символов R1 — адрес строки символов
R2l — длина строки
R2h - символ-ограничитель
107106o ЕМТ 22 запись символа в служебную строку R0 — код символа (0-сброс строки)
R1 — номер позиции в служебной строке
107272o ЕМТ 24 установка положения курсора R1 — координата х
R2 — координата y
107502o ЕМТ 26 не используется
107612o ЕМТ 30 рисование точки R0 - цвет
R1 — координата х
R2 — координата y
107776o ЕМТ 32 рисование линии R0 - цвет
R1 — координата х
R2 — координата y
110310o ЕМТ 34 чтение слова состояния дисплея R0 — слово состояния дисплея
Драйвер магнитофона
116076o ЕМТ 36 передача управления драйверу магнитофона R1 — адрес блока параметров
Драйвер ТЛГ-канала
117462o ЕМТ 40 инициализация драйвера R0 — номер скорости обмена
117474o ЕМТ 42 передача байта на линию R0l — байт
117566o ЕМТ 44 прием байта с линии R0l — байт
117704o ЕМТ 46 передача блока данных на линию R1 — адрес
R2 — длина в байтах
117722o ЕМТ 50 приём блока данных с линии R1 — адрес
R2 — длина в байтах

Ссылки