ПК Кристалл 2 — различия между версиями
Vinxru (обсуждение | вклад) (→Системные переменные) |
Vinxru (обсуждение | вклад) (→Системные переменные) |
||
| Строка 140: | Строка 140: | ||
<tr><td>F7CFh</td><td>word</td><td>Адрес последнего символа введенной команды.</td></tr> | <tr><td>F7CFh</td><td>word</td><td>Адрес последнего символа введенной команды.</td></tr> | ||
<tr><td>F7D1h</td><td>word</td><td>Используется только директивой J. Она заносит сюда первый аргумент, если агрумент не указан, то использует это значение.</td></tr> | <tr><td>F7D1h</td><td>word</td><td>Используется только директивой J. Она заносит сюда первый аргумент, если агрумент не указан, то использует это значение.</td></tr> | ||
| − | <tr><td>F7D3h</td><td>word</td><td>Только в последней прошивке. Верхняя граница доступной памяти. Инициализируется | + | <tr><td>F7D3h</td><td>word</td><td>Только в последней прошивке. Верхняя граница доступной памяти. Инициализируется E800h.</td></tr> |
<tr><td>F7D5h</td><td>word</td><td>Не используется.</td></tr> | <tr><td>F7D5h</td><td>word</td><td>Не используется.</td></tr> | ||
<tr><td>F7D7h</td><td>word</td><td>Используется только директивой L. Она заносит сюда первый аргумент, если агрумент не указан, то использует это значение.</td></tr> | <tr><td>F7D7h</td><td>word</td><td>Используется только директивой L. Она заносит сюда первый аргумент, если агрумент не указан, то использует это значение.</td></tr> | ||
Версия 12:09, 2 мая 2012
Процессор: КР580ВМ80А 2 Мгц
ОЗУ: статическое 1 Кб на основном модуле + динамическое 58 Кб на модуле ОЗУ
ПЗУ: ПЗУ 2 Кб (программа Монитор)
Видео ОЗУ: статическое 2 Кб
Видео: Черно белый текстовый режим 64x32 128 символов. Псевдографика 128x64
Разъемы на основном модуле: Блок питания, магнитофон, НЧ видео.
Разъемы на модуле интерфейса: КР580ВИ53 (таймер) + КР580ВВ51 (последовательный порт) + 2x КР580ВВ55 (два параллельных порта).
ОЗУ через порты ВВ: 64 Кб на модуле ОЗУ + 128 Кб на модуле "Квазидиск"
ПЗУ через порты ВВ: 32 Кб на модуле ОЗУ + 32 Кб на модуле "Квазидиск"
Звук: бипер
Разработан: 1987 год
Содержание
О компьютере
Этот компьютер участвовал на радиовыставке 1987 г. Авторы: Сугоняко В.П. (UV3DED), Виноградов А.С., Московская обл., г. Ногинск, 1987 г.
При включении компьютер выводит текст:
КРИСТАЛЛ-С *SVP-1987*
Компьютер очень похож по схемотехнике и характеристикам на компьютер Микро-80. Но благодаря применению более современных деталей, его схема значительно проще.
В компьютере используется черно белый текстовый видеоадаптер с разрешением 64x32 с размером знакоместа 6x8. Видеоадаптер собран на простых микросхемах. Знакогенератор прошит в ПЗУ. Используется знакогенератор Микро-80 с измененным символом СП (код 1Eh). Вместо этого символа находится изображение курсора. Видеоадаптер имеет собственную статическую память 2 Кб. Она доступна для записи и чтения по адресам E800-EFFF. (Микро-80 не поддерживал чтение из видеопамяти). Когда процессор записывает в память видеоадаптер, на экране появляются черные помехи. Видеоадаптер не поддерживает отображение курсора или инверсию знакоместа (Микро-80 поддерживал). В отличии от компьютеров Радио 86РК при загрузке с магнитофона экран не отключается.
В качестве контроллера клавиатуры используется микросхема КР580ВВ55. Клавиатура электрически и программно совместима с Микро-80, Радио 86РК и аналогичными. Но адрес порта ввода-вывода клавиатуры отличается от Микро-80, поэтому прошивка Микро-80 на этом компьютере не работает.
В конце прошивки этого компьютера много неиспользуемого места.
Ввод звука сделан через разрешение прерываний (как в Радио 86РК).
Загрузка и запись на магнитофон осуществляется через порты КР580ВВ55. Преобразователя аналог-ТТЛ, ТТЛ-аналог на основной плате нет. Компьютер использует собственный формат записи на магнитофон (но так же поддерживает формат РК-86). Собственный формат отличается от формата РК-86 тем, что при загрузке программы выводится её имя. В имени программы могут использоваться символы очистки экрана, перемещения курсора. Компьютер умеет автоматически определять скорость записи на магнитофон и корректно загружать программу.
С этим компьютером совместим язык программирования Бейсик для компьютера Микро-80.
Компьютер разделен на 5 модулей:
- Основной модуль. Тактовый генератор, процессор, видеоадаптер с статическим ОЗУ 2 Кб, контроллер клавиатуры, ПЗУ 2 Кб с программой Монитор, статическое ОЗУ 1 Кб.
- Модуль ОЗУ и ПЗУ. 58 Кб ОЗУ в адресном пространстве процессора. Еще 64 Кб ОЗУ + 32 Кб ПЗУ через порты ввода-вывода. Используется 64 микрсохемы К565РУ3.
- Модуль квазидиска. Идентичен прошлому. Используется та же печатная плата, но только теперь вся память через порты. Используется 64 микрсохемы К565РУ3.
- Модуль интерфейса. КР580ВИ53 (таймер) + КР580ВВ51 (последовательный порт) + 2x КР580ВВ55 (два параллельных порта).
- Отладочный модуль. Упрощенный отладочный модуль Микро-80.
Основной модуль является завершенным и работоспособным узлом. В документации присутствует только схема основного модуля. И более того, у самих авторов не было этих модулей. У них был модуль на 16 Кб ОЗУ с таймером ВИ53.
Большая часть документации повещена операционной системе "Дельта-A". Эта операционная система работает с квазидиском. Дампа этой системы в документации (и у нас) нет.
Сугоняко В.П. - это один из разработчиков компьютера Орион-128. Компьютер Кристалл-2 своей идей квазидиска и собственной операционной системой очень похож на компьютер Орион-128.
Версии прошивок
- 1978 - Оригинальная.
- 2012-05-28 - Исправлена ошибка при удалении символов в консоли (раньше выводился символ с кодом 3 вместо 8). Для совместимости с программами РК86 добавлена поддержка esc-последовательности установки положения курсора и добавлена новая директива X, которая отключает/включает отображение курсора.
- 2012-05-29 - Все доработки для совместимости с программами РК86. Добавлена поддержка всех точек входа РК-86, только вызов функции загрузки с магнитофона (F824) перезагружает компьютер, а функция сохранения на магнитофон (F827) работает не стандартно. Исправлена функция вывода символа (F809), раньше она портила регистр A. Добавлена поддержка звука, теперь компьютер пищит при выводе в консоль символа с кодом 7. При очистке экрана (вывод в консоль кода 1Fh) курсор теперь устанавливается в верхний левый угол.
Команды монитора
| УС+S | Включение формата записи на магнитофонную ленту РК-86 (по умолчанию включен собственный формат). |
| УС+T | При очистке экрана устанавливать курсор в верхнюю строку (по умолчанию в курсор устанавливается в нижнюю строку). |
| R | Загружает область памяти с магнитофона с автоматическим определением плотности записи. |
| I[начало] | Загружает область памяти с магнитофона. Первый параметр можно не указывать. |
| I, | Загружает область памяти с магнитофона и запускает. |
| O[начало],[конец],[скорость] | Сохраняет область памяти на магнитофон. Третий параметр можно не указывать. |
| J[адрес] | Запустить программу. |
| E | Переход по адресу 0000. |
| K | Выводит на экран все введенные с клавиатуры символы (выход из режима символом с кодом 0 или УС+;). |
| С[начало],[конец],[начало 2] | Сравнивает области памяти. |
| F[начало],[конец],[байт] | Заполняет область памяти байтом. |
| S[начало],[конец],[байт] | Ищет байт в области памяти. |
| S[начало],[конец],[2 байта] | Ищет 2 смежных байта в области памяти. |
| P[из_начало],[из_конец],[куда начало] | Копирует область памяти. |
| M[начало] | Последовательно просматривает память позволяя изменять значения. |
| H[символ] | Отображение 16-ричного кода символа. |
| L[начало],[конец] D[начало],[конец] | Выводит 16-ричный и текстовый дамп памяти. Директивы D и L идентичны. |
| Z[число] | Передача управления в "зону". Число выбирает слот-ПЗУ. Управление передается по адресу F000h. (Эта директива отсутствует в прошивке приведенной в официальной документации) |
| X | Только в прошивке от 2012-05-28. Отключение отображения курсора. Некоторые программы РК86 иначе не работают. |
| пустая строка | Очистка экрана и вывод приветствия. |
Карта памяти
| 0000h - E7FFh | Используется дополнительными модулями. Обычно ОЗУ. |
| E800h - EFFFh | ОЗУ. Видео. |
| F000h - F3FFh | Используется дополнительными модулями. |
| F400h - F7FFh | ОЗУ. Стек и системные переменные |
| F800h - FFFFh | ПЗУ. Монитор. |
В документации указано, что по адресам D000h - E7FFh находится операционная система Дельта-А.
Карта УВВ
На основной плате присутствет только микросхема КР580ВВ55А, которая обслуживает клавиатуру и магнитофон. Микросхема занимает все порты у которых A2=0, то есть адреса 0-3,8-Bh,10h-13h,18-1Bh.
| 0 | Вывод на матрицу клавиатуры |
| 1 | Ввод с матрицы клавиатуры |
| 2 | чтение бита 0. Чтение с магнитофона. чтение бита 1. Клавиша СС. чтение бита 2. Клавиша УС. запись бита 7. Запись на магнитофон. |
| 3 | Управление КР580ВВ55A. Инициализируется значением 8Bh. |
Стандартный набор программ ввода-вывода
| Адрес | Описание | Входные данные | Выходные данные |
| F800h | Перезагрузка | ||
| F803h | Ввод символа с клавиатуры с ожиданием | A - код символа | |
| F806h | Чтение байта с магнитофона | А=FF - с поиском синхробайта A=08 - без поиска синхробайта | A - считанный байт |
| F809h | Вывод символа на экран | С - символ | |
| F80Сh | Запись байта на магнитофон | C - байт | |
| F80Fh | Вывод символа на экран | A - символ | |
| F812h | Опрос состояния клавиатуры 1 | A=FF - ни одна клавиша не нажата A<>FF - нажата | |
| F815h | Вывод на экран 16-ричного числа | A - число | |
| F818h | Вывод на экран текстовой строки | HL - адрес строки (код 0 конец строки) | |
| F81Bh | Не используется | ||
| F81Eh | Инициализация КР580ВВ55 |
В оригинальной прошивке только первые 9 точек входа совместимы с Микро-80, ЮТ-88 и Радио 86РК. В последней прошивке реализованы все точки входа.
Системные переменные
| Адрес | Размер | Описание |
| F7C0h | word | Адрес курсора по умолчанию. В оригинальной прошивке EFC0h, в последней E800h. Изменяется по директиве УС+S на E800h. |
| F7C2h | word | Адрес функции, которая запускается в случае ошибки загрузки с магнитофона. Инициализируется FD1Ah |
| F7C4h | byte | Только в последней прошивке. Отключение отображения курсора, если не 0. Изменяется директивой X. |
| F7C5h | byte | Только в последней прошивке. Используется в обработке esc-последовательности устанавливающей положение курсора. |
| F7C6h | byte | Формат записи на магнитофон: 0-собственный, FFh-РК86. Директива УС+S записывает FFh. |
| F7C7h | byte | Инициализируется значением 3 и не используется. |
| F7C8h | byte | Длина имени введенная в директиве O (используется только директивой O). |
| F7C9h | byte | Символ находящийся под курсором. |
| F7CAh | word | Адрес курсора в видеопамяти. |
| F7CCh | byte | Скорость записи на магнитофон. Инициализируется 15h. |
| F7CDh | byte | Скорость загрузки с магнитофона. Инициализируется 1Fh. |
| F7CEh | byte | Используется только функцией загрузки с магнитофона. Содержит 0 или FF. |
| F7CFh | word | Адрес последнего символа введенной команды. |
| F7D1h | word | Используется только директивой J. Она заносит сюда первый аргумент, если агрумент не указан, то использует это значение. |
| F7D3h | word | Только в последней прошивке. Верхняя граница доступной памяти. Инициализируется E800h. |
| F7D5h | word | Не используется. |
| F7D7h | word | Используется только директивой L. Она заносит сюда первый аргумент, если агрумент не указан, то использует это значение. |
| F7D9h | word | 3 параметр введенной команды. Заполняется так же директивой I. |
| F7DBh | word | 2 параметр введенной команды. Заполняется так же директивой I. |
| F7DDh | word | 1 параметр введенной команды. Заполняется так же директивой I. |
| F7DFh | 33 | Командная строка длиной 33 байта. |
Ссылки
http://zx.pk.ru/showthread.php?t=18881 - Обсуждение на форуме
http://narod.ru/disk/46334826001.ee78ec8da7b58f796488f40322d22560/Kristall-2.rar.html - Документация, схемы, прошивки
http://s019.radikal.ru/i625/1204/c3/c93f13b116bf.png - Схема одним файлом