Просмотр полной версии : Локальная сеть для "Микроши"
На странице http://home.onego.ru/~bav9/93.html, рядом с загадочным "ГРАФИЧЕСКИМ РЕДАКТОРОМ V2.0", есть описание "ПРОГРАММЫ ДЛЯ РАБОТЫ В ЛОКАЛЬНОЙ СЕТИ".
----- ДРАЙВЕР ЦЕНТРАЛЬНОЙ МАШИНЫ ЛОКАЛЬНОЙ СЕТИ -----
ПРОГРАММА СОСТАВЛЕНА В МАШИННЫХ КОДАХ, ЗАГРУЗКА - "I".
ПРЕДНАЗНАЧЕНА ДЛЯ ОБМЕНА ДАННЫМИ МЕЖДУ ПЭВМ "МИКРОША"
ПО ЛИНИЯМ СВЯЗИ ЧЕРЕЗ ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС. ПОЗВОЛЯЕТ
ПОДДЕРЖИВАТЬ СВЯЗЬ ОДНОЙ ЦМ И 31 ПМ. ЛОКАЛЬНАЯ СЕТЬ ПОЗВОЛЯ-
ЕТ ПЕРЕДАВАТЬ СЛЕДУЮЩИЕ ВИДЫ ДАННЫХ :
- СООБЩЕНИЯ ОПЕРАТОРУ
- БЛОКИ ДАННЫХ ИЗ ПАМЯТИ ПЭВМ.
ОПЕРАТОР ЦМ МОЖЕТ ИНИЦИИРОВАТЬ ВЫПОЛНЕНИЕ ПРОГРАММЫ, НАХО-
ДЯЩЕЙСЯ В ВИДЕ КОДОВ В ПАМЯТИ ОДНОЙ ИЗ ПМ.
СУЩЕСТВУЕТ ДВА ВНУТРЕННИХ ФОРМАТА ПЕРЕДАЧИ ДАННЫХ :
- КОРОТКИЙ :
N,F,CNT,D0,...,DN, ГДЕ N - НОМЕР МАШИНЫ, F - КОД ФУН-
КЦИИ, CNT - ЧИСЛО ПЕРЕДАВАЕМЫХ БАЙТОВ,D0,...,DN - БАЙТЫ.
- ДЛИННЫЙ :
N,F,ADRL,ADRH,CNTL,CNTH,D0,...,DN,SUM, ГДЕ N,F - АНАЛО-
ГИЧНО, ADRL,ADRH - МЛАДШИЙ И СТАРШИЙ БАЙТЫ АДРЕСА
НАЧАЛА БЛОКА ДАННЫХ, CNTL,CNTH - БАЙТЫ ДЛИНЫ ПОЛЯ
ДАННЫХ,D0,...DN - ДАННЫЕ (ДО 64 КБАЙТ), SUM - КОНТРОЛЬ-
НАЯ СУММА.
----- РУКОВОДСТВО -----
ПРИ ПОДГОТОВКЕ К РАБОТЕ ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ :
1. СОЕДИНИТЬ ПЭВМ МЕЖДУ СОБОЙ ЧЕРЕЗ РАЗ'ЕМ ИНТЕРФЕЙС-1.
2. ВКЛЮЧИТЬ БЛОКИ ПИТАНИЯ.
3. ЗАГРУЗИТЬ В ЦМ ДРАЙВЕР ЦЕНТРАЛЬНОЙ МАШИНЫ.
4. ЗАГРУЗИТЬ В ПМ ДРАЙВЕР ПЕРЕФЕРИЙНОЙ МАШИНЫ.
5. ЗАПУСТИТЬ ПРОГРАММУ НА ЦМ - G6500.
НА ЭКРАНЕ ПОЯВИТЬСЯ ТАБЛИЦА, ГДЕ В ВЕРХНЕМ ОКНЕ - ПОЛЯ
ОШИБКИ, КОМАНД И ПОЧТЫ. В ПОЛЕ ОШИБКИ СООБЩЕНИЕ ПОЯВИТСЯ
В ТОМ СЛУЧАЕ, ЕСЛИ МАШИНА ОБНАРУЖИТ ОШИБКУ СИНТАКСИСА.
В ПОЛЕ ПОЧТЫ - СООБЩЕНИЕ И СООТВЕТСТВУЮЩИЙ ТЕКСТ.
В ТАБЛИЦЕ ИМЕЕТСЯ СПРАВОЧНОЕ ПОЛЕ И ПОЛЕ РАЗРЕШЕНИЯ ТРАН-
ЗИТА, ЕСЛИ "ТРАНЗИТ РАЗРЕШЕН" - ВОЗМОЖЕН ОБМЕН ДАННЫМИ
МЕЖДУ ПМ ЧЕРЕЗ ЦМ.
6. ЗАПУСТИТЬ ПРОГРАММЫ НА ПМ - G6500.
ПОСЛЕ ЭТОГО НА ЭКРАНЕ ПОЯВИТСЯ ТАКАЯ ЖЕ ТАБЛИЦА, КАК НА ЦМ.
ПОСЛЕ ВЫПОЛНЕНИЯ УКАЗАННЫХ ОПЕРАЦИЙ ЛОКАЛЬНАЯ СЕТЬ ГОТОВА
К РАБОТЕ.
Любопытно, что это была за сеть, как физически выглядела и вообще. Расковырять драйвер и понять, как велась работа через "ИНТЕРФЕЙС-1", несложно.
А это, собственно, весь "Интерфейс 2". Используются два элемента К155ЛА12 и линии A3, B6 и C0:
61396
На перерисованных схемах явно опечатка. Цитата из руководства по эксплуатации:
Через биты 5 и 6 порта B производится вывод информации в последовательном виде через разъем "Интерфейс-1" (X3).
Через бит 0 порта C осуществляется ввод последовательной информации во внутренние регистры ПЭВМ.
Экран сервера (Центральной Машины) выглядит вот так:
На перерисованных схемах явно опечатка.
Да.
Видимо, схема рисовалась из этой картинки http://lehavika.narod.ru/8/microsha/shema1r.zip
Название цепи идущего с выводу 1 DD21 можно интерпретировать и как "63", и как "53".
Правильно - "63", проверено на реальном железе.
Однако, есть опечатка в заводской схеме!
На разъёме X3 контакт 3 - это "земля", а контакт 2 - вход. (левый верхний угол, X3:2 - DD21:2 (http://realddp.narod.ru/miscinfo/Mikrosha/board_top2.jpg))
Ну и название разъёма тоже...
61407
А ведь можно дешево и сердито использовать кашерный Ethernet, с модулем типа ENC28J60 или Wiznet w5100/5500. Или даже Wi-Fi на чипах Espressif ESP8266.
Домашнюю сеть на последовательной передаче (IN, OUT, SYNC_IN, SYNC_OUT) я тоже когда то писала, между Сурой и РК. Запустить было прикольно, но практического применения мало. :)
Да.
Видимо, схема рисовалась из этой картинки http://lehavika.narod.ru/8/microsha/shema1r.zip
Название цепи идущего с выводу 1 DD21 можно интерпретировать и как "63", и как "53".
Правильно - "63", проверено на реальном железе.
Однако, есть опечатка в заводской схеме!
На разъёме X3 контакт 3 - это "земля", а контакт 2 - вход. (левый верхний угол, X3:2 - DD21:2 (http://realddp.narod.ru/miscinfo/Mikrosha/board_top2.jpg))
Ну и название разъёма тоже...
61407
Супер, спасибо! На путаницу с контактами я уже напоролся, подключая осциллограф :)
- - - Добавлено - - -
А ведь можно дешево и сердито использовать кашерный Ethernet, с модулем типа ENC28J60 или Wiznet w5100/5500. Или даже Wi-Fi на чипах Espressif ESP8266.
Домашнюю сеть на последовательной передаче (IN, OUT, SYNC_IN, SYNC_OUT) я тоже когда то писала, между Сурой и РК. Запустить было прикольно, но практического применения мало. :)
Тут спорно, насколько это будет дешево и сердито (а еще же софт писать). Тогда как для подключения "Интерфейса 1" требуется простой стерео-кабель с разъемами DIN.
А наработками по самописной сети не поделитесь?
- - - Добавлено - - -
Шина напоминает типовое двухпроводное решение тех лет (MSX-NET, например) с двумя multidrop линиями.
61408
Сеть активно пользуется каналом 1 таймера для отсчета интервала синхронизации и битовых интервалов. Однако есть некоторая странность в коде DRVLOKNT, конкретно в одном месте таймер инициализируется управляющим словом 0x7e. Вроде бы это неправильно, т.к. режимов работы таймера всего шесть, кодируются они 000..101, и получающийся режим 111 недопустимый.
Длительность битового интервала по моим расчетам выходит 200мкс (хорошо согласуется с картинкой). Это дает пропускную способность канала в 2500 бит/с.
Цитата:
The D3, D2, and D1 bits of the Control Word set the operating mode of the timer. There are 6 modes in total; for modes 2 and 3, the D3 bit is ignored, so the missing modes 6 and 7 are aliases for modes 2 and 3.
HardWareMan
21.06.2017, 06:50
tnt23, т.е. на лицо квантовое запутывание реверсинженера?
HardWareMan, фиг знает, чем руководствовались в MPTI NET LABORATORY, когда писали этот софт :)
Формат передаваемых сервером сообщений:
SYNC <num> <cmd> ...
, где SYNC - низкое состояние линии в течение TBD мс, <num> - номер станции 01..31 или broadcast 00, <cmd> могут быть следующие:
SYNC <num> 02 mm mm - в ответ станция отсылает 00 FLAGS 00
SYNC <num> 03 00 - в ответ станция отсылает 00 FLAGS NN byte0 byte1 ... byteNN
SYNC <num> 04 06 xx xx xx xx xx xx - в ответ станция отсылает 00 FLAGS byte0 byte1 ... byteNN
05 -
SYNC <num> 06 nn nn mm mm byte0 byte1 ... byteNN CHK - прием блока
SYNC <num> 07 00 - PING (?) в ответ станция отсылает 00 FLAGS 00
Daniil Chislov 86
28.08.2018, 12:19
Интересная штука !
А на реальном железе проверялась (в плане по сети) ?
Интересная штука !
А на реальном железе проверялась (в плане по сети) ?
Ну я посмотрел на сети из одной машины - да, какие-то пакетики бегают. Дальше бы надо брать две машины, вязать, грузить серверную и клиентскую части, сниффить обмен, сопоставлять с дизассемблером. Я заломался.
Daniil Chislov 86
28.08.2018, 15:18
Думаю если у большинства будет Микроша то кто-то начнет делать софт.
Думаю если у большинства будет Микроша то кто-то начнет делать софт.
Софт уже есть, мне лично он был интересен как способ загрузки бездисковых (хаха) машин.
Шина напоминает типовое двухпроводное решение тех лет (MSX-NET, например) с двумя multidrop линиями.
61408
Вообще-то, такая схема называется "кольцо" (см., например, родную сетевую плату УКНЦ). Это не "шина". А в MSX, насколько я помню, была шина. Как правило, право передачи в кольце управляется токеном ("token ring"), тогда в описании форматов пакетов должно фигурировать слово "токен". Следует также учесть, что как шина, так и кольцо могут работать в режиме с предопределенным ведущим (режиме опроса, polling).
- - - Добавлено - - -
По-моему, это вариант протокола RDMA. Только вот в Мониторе поддержки сети нет. :(
Формат передаваемых сервером сообщений:
SYNC <num> <cmd> ...
, где SYNC - низкое состояние линии в течение TBD мс, <num> - номер станции 01..31 или broadcast 00, <cmd> могут быть следующие:
SYNC <num> 02 mm mm - в ответ станция отсылает 00 FLAGS 00
SYNC <num> 03 00 - в ответ станция отсылает 00 FLAGS NN byte0 byte1 ... byteNN
SYNC <num> 04 06 xx xx xx xx xx xx - в ответ станция отсылает 00 FLAGS byte0 byte1 ... byteNN
05 -
SYNC <num> 06 nn nn mm mm byte0 byte1 ... byteNN CHK - прием блока
SYNC <num> 07 00 - PING (?) в ответ станция отсылает 00 FLAGS 00
Вообще-то, такая схема называется "кольцо" (см., например, родную сетевую плату УКНЦ). Это не "шина". А в MSX, насколько я помню, была шина.
По-моему, все как раз наоборот. Мультидроп и есть шина, в виде одного подтянутого к питанию сигнала, который произвольное количество желающих могут притянуть к земле без ущерба для себя и окружающих.
В MSX сети версии 2 было забавно, была-таки шина, но сделанная на основе MIDI физики, т.е. токовой петли =)
- - - Добавлено - - -
По-моему, это вариант протокола RDMA. Только вот в Мониторе поддержки сети нет. :(
Оно и понятно, в Мониторе вообще свободного места не было, а тут какое-то самодельное поделие. А что за протокол RDMA?
Признак топологии "кольцо" - наличие режима ретрансляции с входа на выход без активности процессора. Это и есть его схема. А на шине обычно подтяжки надо отключать, кроме крайних. RDMA - remote DMA (дистанционный ПДП), на что намекают nn nn mm mm и xx xx xx xx xx xx. В данном случае он реализован программно.
Ну так в данной сетевой поделке отсутствует эта самая ретрансляция, а есть самая что ни на есть общая шина.
В _схеме_ есть ретрансляция, если на оба логических элемента с ВВ55 подать 1 (PB |= 0x60;). На сервере при кольце с опросом ретрансляция не нужна, если клиенты между собой не обмениваются напрямую. А клиентское ПО в режим ретрансляции не входит?
- - - Добавлено - - -
Длительность битового интервала по моим расчетам выходит 200мкс (хорошо согласуется с картинкой). Это дает пропускную способность канала в 2500 бит/с.
1/(200 мкс/бит) = 5000 бит/с
Уточните.
В _схеме_ есть ретрансляция, если на оба логических элемента с ВВ55 подать 1 (PB |= 0x60;). На сервере при кольце с опросом ретрансляция не нужна, если клиенты между собой не обмениваются напрямую. А клиентское ПО в режим ретрансляции не входит?
Не знаю, используется ли подача обеих единиц. Если есть желание-возможность, посмотрите дизассемблированный код? У меня такое ощущение, что в то время сетевые классы строились по жесткой иерархической схеме 1 Мастер - N Слейвов, и передача между слейвами не предусматривалась. Ощущение подтверждается разглядыванием интерфейса программ и чтением скудной документации.
1/(200 мкс/бит) = 5000 бит/с
Уточните.
Не могу, все разобрано и убрано по ящикам.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot