Просмотр полной версии : Эмуляция фрязинского дисплея 15ИЭ-00-013
shattered
02.02.2013, 20:14
(продолжение http://zx.pk.ru/showthread.php?t=20092 и http://zx.pk.ru/showthread.php?t=19182)
Эмулятор делается на основе MESS (http://mess.org/); он пока не закончен, но работать уже можно. См. далее (http://zx.pk.ru/showpost.php?p=586429&postcount=175).
http://img-fotki.yandex.ru/get/4120/264743.2/0_891e0_6fdac9e1_XL.png.jpg (http://fotki.yandex.ru/users/shattered/view/561632/)
Материалы:
- ТО -- (djvu) (https://drive.google.com/file/d/0B8vr5xq7JIHPRWFPb1RhTlNydTg/view?usp=drivesdk). В нем достаточно информации, чтобы написать эмулятор процессора, показан знакогенератор -- http://fotki.yandex.ru/users/shattered/view/488205/
- альбомы схем 1-3 -- djvu (http://zx.pk.ru/showthread.php?t=9276&page=10), и отдельно схема клавиатуры -- http://s46.radikal.ru/i111/0906/ea/687eaae8e569.jpg http://s51.radikal.ru/i133/0906/e8/b12e0ea69ff2.jpg
- фотографии клавиатуры 15ВВВ-97-006 (http://retropc.org/index.html?action=w_podrazdela&id_soderjanie=87) и плат терминала (http://asvcorp.ru/darch/hardware/pdp/fryazin-display/index.html)
- 2 варианта прошивки МПУ и 1 - ГС
- краткое РЭ из книги по Э-60 -- текст (http://zx.pk.ru/showpost.php?p=579938&postcount=144)
Отдельные куски ТО я набрал:
6. Устройство и работа составных частей дисплея.
6.1. Устройство и работа плат блока логики дисплея.
6.1.1. Плата микропрограммного устройства МПУ.
6.1.1.1. Электрическая схема МПУ ЩЦМ3.662.752 ЭЗ (лист 2,3) см. ЩЦМ3.778.012 ОП Альбом. Функционально состоит из следующих основных частей:
- синхрогенератора;
- счетчика команд;
- 32-х 12-ти разрядных регистров общего назначения;
- 8 битового аккумулятора;
- 8 битового АЛУ с дополнительным триггером переноса;
- 8 битового буфера АЛУ с дополнительным триггером A=B;
- 8 разрядного селектора для проверки условий на пропуск следующей команды;
- 6 управляющих флагов;
- 2-х 4 битовых регистров - фиксаторов кода и адреса команды;
- микропрограммного ППЗУ емкости 32 слова х 16 разрядов;
- дешифраторов команд ввода вывода;
6.1.1.2. Стабилизированный кварцем генератор на вентилях D37 вырабатывает сигнал частоты 30,8 МГц, который триггером D48.2 делится на 2 и поступает в ГС для формирования видеосигнала и в ЗУ для формирования диаграммы цикла считывания и записи.
Этот же сигнал частоты 30,8 МГц делится на 10 счетчиком, организованным на D47.1, D48.1, D47.2 и D39.2. Диаграмма состояний счетчика и полученных из них необходимых комбинаций сигналов на D49 приведена на рис. 9.
Счетчик команд - 12 разрядный, организован на D53, D44, D32. Управление им производится двумя путями: наращиванием содержимого, сигналом +1 СК В и загрузкой адреса ветвления программы сигналом З СК Н.
32 РО Н организованы в 2 страницы по 16 регистров. Страница выбирается триггером D30, который управляется сигналами - установить 0 (1) страницу. Старшие четыре разряда РО Н используются для хранения адреса возврата из одной страницы в другую в программном ППЗУ.
Содержимое 8 младших разрядов РО Н через передатчик D22, D23 может подключаться к каналу данных.
Аккумулятор представляет собой 8 разрядный универсальный регистр. Режим функционирования его определяется сигналами S0 и S1 D28. Если S0=1 и S1=1, то в аккумулятор производится загрузка данных с канала. Если S0=1, S1=0, производится сдвиг содержимого влево, а S0=0, S1=1, сдвиг вправо.
АЛУ производит логические и арифметические операции над двумя операндами - содержимым аккумулятора и данными канала. Результат переноса запоминается в триггере "Перенос" D2.1 и может быть использован для последующего анализа. Результат исполненной на АЛУ операции запоминается в буфере АЛУ D41, D50. Содержимое буфера АЛУ может выставляться на канал данных.
Если в результате исполнения операции на АЛУ все его выходы будут установлены в единичное состояние, оно будет зафиксировано в триггере D2.2 - A=B.
Селектор D48 сигналами PA0B + PA2B выбирает один из 8 сигналов на его входе (прямое или инверсное значение в зависимости от сигнала PA3B). В зависимости от состояний анализируемых сигналов может быть установлен триггер D8.2, который запрещает исполнение следующей за текущей команды.
6 управляющих флагов D16, D24, D34 применяются в дисплее для установки различных режимов работы, управление флагами производится дешифратором D1.
Считанный из программного ППЗУ 8 разрядный код фиксируется в двух регистрах: D42 - старшие 4 разряда, которые определяют одну из 16 команд; D43 - младшие 4 разряда, определяющие адрес регистра, номер флага и т.д.
Выходы регистра кода команды поступают на микрокомандное ППЗУ D45 и D35, которе вырабатывает необходимые сигналы (табл. 6) для исполнения данной команды.
6.1.1.3. В общих чертах МПУ работает следующим образом. По адресу в СК выбирается содержимое программного ППЗУ - разряды 00B--07B и фиксируются в РК - D42 и РА - D43. Далее к содержимому СК прибавляется единица, т.е. выставляется следующий адрес.
Принятый код команды поступает на вход ППЗУ D35, D46, которое выполняет роль дешифратора управляющих сигналов. На младший разряд его подается синхронизирующий сигнал СИН2Н, два состояния которого и определяют 1 и 2 фазу исполнения команды. 16 сигналов с выходов D35 и D45 управляют вышеприведенными основными частями МПУ.
Сигналы ЗБАЛУ, ЗРОН, САК, ЗСК, ВБ и УСФ, производящие запись в соответствующие регистры стробируются сигналом СИН1Н, СИН1аН с целью устранения помехи в полувыбранном состоянии ППЗУ D35, D45.
Дополнительные необходимые сигналы для обработки некоторых команд, с целью уменьшения объема ППЗУ D35, D45 вырабатываются дешифратором D25.
6.1.1.4. Система команд МПУ.
МПУ оперирует 8 разрядными двоичными числами - байтами и выполняет всего 16 основных команд. Команды одно- и двухбайтовые. Форматы команд, хранящихся в программном ППЗУ имеют следующее содержание (рис. 10, 11)
[рис. 10]
[рис. 11]
Код команды - 4 старшие разряда байта однозначно определяют тип команды.
Адрес команды - определяет один из 16-ти РОН для адресных команд, для безадресных команд расширяет функции команды, указывает адрес внешнего устройства и т.д.
Байты двухбайтовойй команды расположены в ППЗУ непосредственно друг за другом, в порядке возрастания адресов ППЗУ. Первый байт есть собственно команда, второй байт выполняет функции константы или адреса ветвления.
Для упрощения программирования по приведенной ниже системе команд МПУ, в соответствии и выше приведенным на рис. 10 форматом байта команды, приведено мнемоническое обозначение (сокращенные, часто встречающиеся наименования соответствующих команд МПУ на английском языке). После установки такого соответствия можно писать программы, не привязываясь к кодам системы команд, что значительно упрощает процесс программирования и позволяет осуществить машинную трансляцию.
СПИСОК КОМАНД ПЗУ (таблица 7)
Мнемоническое Функция команды Код команды
обозначение
ADD XX Сложить содержимое РОН XX и аккумулятора 0000XXXX
Результат поместить в аккумулятор (000--017)
Перенос заносится в триггер "Перенос"
JMP XX 2-х байтовая команда 0001XXXX
Передача управления ячейке ПЗУ, YYYYYYYY
находящейся на странице XX по адресу (020--037)
ADDRESS плюс 1 (000--377)
LDC XX 2-х байтовая команда 0010XXXX
CONSTANT Загрузить РОН XX константой YYYYYYYY
(040--057)
(000--377)
LCA 2-х байтовая команда 00110000
Загрузить аккумулятор константой YYYYYYYY
(060)
(000--377)
RAL Вращение содержимого аккумулятора влево 00110011
(063)
RAR Вращение содержимого аккумулятора вправо 00110101
(065)
DSR XX Содержимое РОН XX уменьшается на единицу и 0100XXXX
результат помещается в тот же регистр (100--117)
Если результат становится равным минус 1
(377), следюущая команда пропускается
ISN Содержимое аккумулятора увеличивается на 01010000
единицу. (120)
Пропуск следующей команды, если результат
равен минус 1 (377)
INC Содержимое аккумулятора увеличивается на 01010001
единицу. (121)
DSN Содержимое аккумулятора уменьшается на 01010010
единицу. (122)
Пропуск следующей команды, если результат
равен минус 1 (377)
ISE Содержимое аккумулятора увеличивается на 01011000
единицу. (130)
Пропуск следующей команды, если результат
не равен минус 1 (377)
DSE Содержимое аккумулятора уменьшается на 01011010
единицу. (132)
Пропуск следующей команды, если результат
не равен минус 1 (377)
DEC Содержимое аккумулятора уменьшается на 01011011
единицу. (133)
COM Инверсия содержимого аккумулятора 01011101
(135)
CLR Очистка аккумулятора 01011111
(137)
LLA XX Загрузка аккумулятора содержимым указанного 0110XXXX
регистра XX ввода (140--157)
JMI XX Передача управления ячейке ПЗУ, находящейся 0111XXXX
по адресу, соответствующем содержимому РОН XX (160--177)
SFC X Если указанный флаг X сброшен, следующая 10000XXX
команда пропускается (200--206)
SKP Следующая команда пропускается 10000111
(207)
SFS X Если указанный флаг X установлен, следующая 10001XXX
команда пропускается (210--216)
NOP Нет операции 10001111
(217)
AND XX Логическое "И" содержимого РОН XX и акк. 1001XXXX
Результат помещается в аккумулятор (220--237)
XOR XX Логическое "Исключающее ИЛИ" содержимого РОН XX 1010XXXX
и аккумулятора (240--257)
Результат помещается в аккумулятор
CS XX Содержимое аккумулятора сравнивается с 1011XXXX
содержимым РОН XX (260--277)
Пропуск следющей команды, если они равны
CFL X Сброс управляющего флага X 11000XXX
(300--307)
SFL X Установка управляющего флага X 11001XXX
(310--317)
LDA XX Загрузка аккумулятора содержимым РОН XX 1101XXXX
(320--337)
STA XX Загрузка РОН XX содержимым аккумулятора 1110XXXX
(340--357)
OTA XX Загрузка регистра вывода XX содержимым 1111XXXX
аккумулятора (360--377)
shattered
02.02.2013, 20:17
Генератор символов
6.1.3.1. Электрическая схема ГС ЩЦМ3.662.868 ЭЗ (лист 2), см. ЩЦМ3.778.012 ОН Альбом, функционально состоит из следующих составных частей: генератора символов; генератора скорости обмена; схем синхронизации развертки.
Данные из ЗУ ЗУ0--ЗУ7 поступают в ГС с буферного регистра ЗУ. Старшие три разряда ЗУ5--ЗУ7 выбирают необходимую ППЗУ D18--D20 [КР556РТ5, 512x8 бит], в которой запрограммированы в точечной матрице 7x8 (7 - по горизонтали, 8 - по вертикали), буквы латинского алфавита (большие и малые), буквы русского алфавита (большие и малые), цифры и служебные символы. Остальные 5 разрядов ЗУ выбирают соответствующий символ. 8 горизонтальных строк в изображении символа выбираются из ППЗУ адресами А00, А01 и А02. Они формируются двоичным счетчиком строк D7. Выбранная из ППЗУ информация о данной строке символа загружается сигналом ЗСРВ (этот сигнал формируется на плате ЗУ) в регистр сдвига D13, D14, откуда она выдвигается с частотой 15,4 МГц и через микросхему D11 поступает в видеоусилитель монитора. Служебные символы, если они были записаны в ЗУ (т.е. в режиме на "Редактирование") отображаются большими латинскими буквами с мерцанием 5 Гц в режиме не "Редактирование" и не отображаются (даже если они и записаны в ЗУ) в режиме "Редактирование". Необходимые 8 скоростей обмена формируются следующим образом. Сигнал +1СКВ с частотой работы МПУ 3,08 МГц делится счетчиком D1 на 10 и далее с выходов двоичных счетчиков D2 и D3 селектором D12 можно последовательно выбрать необходимую скорость обмена: 9600x16, 4800x16, 2400x16, 1200x16, 600x16, 300x16, 150x16, 75x16.
Управление селектором D12 производится регистром D16 управляющим сигналом ВЫВ 14Н по программе.
Сигнал с частотой 77 кГц с выхода D2/9 делится счетчиком D4 на 5 и сигнал ССИВ с частотой 15400 Гц используется как строчный синхронизирующий импульс для монитора. Этот же сигнал поступает на двоичный счетчик D7, с коэффициентом деления 11. Выходы этого счетчика А00, А01 и А02 используются как адреса для ППЗУ символов, т.е. выбирают одну из 8 строк матрицы символа. Остальные 3 состояния счетчика - сигнал МСВ, соответствующий 3 строкам, является запретом индикации между знаковыми строками, или если под данной строкой находится маркер (по программе сбрасывается управляющий флаг 1), тогда производится мерцающая с частотой 5 Гц индикация маркера. Сигнал МСВ поступает на счетчик-делитель на 28, организованный на D4 и D6. Этот счетчик подсчитывает число знаковых строк, из которых 25 могут быть активными, т.е. высвечиваются на экране и 3 соответствуют обратному ходу кадровой развертки.
Управление кадровой разверткой и числом индицируемых строк производится сигналами: КСИВ, поступающим в монитор, равным по длительности индикации двум знаковым строкам и ОКРН, поступающим в МПУ, равным по длительности индикации 3-м знаковым строкам. По окончании сигнала ОКРН в зависимости от состояния сигнала ФЛ3Н может высвечиваться 25 служебная строка. Микросхема D28 запрещает загрузку в сдвиговый регистр D13, D14, т.е. запрещает индикацию в случае:
- служебных символов в режиме "Редактирование";
- маркерной строки;
- обратного хода кадровой развертки.
Порты и флаги
порты (адрес восьмеричный)
00 O: пуск ЗУ, I: чтение из ЗУ [6.1.2.2]
01 O: удержание данных на входе ЗУ [6.1.2.2], I: "ФПР Н" ??? (готовность приемника с линии)
02 регистр старшего адреса ЗУ [6.1.2.2]
03 регистр младшего адреса ЗУ [6.1.2.2]
04 нарастить адрес ЗУ [6.1.2.2]
05 вычесть 1 из адреса ЗУ [6.1.2.2]
06 I/O: ввод/вывод стык С2 [6.1.5.4]
07 I: всегда 0xFF
10 O: {H} включение динамика на длительность, управляемую флагом 2 [6.1.5.4], I: "ФПЕР В" ??? (готовность передатчика в линию)
11 I: {H} данные клавиатуры (7 бит + четность) [6.1.5.2]
12 I: {H} режим клавиатуры "РЕД В" [6.1.5.2]
13 I: {H} готовность клавиатуры "ФК Н" [6.1.5.2]
14 I: {H} режим клавиатуры "СДВ В" [6.1.5.2], O: управление селектором D12 (скоростью стыка С2) [6.1.3.1]
15 I: {H} режим клавиатуры "ДК В" [6.1.5.2], O: сигнал "сброс флага/" клавиатуры [схема]
16 I: {H} режим клавиатуры "ДУПЛ Н" [6.1.5.2], O: страница регистров 1 [схема]
17 I: {H} режим клавиатуры "ЛИН В" [6.1.5.2], O: страница регистров 0 [схема]
флаги состояния (только чтение)
0 {B} строчный синхронизирующий импульс [6.1.1.5]
1 {B} маркерная строка [6.1.1.5]
2 {B} обратный ход кадровой развертки [6.1.1.5]
3 --- используется в 6chip ---
4 {B} состояние триггера РУС/ЛАТ [6.1.1.5]
5 триггер А=В [схема]
6 триггер переноса [схема]
7 всегда 0 [описание команд nop и skp]
управляющие флаги (только запись)
0 {H} "запрет отображения"
1 {H} "маркер" [6.1.3.1]
2 {B} управление длительностью звучания динамика [6.1.5.4]
3 {H} 25 служебная строка [6.1.3.1]
4 {B} триггер РУС/ЛАТ [6.1.1.5]
5 сброс триггера переноса
6 -
7 управление коммутацией цепей ЗУ05 и ЗУ07 (формирование семибитных кодов) [6.1.2.2]
shattered
03.02.2013, 01:55
Однако, у KALDYH нашлись альбомы схем -- http://zx.pk.ru/showthread.php?t=9276&page=10
Что есть:
- скан ТО -- http://t-book.net/retrovt/213-to15ie00013.html.
Чета неоткрывается (
---------- Post added at 02:34 ---------- Previous post was at 02:26 ----------
А какие машины к нему подключали? Он только текст может показывать?
А какие машины к нему подключали?Все DEC-образные
http://www.phantom.sannata.ru/konkurs/img/netskater001/001.jpg
Он только текст может показывать?Использовался в основном только для текста.
Вот платка ПЗУ 15ИЭ-00-013, которую надо сдампить:
http://www.asvcorp.ru/darch/hardware/pdp/fryazin-display/plate-firmware-small.jpg
постараюсь сдампить... Плата сильно залита лаком, так что сейчас гадаю, что лучше раньше сделать - запустить терминал, или считать с него прошивки...
постараюсь сдампить... Плата сильно залита лаком, так что сейчас гадаю, что лучше раньше сделать - запустить терминал, или считать с него прошивки...
Лучше конечно убедиться, что рабочий!
WARNING!!! Порядок плат в корзине имеет значение!
Лучше конечно убедиться, что рабочий!
Ну, в том состоянии, что он у меня, он сейчас 100% не рабочий, надо для начала всё собрать :) Есть полный комплект плат и корзинка, нет корпуса, БП...
shattered
05.02.2013, 00:53
Чета неоткрывается (
Выложу куда-нибудь копию.
Он только текст может показывать?
Да, только текст.
Да, только текст.Учитывая, что корзины ДВК и 15ИЭ-00-013 как правило стояли друг на друге - не было больших проблем подключить знакогенератор 15ИЭ к монитору через плату КГД, но это нестандартное решение. Кроме того, ходят слухи про платки ПЗУ с реализацией псевдографики в более поздних версиях этого терминала.
shattered
05.02.2013, 22:14
Я имею в виду, что штучек вроде ReGIS/Sixel в нем нет :-)
BYTEMAN, есть корпус с бп без плат и корзины - могу отдать, но как переслать в белоруссию - если есть варианты - можно обсудить
xailar, это то, что надо :) Сколько по массе получается это добро? И сколько хотите за всё это чудо? Можно что-нибудь придумать будет...
BYTEMAN, давайте , чтобы не нарушать правила в личку
а так - доерусь в выходные и попробую взвесить и сообщить
Значит так, забрал платки и корзину со своего складика, у меня плата ПЗУ с 6-тью микросхемами (когда-то ещё была и с 5-ю, но я её подарил OmaxLab'у). На плате ГС стоит ещё 3 РТшки.
---------- Post added at 01:24 ---------- Previous post was at 00:18 ----------
Однако, у KALDYH нашлись альбомы схем
а кто-нибудь знает куда он пропал?
---------- Post added at 01:55 ---------- Previous post was at 01:24 ----------
появилась мысля про считку знакогенератора: что, если в случае удачного запуска терминала, подрубить его выход к тюнеру, вывести на экран все возможные символы и сделать скриншот, по нему уже можно будет с точностью до точки восстановить знакоген.
появилась мысля про считку знакогенератораЗнакогенер атор известен (http://zx.pk.ru/attachment.php?attachmentid=39549), кроме псевдографики. Наличие псевдографики зависит от версии прошивки. В документации про псевдографику ни слова нет.
shattered
11.02.2013, 20:13
А сколько всего было версий прошивки?
А сколько всего было версий прошивки?Неизвестно. Есть только косвенные сведения типа:
плата ПЗУ с 6-тью микросхемами (когда-то ещё была и с 5-ю)
Вряд ли и в 5, и в 6 ПЗУ зашивали одинаковую прошивку. Не исключено, что прошивка в 6 ПЗУ как раз с поддержкой псевдографики.
shattered
11.02.2013, 22:07
Было бы любопытно найти исходники прошивки и инструментарий для ее сборки... мечты, мечты :-)
Хотя можно добавить поддержку процессора 15иэ в что-то вроде tpasm.
Неизвестно. Есть только косвенные сведения типа:
Вряд ли и в 5, и в 6 ПЗУ зашивали одинаковую прошивку. Не исключено, что прошивка в 6 ПЗУ как раз с поддержкой псевдографики.
Сдампил 3 платы ПЗУ, 2 платы с 5-ю мсх и 1 плату с 6-ю мсх. Плата с 6-ю мсх более древняя по датам микросхем, так что можно предположить, что 5 микросхем - это чье-то рацпредложение по удешевлению с более оптимальной программой, уместившейся в 5 мсх.
К сожалению, на двух прошивках с 5 микросхемами отличается 1 бит в 1 байте. Перечитывалось много раз, так что это именно отличие в ПЗУ. Где правильно, сложно точно решить, см. реадме.тхт.
shattered
17.02.2013, 16:44
:v2_thumb:
У меня есть заготовка дизассемблера, посмотрим, что внутри :smile:
EDIT: выглядит годно
shattered
17.02.2013, 17:12
https://gist.github.com/shattered/4971416 -- листинги (те же, что в архиве)
Разница между 1 и 3 дампами выглядит так:
000003B2: 5F lla #$0f
000003B3: B4 cs r4
000003B4: 13 BA jmp $03ba
-000003B6: 24 17 ldc r4, #$17
+000003B6: 2C 17 ldc r12, #$17
000003B8: 23 4F ldc r3, #$4f
000003BA: 7E jmi r14
000003BB: 44 dsr r4
EDIT: выглядит годно
Видно много переходов внутрь инструкций...
Может попробовать зеркально биты в байтах переставить?
shattered
17.02.2013, 17:27
И похоже, внутри есть какие-то bitmap
При описании команд написано переход JMP на ADDRESS+1, а все jmp в листинге идут на ADDRESS. Возможно, поэтому много переходов получилось внутрь команд...
Самая первая команда 8F описана как NOP, а дизассемблирована как "and r15"
NOP Нет операции 10001111
(217)
shattered
17.02.2013, 17:50
ок, исправлю
Выложу куда-нибудь копию.
Ну и как на счет выкладывания?
shattered
17.02.2013, 20:11
https://docs.google.com/file/d/0B55cuwBw5HR-MHdocUZISVVlQW8/edit?usp=sharing
Исправил первый пост.
Я не понял, у него чего-там, собственной конструкции процессор?
Я не понял, у него чего-там, собственной конструкции процессор?
да, на рассыпухе.
да, на рассыпухе.
Нифига себе)
shattered
17.02.2013, 21:32
Что удивительного? Все так делали раньше :-)
Что удивительного? Все так делали раньше :-)
Огласите весь список, пожалуйста)
Что, этот процессор был только для этого терминала и все?
Есть у него какое-то название? Какая-то совместимость с чем-нибудь?
Так вот его (процессора) картинка, где и остальные платы терминала
http://asvcorp.ru/darch/hardware/pdp/fryazin-display/mpu.html
Процессор незамысловато называется МПУ :)
shattered
17.02.2013, 22:56
Если речь о процессорах на рассыпухе, то на чем же еще было строить, пока не было БИС?
Так вот его (процессора) картинка, где и остальные платы терминала
http://asvcorp.ru/darch/hardware/pdp/fryazin-display/mpu.html
Процессор незамысловато называется МПУ :)
Такой масенький? Где же тут 32 регистра уместилось?
---------- Post added at 22:57 ---------- Previous post was at 22:57 ----------
Эмулятор этого процессора есть?
shattered
17.02.2013, 23:00
Ну да, МикроПрограммное Устройство
---------- Post added at 23:00 ---------- Previous post was at 22:58 ----------
Эмулятора нет. Я буду приделывать его к MESS, пока сделал только модуль дизассемблера.
Регистры вроде лежат в 6 шт К155РУ2. Они не все одновременно доступны, а адресуются из команд.
shattered
17.02.2013, 23:05
И память тоже не напрямую доступна...
И память тоже не напрямую доступна...
А через что?
shattered
17.02.2013, 23:13
Через порты 00..05, как внешнее устройство
Эмулятора нет. Я буду приделывать его к MESS, пока сделал только модуль дизассемблера.
А прикрутить его можно только к эмулятору ДВК или подобному? И будет только текст? Сколько символов на сколько?
---------- Post added at 23:14 ---------- Previous post was at 23:13 ----------
Через порты 00..05, как внешнее устройство
А ПЗУ команд, разумеется, доступно напрямую?
Почему память так же не сделали?
shattered
17.02.2013, 23:18
К любому эмулятору, который можно дополнить другим cpu core, я думаю. MESS просто наиболее удобен для этого.
Да, только текст. Поле 80x25 символов (24 + 1 служебная), размер растра 800x275. Память на 80x48 символов.
Не знаю, почему так сделали, я не настоящий сварщик :-)
К любому эмулятору, который можно дополнить другим cpu core, я думаю. MESS просто наиболее удобен для этого.
Да, только текст. Поле 80x25 символов (24 + 1 служебная), размер растра 800x275. Память на 80x48 символов.
Не знаю, почему так сделали, я не настоящий сварщик :-)
А какие дампы ПЗУ считаны? ПЗУ программ считано целиком? Какие еще есть?
http://savepic.ru/4090299.png
На УК-НЦ очень прилично выглядит, как родной ) Не хуже )
А есть фотки рабочего терминала с изображением на экране?
А какие дампы ПЗУ считаны? ПЗУ программ считано целиком? Какие еще есть?
Еще есть ПЗУ знакогенератора, 3 штуки по 512 байт, итого 1536 байт. Емкость рассчитана на хранение рисунков 192 символов.
А есть фотки рабочего терминала с изображением на экране?
Вот (http://www.leningrad.su/museum/show_calc.php?n=283) и вот (http://www.leningrad.su/museum/show_calc.php?n=253).
http://emulator.pdp-11.org.ru/misc/PICT0163.jpg
Так это он? Тогда я его видел.
А как тогда выглядит настоящик КСМ?
Мне кажется, что на СМ-1420 такой же у нас был моник. Или просто похожий.
---------- Post added at 23:50 ---------- Previous post was at 23:50 ----------
Еще есть ПЗУ знакогенератора, 3 штуки по 512 байт, итого 1536 байт. Емкость рассчитана на хранение рисунков 192 символов.
Почему не сдамплено? Или же достаточно рисунка знакогенератора в инструкции?
А как тогда выглядит настоящик КСМ?
КСМ (http://www.leningrad.su/museum/show_big.php?n=1062) + КГД (http://www.leningrad.su/museum/show_big.php?n=1063).
Почему не сдамплено? Или же достаточно рисунка знакогенератора в инструкции?
Это не ко мне. Мне бы тоже интересно посмотреть.
КСМ (http://www.leningrad.su/museum/show_big.php?n=1062) + КГД (http://www.leningrad.su/museum/show_big.php?n=1063).
Свиду по буковкам на экране - один в один, как Фрязинский.
---------- Post added 18.02.2013 at 00:00 ---------- Previous post was 17.02.2013 at 23:58 ----------
Может назвать CPU как-то?
Скажем:
CPU 1513
CPU F1513
CPU F15
CPU F15013
CPU 15013
Матрицы знакогенератора в "общей части" у КСМ и 15ИЭ абсолютно одинаковые. Интерес представляет только псевдографика, если она была хоть у одного 15ИЭ ( form утверждает, что работал на таком ).
Это не ко мне. Мне бы тоже интересно посмотреть.
Сейчас пытаюсь дампить. Надеюсь, сегодня-завтра будет.
Прочитал 1 плату ГС, знакогенератор прилагается, псевдографики в этом экземпляре не обнаружено. Поскольку выход со сдвигового регистра, лень разбираться, сдвинуты символы влево или вправо на 8-битном знакоместе, поэтому оставлено 9 битов по ширине :)
Есть еще пара аналогичных раздербаненных плат, они пока не читаются, что-то погорело внутри.
Стандартная плата ГС, аналогичная которой прочитана, и для которой есть схема, выглядит как по ссылке:
http://asvcorp.ru/darch/hardware/pdp/fryazin-display/font.html
Но есть еще 1 плата из того 6-ПЗУшного комплекта, она тоже не читается, но у нее совсем другая схема и внешний вид, выходной сдвиговый регистр сделан на 1 шт К155ИР13, а не на 2 шт К155ИР1. Возможно, не читается из-за того, что чуть другая логика записи в выходной сдвиговый регистр. Есть у кого-нибудь схема такого варианта платы ГС ? Фотку платы тоже прилагаю.
Прочитал 1 плату ГС, знакогенератор прилагается, псевдографики в этом экземпляре не обнаружено. Поскольку выход со сдвигового регистра, лень разбираться, сдвинуты символы влево или вправо на 8-битном знакоместе, поэтому оставлено 9 битов по ширине :)
Есть еще пара аналогичных раздербаненных плат, они пока не читаются, что-то погорело внутри.
Если 9 бит, то интересно, какой бит лишний, левый или правый.
Если 9 бит, то интересно, какой бит лишний, левый или правый.
Вообще-то горизонтальное разрешение составляет 800 точек, то по идее две точки пустых, а между ними изображение из ПЗУ.
И кстати емкости ПЗУ хватает всего лишь на 192 символа, а тут адресация на 256.
На самом деле, само ПЗУ 7-битное, лишние оба :)
Но при отображении добавляется дополнительный нулевой бит то ли слева, то ли справа.
какой бит лишний, левый или правый.Правый - лишний.
Левый бит дековские знакогенераторы два раза повторяют справа (чтобы можно было рисовать сплошные горизонтальные линии). У наших матриц слева ни у одного символа битов нет, но именно левый бит пустой у КСМ.
---------- Post added at 00:50 ---------- Previous post was at 00:47 ----------
при отображении добавляется дополнительный нулевой бит то ли слева, то ли справа.7 битов символа + 3 бита промежутка.
У дековских знакогенераторов 1 + 7 + 2 , причём - правые два копируют самый левый.
7 битов символа + 3 бита промежутка.
У дековских знакогенераторов 1 + 7 + 2 , причём - правые два копируют самый левый.
Т.е. здесь именно три пустых и 7 информационных, причем пустые всегда пустые и ничего не копируют?
shattered
18.02.2013, 02:23
Небольшая разница между набранным и дампом есть, пока не придумал, как ее нагляднее показать.
Т.е. здесь именно три пустых и 7 информационных, причем пустые всегда пустые и ничего не копируют?У 15ИЭ ничего не копируют. У КСМ могли бы копировать ( если разработчики КСМ скопировали знакогенератор у дековцев ), но левый бит специально пустой для совместимости с 15ИЭ.
Сравнение матриц знакогенераторов КСМ и 15ИЭ-00-013:
KSM-15IE_CMP.lst (http://zx.pk.ru/attachment.php?attachmentid=39931)
...
Сравнение матриц знакогенераторов КСМ и 15ИЭ-00-013
За исключением псевдографики, отличия вроде видны только в строчных символах кириллицы.
Прочитал 1 плату ГС, знакогенератор прилагается
Почему, кстати, в таком странном формате, а не в бинарном?
А что на счет считывания ПЗУ микропрограмм? Оно же тоже может отличаться от документации.
---------- Post added at 12:58 ---------- Previous post was at 12:45 ----------
Кстати, как формировался курсор на дисплее?
За исключением псевдографики, отличия вроде видны только в строчных символах кириллицы.
Это все отличия ?
C2:...###... C2:...####..
C2:..#...... C2:..#......
C2:...#..... C2:...#.....
C2:...###... C2:...###...
C2:..#...#.. C2:..#...#..
C2:..#...#.. C2:..#...#..
C2:..#...#.. C2:..#...#..
C2:...###... C2:...###...
C3:......... C3:.........
C3:..#...#.. C3:..#...#..
C3:..#...#.. C3:..#...#..
C3:..#...#.. C3:..#...#..
C3:..#...#.. C3:..#...#..
C3:..#..##.. C3:..#..##..
C3:...##..#. C3:...##.##.
C3:.......#. C3:.......#.
C5:......... C5:.........
C5:...###... C5:...###...
C5:..#...#.. C5:..#...#..
C5:..#...#.. C5:..#...#..
C5:..####... C5:..#####..
C5:..#...... C5:..#......
C5:..#...... C5:..#......
C5:...###... C5:...####..
CA:....##... CA:....#....
CA:..#...#.. CA:..#...#..
CA:..#...#.. CA:..#...#..
CA:..#...#.. CA:..#...#..
CA:..#...#.. CA:..#...#..
CA:..#...#.. CA:..#...#..
CA:..#..##.. CA:..#..##..
CA:...##..#. CA:...##..#.
CF:......... CF:.........
CF:...###... CF:..#####..
CF:..#...#.. CF:..#...#..
CF:..#...#.. CF:..#...#..
CF:..#...#.. CF:..#...#..
CF:..#...#.. CF:..#...#..
CF:..#...#.. CF:..#...#..
CF:...###... CF:..#####..
D2:......... D2:.........
D2:..#.##... D2:..#.##...
D2:..##..#.. D2:..##..#..
D2:..#...#.. D2:..#...#..
D2:..##..#.. D2:..#...#..
D2:..#.##... D2:..####...
D2:..#...... D2:..#......
D2:..#...... D2:..#......
D3:......... D3:.........
D3:...###... D3:...###...
D3:..#...... D3:..#...#..
D3:..#...... D3:..#......
D3:..#...... D3:..#......
D3:..#...... D3:..#......
D3:..#...... D3:..#...#..
D3:...###... D3:...###...
D4:......... D4:.........
D4:.#.#..#.. D4:.#.#..#..
D4:.##.#..#. D4:.##.##.#.
D4:.#..#..#. D4:.#..#..#.
D4:.#..#..#. D4:.#..#..#.
D4:.#..#..#. D4:.#..#..#.
D4:.#..#..#. D4:.#..#..#.
D4:.#..#..#. D4:.#..#..#.
D5:......... D5:.........
D5:..#...#.. D5:..#...#..
D5:..#...#.. D5:..#...#..
D5:..#...#.. D5:..#...#..
D5:..#...#.. D5:..#..##..
D5:...##.#.. D5:...##.#..
D5:.....#... D5:......#..
D5:...###... D5:...###...
D7:...###... D7:...##....
D7:..#..#... D7:..#..#...
D7:..#.#.... D7:..#.#....
D7:..####... D7:..####...
D7:..#...#.. D7:..#...#..
D7:..#...#.. D7:..#...#..
D7:..#...#.. D7:..#...#..
D7:...###... D7:...###...
DA:......... DA:.........
DA:...###... DA:...###...
DA:..#...#.. DA:..#...#..
DA:......#.. DA:......#..
DA:....##... DA:.....#...
DA:......#.. DA:......#..
DA:..#...#.. DA:..#...#..
DA:...###... DA:...###...
DC:......... DC:.........
DC:...###... DC:...##....
DC:..#...#.. DC:..#..#...
DC:......#.. DC:......#..
DC:....###.. DC:....###..
DC:......#.. DC:......#..
DC:..#...#.. DC:..#..#...
DC:...###... DC:...##....
DE:......... DE:.........
DE:..#...#.. DE:..#...#..
DE:..#...#.. DE:..#...#..
DE:..#...#.. DE:..#...#..
DE:..#..##.. DE:..#...#..
DE:...##.#.. DE:...####..
DE:......#.. DE:......#..
DE:......#.. DE:......#..
---------- Post added at 12:15 ---------- Previous post was at 12:07 ----------
Кстати, как формировался курсор на дисплее?Для курсора были выделены три строки растра под каждым символом.
http://emulator.pdp-11.org.ru/misc/15IEsim.png
Для курсора были выделены три строки растра под каждым символом.
Это на Фрязинском или на КСМ?
Это на Фрязинском или на КСМ?На обоих.
Это все отличия ?
Нет, не все.
C2 ('б') и D4 ('m') еще чуть отличаются.
У 'б' в 15ИЭ хвостик длиннее на 1 точку, а в 'm' у КСМ визуально не хватает 1 точки где-то в середине - предполагаю битое ПЗУ КСМ или ошибку считывания КСМ.
---------- Post added at 12:29 ---------- Previous post was at 12:26 ----------
Почему, кстати, в таком странном формате, а не в бинарном?
Для наглядности, чтобы сразу видеть адекватность считывания. У меня программа читает его побитно, а потом формирует из битов матрицы в таком виде. В любой двоичный вид далее перенести не проблема.
C2 ('б') и D4 ('m') еще чуть отличаются.Добавил.
---------- Post added at 12:35 ---------- Previous post was at 12:32 ----------
В любой двоичный вид далее перенести не проблема.Для таких дел особенно хорош Perl - там конвертация строки символов в битовую строку и обратно выполняется одним махом:
$bits = unpack( "B*", $line );
$bits =~ s/0/./g;
$bits =~ s/1/#/g;
Но есть еще 1 плата из того 6-ПЗУшного комплекта, она тоже не читается, но у нее совсем другая схема и внешний вид, выходной сдвиговый регистр сделан на 1 шт К155ИР13, а не на 2 шт К155ИР1. Возможно, не читается из-за того, что чуть другая логика записи в выходной сдвиговый регистр. Есть у кого-нибудь схема такого варианта платы ГС ? Фотку платы тоже прилагаю.
На плате оказался сгоревший выходной элемент, после его выкусывания и закорачивания удалось прочитать эту плату ГС тоже. Знакогенератор оказался точно такой-же (не считая пары битых символов), псевдографики нет. Повторю, мне эта плата досталась в комплекте с платой ПЗУ с 6-ю микросхемами. Не факт, что они из одного терминала, но с некоторой вероятностью это так. Если так, тогда 6 ПЗУ не связаны с возможным наличием псевдографики в программе, но повторю, не факт, что они из одного терминала.
---------- Post added at 12:52 ---------- Previous post was at 12:39 ----------
А что на счет считывания ПЗУ микропрограмм? Оно же тоже может отличаться от документации.
Если речь о 2-х К155РЕ3, то, конечно, по хорошему надо бы прочитать, но это чуть менее тривиальная задача, если без их выпаивания. И все же емкость их не такая большая, можно надеяться, что в ТО ошибки нет :)
И все же емкость их не такая большая, можно надеяться, что в ТО ошибки нет :)
Можно. Но это совсем уж для чистоты эксперимента)
Это на Фрязинском или на КСМ?
На обоих.
На КСМ курсор формировался совершенно по другому принципу. Там было две страницы памяти - одна для отображения первых восьми строк, вторая для трех. К тому же со второй страницы символы мигали. Соответственно если нужен курсор, то в нужное место во второй странице заносился байт с кодом 127(0177), это в нашей кодировке - закрашенный прямоугольник, он и мигает (первые три строки). Там где курсора нет, то там пробелы. Так что на КСМ практически весь экран можно заполнить курсорами.
Кстати, подумал по поводу псевдографики. По схеме, 2 ПЗУ (D18 и D19) содержат по 64 символа (очевидно, латиница/кириллица) и 1 ПЗУ (D20) содержит 32 символа (очевидно, знаки и цифры) - у нее 1 вход адреса заземлен (вывод 23), уполовинивая набор и дублируя его дважды в таблице. Псевдографику в таком включении всунуть уже некуда физически, если только не взамен строчных букв или чего-то еще. Для существования псевдографики в знакогенераторе необходима либо еще микросхема ПЗУ, либо дополнительная дешифрация, связанная с выводом 23 микросхемы D20. На всех моих 4-х платах ГС разводка плат соответствует схеме с землей на выводе 23 D20. Так что с ними можно дальше не ковыряться. Если кто-то обнаружит у себя плату ГС с другой схемой с незаземленным выводом 23 у D20 - это потенциальный клиент на наличие псевдографики.
плата ГС 84-го года (7.819.209.2), 23-й вывод D20 заземлён.
Если кто-то обнаружит у себя плату ГС с другой схемой с незаземленным выводом 23 у D20 - это потенциальный клиент на наличие псевдографики.
Если я правильно помню и ничего не напутал, form говоря о псевдографике так-же говорил, что там и машинки были с ПО для проектировщиков\топологов, я подозреваю что для такого ПО псевдографика нужна как воздух, а при отсутствии проблем с финансированием и наличии спец-в могли и сами доработать под себя и\или заказать для себя же на производстве где-то? (мысли вслух).
В принципе, да, тогда не исключен вариант существования полукустарной доработки какого-то количества терминалов. Отрезать землю, завести линию адреса на ПЗУ, зашить в ПЗУ D20 произвольные дополнительные 32 символа, и далее свое спецПО будет знать, что вместо дублирования цифр/знаков в адресах A0-BF там что-то другое.
---------- Post added at 23:47 ---------- Previous post was at 23:38 ----------
Кстати, интересно провести такую доработку на обычном ГС и поглядеть, что лежит в неиспользуемой половине D20. Правда, думаю, ничего там нет...
yursav, штука ещё в том, что у меня в школе в Зеленограде стоял ДВК, псевдографики там не было, единственная графика была когда (время от времени) приводили в чувство модуль КГД ) Монитор(дисплей) был зелёного свечения.
Когда КГД работал - работали и игры от ASPcorp. всем известные Land и PifPaf.
Не очень понятно, какая связь может быть между КГД (ДВК3) и 15ИЭ. Имхо, независимо от цвета люминофора, если используется КГД, то 15ИЭ уже не при делах... С КГД ясно, что любая графика может быть, но использует, насколько помню, что-то типа врезки в видеосигнал совместно с КСМ. А 15ИЭ - автономный терминал себе на уме, отображает только то, что умеет, и подключается к ДВК по последовательному интерфейсу, а не по видео.
Для очистки совести поглядел содержимое неиспользуемой части D20 на паре плат ГС. Как и ожидалось, ничего там нет.
если используется КГД, то 15ИЭ уже не при делах...Это если кабель то компьютера до терминала протянут на "телеграфную" дальность. А когда корзина терминала стоит на корзине процессора - пустить видеосигнал в монитор не напрямую, а через КГД - задача чисто "паяльная".
Получается забавный "бутерброд" - сначала байты бегут по токовой петле из системного блока в корзину терминала, потом сигнал видео идёт по видео-кабелю из корзины терминала в системый блок, а потом опять по видео-кабелю из системного блока или сразу в монитор, или обратно в корзину терминала, а оттуда в монитор ( если не хочется тянуть к системному блоку видео-кабели и от корзины терминала и от монитора ).
Получается забавный "бутерброд" - сначала байты бегут по токовой петле из системного блока в корзину терминала, потом сигнал видео идёт по видео-кабелю из корзины терминала в системый блок, а потом опять по видео-кабелю из системного блока или сразу в монитор, или обратно в корзину терминала, а оттуда в монитор ( если не хочется тянуть к системному блоку видео-кабели и от корзины терминала и от монитора ).
то же самое и с КСМом, он подключён к вычислителю через последовательный порт.
Кстати, так никто и не проверил, в КГД и КСМ каким образом складываются изображения? По OR или по ADD?
И еще, на сколько они хорошо центрованы друг относительно друга?
Это если кабель то компьютера до терминала протянут на "телеграфную" дальность. А когда корзина терминала стоит на корзине процессора - пустить видеосигнал в монитор не напрямую, а через КГД - задача чисто "паяльная".
Получается забавный "бутерброд" - сначала байты бегут по токовой петле из системного блока в корзину терминала, потом сигнал видео идёт по видео-кабелю из корзины терминала в системый блок, а потом опять по видео-кабелю из системного блока или сразу в монитор, или обратно в корзину терминала, а оттуда в монитор ( если не хочется тянуть к системному блоку видео-кабели и от корзины терминала и от монитора ).
Осталось выяснить, был ли такой бутерброд "в школе в Зеленограде" у hobot :)
Понятно, что с паяльником можно навернуть много чего, но, честно, сомневаюсь, что кто-то сопрягал таким образом КГД с 15ИЭ.
---------- Post added at 18:39 ---------- Previous post was at 18:31 ----------
Вот же ж блин, а в ТО КГД черным по белому написано, что обеспечивает подключение к 15ИЭ. Беру слова обратно, похоже такой вариант вполне мог существовать.
Кстати, так никто и не проверил, в КГД и КСМ каким образом складываются изображения? По OR или по ADD?
Замешивание инвертированных видеосигналов на И-НЕ
Замешивание инвертированных видеосигналов на И-НЕ
Понятно, т.е. по OR.
А как синхронизацией, чтобы одно изображение было ровно над другим?
А как синхронизацией, чтобы одно изображение было ровно над другим?
Ну как, там идет какая-то привязка счетчиков к ССИ и КСИ, но генератор свой. То есть, слева изображение будет хорошо всегда привязано относительно ССИ, но вдоль строки слева направо, если частоты генераторов точек сильно будут отличаться, масштаб привязки может на разных экземплярах чуть расходиться, но стоять все равно должны хорошо, поскольку обе частоты точек кварцованы.
shattered
19.02.2013, 21:57
Починил ошибки в дизассемблере, залил новые листинги на прежнее место -- https://gist.github.com/shattered/4971416
---------- Post added at 21:57 ---------- Previous post was at 21:33 ----------
Интересный факт:
При любом обращении к ЗУ, в конце цикла обращения производится наращивание адреса ЗУ на 1. Следовательно, если производится обращение к массиву ячеек ЗУ, нет необходимости каждый раз загружать абсолютный адрес ячейки памяти.
shattered, когда ждать эмулятор? :)
Ну, очевидно, что ошибка по адресу 3B6 именно в dump3.txt.
В dump1 логичная последовательность: в r4 грузится число строк-1, в r3 грузится число столбцов-1 и далее какой-то цикл по строкам в r4 и столбцам в r3. А в dump3 вместо r4 бессмысленно грузится r12. Так что dump3 можно с чистой совестью выбрасывать и использовать dump1 как с очень большой вероятностью годный дамп из 5-ПЗУшного варианта (поскольку в остальном он совпал с дампом dump3 из другой платы). Что касается dump5 (из 6-ПЗУшного варианта), то в части отличий от dump1 существует вероятность искажения битов ПЗУ от времени. В моих платах ГС, где стоят такие же ПЗУ КР556РТ5 тех же лет, ошибок достаточно много! Для уверенности надо бы найти еще 1 плату с 6-ю ПЗУ и считать ее для сравнения.
---------- Post added at 21:21 ---------- Previous post was at 21:20 ----------
Жалко дизассемблер комментарии не пишет :)
shattered
19.02.2013, 22:47
Начал читать код dump1 -- неясно, что происходит с адресацией памяти. В ТО описан вариант с памятью в 4K, но первое, что делает прошивка -- заполняет ее 0x1f00 (7936) пробелами, а дальше выставляются адреса 0xa0f1 и 0x80f4
---------- Post added at 22:47 ---------- Previous post was at 22:39 ----------
Тут бы пригодилась запись того, как терминал стартует (что происходит на экране)...
Тут бы пригодилась запись того, как терминал стартует (что происходит на экране)...
Надо просить\обращаться к обладателям живых экземпляров, правда на форуме уже
не один раз были запросы на разные фотки касательно ДВК и глухо, никто ничего не сфотал (
Вот же ж блин, а в ТО КГД черным по белому написано, что обеспечивает подключение к 15ИЭ. Беру слова обратно, похоже такой вариант вполне мог существовать.
Я 100% гарантирую, поскольку сам помню моменты когда КГД - приезжал из ремонта (праздник = кот-рыболов, лэнд, пиф-паф, космические захватчики, игры короче говоря) и уезжал, тогда праздник уже начинался у тех кто программы отлаживал и кодил им машинного времени больше доставалось. Для игр конечно больше использовались БКашки (правда там мониторы были ну совсем совсем убогие, крошечные такие Ч\Б) и УК-НЦ. ДВК то был один!!! С него грузили игры на БК, на нём часть ребят учила ПАСКАЛЬ и Ассемблер, а часть на РМП УК-НЦ). Из за
MX нельзя было свои дискеты и там и там использовать, позднее прокачали ДВК установив MY контроллер и дисководы новые.
Вот что за плата "Пегас" упоминается тут? Вариант КГД(двух-цветная) ?>
http://pk-info.ru/infopk/dvk/aspcorp1.html
---------- Post added at 23:36 ---------- Previous post was at 23:32 ----------
Так как ДВК у нас был с платами Пегас (черно-зелеными), то мы никогда не создавали цветных игр. - цитата оттуда.
В ТО описан вариант с памятью в 4K, но первое, что делает прошивка -- заполняет ее 0x1f00 (7936) пробелами
Возможно, просто программная задержка, например для запуска строчных/кадровых разверток или еще чего...
а дальше выставляются адреса 0xa0f1 и 0x80f4
Нет, если посмотреть на схему, ota2 записывает старшие 11..04 разряды адреса, а ota3 записывает 03..00 разряды адреса, но берет их из старшей тетрады!
То есть, здесь адреса 0x0f1a и 0x0f48, соответственно.
shattered
19.02.2013, 23:48
В коде есть обращения к порту 7 (чтение) и флагу 5 (чтение) -- они не описаны. Возможно, флаг 5 -- это триггер переноса
...но первое, что делает прошивка -- заполняет ее 0x1f00 (7936) пробелами, ...
Возможно, просто программная задержка, например для запуска строчных/кадровых разверток или еще чего...
Это видеопамять пробелами заполняется, чтобы ничего на экране не отображалось.
Вот теперь понять бы, изображение формируется программно? Что-то не видно в схеме блока для аппаратного формирования, кроме как платы генератора символов.
В коде есть обращения к порту 7 (чтение) и флагу 5 (чтение) -- они не описаны. Возможно, флаг 5 -- это триггер переноса
Чтение порта 7 вроде никуда не идет (висит в воздухе). Можно предположить, что это чтение текущего значения шины данных. Поскольку на ней подтяжка к +5В, и в данный момент никто с ней не работает, то, возможно, это чтение значения 0xff, т.е. -1?
Чтение флага 5 - может быть сброс триггера переноса?
---------- Post added at 23:44 ---------- Previous post was at 23:38 ----------
Это видеопамять пробелами заполняется, чтобы ничего на экране не отображалось.
Это понятно, что она заполняется пробелами, речь шла, что пробелов сильно больше, чем надо. Скорее всего, решили, что экран пробелом не испортишь, и совместили очистку с задержкой :)
Вот теперь понять бы, изображение формируется программно? Что-то не видно в схеме блока для аппаратного формирования, кроме как платы генератора символов.
Да, вопрос интересный. В ЗУ есть режим непрерывной индикации (при активном сигнале РИН, формируемом ГС), когда он сам инкрементирует счетчики и формирует сигнал вывода символа ЗСРВ в ГС. Пока я бы предположил, что процессор должен следить за строчными и кадровыми синхроимпульсами, в начале строк записывать начальные значения счетчиков и во время индикации в ЗУ не лезть, чтобы не сбить счетчики. Тогда лезть можно только во время обратного хода лучей.
shattered
20.02.2013, 00:50
Нет условных команд, которые учитывают его значение, так что скорее чтение, чем сброс.
---------- Post added at 00:48 ---------- Previous post was at 00:46 ----------
Эмулировать это будет весело. Начну с эмуляции команд nop и jmp :-)
---------- Post added at 00:50 ---------- Previous post was at 00:48 ----------
Любопытно будет посмотреть, как сделаны часы.
И что таки означают группы цифр в служебной строке. В ТО сказано, например: "переход на формирование семибитных кодов осуществляется при установке "1" в 3 разряде второй группы цифр".
Чтение флага 5 - может быть сброс триггера переноса?
Нет условных команд, которые учитывают его значение, так что скорее чтение, чем сброс.
Любое обращение к управляющему флагу 5 командами CFL и SFL - это сброс триггера переноса. А вот чтобы сделать пропуск по значению триггера переноса командами SFC и SFS - уже надо читать флаг 6.
Нет условных команд, которые учитывают его значение, так что скорее чтение, чем сброс.
Вроде бы, по схеме обращение к 5 флагу по любому циклу (запись/чтение) формирует сигнал СФЛ5Н. Меня смутило, что он идет на сигнал установки триггера переноса, но сама логика триггера может быть инверсной. Вопрос был, что за первая С в названии, я предположил, что СБРОС. Но надо было не гадать, а посмотреть список сокращений на странице 5 ТО - СФЛ5Н Сброс управляющего флага 5. Так что, все же думаю, что чтение флага 5 - сброс триггера переноса. (Что это за триггер и зачем нужен - еще не читал :) )
---------- Post added 20.02.2013 at 00:00 ---------- Previous post was 19.02.2013 at 23:59 ----------
А, ну Alex_K уже разъяснил.
Да, вопрос интересный. В ЗУ есть режим непрерывной индикации (при активном сигнале РИН, формируемом ГС), когда он сам инкрементирует счетчики и формирует сигнал вывода символа ЗСРВ в ГС. Пока я бы предположил, что процессор должен следить за строчными и кадровыми синхроимпульсами, в начале строк записывать начальные значения счетчиков и во время индикации в ЗУ не лезть, чтобы не сбить счетчики. Тогда лезть можно только во время обратного хода лучей.
Следит, есть команды опроса флага 0 (строчный синхроимпульс) и флага 2 (обратный ход кадровой развертки). Есть даже циклы, которые тупо ждут изменения состояния флага.
И что таки означают группы цифр в служебной строке. В ТО сказано, например: "переход на формирование семибитных кодов осуществляется при установке "1" в 3 разряде второй группы цифр".
Так это же настройки ) !
shattered, только не говорите что живую машинку не гоняли сами?
Вот весело - эмуляторы пишутся )
shattered
20.02.2013, 01:42
Обновил таблицы портов, флагов в посте http://zx.pk.ru/showpost.php?p=572595&postcount=2
Запись в порт 016, похоже, переключает страницы регистров.
Из ТО (мне :-) неясно, куда попадают данные с линии.
---------- Post added at 01:40 ---------- Previous post was at 01:39 ----------
Неа, не гонял, надо добраться до какого-нибудь клуба любителей вычтехники и там посмотреть
---------- Post added at 01:42 ---------- Previous post was at 01:40 ----------
Ну и вдогонку -- не все, что эмулируется, еще можно потрогать
Как пример -- ЭВМ М-20, на которой работала Каисса (исходники которой, кстати, найдены и опубликованы)
Обновил таблицы портов, флагов в посте http://zx.pk.ru/showpost.php?p=572595&postcount=2
Запись в порт 016, похоже, переключает страницы регистров.
Кстати, управляющие флаги, которые устанавливаются и сбрасываются командами SFL и CFL, а также флаги, которые проверяются командами SFC и SFS, это абсолютно разные вещи. Так что триггер переноса сбрасывается при любой команде сброса CFL и установки SFL управляющего флага 5, а вот читается его состояние командами SFC и SFS уже из флага 6. А так как читаемый флаг 7 висит на земле, то поэтому команда SFS 7 есть NOP, а SFC 7 соответственно SKP.
Как я понял, запись в порт 016 включает одну страницу регистров, а запись в порт 017 - другую. И соответственно при записи в регистр в старшую его часть (разряды 11-08) автоматически пишутся соответствующие биты адреса, поэтому при переходе по JMI используется только младшая часть, а старшая часть адреса уже была установлена при записи в регистр.
shattered
20.02.2013, 23:40
Очень тупой драйвер для MESS: https://gist.github.com/shattered/4698887
Умеет показывать картинку из памяти (загрузить ее туда можно из отладчика: "load a.txt,8000,0") и мигать курсором, вместо родного процессора подключен 8080.
Умеет показывать картинку из памяти (загрузить ее туда можно из отладчика: "load a.txt,8000,0") и мигать курсором, вместо родного процессора подключен 8080.
А полноценный эмулятор когда будет?
shattered
20.02.2013, 23:55
Пока не рискну что-то обещать. Следите за новостями :-)
Пока не рискну что-то обещать. Следите за новостями :-)
Если бы не был так занят, сам бы написал. Очень люблю экзотические никем не написанные эмуляторы. Но, только если под них есть софт.
shattered
21.02.2013, 00:29
Софт есть. Вот еще пишут на соседнем форуме (http://bk0010.org/forum/?id=11531), что
"Позние версии терминала назывались по-другому - там много чего было..."
shattered
23.02.2013, 15:04
Пилю cpu core.
6-чиповая прошивка читает флаг 3, а 5-чиповая нет.
6-чиповая прошивка читает флаг 3, а 5-чиповая нет.
и?
shattered
23.02.2013, 15:35
Пока не знаю, что это значит.
Пока не знаю, что это значит.
На сколько процентов эмулятор готов?)
shattered
23.02.2013, 15:51
На 80%. Помните про закон 80/20?
На 80%. Помните про закон 80/20?
Да) 80/20=4)
shattered
23.02.2013, 17:15
Если серьезно, то эмуляция cpu почти готова, нужно делать эмуляцию поведения устройств (работа с памятью, флаги, стык С2 и пр.)
Результат на сегодня:
http://img-fotki.yandex.ru/get/4115/264743.2/0_88b43_c01b3c89_XL.jpg (http://fotki.yandex.ru/users/shattered/view/559939/)
Посмотрел, с 5-м флагом все-таки неправильно. Установка или сброс флага 5 вызывают сброс триггера переноса. А вот при чтении (проверке) 5-й флаг - это старший бит аккумулятора, т.е. знак аккумулятора, скорее всего, подразумевается.
7-й флаг при чтении (проверке) всегда 0.
Непонятно, откуда взялась информация, что флаг 3 - "3 I: 25 служебная строка" ?
По схеме вроде на вход 3-го флага заводится выход 7-го флага, который якобы переключает 7/8-битный режим?
Опять же, судя по схеме корзины, 7-й флаг реально в ЗУ не заводится, то есть 7-битный режим не используется. Возможно в этом отличие 6-чиповых и 5-чиповых прошивок (может в корзине для 6-чиповых флаг заводится в ЗУ). Тогда, в 6-чиповой возможно есть некий дополнительный 7-битный режим, а в 5-чиповой его выкинули за ненадобностью, поэтому и 3-й флаг не проверяется в прошивке.
shattered
24.02.2013, 01:12
при чтении (проверке) 5-й флаг - это старший бит аккумулятора, т.е. знак аккумулятора, скорее всего, подразумевается.
Ага, я пока вывел в него признак A == -1 (то, что называется "триггером A=B" в ТО). (Схему еще не разглядывал.)
?-й флаг при чтении всегда 0.
Какой? :)
Непонятно, откуда взялась информация, что флаг 3 - "3 I: 25 служебная строка" ?
Из ТО, сейчас его нет под рукой, чтобы процитировать.
Осознал, что не хватает руководства пользователя, чтобы объяснить, что значат разные режимы клавиатуры (СДВ, например).
Какой? :)
Очепятка была. Текст уже поправил.
---------- Post added at 00:20 ---------- Previous post was at 00:17 ----------
Из ТО, сейчас его нет под рукой, чтобы процитировать.
Думаю, я правильнее описал в предыдущем сообщении смысл флага по факту схемы.
shattered
24.02.2013, 01:23
Надо уточнить, какие команды влияют на состояние триггера А=В, пока что считаю, что все, в которых идет запись в аккумулятор.
Надо уточнить, какие команды влияют на состояние триггера А=В, пока что считаю, что все, в которых идет запись в аккумулятор.
Триггер этот весчь очень хитрая :). Да, он записывается всегда вместе с записью выходного буферного регистра АЛУ. А сам сигнал лог.1 на входе триггера формируется, когда на выходе АЛУ появляется значение все 1, т.е. 0xFF. Когда это значение формируется - надо разбираться по схеме/описанию микросхемы АЛУ КР531ИП3.
---------- Post added at 00:43 ---------- Previous post was at 00:31 ----------
Да, запись в буферный регистр АЛУ идет по сигналу ЗБАЛУ - в каких командах он формируется можно посмотреть в прошивке 155РЕ3 из ТО. Но при этом результат записи буферного регистра АЛУ и триггера A=B зависит еще от того, в первом или втором такте команды формируется ЗБАЛУ (поскольку на входы АЛУ в 1-м и 2-м тактах могут подаваться разные данные).
shattered
24.02.2013, 12:37
Про флаг 3 в ТО написано (раздел 6.1.3.1, лист 43, страница djvu 44)
По окончании сигнала ОКРН в зависимости от состояния сигнала ФЛ3Н может высвечиваться 25 служебная строка
Так что он управляющий.
Про флаг 3 в ТО написано (раздел 6.1.3.1, лист 43, страница djvu 44)
По окончании сигнала ОКРН в зависимости от состояния сигнала ФЛ3Н может высвечиваться 25 служебная строка
Так что он управляющий.
Ну то есть, должно быть не I, а O, т.е.:
на вывод "3 O: 25 служебная строка"
а на ввод "3 I: ввод флага ФЛ7В"
---------- Post added at 13:42 ---------- Previous post was at 12:13 ----------
Вывод в порт 17 (ota #$0f) включает 0-ю страницу РОН, а вывод в порт 16 (ota #$0e) включает 1-ю страницу РОН.
shattered
24.02.2013, 15:09
Пока неясно, что такое
- управляющие флаги 0, 1
- запись в порт 015 (0Dh)
- чтение порта 7
Неясно, почему биты состояния отрисовываются на не месте. Может быть, порт 015 = сброс адреса ЗУ?
Пока неясно, что такое
- управляющие флаги 0, 1
Где про управляющие флаги 0 и 1 говорится? Что за флаги?
В схеме есть У0Н и У1Н, которые включают низким уровнем соответствующую страницу РОН (0 или 1) через вывод в порты 17 и 16 соответственно, как написано в моем предыдущем сообщении.
Остальное попробую посмотреть.
---------- Post added at 14:39 ---------- Previous post was at 14:27 ----------
Вывод в порт 015 является сигналом "~Сброс флага", который идет на клавиатуру и сбрасывает там флаг ФКН, который вводится из порта 13.
Да, все биты, которые вводятся из портов 01 (ФПРН), 10 (ФПЕРВ), 12 (РЕДВ), 13 (ФКН), 14 (СДВВ), 15 (ДКВ), 16 (ДУПЛН), 17 (ЛИНВ) вводятся через старший бит байта.
shattered
24.02.2013, 15:43
Где про управляющие флаги 0 и 1 говорится? Что за флаги?
В схеме есть У0Н и У1Н, которые включают низким уровнем соответствующую страницу РОН (0 или 1) через вывод в порты 17 и 16 соответственно, как написано в моем предыдущем сообщении.
В прошивке
0000006B: C8 sfl #0
0000006C: FD ota #$0d
0000006D: 67 lla #$07
0000006E: C1 cfl #1
В прошивке
0000006B: C8 sfl #0
0000006C: FD ota #$0d
0000006D: 67 lla #$07
0000006E: C1 cfl #1
ОК, что-то протормозил.
Пока можно сказать, что флаг 0 низким уровнем блокирует прохождение сигнала ЗСРВ в плате ГС, что запрещает загрузку выходного сдвигового регистра видео данными из ПЗУ знакогенератора и регистр продолжает гнать нули на выходе вместо изображения символов.
---------- Post added at 15:19 ---------- Previous post was at 15:12 ----------
То есть, например, если в момент строчного синхроимпульса процессор сбросит флаг 0, то это погасит строку (битовую). В символе 11 битовых строк - 8 для данных знакогенератора и 3 маркерных строки, когда активен сигнал МСВ (вводится через флаг 1).
По выводу флага 1 надо выяснять дальше...
Ну что ж, по поводу флага 0 надо добавить, что низким уровнем он также блокирует формирование сигнала РИН (режим индикации), который разрешает автоинкремент счетчика символов в ЗУ при индикации. Таким образом, при сброшенном флаге 0 процессор может спокойно работать с ЗУ.
Сброшенный флаг 1 разрешает стандартную блокировку отображения во время 3 маркерных строк (также запретом ЗСРВ) под символами.
Установленный флаг 1 включает режим 5 Гц запрета/разрешения отображения во время 3 маркерных строк. Т.е., очевидно разрешает мигать курсору. Но, похоже, что он должен включаться программно строго во время формирования МСВ (активен вдоль всех 3 битовых маркерных строк), но только на время отображения того символа, под которым курсор! Т.е., похоже, процессор как-то должен программно отслеживать (может по жесткой времянной привязке выполнения команд к времени отображения строки?) момент отображения курсора и в этот момент включать флаг 1, а потом сразу выключать?
Флаг 3, повторю, также блокировкой ЗСРВ, запрещает отображение всей символьной служебной строки.
---------- Post added at 17:28 ---------- Previous post was at 17:24 ----------
Сигнал чтения порта 7, повторю, никуда не идет. Проверил даже на реальной корзине 15ИЭ! То есть, скорее всего, чтение порта 7 - просто загрузка значения -1 (0xFF) в аккумулятор. Может рудимент какой-то старой корзины, но сейчас должен приводить просто к указанному результату.
shattered
24.02.2013, 19:29
Спасибо за исследования, они очень помогают.
Кривенько, но заработал local mode. Курсор пока ненастоящий.
http://img-fotki.yandex.ru/get/6445/264743.2/0_88bbe_646ec5a7_XL.jpg (http://fotki.yandex.ru/users/shattered/view/560062/)
Стараемся, взаимное спасибо за усилия по эмуляторам :)
Добавлю:
Отображение одного символа (10 точек строки - 10 импульсов СИН0) равно выполнению 2 команд. То есть для отображения курсора проц теоретически может считать строки символов (возможно ориентироваться по имульсам МСВ). При формировании МСВ в подстроке с курсором по каждому строчному синхроимпульсу можно загрузить счетчик номером столбца курсора (может плюс-минус 1 или 2), сделать столько двухкомандных декрементов по счетчику, потом выполнить что-то типа sfl #1, nop, cfl #1.
Но что-то я такого в прошивке не нахожу :(.
Чем-то похожий фрагмент:
000000C0: C9 sfl #$01
000000C1: 6C lla #$0c
000000C2: 85 sfc #$05
000000C3: C1 cfl #$01
Но что-то не сходится по описанной выше времянке :(
Еще по поводу отображения спецсимволов:
Спецсимволы - те, у которых разряды 5 и 6 номера равны 0. Для такого символа в номере на входе знакогенератора устанавливается бит 6 (т.е. 0x00 становится 0x40 и т.д.), далее при РЕДВ=1 они гасятся (также через блокировку ЗСРВ), а при РЕДВ=0 мигают с частотой 5 Гц, как курсор.
Кстати, по поводу реальной эмуляции отображения - кто помнит, у 15ИЭ точки были явно видны. Выходной сигнал ГС стробируется по И с частотой точек, поэтому каждая точка отделяется от соседней по горизонтали таким же промежутком :). А по вертикали промежуток, очевидно, обеспечивался большой скоростью вертикальной развертки из-за низкого числа строк по вертикали.
По поводу отображения курсора есть у меня смутное подозрение, что используется область памяти с адреса 0xF50. В нужную позицию при выводе просто записывается байт с кодом 127 (0x7F). Есть еще строка с адреса 0xFA0, она в коде также используется.
Кстати, по поводу реальной эмуляции отображения - кто помнит, у 15ИЭ точки были явно видны. Выходной сигнал ГС стробируется по И с частотой точек, поэтому каждая точка отделяется от соседней по горизонтали таким же промежутком :). А по вертикали промежуток, очевидно, обеспечивался большой скоростью вертикальной развертки из-за низкого числа строк по вертикали.
Получется, для полной красоты нужен формат соотношением примерно 7 на 5 (точно 22 на 15) и размером в пикселях (80x10x2) x (11x25x2) = 1600 x 550 :)
shattered
24.02.2013, 21:07
Для подобных украшений в MESS есть поддержка pixel shaders:
http://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=69832
По поводу отображения курсора есть у меня смутное подозрение, что используется область памяти с адреса 0xF50. В нужную позицию при выводе просто записывается байт с кодом 127 (0x7F). Есть еще строка с адреса 0xFA0, она в коде также используется.
Да, интересный вариант, код не смотрел, но по процитированному вполне может быть, так гораздо проще жить для проца.
Да, интересный вариант, код не смотрел, но по процитированному вполне может быть, так гораздо проще жить для проца.
Просто в сдвиговые регистры D13 и D14 либо можно загружать рисунок символа, либо запретить загрузку. При запрете загрузки там будет ноль, т.к. вдвигается нулевой бит. Ничего такого в схеме, чтобы на время отображать белый цвет, я не увидел.
С адреса 0x267 (что-то и раньше) есть соответствующий код. Он вычисляет адрес, начинающийся с 0xF50, а затем заносит в память значение регистра R7.
Я предполагал еще теоретически возможный вариант для отображения курсора, что в регистр кода символа может записываться код 0xFF при невыборе ОЗУ символов во время маркерных строк, но по схеме это не проверял. Но с отдельной курсорной строкой в памяти все логично выглядит.
shattered
24.02.2013, 22:42
Очень похоже, что служебная строка хранится, начиная с 0xF00 и ГС оттуда ее и читает.
Очень похоже, что служебная строка хранится, начиная с 0xF00 и ГС оттуда ее и читает.
Да, так и получается. Значение скорости передачи начинается с 0xF1B, параметры с 0xF24, часы с 0xF48. Отображаемые символы, кроме часов, находятся друг за другом через знакоместо. И во время инициализации в эти знакоместа записываются управляющие символы, которые по идее должны мигать в режиме "Не Редактирование".
Очень похоже, что служебная строка хранится, начиная с 0xF00 и ГС оттуда ее и читает.
ГС прочитает оттуда, какой адрес занесет проц в регистр адреса ЗУ после/в конце импульса обратного хода кадровой развертки. Если проц пишет 0xF00, значит так оно и есть...
0xF00 это 3840 = 48x80, или 2 экрана по 24 строки по 80 символов. Вполне за ними может быть служебная строка.
shattered
24.02.2013, 23:25
Сделал так, отключив мигание для служебной строки. На месте часов нечто странное; последний символ меняется (от 00 до FF) быстрее раза в секунду.
http://img-fotki.yandex.ru/get/5635/264743.2/0_88bd6_13939f40_XL.jpg (http://fotki.yandex.ru/users/shattered/view/560086/)
быстрее раза в секунду.
таймер? )
shattered
25.02.2013, 00:16
Счетчик КСИ, скорее
shattered
25.02.2013, 23:39
Осознал, что не хватает РЭ терминала -- я сам его видел давно и издалека. В теме про документацию (http://zx.pk.ru/printthread.php?t=2348) его пока на нашел.
Что, собственно, означают для терминала режимы ПЧ ДУП ЛИН РЕД СДВ ОЧС?
Предполагаю, что РЕД либо СДВ отключают обработку управляющих кодов (то, что в VT100 и пр. называется режимом 'display controls/interpret controls')
Осознал, что не хватает РЭ терминала -- я сам его видел давно и издалека. В теме про документацию (http://zx.pk.ru/printthread.php?t=2348) его пока на нашел.
Что, собственно, означают для терминала режимы ПЧ ДУП ЛИН РЕД СДВ ОЧС?
Предполагаю, что РЕД либо СДВ отключают обработку управляющих кодов (то, что в VT100 и пр. называется режимом 'display controls/interpret controls')
Кое-что про 15ИЭ-00-013 описано в книге И.В.Захарова "Техническое обслуживание и эксплуатация микроЭВМ "Электроника-60М". Глава 7.1 - этакое мини-руководство пользователя. Где-то на форуме проскакивали ссылки.
shattered
26.02.2013, 00:22
Ага, эта книга у меня есть, почитаю.
Что, собственно, означают для терминала режимы ПЧ ДУП ЛИН РЕД СДВ ОЧС? Предполагаю, что РЕД либо СДВ отключают обработку управляющих кодовНадо думать, что при отжатии РЕД - управляющие коды начинают заноситься в буфер текста и отображаться как мигающие символы.
СДВ - при нажатии переводит терминал в режим настройки параметров управляющей строки.
ОЧС - ( надо думать ) - выполняет повторную инициализацию ( экран очищается ).
ДУП - при нажатии перестаёт посылать на экран локальное эхо нажимаемых клавиш
ЛИН - при нажатии подключает терминал к линии ( а при отжатии что делает - замыкает выход на вход ? )
shattered
26.02.2013, 22:02
... И вот что пишут в книге (hint: полностью описана служебная строка):
Характер взаимодействия дисплея с внешними устройствами определяется режимными (с фиксацией) клавишами «ЛИН», «ДУП», «ПЧ». Этим клавишам соответствуют следующие режимы работы:
«ЛИН» — «Линия» («Автономный»);
«ДУП» — «Дуплекс» («Полудуплекс»);
«ПЧ» —«Печать» («Передача»),
В скобках указаны режимы, соответствующие выключенной клавише. Включение клавиши обеспечивается ее нажатием до состояния фиксации и индицируется соответствующим светодиодом.
Автономный режим характеризуется отсутствием обмена информацией с внешним устройством. Коды с клавиатуры, соответствующие данным, запоминаются в ЗУ дисплея и отображаются; коды, соответствующие командам, отрабатываются согласно табл. 31. Отработка команд происходит только в режиме «Редактирование»: нажата клавиша «РЕД», при этом загорается соответствующий светодиод. Когда режим «Редактирование» выключен, коды команд записываются в ЗУ дисплея и на экране отображаются с мерцанием частотой 5 Гц. В режиме «Редактирование» символы, соответствующие кодам неотработанных команд, отображаются как «ПРОБЕЛ». Режим «Редактирование» отключается при блочной передаче массива данных.
Передача данных и команд с ЗУ дисплея во внешние устройства может осуществляться в знаковом и блочном режимах. В обоих случаях должны быть установлены режимы «Линия» и «Передача».
Знаковый режим — передача данных и команд только с клавиатуры. Блочный режим — передача данных и команд с ЗУ дисплея. Различие этих режимов для внешнего устройства в том, что они характеризуются разным темпом поступления информации. В первом случае она поступает в темпе работы оператора на клавиатуре, во втором случае обусловлена выбором скорости обмена.
Включение блочного режима производится командами «Передача строки» и «Передача страницы». Данные и команды с клавиатуры игнорируются до конца отра*ботки этих команд. Если в строке 25 установлен режим «Синхронизация обмена», внешнее устройство может прерывать передачу данных и кодов с ЗУ дисплея командами «Прекратить передачу» и «Возобновить передачу». При передаче данных и команд в блочном режиме в дисплее предусмотрена компрессия передачи, которая заключается в том, что пробелы в конце текущей передаваемой строки не передаются, также не передается строка, если она состоит из одних пробелов. При необходимости соблюдения формата передаваемого блока оператор может ввести в строке 25 режим «АВТО ПС, ВК при передаче».
Прием данных и команд в дисплей от внешнего устройства осуществляется только в режимах «Линия» и «Дуплекс».
В режимах «Линия» и «Полудуплекс» данные и команды принимаются как с линии, так и с клавиатуры.
На задней стенке дисплея установлены переключатели, которые могут коммутировать выходы передатчиков на линию с входами приемников с линии: в режиме «СТЫК 2» — положение «Т2», а в режиме «20 мА токовая петля» — положение «Т1».
Если отсутствует связь с внешним устройством в режимах «Линия», «Дуплекс», необходимо установить переключатели в соответствующие положения. При исправности передатчиков и приемников дисплея он будет работать в режиме, соответствующем режиму «Автономный».
Для выполнения дополнительных функций при работе с помощью клавиатуры устанавливаются II—V группы разрядов, отображаемых в служебной строке 25 экрана. Если в разряде стоит 0, то дополнительная функция выполняется, если стоит 1, то не выполняется. В составе служебной строки содержится шесть групп цифр.
Группа I определяет скорость обмена информацией по линиям связи (9600, 4800, 2400, 1200, 600, 300, 150, 75 бит/с).
Во II группе:
разряд 1 — сдвиг маркера;
разряд 2 — автоповтор клавиатуры (позволяет выдавать код нажатой клавиши с частотой 15 Гц, если она нажата более чем 1 с);
разряд 3 — резерв;
разряд 4 — вид маркера (0 — вид 1,1— вид 2).
В III группе:
разряд 1—звуковой сигнал 72 знака в строке (предупреждает оператора, что в строке осталось только восемь позиций);
разряд 2 — звуковой сигнал клавиатуры (сопровождает код нажатой клавиши и привлекает внимание оператора);
разряд 3 — система команд (0 — № 1, 1 —№2);
разряд 4 — синхронизация обмена.
В IV группе:
разряд 1 — резерв;
разряд 2 — фиксация маркера в крайних положениях строки (только для системы команд № 2) (0— нет, 1 — есть);
разряд 3 — АВТО ПС, ВК (0—нет, 1 — есть) для системы команд № 2, если установлена 1, то при нажатии клавиши ПС отрабатывается также и ВК, и наоборот; в любом случае маркер устанавливается на новую строку;
разряд 4 — резерв.
В V группе:
разряд 1—тип контроля (0 — четность, 1—нечетность);
разряд 2 — контроль (0 — нет, 1 — есть);
разряд 3 — АВТО ПС, ВК при передаче;
разряд 4 — индикация строки 25.
В последней VI группе разрядов отображается реальное время, прошедшее от момента включения дисплея или нажатия клавиши «ОЧС». 1-й, 2-й разряды индицируют часы, 3-й, 4-й — минуты, 5-й, 6-й — секунды.
Для изменения содержания служебной строки необходимо выполнить следующие операции:
- нажатием клавиши «СДВ» («Сдвиг») мигающий маркер переводится в начало служебной строки;
- при нажатии клавиши «->» («Маркер вправо») маркер перемещается вправо к необходимому разряду в группе (группы кроме I);
- при нажатии клавиши «[стрелка вниз с точкой]» («Фиксация») изменяется содержимое разряда справа от маркера (в II—V группах содержимое разрядов либо 0, либо 1, в I группе последовательный перебор скоростей обмена);
- при нажатии на клавишу «<-» («Маркер влево») маркер перемещается влево к необходимому разряду.
После отжатия клавиши «СДВ» маркер возвращается на прежнее место, причем в зависимости от установленной функции служебная строка может погаснуть.
Для проверки дисплея можно использовать тест-программу 012101 ТМОС 00011 — 0134 «Тест ДС» или перфоленту 8.842.001—01.
"Техническое обслуживание и эксплуатация микроЭВМ "Электроника-60М"
http://archive.pdp-11.org.ru/BIBLIOTEKA/E60TO/
shattered
27.02.2013, 22:18
Состояние эмуляции:
- написано cpu core, нужно уточнить тонкости работы с триггером переноса и памятью (в какой момент данные попадают в память? -- типична конструкция ota #0, ota #0, ota #1)
- работает автономный режим. однако символы выводятся не в начале экрана.
- неизвестно, чем отличаются прошивки на 6 ПЗУ и на 5 ПЗУ, предположение -- наличичем режима генерации 7-битных кодов.
Пока не эмулируется:
- запись в порты 6, 14 (линия)
- чтение портов 1, 10
- чтение флага 3, запись флага 7 -- формирование семибитных кодов?
- курсор (в E60TO упоминается, что его может быть 2 вида)
- родная клавиатура с ее режимами и пр.
- звук (это проще всего, но нужно уточнить его частоту)
- линия
В MESS пока нет общего кода для подключения к реальному порту на хосте -- только к pseudo-tty (unix) или named pipe (windows). Есть специфичный код в драйвере TI-99/4 [1], насколько его можно использовать -- неясно.
Затем можно будет сделать украшения:
- пост-обработку для придания вида родного ЭЛТ
- "накладку" на экран с состоянием светодиодов на клавиатуре
[1] http://www.mess.org/people/mizapf/serial_connection
нужно уточнить тонкости работы с триггером переноса и памятью (в какой момент данные попадают в память? -- типична конструкция ota #0, ota #0, ota #1)
А для чего надо знать момент попадания в память внутри этих ota?
---------- Post added at 22:30 ---------- Previous post was at 22:08 ----------
Эти ota, они как бы неразделяемые и формируют весь цикл записи. Формально запись выполняется второй ota#0, начинаясь в третьей четверти цикла выполнения второй команды ota#0 и выборки команды ota#1 (команды выполняются в цикле, следующем за циклом выборки этой команды) и заканчиваясь уже где-то во время цикла выполнения ota#1. Просто цикл записи в память длиннее, чем цикл процессора. А первая ota#0 формирует заранее сигнал включения микросхемы, чтобы она смогла сработать по второй ota#0.
shattered
28.02.2013, 23:35
Ага, значит, мне надо переделать этот кусок. Сейчас я делаю запись в ota #1, из-за этого, видимо, и часы рисуются неверно, судя по
00000060: D0 lda r0
00000061: F0 ota #$00
00000062: F0 ota #$00
00000063: F8 ota #$08
00000064: F0 ota #$00
00000065: F0 ota #$00
00000066: F1 ota #$01
00000067: F4 ota #$04
Вместо ota#1, в принципе, при записи может быть любая другая ota (ну, не связанная с работой памятью во избежание странных эффектов). ota#1 это как бы ota nop, дающая завершиться нормально циклу записи. В приведенном фрагменте ota#0, ota#0, ota#8 точно также выполнит запись в память и инкремент регистра адреса.
---------- Post added at 22:47 ---------- Previous post was at 22:43 ----------
Сигнал записи в микросхему памяти формируется прямо из ota#0, но первая ota#0 не срабатывает на запись, поскольку еще нет сигнала включения микросхемы памяти, который начинает формироваться от первой ota#0. А вторая ota#0 уже вызывает запись. Но поскольку цикл записи продолжается и после второй ota#0 (память медленная), нужна еще одна "левая" ota.
shattered
01.03.2013, 00:36
При этом свое обычное действие она (ota #8) тоже выполняет?
- звук (это проще всего, но нужно уточнить его частоту)
Частота 2400 Гц
По длительности, судя по номиналам резисторов/конденсаторов в ИВВ, вроде получается при установленном флаге 2 около 23 мс (0.023 с), а при сброшенном флаге 2 около 300 мс (0.3 с).
---------- Post added at 23:43 ---------- Previous post was at 23:40 ----------
При этом свое обычное действие она (ota #8) тоже выполняет?
Да, она или любая другая ota вместо ota#1 параллельно также выполняет свое действие.
Частота 2400 Гц.
Это что, звук, которым сопровождается нажатие клавиш или же символ 'звонок'? Это же очень высокий звук.
shattered
01.03.2013, 01:10
В соседней ветке [1] напрямую измеряли частоту и длительность, получалось тоже 2400 Гц и 0.4/0.15 с. Запись: http://bk0010.spb.ru/PHOTO/15ie00013/15ie00013.wav
[1] http://zx.pk.ru/printthread.php?t=2348&pp=40&page=27
---------- Post added at 01:10 ---------- Previous post was at 01:07 ----------
Кстати, похоже, что клавиатуру придется сэмулировать полностью, включая ее прошивку :-) Тогда ее, кстати, можно будет подключать к Ирише в том же MESS.
Это что, звук, которым сопровождается нажатие клавиш или же символ 'звонок'? Это же очень высокий звук.
И то, и другое.
---------- Post added at 00:25 ---------- Previous post was at 00:20 ----------
В соседней ветке [1] напрямую измеряли частоту и длительность, получалось тоже 2400 Гц и 0.4/0.15 с
В скане перечня элементов платы ИВВ номинал R2 указан 7,5 кОм.
Либо в скане перечня элементов платы ИВВ ошибка и должно быть 75 кОм (тогда расчет дает короткий звук примерно 0.13 с, что близко к измеренным выше данным), либо в том экземпляре, где измеряли звук, по ошибке поставили в терминал 75 кОм вместо положенных 7,5 кОм. При 7,5 кОм короткий звук должен быть почти в 10 раз короче - 0.023 с.
---------- Post added at 00:34 ---------- Previous post was at 00:25 ----------
Кстати, в ТО, похоже, неправильно описана семантика команды ota. Сказано, что выводится значение аккумулятора. Но аккумулятор не имеет прямого выхода на шину, только через АЛУ и его выходной буферный регистр, а запись в буферный регистр выполняется по сигналу ЗБАЛУ=0 из таблицы прошивки ППЗУ в ТО. Но там для команды ota сигнал ЗБАЛУ в обоих половинах цикла указан как 1. Поэтому, либо ota выводит буферный регистр АЛУ, а не аккумулятор, либо в таблице ППЗУ ошибка. Предполагаю, в таблице правильно, а выводится именно регистр АЛУ. При выполнении перед набором ota команды lda все происходит как написано, поскольку при выполнении lda формируется ЗБАЛУ=0. Но если перед ota будет выполнена другая команда, записывающая буферный регистр АЛУ, например dsr, то в буферном регистре АЛУ будет не значение аккумулятора.
Но нельзя, конечно, исключать и ошибку в таблице ТО.
shattered
02.03.2013, 20:00
Исправил ошибки в работе с регистрами (их надо считать 12-битными только в команде jmi) и в работе с памятью, теперь часы рисуются верно. Но все еще идут в 5 раз быстрее.
Прошивка пишет стартовый адрес памяти в начале каждой строки растра, это пока не эмулируется.
http://img-fotki.yandex.ru/get/4131/264743.2/0_88da0_95c6da6d_XL.png.jpg (http://fotki.yandex.ru/users/shattered/view/560544/)
Исправил ошибки в работе с регистрами (их надо считать 12-битными только в команде jmi)
На всякий случай: в старшие 4 бита регистров при любой записи в регистры всегда записываются 4 старших бита счетчика команд, а читаются они только в команде косвеннного перехода jmi, чтобы попасть в 4 старших бита счетчика команд, в остальное время они недоступны.
---------- Post added at 18:11 ---------- Previous post was at 18:06 ----------
Кстати, похоже, что клавиатуру придется
сэмулировать полностью, включая ее прошивку :-)
В клавиатуре вроде как нет никакой прошивки, только жесткая логика, управляемая прошивкой самого терминала
shattered
03.03.2013, 19:57
На всякий случай: в старшие 4 бита регистров при любой записи в регистры всегда записываются 4 старших бита счетчика команд, а читаются они только в команде косвеннного перехода jmi, чтобы попасть в 4 старших бита счетчика команд, в остальное время они недоступны.
Да, сделал так и заработали команды управления (esc + разное и пр.).
С внешним миром пока общаться не умею, поэтому сделал петлю (все, что пишется в порт 6, из него же и читается). Порт 010 -- готовность передатчика, порт 1 -- готовность приемника.
В клавиатуре вроде как нет никакой прошивки, только жесткая логика, управляемая прошивкой самого терминала
Что-то же преобразует сигналы с матрицы в код ASCII?
Что-то же преобразует сигналы с матрицы в код ASCII?
Посмотрел описание, просто ПЗУ. Есть счетчик, который считает на частоте 10 кГц, перебирая столбцы/строки. Как только появляется сигнал какого-то совпадения от нажатой клавиши, счетчик останавливается это типа внутренний скан-код, он подается на ПЗУ - на выходе ASCII.
От останова счетчика также формируются сигналы Строб и Флаг. При постоянном нажатии более 1 сек Строб генерируется с частотой 15 Гц.
---------- Post added at 19:59 ---------- Previous post was at 19:53 ----------
Только еще нажатая кнопка СУ просто зануляет два старших бита 7-битного кода по выходу.
---------- Post added at 20:10 ---------- Previous post was at 19:59 ----------
Посмотрел, Строб в терминале никуда не идет, идет только Флаг клавиатуры (ввод порта 013), который устанавливается каждым Стробом, а сбрасывается, как уже обсуждалось, выводом в порт 015.
---------- Post added at 20:14 ---------- Previous post was at 20:10 ----------
И Флаг клавиатуры инверсно вводится из порта 013, т.е. "0" в старшем бите - нажатая клавиша.
shattered
03.03.2013, 21:26
Сначала сделаю правильную работу видео -- сейчас кадр рисуется за один проход, а нужно построчно, чтобы успевать реагировать на работу прошивки (запись стартового адреса памяти). Тогда появится курсор и заработает прокрутка.
shattered
06.03.2013, 22:33
Чтобы уточнить, как работает триггер переноса, понадобилась документация на АЛУ К155ИП3, т.е. 74S181N -- http://www.alldatasheet.com/datasheet-pdf/pdf/28004/TI/SN74S181N3.html
shattered
09.03.2013, 22:49
Сделал построчную отрисовку картинки и оказалось, что флаг 2 (обратный ход кадровой развертки) активен, когда обратного хода нет. Вот так выглядит "вид маркера 2":
http://img-fotki.yandex.ru/get/5625/264743.2/0_8916c_cd72a5f2_XL.png.jpg (http://fotki.yandex.ru/users/shattered/view/561516/)
Чтобы эмулятор 15ИЭ-00-013 можно было запускать с подключением к IP и COM портам - его можно адаптировать для модульного API.
В двух архивах ( stub_module.zip (http://emulator.pdp-11.org.ru/API/stub_module.zip) и stub_module.vcproj.zip (http://emulator.pdp-11.org.ru/API/stub_module.vcproj.zip) ) находится один и тот же проект эмуляции абстрактной архитектуры - с процессором, клавиатурой, монитором и последовательными портами, который должно быть не трудно превратить в эмулятор терминала 15ИЭ-00-013.
В архиве stub_module.vcproj.zip находится готовый проект VisualStudio 2005, позволяющий компилировать модуль эмуляции stub_module.em сразу в каталог Emulator.
Запуск модуля на эмуляцию производится запуском эмулятора em.exe в каталоге Emulator.
Эмулируемая конфигурация описана в файле конфигурации stub.cfg в каталоге Emulator.
...
В архиве stub_module.zip находятся исходные файлы, перед объединением которых в новый проект - в их названиях и содержании можно ( и нужно ) устроить глобальное переименование всех вхождений stub на интересующее название модуля ( например, IE15 ).
...
shattered
09.03.2013, 23:55
Пока я планирую воспользоваться тем, что дает MESS (а именно -- некое bitbanger device, которое на хосте можно поключить к pseudo-tty).
А еще разумно будет описать наши находки в этой теме так, чтобы можно было написать другой эмулятор :-)
А еще разумно будет описать наши находки в этой теме так, чтобы можно было написать другой эмуляторЗачем писать другой эмулятор, раз уже есть этот.
Ведь процессор 15ИЭ не начнёт работать по-другому, зачем же эмулировать его дважды. Когда этот эмулятор процессора 15ИЭ заработает в полном объёме - я добавлю его код в stub_module и получится вариант для модульного API.
У модульного API масса преимуществ. Например - можно отключать реакцию Windows на любые клавиши. Это позволяет использовать клавишу [NumLock] для ввода тех кодов, которые генерит эта клавиша на клавиатуре 15ИЭ, не переключая при этом лампочку NumLock.
shattered
10.03.2013, 01:16
Писать эмулятор не обязательно, но дополнить документацию все же стоит. Восстанавливать ее потом по исходникам не слишком разумно.
shattered
10.03.2013, 15:35
Прикрутил bitbanger и теперь можно худо-бедно общаться с внешним миром (на высоких скоростях пока все плохо -- overrun). На картинке -- выдача chargen (TCP порт 19):
http://img-fotki.yandex.ru/get/4120/264743.2/0_8917c_a2cc3733_XL.png.jpg (http://fotki.yandex.ru/users/shattered/view/561532/)
Сделал построчную отрисовку картинки и оказалось, что флаг 2 (обратный ход кадровой развертки) активен, когда обратного хода нет.
Да, активен низким. Вообще, здесь в схеме и в ТО активный уровень указывается последней буквой имени сигнала. В случае ОКРН - Обратный Кадровой Развертки Низкий.
shattered
10.03.2013, 21:12
В общем, в ТО хватает дыр (или мне не хватает знания цифровой электроники :-)
Мелкие вопросы по ходу дела:
- состояние служебной строки при старте сбрасывается в 0. Можно ли его задать перемычками или еще чем-то?
- существует модель .01, с монитором 6105 -- известно ли, чем еще отличается?
- существует клавиатура в пластиковом корпусе -- тот же вопрос.
Sergei Frolov
10.03.2013, 21:16
- существует модель .01, с монитором 6105 -- известно ли, чем еще отличается?
- существует клавиатура в пластиковом корпусе -- тот же вопрос.
[/quote]
Отличаются немного в выходных каскадах вроде пары транзисторов, не больше. В БП сильные различия.
Клавы, похоже, идентичные, только в разных корпусах.
shattered
12.03.2013, 22:04
Сделал ввод с линии так, как описано в ТО (регистр для готовых данных + промежуточный буфер) и теперь терминал выдерживет поток chargen на скорости 9600. Теперь нужно делать клавиатуру, иначе играть никак невозможно :-)
http://img-fotki.yandex.ru/get/4120/264743.2/0_891e0_6fdac9e1_XL.png.jpg (http://fotki.yandex.ru/users/shattered/view/561632/)
shattered
16.03.2013, 12:14
Пока пишется эмулятор, не хочет ли кто-то написать статью для рувики и/или emuverse?
Затравка:
15ИЭ-00-013 aka "Фрязинский дисплей" -- алфавитно-цифровой терминал с последовательным интерфейсом (токовая петля и стык С2).
Разработан в 198x году в TBD, производился с 198x по 199x год в нескольких модификациях.
В одном из режимов работы ("набор команд №2") частично совместим с DEC VT52 -- отсутстует режим Hold Screen, нет набора специальных символов и поддержки принтера.
shattered
16.03.2013, 16:20
И еще интересный вопрос -- воспроизводить раскладку или нет? :v2_conf2:
http://content.foto.mail.ru/mail/p---ribor/262/i-264.jpg
И еще интересный вопрос -- воспроизводить раскладку или нет?
ИМХО: обязательно только с учётом что юзер может на неполной клаве сидеть, ну на ноутбуке где ДКЛ и некоторые другие функ-ые кнопки совмещены ! ) Но пусть Patron своё веское слово скажет, в его модульном эмуляторе почти не было проблем с клавиатурой с самого начала кстати говоря ! )
---------- Post added at 17:21 ---------- Previous post was at 17:19 ----------
не хочет ли кто-то написать статью для рувики и/или emuverse?
это либо копи-паст будет 100% либо надо просить разработчиков писать, либо (самый интересный вариант), найти автора кто неоднократно ремонтировал восстанавливал реальную железку что-бы текст был живой (мат уберётся редактированием).
shattered
16.03.2013, 21:55
ИМХО: обязательно только с учётом что юзер может на неполной клаве сидеть, ну на ноутбуке где ДКЛ и некоторые другие функ-ые кнопки совмещены ! )
Я о том, делать ли раскладку JCUKEN или две, переключаемых (QWERTY/JCUKEN). JCUKEN уж больно неудобна. Почему сделали именно ее, понятно -- видимо, еще не было микроконтроллеров для клавиатуры и/или для снижения цены.
это либо копи-паст будет 100% либо надо просить разработчиков писать, либо (самый интересный вариант), найти автора кто неоднократно ремонтировал восстанавливал реальную железку что-бы текст был живой (мат уберётся редактированием).
Живой текст как раз для рувики не подойдет, это все же энциклопедия, и желательно давать ссылки на источники (публикации, сайты...)
---------- Post added at 21:55 ---------- Previous post was at 21:49 ----------
Нарисовал описание 15ИЭ в формате termcap [1], и результат даже работает, но глючит -- вывод символа в колонку 80 вызывает переход на следующую строку, и картинка портится. :xn: glitch не спасает.
15ie-cs1|15IE-00-013, command set 1:\
:bs:am:xn:bw:\
:is=\EE:\
:co#80:li#24:\
:bl=^G:ho=^H:do=^]:ce=^K:cl=^L:cr=^M:sf=^R:ic=^S:dc=^T:\
:nw=^U:sr=^V:nd=^Y:bc=^Z:le=^Z:up=^\\\:cd=^_:
15ie|15ie-cs2|15IE-00-013, command set 2:\
:ac@:ae@:as@:kb@:is=^W:xn:tc=vt52:
[1] http://en.wikipedia.org/wiki/Termcap
shattered
25.03.2013, 23:08
Текущее состояние: сделаны
+ автономный режим и линия (150..9600, но пока скорость зафиксирована на 9600)
+ звук
+ работа ГС (курсор и пр.)
+ работа в служебной строке (C-y -- вправо, C-z -- влево, C-b -- "Фикс").
осталось:
- родная клавиатура
- выбор скорости линии (+ замена bitbanger на diserial)
- реакция на флаг "25 строка" (пока не понимаю, как он работает)
- чтение флага 3, запись флага 7 ("генерация 7-битных кодов") -- используется прошивкой на 6 м/сх
Украшения:
- уточнить палитру
- сделать пост-обработку для придания вида родного ЭЛТ
- "накладку" на экран с состоянием светодиодов на клавиатуре
---------- Post added at 23:08 ---------- Previous post was at 22:55 ----------
Если кто хочет попробовать: берите исходники MAME из SVN [1], накладывайте патч [2]. Он вольно обходится с bitbanger, поэтому драйвера, которые тоже его используют, сломаются.
Режимы терминала (ДУП, ЛИН, РЕД и СДВ) пока что реализованы как DIP switches, чтобы их переставить, нужно временно отключить режим полной эмуляции клавиатуры (Scroll Lock) и выйти в меню MESS (Tab).
MESS не умеет работать с настоящими serial портами -- только с pseudo-tty или tcp/ip socket. В итоге -- можно зайти на некоторые telnet BBS (помня, что они почти все рассчитаны на VT100 и выше), или на другой эмулятор (SIMH, например).
Примеры:
# убедиться, что не теряются символы на скорости 9600
mess -bitbngr socket.localhost:19 ie15
# telnet BBS
mess -bitbngr socket.telehack.com:23 ie15
# CTAKAH
mess -bitbngr socket.rsx.pdp-11.org.ru:23 ie15
[1] svn://dspnet.fr/mame/ или http://git.redump.net/mame/
[2] https://gist.github.com/shattered/5232006
shattered
31.03.2013, 12:11
Пока пишется эмулятор, не хочет ли кто-то написать статью для рувики и/или emuverse?
Опубликовал "рыбу" -- http://ru.wikipedia.org/wiki/15ИЭ-00-013
Правьте смело :-)
shattered
08.04.2013, 23:41
Тем временем соконфетник Titus добавил 15ИЭ в EmuStudio -> http://zx.pk.ru/showpost.php?p=590378&postcount=954
И обнаружил причину "снега" на экране -> http://zx.pk.ru/showpost.php?p=590766&postcount=1014
Тем временем и я добавил 15ИЭ в свой эмулятор (совместно с ДВК). Кому не лень - потестируйте. Кстати, есть отладчик процессора 15ИЭ! Думаю, будет полезен соконфетникам. Я, кстати, писал эмуляцию сам, так что возможны несовпадения эмуляции.
Тем временем и я добавил 15ИЭ в свой эмулятор (совместно с ДВК). Кому не лень - потестируйте. Кстати, есть отладчик процессора 15ИЭ! Думаю, будет полезен соконфетникам. Я, кстати, писал эмуляцию сам, так что возможны несовпадения эмуляции.
Вот это гы) Три разных эмулятора, и два пользователя)
Тем временем и я добавил 15ИЭ в свой эмулятор (совместно с ДВК). Кому не лень - потестируйте. Кстати, есть отладчик процессора 15ИЭ! Думаю, будет полезен соконфетникам. Я, кстати, писал эмуляцию сам, так что возможны несовпадения эмуляции.
Что надо нажать в ДВК, чтобы запуститься с диска?
Что надо нажать в ДВК, чтобы запуститься с диска?
D0 или D1. А у тебя есть образы дисков DX? :)
Контроллеры MX и MY я пока не сделал.
Sergei Frolov
10.04.2013, 17:34
Что надо нажать в ДВК, чтобы запуститься с диска?
http://youtu.be/O0gAgQQHFcQ?t=2m23s
D0 или D1. А у тебя есть образы дисков DX? :)
Контроллеры MX и MY я пока не сделал.
Ой, а дай тогда образ, если не сложно.
---------- Post added at 17:40 ---------- Previous post was at 17:38 ----------
Когда ожидать эмулятор УКНЦ? )
http://youtu.be/O0gAgQQHFcQ?t=2m23s
У тебя грузится ДВК с процессором ВМ2 (вычислитель МС 1201.2), а у меня пока реализован только ВМ1 (МС 1201.1). Там немного другие команды загрузки.
---------- Post added at 18:51 ---------- Previous post was at 18:50 ----------
Ой, а дай тогда образ, если не сложно.
Прикол в том, что и у меня нет :) Я просто подключил ГМД-70.
Когда ожидать эмулятор УКНЦ? )
Не знаю. Не планировал пока.
Смотри-ка, а эффект снега второго типа тоже есть.
А что скажут по этому поводу владельцы реалов? Есть снег?
И ещё: что происходит со строкой статуса, если выключить РЕД, и что происходит если ещё и СДВ выключить потом? Будут моргать служебные коды?
---------- Post added at 19:30 ---------- Previous post was at 19:27 ----------
Если проследить за флагом 3, то когда рисуется 25-тая строка - он сбрасывается, а когда остальной экран - он устанавливается. Однако в режиме редактирования 25-той строки он не сбрасывается. Точно также, если установить последний бит, тоже не сбрасывается. Для чего такое поведение предусмотрено?
Если проследить за флагом 3, то когда рисуется 25-тая строка - он сбрасывается, а когда остальной экран - он устанавливается. Однако в режиме редактирования 25-той строки он не сбрасывается. Точно также, если установить последний бит, тоже не сбрасывается. Для чего такое поведение предусмотрено?
Не знаю, сам пытался определить значение 3-го флага, но не осилил себя засесть подробно за схему)
shattered
10.04.2013, 20:26
Тем временем и я добавил 15ИЭ в свой эмулятор (совместно с ДВК). Кому не лень - потестируйте. Кстати, есть отладчик процессора 15ИЭ! Думаю, будет полезен соконфетникам. Я, кстати, писал эмуляцию сам, так что возможны несовпадения эмуляции.
Круто еще раз.
Похоже, пора делать аналог vttest -- для проверки качества эмуляции :-)
Отладчик в MESS тоже есть (во всех эмулируемых машинах)
образ, если не сложно.В приложении - загрузочный образ DX:
А формат? Сколько секторов на дорожке?
---------- Post added at 21:41 ---------- Previous post was at 21:40 ----------
77 дорожек по 13 секторов?
---------- Post added at 21:48 ---------- Previous post was at 21:41 ----------
Криво работает мой ГМД-70, первый сектор грузит, а дальнейшая загрузка обрывается на следующем считанном секторе. Буду копать дальше.
За образ диска большое спасибо.
С RX01 в SIMH грузится - значит всё как надо.
Если есть эмуляция RX01 - должен загрузиться.
А про формат можно почитать здесь (http://zx.pk.ru/showthread.php?t=11015&page=19).
Формат 77 дорожек, 26 секторов по 128 байт, это я уже понял. Всё равно не работает, но тут уже эмуляция процессора вроде виновата. Вторичный загрузчик грузится, а там уже чёрт ногу сломит.
эмуляция процессора вроде виноватаКак проверить эмуляцию процессора можно посмотреть здесь (http://zx.pk.ru/showthread.php?postid=436263).
На видео Original Tetris game (http://emulator.pdp-11.org.ru/misc/Original_Tetris_game.mp4.zip) "снег" присутствует.
На видео Original Tetris game (http://emulator.pdp-11.org.ru/misc/Original_Tetris_game.mp4.zip) "снег" присутствует.
Есть данные о минуте:секунде?
---------- Post added at 17:04 ---------- Previous post was at 16:57 ----------
Йес! Я его поймал. Именно второго типа снег, и именно так, как и у меня в эмуляторе.
При очистке одной строки:
http://s020.radikal.ru/i708/1304/7c/8602089475d0.png
При очистке всего экрана:
http://i037.radikal.ru/1304/65/fa0b29011b44.png
Есть данные о минуте:секундеВо второй половине ролика снег на снеге сидит и снегом погоняет. Снега там на любой вкус.
Киньте сюда этот тетрис, если у кого есть.
---------- Post added at 17:15 ---------- Previous post was at 17:08 ----------
А вы говорили, что:
Ведь снега не реале не было ( да и кто разрешил бы выпускать самый массовый советский терминал с такой элементарной недоработкой ).
А вы говорилиТут одно из двух - или на моём 15ИЭ и правда снега не было, или я на него ни разу не обратил внимания.
Киньте сюда этот тетрисОказалось, что без лишних блоков даёт ошибку при выходе - вот исходный вариант TETRIS.SAV (http://zx.pk.ru/attachment.php?attachmentid=40926) размером 28 блоков:
shattered
11.04.2013, 20:25
Тут одно из двух - или на моём 15ИЭ и правда снега не было, или я на него ни разу не обратил внимания.
Еще один вариант прошивки, может быть.
Товарищи, что это за микросхема? В списке значится, как D28, но в таблице ее номинала нет.
http://s49.radikal.ru/i125/1304/47/afdb2b133721.png
Товарищи, что это за микросхема? В списке значится, как D28, но в таблице ее номинала нет.
На самом деле это D21 - К531ЛР9П.
На самом деле это D21 - К531ЛР9П.
Блин, ну никак не углядеть в надписи D28 D21. Просто микросхема такая диковинная, что я с ней лично не знаком.
---------- Post added at 22:42 ---------- Previous post was at 22:39 ----------
Еще бы описалово на нее.
Ибо не сходится логика, если представить, что это 4 элемента И, выходы которых идут на элемент ИЛИ-НЕ.
Блин, ну никак не углядеть в надписи D28 D21. Просто микросхема такая диковинная, что я с ней лично не знаком.
Эта микросхема, вместе с четырьмя логическими элементами позади неё управляет режимом загрузки/сдвига микросхем D13 и D14.
---------- Post added at 22:45 ---------- Previous post was at 22:44 ----------
Еще бы описалово на нее.
Ибо не сходится логика, если представить, что это 4 элемента И, выходы которых идут на элемент ИЛИ-НЕ.
Итак всё ясно (4-2-2-3)И-4 ИЛИ - НЕ.
shattered
11.04.2013, 22:46
Описалово можно искать на SN74S64 -- "4-2-3-2 AND-OR-INVERT GATES"
http://html.alldatasheet.com/html-pdf/28161/TI/SN74S64/21/1/SN74S64.html
Эта микросхема, вместе с четырьмя логическими элементами позади неё управляет режимом загрузки/сдвига микросхем D13 и D14.
Да это я вижу. Пытаюсь разложить по полочкам, когда она разрешает видеовывод, когда нет.
Первая секция понятна - если у символа сброшены биты D5 и D6, и при этом установлен РЕДВ или активная фаза мигания, то запретить видеовыход. А вот у других секций чего-то не сходится.
Да это я вижу. Пытаюсь разложить по полочкам, когда она разрешает видеовывод, когда нет.
Первая секция понятна - если у символа сброшены биты D5 и D6, и при этом установлен РЕДВ или активная фаза мигания, то запретить видеовыход. А вот у других секций чего-то не сходится.
Видеовыход она не запрещает, а просто оставляет активным сигнал сдвига, а не загрузки. А так как вход сдвига 1 D14 висит на земле, то вдвигается 0, следовательно изображения нет. Периодически, через 10 пикселей, должен активироваться сигнал параллельной загрузки.
Видеовыход она не запрещает, а просто оставляет активным сигнал сдвига, а не загрузки. А так как вход сдвига 1 D14 висит на земле, то вдвигается 0, следовательно изображения нет. Периодически, через 10 пикселей, должен активироваться сигнал параллельной загрузки.
Ну вижу я это)
Мне не понятна логика остальных 3-х секций) Вернее так, как она у меня выстраивается, она противоречит описанию.
shattered
11.04.2013, 23:14
Закинул удочку (письмо на info@) в Электронприбор, может, что-то сохранилось с тех времен.
Первая секция понятна - если у символа сброшены биты D5 и D6, и при этом установлен РЕДВ или активная фаза мигания, то запретить видеовыход. А вот у других секций чего-то не сходится.
Итак, первая секция полностью совпадает с описанием.
Вторая секция:
На нее заходят два сигнала - МСВ (очевидно, Маркерная Строка) и ФЛ1Н. Запрет изображения будет если два этих сигнала установлены. Стало быть, если во время маркерной строки установить флаг 1 (маркер), то ничего отображаться не должно. Однако по паспорту (да и по практике) запрещение маркера - это логический 0, а не 1. Тогда ничего не сходится.
На нее заходят два сигнала - МСВ (очевидно, Маркерная Строка) и ФЛ1Н. Запрет изображения будет если два этих сигнала установлены. Стало быть, если во время маркерной строки установить флаг 1 (маркер), то ничего отображаться не должно. Однако по паспорту (да и по практике) запрещение маркера - это логический 0, а не 1. Тогда ничего не сходится.
Флаги идут из триггеров ТМ2 из платы МПУ. А триггеры имеют два выхода - прямой и инверсный. В данном случае флаг 1 исходит с инверсного выхода. Получается, чтобы не отображалась маркерная строка, надо два условия - счетчик строк больше или равен 8 (сигнал МС) и флаг ФЛ1, установленный в ноль.
Флаги идут из триггеров ТМ2 из платы МПУ. А триггеры имеют два выхода - прямой и инверсный. В данном случае флаг 1 исходит с инверсного выхода. Получается, чтобы не отображалась маркерная строка, надо два условия - счетчик строк больше или равен 8 (сигнал МС) и флаг ФЛ1, установленный в ноль.
Блин, а я сижу - ломаю голову. Как это такое может быть. А оказывается он где-то там до этого инвертирован.
---------- Post added at 02:31 ---------- Previous post was at 01:21 ----------
Просуммировал исследования, проверяйте:
Когда запрещается изображение:
--------------------------------
1. Если разряды кода символа D5 и D6 равны нулю, при этом сигнал РЕДВН = 1 или фаза мигания 5Гц = 1.
2. Если отображается маркерная строка и флаг-1 (маркер) = 0.
3. Если отображается маркерная строка, флаг-1 (маркер) = 1 и фаза мигануия 5Гц = 0.
Таким образом фазы мигания маркера и управляющих символов ПРОТИВОПОЛОЖНЫ!
4. Если ОКРН (VBlank) = 0 (обратный ход кадровой развертки) или флаг-3 (25-я строка) = 1,
но при этом так же активен сигнал на входе 2 D21 (что это за сигнал? с логической точки зрения
это должен быть сигнал что-то типа 'номер строки = 0', иначе не отображалась бы информация
на экране, т.к. в течение 1-24 строки флаг-3 программно устанавливается в 1, а в течение 0-й строки
(служебной) флагом-3 управляется включение/выключение этой строки).
5. Так же изображение запрещается если хотя бы один из трех сигналов ЗСРВ (запрет строчной развертки?),
флаг-0 (запрет изображения), или ССН(не разборчиво) (пиксельклок?), сброшен в 0.
Тут одно из двух - или на моём 15ИЭ и правда снега не было, или я на него ни разу не обратил внимания.
Я его вижу на видео, но на дисплее визуально не помню, может и правда был?
вот исходный вариант TETRIS.SAV размером 28 блоков:
Это вариант ТЕТРИСА из []скобочек, прилепленная версия та что на видео (зеленая стрелка)
(версия от Patrona(красная стрелка) скрине на образе MZ1:, прилепленная на WD1: - файлы различаются датами на год, размер 1 в 1, а символы легко поменять с помощью DESS например, один и тот же просто разные символы для фигурок? )
http://savepic.ru/4444364.png
shattered
12.04.2013, 09:22
Датам особенно доверять не стоит, время-то могло выставляться вручную при старте машины.
И когда появился DESS? :-)
---------- Post added at 09:22 ---------- Previous post was at 09:21 ----------
Я его вижу на видео, но на дисплее визуально не помню, может и правда был?
Пора искать владельцев 15ИЭ и просить проверить...
Оказалось, что без лишних блоков даёт ошибку при выходе - вот исходный вариант TETRIS.SAV (http://zx.pk.ru/attachment.php?attachmentid=40926) размером 28 блоков:
А почему тетрис в ролике Фролова не из скобочек, а из квадратиков? Написано, что это оригинальный тетрис.
Если бы оригинальный TETRIS был из квадратиков, а не из скобок - в его коде не различались бы правая и левая скобки.
Заменить их обе на один и тот же код квадратика легко, но сделать наоброт - невозможно.
...
И почему Пажитнов в нем не подписался?
И почему Пажитнов в нем не подписался?
Тетрис из [] 100% исходный ! Вот кстати скрин-шот заставки тетриса с "микроши" (как бы мне не слишком увлечься этим микрошей "смайл") в плане года создания,
http://savepic.ru/4408346.png )))
Я из квадратиков прилепил, только потому, что на видео Фролова именно он )
---------- Post added at 19:56 ---------- Previous post was at 19:53 ----------
Если бы оригинальный TETRIS был из квадратиков, а не из скобок - в его коде не различались бы правая и левая скобки.
Да это одна и та же игра, просто символы на код "забоя" поправили и всё. Самое суть, что оба норм. играются на реальной УК-НЦ ) В отличие от ДВКашных XONIX - увы.
---------- Post added at 19:59 ---------- Previous post was at 19:56 ----------
И когда появился DESS? :-)
раньше чем MESS я полагаю ) А вообще можно и без DESS обойтись ) И версий у DESS очень много самая ранняя даже не знаю когда, Patron возможно знает, но это где-то в районе 86-87 должно быть.
shattered
12.04.2013, 20:38
Закинул удочку (письмо на info@) в Электронприбор, может, что-то сохранилось с тех времен.
electronpribor.ru -- это не то, хоть и находится во Фрязино. Хм.
electronpribor.ru
а не информприбор ???
shattered
12.04.2013, 20:58
Откуда ж мне знать, я не местный :)
Если знаешь координаты -- докладывай
Просуммировал исследования, проверяйте:
Когда запрещается изображение:
--------------------------------
1. Если разряды кода символа D5 и D6 равны нулю, при этом сигнал РЕДВН = 1 или фаза мигания 5Гц = 1.
2. Если отображается маркерная строка и флаг-1 (маркер) = 0.
3. Если отображается маркерная строка, флаг-1 (маркер) = 1 и фаза мигануия 5Гц = 0.
Таким образом фазы мигания маркера и управляющих символов ПРОТИВОПОЛОЖНЫ!
4. Если ОКРН (VBlank) = 0 (обратный ход кадровой развертки) или флаг-3 (25-я строка) = 1,
но при этом так же активен сигнал на входе 2 D21 (что это за сигнал? с логической точки зрения
это должен быть сигнал что-то типа 'номер строки = 0', иначе не отображалась бы информация
на экране, т.к. в течение 1-24 строки флаг-3 программно устанавливается в 1, а в течение 0-й строки
(служебной) флагом-3 управляется включение/выключение этой строки).
5. Так же изображение запрещается если хотя бы один из трех сигналов ЗСРВ (запрет строчной развертки?),
флаг-0 (запрет изображения), или ССН(не разборчиво) (пиксельклок?), сброшен в 0.
1,3. Вроде всё-таки управляющие символы и курсор должны мигать синфазно. Не вижу я там разной полярности 5 Гц, везде сигнал проходит с инверсией, то есть гашение, если фаза мигания 5Гц = 0.
4. Смысл - да, гашение служебной строки и обратного хода кадровой развертки, но просто логика чуть запутана, скорее всего, так проще было схемотехнику :). Сигнал на входе 2 - гашение на время 4-х символьных строк (3 строки обратного хода и еще одна служебная, счётчик считает её не нулевой, а последней, т.е. 0-23 - информационные строки, 24-26 - строки обратного хода, 27 - служебная строка, но монитор отображает нулевой, поскольку она идет после кадрового импульса). А уже флаг 3 переключает либо гашение на все 4 строки (флаг3=1), либо только на 3 строки обратного хода (флаг3=0).
5. ЗСРВ (думаю - "Запись Сдвигового Регистра - Высокий", а может не "Высокий", а "Видео") - это основной сигнал управления выводом видео, его выдает ЗУ, когда хочет записать очередные данные в выходной сдвиговый регистр ГС. То есть, прохождение этого сигнала говорит, будет ли ГС гнать на выход изображение символа или туфту :) , то бишь нули. А уже все остальные сигналы в п.1,2,3,4,5 либо разрешают прохождение ЗСРВ, либо его блокируют. В п.5 ЗСРВ может быть заблокирован сигналами флаг 0 = 1 или инверсный строчный синхроимпульс ССИ1Н = 0 (гашение обратного хода строчной развертки).
А вот пиксельклок - сигнал СИН0 дополнительно блокирует уже видео на выходе сдвигового регистра на половину такта, рисуя таким образом отдельные точки, я уже раньше писал.
---------- Post added at 23:43 ---------- Previous post was at 23:32 ----------
Блин, а я сижу - ломаю голову. Как это такое может быть. А оказывается он где-то там до этого инвертирован.
Тоже я где-то раньше писал, что в этой схеме, очевидно, последняя буква имени сигнала означает прямой (В - Высокий активный) или инверсный (Н - Низкий активный) сигнал. То есть, ФЛ0В, РЕДВ заходят в ГС прямыми, а ФЛ1Н и ФЛ3Н - инверсными, МСВ выходит прямым (1 во время Маркерной Строки), а ОКРН - инверсным (0 во время Обратного хода Кадровой Развертки) и т.д.
И нет сигнала РЕДВН, это сигнал РЕДВ, заходящий на 11 вывод микросхемы.
---------- Post added at 23:52 ---------- Previous post was at 23:43 ----------
Сорри, много текста, недоглядел. Конечно, флаг0 = 0 блокирует ЗСРВ в п.5.
очевидно, последняя буква имени сигнала означает прямой (В - Высокий активный) или инверсный (Н - Низкий активный) сигнал
Очевидно также, что это буква пишется через пробел, чтобы не было путаницы типа "ЗСРВ" и "ЗСР В".
shattered
01.05.2013, 22:09
Обнаружил грандиозное исследование о клавиатурах -> http://www.quadibloc.com/comp/kybint.htm
Любопытна клавиатура HP 2645 (1975 год):
http://www.quadibloc.com/comp/images/2645.gif
shattered
10.05.2013, 20:27
Micko добавил мой код в MESS, но пользы от него пока немного -- все еще нужно добавить клавиатуру и пр.
EDIT: вышел релиз 0.148u5 с этим кодом: http://mamedev.org/updates/messnew_0148u5.txt
shattered
22.12.2013, 01:30
Нет ли у кого прошивки 556РТ5 из клавиатуры этого терминала (15ВВВ-97-006)? Ужасно влом сочинять ее по схеме и описанию :)
shattered, Есть плата от клавиатуры но есть-ли там эти микрухи пока не знаю. Если есть то как их считывать?
И ещё вот почитать: http://www.ateismy.net/index.php?option=com_content&view=article&id=2145:2013-02-24-21-37-46&catid=85:2012-09-22-15-24-38&Itemid=147
там сказано что: В ПЗУ D36 записаны коды символов КОИ-8, в ПЗУ D20 — их адреса
shattered
13.03.2014, 01:15
Программатором :) увы, подробнее сказать не могу..
Есть некоторый шанс, что такой дамп снимем в Галерисе, но пока неясно, когда.
у меня есть плата клавиатуры от терминала. к сожалению, только плата с толкателями, без самих кнопок. можно будет попробовать с неё сдуть ртшки и считать, если надо.
shattered
13.03.2014, 09:25
Скажу большое спасибо, если считаете.
shattered
31.03.2014, 21:31
Весьма похоже на правду
00000000 bb b1 b2 33 b4 35 36 b7 b8 39 30 2d 00 b7 b8 39 |...3.56..90-...9|
00000010 6a 63 f5 eb 65 ee e7 7b 7d fa e8 3a 00 b4 35 36 |jcУКeНГ{}ЗХ:..56|
00000020 66 f9 77 e1 f0 72 6f 6c e4 f6 fc 2e ff b1 b2 33 |fЫwАПrolДЖЭ.Ъ..3|
00000030 71 7e f3 ed 69 74 78 e2 60 ac af ff a0 30 30 ac |q~СМitxБ`..Ъ.00.|
...
Если срезать бит четности, то
00000000 3b 31 32 33 34 35 36 37 38 39 30 2d 00 37 38 39 |;1234567890-.789|
00000010 6a 63 75 6b 65 6e 67 7b 7d 7a 68 3a 00 34 35 36 |jcukeng{}zh:.456|
00000020 66 79 77 61 70 72 6f 6c 64 76 7c 2e 7f 31 32 33 |fywaproldv|..123|
00000030 71 7e 73 6d 69 74 78 62 60 2c 2f 7f 20 30 30 2c |q~smitxb`,/. 00,|
00000040 3b 31 32 33 34 35 36 37 38 39 30 2d 00 37 38 39 |;1234567890-.789|
00000050 4a 43 55 4b 45 4e 47 5b 5d 5a 48 3a 00 34 35 36 |JCUKENG[]ZH:.456|
00000060 46 59 57 41 50 52 4f 4c 44 56 5c 2e 7f 31 32 33 |FYWAPROLDV\..123|
00000070 51 5e 53 4d 49 54 58 42 40 2c 2f 5f 20 30 30 2c |Q^SMITXB@,/_ 00,|
00000080 2b 21 22 23 24 25 26 27 28 29 30 3d 00 37 38 39 |+!"#$%&'()0=.789|
00000090 4a 43 55 4b 45 4e 47 5b 5d 5a 48 2a 00 34 35 36 |JCUKENG[]ZH*.456|
000000a0 46 59 57 41 50 52 4f 4c 44 56 5c 3e 7f 31 32 33 |FYWAPROLDV\>.123|
000000b0 51 5e 53 4d 49 54 58 42 40 3c 3f 5f 20 30 30 2c |Q^SMITXB@<?_ 00,|
000000c0 2b 21 22 23 24 25 26 27 28 29 30 3d 00 37 38 39 |+!"#$%&'()0=.789|
000000d0 6a 63 75 6b 65 6e 67 7b 7d 7a 68 2a 00 34 35 36 |jcukeng{}zh*.456|
000000e0 66 79 77 61 70 72 6f 6c 64 76 7c 3e 7f 31 32 33 |fywaproldv|>.123|
000000f0 71 7e 73 6d 69 74 78 62 60 3c 3f 7f 20 30 30 2c |q~smitxb`<?. 00,|
Т.е. РУС/ЛАТ и НР/ВР
shattered
15.04.2014, 00:00
Почти что совсем дописал 15ИЭ -- есть родная клавиатура (втч лампочки на ней) и работоспособный комм. порт. Оставшиеся 1% работы займут еще полгода, думаю :)
http://git.redump.net/mame/commit/?id=d328f8ffd3206607c4bbd4624f5ce35257398209
Пользоваться НР/ВР жутко неудобно, конечно :) Спичка для их зажимания пока не реализована.
Описание раскладки и прочее будет позже.
http://www.serasidis.gr/circuits/TV_terminal/Small_TV_terminal.htm
это какому из "наших" соответствует по набору команд?
shattered
02.05.2014, 10:17
никакому, это самопал
http://www.serasidis.gr/circuits/TV_terminal/Small_TV_terminal.htm
это какому из "наших" соответствует по набору команд?
Ал-р, отличную ссылку дал. Там если добавить в прошивку КОИ7 и на свободные порты МК добавить спец. кнопки от 15ВВВ то будет "наш". :) Можно так-же взять сканкоды от клавиш F1-F12 клавиатуры PC и перевести их в коды спецкнопок 15ВВВ.
Нашел перевод страницы ТВ-терминала
http://www.rlocman.ru/shem/schematics.html?di=63872
От себя хочу добавить, что на схеме забыли подключить питание МК на ноги 7,8. А так-же перемычку на контакты 7,8 разъёма RS232 (в монтажке они есть).
P.S. Извиняюсь что не в тему.
Оставшиеся 1% работы займут еще полгода, думаю :) И каковы результаты?
...
Я так понимаю не вся документация есть, или вся?
На всякий случай, список документации.
1)Инструкция по эксплуатации.
ЩЦМ3.778.012ИЭ
Папка №2
2)Техническое описание.
ЩЦМ3.778.012ТО
Папка №1
3)Формуляр, Ведомость ЗИП, Ведомость эксплуатационных документов.
ЩЦМ3.778.012ФО
ЩЦМ3.778.012ЗИ
ЩЦМ3.778.012ЭД
Папка №3
4)Формулятор, Ведомость ЗИП, Ведомость эксплуатационных документов,
Блок клавиатуры 15ВВВ-97-006, Паспорт
ЩЦМ3.778.012ФО
ЩЦМ3.778.012ЗИ
ЩЦМ3.778.012ЭД
ЩЦМ3.852.024ПС
Альбом №2
5) Опись
ЩЦМ3.778.012ОП
6)Комплект эксплуатационных документов согласно
3.548.008ЭД
Альбом №3
...
По прошивкам, всё сдампили?
Я так понимаю не вся документация есть, или вся?
Вроде не вся. Во всяком случае, у меня не все есть из перечисленного вами. Да и качество сканов не на самой высоте. Если у вас это есть, сканируйте.
Вроде не вся.Что не хватает?
Да и качество сканов не на самой высоте Это уже в последнюю очередь.
Инструкция по эксплуатации.
ЩЦМ3.778.012ИЭ
Скачать- здесь. (http://rghost.ru/download/private/6rgh7nyfQ/2fb806f2b11dce40845fe2cb08b93337/9f0574a11fbc2fa600ad5ee3aa80f764b4c7f0c0/15%D0%98%D0%AD-00-013.pdf)
Немного о графике в 15ИЭ-00-13.
(кликабельно)
http://pic.pdp-11.ru/thumbs/p0002.png (http://pic.pdp-11.ru/?v=p0002.png)http://pic.pdp-11.ru/thumbs/p0049.png (http://pic.pdp-11.ru/?v=p0049.png)http://pic.pdp-11.ru/thumbs/p0050.png (http://pic.pdp-11.ru/?v=p0050.png)http://pic.pdp-11.ru/thumbs/p0051.png (http://pic.pdp-11.ru/?v=p0051.png)
shattered
15.08.2015, 22:30
Это лучше бы в ветку про КГД/КЦГД... сам 15ИЭ как кусок металла используется :)
SuperMax
02.01.2016, 16:12
Инструкция по эксплуатации.
ЩЦМ3.778.012ИЭ
Скачать- здесь. (http://rghost.ru/download/private/8dZFl6NHb/db4747ece5786a31c0cbf7605219a63a/70e8d2660a3c7e77f06ec67d1009c35cab2ddfa4/15%D0%98%D0%AD-00-13.zip)
к сожалению файл удален. можно ли повторить или кинуть на электронку ?
ps: сейчас собираю всё, что только есть Терминал Электроника 15ИЭ-00-013, Фрязинский дисплей
(http://forum.maxiol.com/index.php?showtopic=5118)
SuperMax, Хозяин темы сердится (см, пост243). Лучше Вам как модератору создать ветку "Терминалы отечественных компьютеров" так-как к эмуляторам это мало подходит, и в ветке "Разное" затеряется.
можно ли повторить?
Обновил.
shattered
06.01.2016, 21:39
весьма поддерживаю -- терминалов было много и разных
shattered
07.02.2016, 23:45
любопытное изобретение -- http://www.findpatent.ru/patent/134/1343440.html
похоже на модификацию 15ИЭ для рисовки графики?
Плата знакогенератора.
Может какая то ранняя версия, я не в курсе.
http://s008.radikal.ru/i304/1606/5a/dbd97ee80c6a.jpg (http://radikal.ru/big/60f1c1e873c941a8853da009c5ad76d5)
Если интересно, могу дампы считать.
shattered
26.06.2016, 16:42
Интересно -- считайте, пожалуйста.
Sergei Frolov
26.06.2016, 16:43
Было бы интересно
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot