Вектор-06Ц (Железо для сабжа)

ЭВМ и ПЭВМ, производившиеся в СССР и странах СЭВ
Dmitry Dubrovenko
Advanced Member
Сообщения: 1502
Зарегистрирован: 05.02.2008,14:16
Откуда: Cанкт-Ленинград
Контактная информация:

Вектор-06Ц

Сообщение Dmitry Dubrovenko » 09.02.2008,17:53

Железо для сабжа

Вот, решил заняться, поросшим пылью, сабжем.
Поскольку магнитофон, с которого производилась загрузка, утрачен, решил реализовать давнюю мечту с подключением FDD. Есть схема из "Радиолюбителя" (с дополнением). Кто может про неё что-нибудь сказать?
Далее, вопрос с загрузчиком. Есть прошивка 2K загрузчика от Александра Тимошенко (самая универсальная, как он её позиционирует). Есть так же 32К, от него же. Там ещё программы зашиты. Какие будут рекомендации?
Родственная тема.
ICQ нет, и в ближайшее время не будет!

Аватара пользователя
tnt23
Advanced Member
Сообщения: 457
Зарегистрирован: 19.11.2006,12:43
Откуда: Saint-Petersburg, Russia
Контактная информация:

Вклад в сообщество

Сообщение tnt23 » 09.02.2008,21:04

А можно на схему взглянуть?
Защитник прав малых кочевых народов (с) Кай

Dmitry Dubrovenko
Advanced Member
Сообщения: 1502
Зарегистрирован: 05.02.2008,14:16
Откуда: Cанкт-Ленинград
Контактная информация:

Сообщение Dmitry Dubrovenko » 09.02.2008,23:42

Увы, нет!
Могу пока только номера журналов сказать (Радиолюбитель 1992 №11 + дополнения 1996 №2).
ICQ нет, и в ближайшее время не будет!

svofski
Newbie
Сообщения: 16
Зарегистрирован: 07.02.2008,23:58
Откуда: С.-Петербург
Контактная информация:

Сообщение svofski » 11.02.2008,22:06

Я считаю, что 2К загрузчик от Тимошенко оптимален. От него есть исходный код, он поддерживает и кассету и кваз и дисковод и даже твердый диск. В 32К версию дополнительно входят программы: BASIC, SMON, TESTTP, 0MODEM. Наверное, при желании можно этот набор поменять.
В принципе, при современной элементной базе что 2К что 32К разницы нет, а архитектура Вектора теоретически позволяет сделать даже 56К загрузчик =)

Dmitry Dubrovenko
Advanced Member
Сообщения: 1502
Зарегистрирован: 05.02.2008,14:16
Откуда: Cанкт-Ленинград
Контактная информация:

Сообщение Dmitry Dubrovenko » 12.02.2008,16:41

что 2К что 32К разницы нет
А вот и есть. :-) 32k у меня где-то валяются, а 2k покупать надо (сперва ещё найти).
Но, как пишет сам автор, в 32k появляются проблемы с чтением флопа. Да и ножек надо порядочно переделать. Так что я пока тоже на 2k остановился.
ICQ нет, и в ближайшее время не будет!

Dmitry Dubrovenko
Advanced Member
Сообщения: 1502
Зарегистрирован: 05.02.2008,14:16
Откуда: Cанкт-Ленинград
Контактная информация:

Сообщение Dmitry Dubrovenko » 15.02.2008,09:53

А какая была методика подключения клавиатуры PC к сабжу?
ICQ нет, и в ближайшее время не будет!

svofski
Newbie
Сообщения: 16
Зарегистрирован: 07.02.2008,23:58
Откуда: С.-Петербург
Контактная информация:

Сообщение svofski » 15.02.2008,23:18

Вот что есть. К статье прилагается что-то на ассемблере и видимо какой-то кусок патченного МикроДОС-а. Если будет интересно, могу выложить.

Код: Выделить всё

Доставьте радость себе и свои пальцам!
или
Как подключить к Вектору клавиатуру от IBM PC

Ни для кого не секрет, что "родная" клавиатура Вектора, особенно
Емкостная, никогда не отличалась особым качеством. Клавиши у нее
перекашиваются, застревают, загрязняются так, что их каждые полтора-
два месяца приходится чистить (а, простите, какая радость простому
пользователю по нескольку раз в год вскрывать свой компьютер, который,
к тому же опломбирован, и чистить у него кнопки). Расположение клавиш
тоже оставляет желать лучшего: привыкнув на работе к клавиатуре
профессионального компьютера и попав на Вектор, как-то теряешься -
Esc (АР2) вместе с функциональными клавишами оказалась где-то справа
вверху, клавиша Tab, совершенно незаменимая при программировании на
ассемблере почему-то съехала вниз к пробелу...
Каждый решает эту проблему как может. Кто-то ищет Вектор с герконовой
клавиатурой (где-нибудь в Кишиневе это, может, и просто, а, например,
в Омске такая клавиатура - очень большая редкость; я за всю свою жизнь
видел всего два таких Вектора). Кто-то сам делает новую клавиатуру,
на свой вкус.
Я предлагаю еще один выход: подключить клавиатуру от IBM-совместимого
компьютера. Мною был разработан способ подключения такой клавиатуры
к Вектору и написано несколько вариантов драйверов для различных
приложений. Сам я уже давно пользуюсь этим удобным устройством и
могу только лишний раз подтвердить его надежность. Давайте рассмотрим
основные достоинства и недостатки такого подключения.
Достоинства:
- IBM-совместимые компьютеры в нашей стране преобладают над другими
моделями, так что, если вы привыкли к клавиатуре своего компьютера на
работе, то, придя домой, вам не придется перестраиваться на иное
непривычное расположение клавиш;
- рынок компьютеров сейчас весьма богат, так что вы можете выбрать
клавиатуру по своему вкусу - с высокими клавишами или с низкими, с
мягким нажатием или с жестким, со щелканьем клавиш или без, белую,
серую, черную - какую угодно;
- подключение производится очень просто, для этого не нужно вскрывать
Вектор, все, что Вам для этого понадобится - это одна стандартная
пятиштырьковая розетка, два резистора на 6-10 кОм, да несколько
кусочков провода;
- существующее программное обеспечение позволяет эффективно использовать
клавиатуру во многих программах, удобно переключать регистры и вводить
любые символы, включая управляющие и псевдографические;
- клавиатура не конфликтует ни с одним из известных мне устройств,
подключаемых к разъему ПУ компьютера.
Недостатки (а недостатки ли это?):
- стоимость такой клавиатуры составляет около трети стоимости самого
Вектора (а то и половину); но вспомните, сколько денег Вы уже потратили
на свой компьютер - монитор, RAM-диск, дисковод с контроллером, второй
дисковод... и все это для того, чтобы удобнее было работать. Так почему
бы не потратить еще немного и получить при этом существенный выигрыш в
удобстве?
- с этой клавиатурой будут работать только те программы, которые или
работают в операционной системе или оснащены специальным встроенным
драйвером. "...которые работают в операционной системе..." - а это не
так уж и мало, ведь существует немало людей, которые занимаются
подготовкой текстов; на Векторе есть СУБД, электронные таблицы,
справочные системы. А чем большую часть своего времени занимается
программист? - сидит в редакторе и чинит свои исходники. Что же до
отдельных программ, то я надеюсь, что с опубликованием данной статьи
программисты начнут поддерживать это устройство в своих разработках,
а в большинстве игрушек клавиатура вообще не нужна - джойстиком играть
гораздо удобнее;
- в кировском центре "Виктория" занимаются разработкой контроллера
такой же клавиатуры, который позволит использовать внешнюю клавиатуру
во всех без исключения программах. Но во-первых, этот проект находится
пока еще только на стадии разработки, а во-вторых, зачем покупать
дорогостоящий контроллер (для подключения которого, к тому же, нужно
вскрывать Вектор), если клавиатура Вам нужна в основном для работы в
ДОС и в ее приложениях?
Замечания по выбору клавиатуры: для работы с данным драйвером Вам
необходима клавиатура, работающая по стандарту PC/XT. Если Вы будете
использовать старую 83-клавишную клавиатуру, то у никаких проблем
возникнуть не должно. Если же у Вас 101-клавишная расширенная клавиатура,
то вы должны убедиться в том, что на ней есть переключатель "XT-AT",
так как в последнее время распространились клавиатуры без такого
переключателя и с разъемом, как на PS/2 (маленькая круглая 6-контактная
вилка).
Собственно подключение клавиатуры производится по следующей схеме:
разъем ПУ                                           клавиатура
--------------------                                --------------------
|  цепь  | контакт |                                |  цепь  | контакт |
|------------------|                                |--------|---------|
|  +5 В  |   C10   |-------O----O----< <--- ... ----|  +5 В  |    5    |
|        |         |       |    |                   |        |         |
| корпус |   C01   |-------|----|----< <--- ... ----| корпус |    4    |
|        |         |      [ ]  [ ]                  |        |         |
|  PC7   |   C02   |----  [ ]  [ ]                  |   --   |    3    |
|        |         |   |   |    |                   |        |         |
|  PC1   |   C08   |---O---O----|----< <--- ... ----| данные |    2    |
|        |         |            |                   |        |         |
|  PC2   |   C07   |------------O----< <--- ... ----| строб  |    1    |
--------------------                                --------------------

Работа клавиатуры.
Для связи клавиатуры с компьютером используется всего две информационных
линии - данные и строб (в англоязычной литературе - data и clock).
Нормальное их состояние: data=0, clock=1, при этом компьютер и клавиатура
работают сами по себе, никак не общаясь друг с другом. Если клавиатуре
есть, что передавать (пользователь нажал или отпустил какую-то клавишу),
то она периодически сбрасывает линию clock в "0" и тут же восстанавливает
ее обратно, так что длительности состояний "1" и "0" находятся в соотношении
примерно 10:1. Компьютер, обнаружив это, устанавливает линию data в "1",
что служит сигналом клавиатуре к передаче следующей последовательности:
         __     __    __    __    __    __    __    __    __    __       __
clock ...  |___|  |__|  |__|  |__|  |__|  |__|  |__|  |__|  |__|  |_____|  ...
         __     _____ _____ _____ _____ _____ _____ _____ _____ _____    __
data  ...  |___|     |__0__|__1__|__2__|__3__|__4__|__5__|__6__|__7__|__|  ...
Последовательность представляет собой один стартовый бит, равный "1",
и восемь битов данных, тактируемые по линии clock. После передачи порции
данных клавиатура устанавливает обе линии в "1", при этом компьютеру
лучше вновь установить признак занятости (data=0), чтобы клавиатура не
начала передавать следующий байт, пока компьютер обрабатывает только что
полученный.
; Пример программы приема байта данных с клавиатуры
;
IBMKey:mviA, 15; Установка бита 7 порта 5 в единицу
out4;  (то есть установка признака готовности
;  компьютера к приему данных)
lxiB, 0B00h ;Загрузка счетчика и регистра-накопителя
nx000:in5; Ожидание единицы на линии строба
ani4
jznx000
dcrB; Проверка значения счетчика
jzKeyOvr;  и выход, если там 0
in5; Чтение из порта 5 и сдвиг прочитанного
rrc;  значения таким образом, чтобы бит данных
rrc;  клавиатуры попал во флаг переноса
movA, C; Сохранение прочитанного бита в регистре C
rar
movC, A
nx111:in5; Ожидание нуля на линии строба
ani4
jnznx111
jmpnx000; Конец цикла
KeyOvr:mviA, 14; Установка бита 7 порта 5 в единицу
out4;  (то есть установка признака занятости компьютера)
movA, C
ret; Выход из подпрограммы
;
Возможно, данная подпрограмма выгладит запутанной и ненаглядной, но это
объясняется тем, что я сразу предлагаю вариант, готовый к работе и
оптимизированный по длине. Процедура ждет, пока клавиатура не начнет
передавать данные, читает байт, ждет, пока на линии строба вновь не установится
единица, и затем возвращает прочитанный байт в регистре A. Для динамического
опроса клавиатуры в подпрограмме, вызываемой по превыванию по адресу 038h
можно использовать следующую проверку:
;
mviB, 80; Загрузка счетчика. Опыт показывает, что при числе
;  повторов меньше 70 система реагирует на сигналы
;  клавиатуры с чуть заметным, но все же неприятным
;  запаздыванием. Устанавливать же число больше 90 -
;  пустая трата времени.
noKeys:in5; Чтение значение из порта
ani4; Фильтрация бита 2 - сигнала строба клавиатуры
czIBMKey; Если там "0", то вызовается подпрограмма IBMKey
jzKeyEnd;  и цикл завершается
dcrB; Иначе ожидание продолжается,
jnznoKeys;  пока не кончится счетчик
KeyEnd:
;
Перед началом работы микросхема параллельного интерфейса инициализируется так,
чтобы старшая тетрада порта C работала на вывод, а младшая - на ввод. Для этого
подходит, например, значение 083h (в данном примере заодно настраивается на
ввод и порт B, к которому подключается такое популярное устройство, как
джойстик "П"). И еще один совет по работе с портами - если вы хотите изменить
значение одного бита порта 5, то лучше не посылайте в него весь новый байт
целиком, а изменяйте только один нужный вам бит путем записи значения в
управляющий порт 4.
Теперь поговорим об обработке данных. В начале работы вашей программы
рекомендуется произвести сброс клавиатуры (мало ли в каком состоянии она
сейчас находится). Для этого перед настройкой микросхемы интерфейса для
нормальной работы установите бит 2 порта 5 в ноль (проще всего отправить
значение 080h в порт 4) и подождите не менее 50 мс (три команды HLT при
разрешенных прерываниях). Затем настройте микросхему так как было описано
выше (например, тем же значением 083h) и вызовите подпрограмму IBMKbd для
чтения одного байта с клавиатуры. Клавиатура при сбросе проводит
самотестирование и, в случае успеха, должна послать число 0AAh. Если
значение, которое вернула подпрограмма IBMKbd, отличается от этого, то
или клавиатура не в порядке или просто нажата какая-то клавиша.
Дальнейшая обработка данных полученных от клавиатуры очень проста: клавиатура
посылает просто коды нажатых клавиш, сама организует автоповтор со скоростью
10 символов в секунду, а при отпускании клавиши посылает тот же самый код,
но с установленным в "1" старшим битом. Для тех, кто пишет игры сразу
привожу коды некоторых клавиш:
вверх048h
вниз080h
вправо04Dh
влево04Bh
пробел039h
ввод01Ch
Остальные коды можно узнать в многочисленных справочниках по IBM PC.
Дополнительно всем желающим могу предложить (совершенно бесплатно):
- исходные тексты полного драйвера клавиатуры, с перекодировкой
алфавитно-цифровых и управляющих символов в стандарт КОИ-8,
переключением регистров (постоянным и временным);
- вариант ОС МикроДОС со встроенным драйвером клавиатуры;
- исходные тексты BIOS консоли для ОС МикроДОС с драйвером этой
клавиатуры.
С удовольствием отвечу на ваши письма, дам дополнительные разъяснения и
консультации, а также с интересом приму ваши замечания и предложения.

Дмитрий Платонов.
Мой адрес: XXXXXX, г. Омск, ул. XXXXXX, д. XX, кв. XX.
P.S. Эта статья целиком была набрана на компьютере "Вектор-06Ц" с
клавиатурой от IBM PC/XT.

Dmitry Dubrovenko
Advanced Member
Сообщения: 1502
Зарегистрирован: 05.02.2008,14:16
Откуда: Cанкт-Ленинград
Контактная информация:

Сообщение Dmitry Dubrovenko » 16.02.2008,00:23

Понятно. Это - "софтовый" вариант. А есть какие-нибудь сведения о
в кировском центре "Виктория" занимаются разработкой контроллера
.К сожалению ничего не понял из диаграмм (можно как-нибудь перерисовать, что б поразборчевее было?), а работа клавиатуры очень интересует. Данный алгоритм к AT, или XT относится (и чем они, кстати, отличаются)?
Ещё не понял, кто Clock передаёт, и какова длительность импульсов?
ICQ нет, и в ближайшее время не будет!

svofski
Newbie
Сообщения: 16
Зарегистрирован: 07.02.2008,23:58
Откуда: С.-Петербург
Контактная информация:

Сообщение svofski » 16.02.2008,00:49

Не видел сведений о кировском центре Виктория.
С диаграммами в этом тексте не надо заморачиваться. В интертрубах есть много мест &nbsp;где протокол PS/2 детально разобран. Вот, например,
http://www.computer-engineering.org/ps2protocol/
Клок
всегда генерируется клавиатурой.

Dmitry Dubrovenko
Advanced Member
Сообщения: 1502
Зарегистрирован: 05.02.2008,14:16
Откуда: Cанкт-Ленинград
Контактная информация:

Сообщение Dmitry Dubrovenko » 21.02.2008,01:15

Посмотрел тут прилагающуюся схему.
В клавиатуре (у меня - "конденсаторная" ), на выходе, стоят одновибраторы (во всяком случае я так понял :) ) на интегральных таймерах. Это что, просто борьба с дребезгом, или нечто большее?

(Сообщение отредактировал Dmitry Dubrovenko 21 фев. 2008 3:21)
ICQ нет, и в ближайшее время не будет!

svofski
Newbie
Сообщения: 16
Зарегистрирован: 07.02.2008,23:58
Откуда: С.-Петербург
Контактная информация:

Сообщение svofski » 21.02.2008,01:47

Посмотрел тут прилагающуюся схему.

Какую такую схему, где схема? От Вектора схема?

Ответить