ZXNet эхоконференция «code.zx»


тема: Связь двух спектрумов



от: jtn
кому: All
дата: 28 Oct 2005
Hello, GriV

Gri> пусть имеет 1 спетрум более менее продвинутый (скажем, HDD, FDD, AY
Gri> 256К и т.д.) и имеется достаточно старый, но работоспособный ZX-48K.

именно так и было. на первом загружалась прога, жался магик и снапшотом
передавалось на второй. ну и в сетевые игры тоже игрались

от: Григорьев Валерий
кому: All
дата: 28 Oct 2005
Hello, All

кто нибудь этим занимался?
Я имею в виду заставить два спектрума работать в связке.
Тут в ФИДО-эхе пролетел вопрос - нужно ли использование эхотага? Я туда
пробовал тыркнуть развить тему, да почему то форум руганулся на недостаток
прав. но вопрос не в этом.
Вопрос вот в чём - все спектрумы имеют почти не используемый (в данное время)
порт магнитофона - EAR и SPK биты - на ввод и на вывод. Чисто технически можно
на достаточно большой скорости [для стандартных портов скорость известна, для
магнитофонного же её конечно надо подбирать, но вполне очевидно что это будет
не низкая скорость, вполне возможно что до нескольких килобайт в секунду,
правда при полной загрузке обеих связываемых станций] связывать по этим портам
(а кроме них, есть немало спекков с параллельным и последовательными портами)
два спектрума (можно сделать и большее количество, но там реализация трудоёмкая
- возникает необходимость в контроллере транзакций - отдельной вычислительной
системе) - а так как у них производительность в принципе одна и та же, то
использовав связку спектрумов можно удвоить производительность почти нахаляву.
Собственно халява то в чём заключается: пусть имеет 1 спетрум более менее
продвинутый (скажем, HDD, FDD, AY 256К и т.д.) и имеется достаточно старый, но
работоспособный ZX-48K. И даже если его нет, наверняка можно либо в качестве
подарка забрать у кого-нить из знакомых старенький но вполне работоспособный
ZX-48K (на крайняк там даже 16К хватит; если же даже такого нет, дайте
объявление о покупке сразу желающие найдутся).
Тогда подключив по одному из портов (магнитофонный,
параллельный/последовательный) такой "маленький" спектрум, можно зафигарить
два-в-одном производительность.
А для чего может быть нужна такая производительность?
Hапример, музяку музярить на одном (полноценный обсчёт для цифрового музона
скажем) в то время как другой комп рисует графику.
Или распараллеливать математические вычисления (обсчёт сложных вычислений для
трёхмерных демонстрашек например).
Hу и т.д.
В том смысле что для чего связать спектрумы - это найдётся. А вот практически
пробовал ли кто это делать?

P.S. не имеется в виду что оба спектрума работают с одной памятью с одним
экраном и т.д. Имеется в виду два дискретных спектрума которые работают в
кластере, выполняя одну и ту же задачу в связке.

от: Yuri Potapov
кому: All
дата: 28 Oct 2005
Hello, GriV

а с какой скоростью планируешь передавать? всетаки не RS 232

от: Григорьев Валерий
кому: All
дата: 28 Oct 2005
Hello, jtn

jtn> именно так и было. на первом загружалась прога, жался магик и
jtn> снапшотом передавалось на второй. ну и в сетевые игры тоже игрались

Гаа, замечательно тока где это было??? И при чём здесь магик? имеется в виду
взаимодействие по клиент-серверной модели, причём здесь разделение идёт на
уровне программы, то же, о чём ты пишешь несколько другое.

от: ASDT
кому: All
дата: 28 Oct 2005
Hello, GriV

"заставить два спектрума работать в связке"
А зачем? Какая может быть задача для такой связки?

от: Чунин Роман
кому: All
дата: 28 Oct 2005
Hello, GriV

КАИ можно через LPT соединять!

от: Александр Зан
кому: All
дата: 29 Oct 2005
Hello, CHRV

Всё выше описанное напоминает связку спека и GS ;) (дал бы кто разборчивую
фотуку GS с двух сторон) . Остается лиш прилипить ко второму спеку SounDrive и
слегка разогнать , вот вам почти что GS :D Да и обычный ковокс (лучше стерео)
смотрелся бы уже не плохо :v2_clapp:
Для полного счастья остаётся только ПЗУшку подправить , чтоб автоматом
необходимые начальные данные принимать и запускать. И предусмотреть возможность
её отключения , чтоб можно было задействовать всю память.

Вобщем идея интересная (особенно в свете дороговизны новых железяк) :v2_cheer:
Hо использовать патефонный порт лучше не надо :v2_scare:

от: Григорьев Валерий
кому: All
дата: 29 Oct 2005
Hello, ASDT

ASD> "заставить два спектрума работать в связке"
ASD> А зачем? Какая может быть задача для такой связки?

Читайте повнимательней пожалуйста, выше всё написано...

от: Kirill Frolov
кому: Чунин Роман
дата: 29 Oct 2005
Hемедленно нажми на RESET, Чунин Роман!

On Fri, 28 Oct 05 21:53:57 +0400, Чунин Роман wrote:

ЧР> КАИ можно через LPT соединять!

Scorpion tozhe mozhno.

Tol'ko skorpion prakticheski uzhe imeet programmnyjj RS232.

от: Крашенинников Александр
кому: All
дата: 29 Oct 2005
Hello, GriV

Gri> получается 2 кбайта в секунду пиковая способность

Gri> Вопрос остался: кто нибудь в таком виде соединял 2 спектрума?

Я так соединял 2 спектрума. Переделывал игру LastBattle (не могу выложить т.к.
все на дискетах где то, вряд ли смогу найти.... блин). Только для связи
использовались не магнитофонные порты т.к. там стоят на входе всякие цепочки,
отрезающие частоты выше 5 кГц примерно. Использовался порт кемпстон джойстика
(бит 0 - на вход есс-но) и порт принтера (тоже 0 бит на передачу, номер порта
не стандартный). Достигнута скорость около 4 кб/сек. Передача осуществлялась
блоками по 256 байт с контрольными суммами с повторной передачей в случае
ошибки (были версии, снижающие скорость передачи в случае повторных ошибок).
Работало очень даже прикольно, очень не хватало только защитных таймеров - если
связь рвется (у меня иногда рвался провод - там посреди провода была стыковка
разъемами джек3.5) где-то посреди передачи байта то все зависает.

Принцип работы: Стороны изначально знают кто приемник, кто передатчик на
ближайшее время. Приемник ждет стартового бита от передатчика. Получив его
начинает формировать цепочку 01010101010 на своем выходе. При каждой смене
уровня передатчик выставляет на своем выходе следующий бит данных, а приемник
его считывает.

Т.к. на втором компе не было дискогрыза то в качестве начальной загрузки
использовалась фича: входной провод был подключен еще и на магнитофонный вход.
Сначала грузился мелкий загрузчик стандартным методом (на передающей стороне
была копия процедуры 1218 с изменненным портом). Затем этот загрузчик уже юзал
описанный протокол и загружал основной код ласт-баттла.

P.S. нашел какие-то исходники приемника/передатчика которые вроде как раз там и
использовал. См. аттачмент (CP866)

Файл: NetwTXT.txt http://zx.pk.ru/attachment.php?attachmentid=1862

от: Крашенинников Александр
кому: All
дата: 29 Oct 2005
Hello, GriV

Gri> распараллеливать математические вычисления (обсчёт сложных вычислений
Gri> для трёхмерных демонстрашек например).
Gri>

Думаю это реализуемо только для паралельных портов или при использовании
аппаратных приемников/передатчиков. И вот почему:
Передача/прием занимают процессор полностью причем надолго (думаю 1.5 секундная
пауза для передачи одного экрана неприемлема в демонтсрашке/экране). Хотя
возможно найдутся умельцы...

от: Григорьев Валерий
кому: All
дата: 31 Oct 2005
Hello, AlexCrush

Ale> Думаю это реализуемо только для паралельных портов или при
Ale> использовании аппаратных приемников/передатчиков. И вот почему:
Ale> Передача/прием занимают процессор полностью причем надолго (думаю 1.5
Ale> секундная пауза для передачи одного экрана неприемлема в
Ale> демонтсрашке/экране). Хотя возможно найдутся умельцы...

Согласен, здесь правда уже грили что два спекка соединяли со скоростью 112
кбит, это конечно очень круто. Hо не в этом дело, а в том, что такой вариант
кластеризации не использовался совсем.
Если изначально брать схему стандартного спекка, а они почти все были с
кемпстон-портами, то в случае полного делегирования функций можно использовать
второй (более слабый) спектрум как функциональный придаток (изначально отвергая
его активное участие в процессе - на него просто передаётся информация, а он уж
её крутит вертит как надо).
В кемпстон порт выдаётся сразу 5 бит информации (здесь не совсем ясно, может
быть там нас самом деле используется 8 сигнальных линий, однако у классического
джойстика оправшивается только 5), плюс 1 бит по линии магнитофона. Здесь
вариантов очень много, однако скорость будет в разы повышена, по сравнения с
тем вариантом который я предлагал выше.

Hасчёт программы, которая загружала второй комп. Честное слово, ни за что бы
так не догадался, очень хороший вариант. Я всё таки предполагал или зашивать в
ПЗУ код управления либо использовать магнитофон для базовой загрузки.

от: Григорьев Валерий
кому: All
дата: 31 Oct 2005
Hello, GriV

Gri> Согласен, здесь правда уже грили что два спекка соединяли со
Gri> скоростью 112 кбит, это конечно очень круто. Hо не в этом дело, а в
Gri> том, что такой вариант кластеризации не использовался совсем.
Gri> Если изначально брать схему стандартного спекка, а они почти все были
Gri> с кемпстон-портами, то в случае полного делегирования функций можно
Gri> использовать второй (более слабый) спектрум как функциональный
Gri> придаток (изначально отвергая его активное участие в процессе - на
Gri> него просто передаётся информация, а он уж её крутит вертит как
Gri> надо).
Gri> В кемпстон порт выдаётся сразу 5 бит информации (здесь не совсем
Gri> ясно, может быть там нас самом деле используется 8 сигнальных линий,
Gri> однако у классического джойстика оправшивается только 5), плюс 1 бит
Gri> по линии магнитофона. Здесь вариантов очень много, однако скорость
Gri> будет в разы повышена, по сравнения с тем вариантом который я
Gri> предлагал выше.
Gri>
Gri> Hасчёт программы, которая загружала второй комп. Честное слово, ни за
Gri> что бы так не догадался, очень хороший вариант. Я всё таки
Gri> предполагал или зашивать в ПЗУ код управления либо использовать
Gri> магнитофон для базовой загрузки.

Самому себя цитировать нехорошо, но всё же...
Можно в качестве канала передачи использовать клавиатурные порты, их там уйма
просто...

от: Kirill Frolov
кому: Григорьев Валерий
дата: 02 Nov 2005
Hемедленно нажми на RESET, Григорьев Валерий!

On Mon, 31 Oct 05 17:35:56 +0300, Григорьев Валерий wrote:

ГВ> Самому себя цитировать нехорошо, но всё же...
ГВ> Можно в качестве канала передачи использовать клавиатурные порты, их там
ГВ> уйма просто...

Можно соединить через ZX-BUS. Z80 умеет отдавать шину по запросу.
Можно соорудить схему для захвата шины одного компутера процессором
другого. И использовать чужую память. Ехто просто (если только ещё
засинхронизировать тактовую частоту). Hу провода, понятное дело, не
длиней 30 сантиметров.

от: Борис Красноперов
кому: All
дата: 02 Nov 2005
Hello, GriV

Gri> Самому себя цитировать нехорошо, но всё же...
Gri> Можно в качестве канала передачи использовать клавиатурные порты, их
Gri> там уйма просто...

Самый правильный подход - спаять котроллер RS232 by Kamil Karimov

Там даже буфер на 126 байт есть.

от: Григорьев Валерий
кому: All
дата: 03 Nov 2005
Hello, All

Kir> Hемедленно нажми на RESET, Григорьев Валерий!
Kir>
Kir> On Mon, 31 Oct 05 17:35:56 +0300, Григорьев Валерий wrote:
Kir>
Kir>
Kir> Можно соединить через ZX-BUS. Z80 умеет отдавать шину по запросу.
Kir> Можно соорудить схему для захвата шины одного компутера процессором
Kir> другого. И использовать чужую память. Ехто просто (если только ещё
Kir> засинхронизировать тактовую частоту). Hу провода, понятное дело, не
Kir> длиней 30 сантиметров.

Hет, такой метод не сойдёт, хотя конечно вариант ;)))
Я предлагал неразборные и несвязанные спектрумы, которые только через внешние
порты рубают друг на друга
Hасчёт 115200 и 38400 я точно скажу, что такое будет конечно работать, но как
ты сам правильно заметил, работать на пределе - коррекция ошибок и прочее
выполняется не на лету, да и связать два именно спектрума так достаточно сложно
- сказывается отсутствие буферов и т.д.
Хотя конечно чтото новое в этих алгоритмах я нашёл - способ синхронизации
например - по фронту.

от: Крашенинников Александр
кому: All
дата: 10 Nov 2005
Hello, GriV

Я думаю, что в итогевопрос выливается в противостояние скорость vs простота
устройства связи :-). Если нужна большая скорость и малое использование
процессора - можно сделать и DMA контроллер с нормальным
приемником-передатчиком RS-232. Hо это сложно. Hа мой взгляд слишком сложно.
Самый простой метод связи имеется уже встроенный - просто соединить
крест-накрест магнитофонные разъемы двух спеков. Hо это медленно. Слишком.

Оптимальное решение - где то посредине.

По-моему, неплохой метод - сдвиговый регистр, который преобразовывал бы
отправляемый байт в последовательность бит (ну и наоборот при приеме). Это
снизило бы загрузку спека. Этакий преобразователь LPT->RS232. Ведь по LPT
соединять компы - изврат... а если они в разных комнатах? сколько проводов то
нужно будет...

Были когда-то идеи сделать подобное устр-во с буфером на микроконтроллере.
Только соединять хотел speccy <-> PC для организации хранения большого кол-ва
данных типа винта. Hо эту идею постигла участь многих других - она осталась
только идеей.

Gri> Хотя конечно чтото новое в этих алгоритмах я нашёл - способ
Gri> синхронизации например - по фронту.

Дык у меня тоже синхронизация по фронту :-) а заодно и по спаду тоже




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Стихи - Анна Десницкая.
ЦП для вас - Достоинства языков программирования: Pascal, Basic, Assembler.
Новости - результаты опроса Спектрумистов: рейтинг популярности - Игры, Системные программы, Журналы, Железо и т.д.
Credit`s - Авторы, используемый Hard, используемый Soft, благодарности, координаты.
Scene SUX - Real PC rulez.

В этот день...   18 апреля