Просмотр полной версии : "Сетевые интерфейсы" ZX-Specytum и его "клонов".
null_device
21.06.2018, 15:37
Какие на данный момент существуют аппаратно-программные способы обмена данными для двух и более машин (для построения подобия локальной сети)?
Есть interface 1bis , как раз прикупил вторую платку хочу опробовать сеть :)
http://gifok.net/images/2018/06/21/PgVxlX_9jmw.md.jpg (http://gifok.net/image/8J0e)
https://www.youtube.com/watch?v=W4AFa6KdAxU
Несколько компов можно объединить в локальную сеть интерфейсами RS-232 (схему можно найти в инете), на Профи плат версии 5 имеется полноценный COM-порт. Но программной поддержки не то что для создания сети, а даже для того, что бы слить данные с одного компа в другой - не наблюдалось. А ведь это можно сделать.
Error404
22.06.2018, 18:01
Несколько компов можно объединить в локальную сеть интерфейсами RS-232 (схему можно найти в инете), на Профи плат версии 5 имеется полноценный COM-порт. Но программной поддержки не то что для создания сети, а даже для того, что бы слить данные с одного компа в другой - не наблюдалось. А ведь это можно сделать.
На Профи же CP/M? Для нее полно терминальных программ для обмена по RS-232 как текстом (ASCII-терминал), так и файлами (всякие Z- Y- XMODEM). Например, легендарный Кермит. Хотя мне больше всего нравится терминал QTERM (http://zx-pk.ru/threads/26689-razgovory-na-temu-kommunikatsij-i-oriona.html?p=876743&viewfull=1#post876743). Он легко кастомизируется под любую платформу дописыванием в задекларированном автором месте кода терминала низовых подпрограмм побайтового доступа к RS-232 (или что там за интерфейс у вас за него).
И для ZX такое тоже есть наверняка.
Ну и ZIFI (ненуачо? :) )
solegstar
22.06.2018, 18:06
Я на Профи кидал файлы через Terminal. На PC принимала hyperterminal по протоколу z-modem. Нульмодем конечно ещё та сеть, но как-то работало.
Я на Профи кидал файлы через Terminal. На PC принимала hyperterminal по протоколу z-modem. Нульмодем конечно ещё та сеть, но как-то работало.
Ну там да, работало, но всё же это не то. Тот же эмулятор терминала, если бы он был бы в коммандере, то между двумя Профи можно было бы передавать. Из спортивного интереса конечно, проще дискету в другой комп вставить и прочитать)
Я на Профи кидал файлы через Terminal. На PC принимала hyperterminal по протоколу z-modem. Нульмодем конечно ещё та сеть, но как-то работало.
А с модемом есть опыт работы? ато как то пробовали с profi 3.2 + отдельный ком-порт (старого типа). (Гдето уже писал об этом на форуме, не могу найти). Так работало все это довольно плохо. Т.е. команды модем получал и отвечал на них, но были какието глюканы толи драйвера толи реализации протокола... короче ни на какую bbs так и не заломились, и файлы не перекачивали. Вроды бы ктото тут же на форуме говорил об глюке генерации прерывания и потере данных при передаче. Я так и не понял, рабочая ли была та плата внешнего ком-порта или требовалость чтото фиксить в схеме чтобы оно работало.
Вроды бы ктото тут же на форуме говорил об глюке генерации прерывания и потере данных при передаче.
Это писал я. В Профи, по какой то нелепой причине, не было установлен контроллер прерываний типа ВН59. В результате есть отличная от нуля вероятность наступления следующего события:
1) Происходит прерывание по концу отображения кадра (спектрумовское 50 Гц), запустилась программа обработки прерывания
2) И тут на компорте пришли данные, схема генерит сигнал прерывания ставя в ноль определённые биты шины данных, формируя команду RST 28h (к примеру), но драйверу ком-порта этот по барабану
3) Как процедура обработки прерывания 50Гц закончит свою работу управление возвращается в программу и прерывания RST 28h уже не будет. Следющий пришедший байт от ком порта вытеснит текущий в никуда. Буфера ВВ51A не имеет, вернее буфер там на 1 байт.
Вот такие пироги. Глупость разработчика ВВ51A (i8251A) + глупость разработчика платы периферии Профи 5 привели к тому, что реализация COM-порта на профи была не полноценной.
Письменный Д.Г. видимо этот момент пропадания данных увидел при отладке драйвера мыши, и всё что он придумал, так после приема пакетов он делал сброс ВВ51А. и парсинг корректности принятых пакетов. И то, даже в этом случае были зависания от мыши.
1) Происходит прерывание по концу отображения кадра (спектрумовское 50 Гц), запустилась программа обработки прерывания
2) И тут на компорте пришли данные, схема генерит сигнал прерывания ставя в ноль определённые биты шины данных, формируя команду RST 28h (к примеру), но драйверу ком-порта этот по барабану
3) Как процедура обработки прерывания 50Гц закончит свою работу управление возвращается в программу и прерывания RST 28h уже не будет. Следющий пришедший байт от ком порта вытеснит текущий в никуда. Буфера ВВ51A не имеет, вернее буфер там на 1 байт.
Добрый день!
Подскажите где почитать принцип, схему или статью о работе COM порта в Профи поподробнее?
ВВ51 генерирует команду RST xx и при работе INT RST xx не отрабатывает?
Добрый день!
Подскажите где почитать принцип, схему или статью о работе COM порта в Профи поподробнее?
ВВ51 генерирует команду RST xx и при работе INT RST xx не отрабатывает?
Нигде не прочитать. Могу ответить я и ещё несколько человек с форума. ВВ51 не вырабатывает rst. Нужно просто смотреть схему (могу запостить нужный кусок позднее, с комментарием). С ВВ51 выходит сигнал "готовность данных" и потом уже триггер формирует нужный сигнал, и гасятся на 0 нужные биты данных формируя код команды RST 20 или 28.
Нигде не прочитать. Могу ответить я и ещё несколько человек с форума. ВВ51 не вырабатывает rst. Нужно просто смотреть схему (могу запостить нужный кусок позднее, с комментарием). С ВВ51 выходит сигнал "готовность данных" и потом уже триггер формирует нужный сигнал, и гасятся на 0 нужные биты данных формируя код команды RST 20 или 28.
Скачал альбом схем profi503.rar тут http://sblive.narod.ru/ZX-Spectrum/Profi/Profi.htm
Лист 4П https://yadi.sk/i/BYjYIZr_3YiVFB
https://yadi.sk/i/BYjYIZr_3YiVFB
Первая часть - сигналы с ВВ51 RXRDT и TXRDT, TIMER (с микросхемы часов ВИ1?) и FI формируют биты D3 D4.
Вторая часть - сигналы /M1 /IORQ ,CPM? P4I (или P41 ?), LWR
В итоге формируется /INT. А на листе 1К, есть /INT через резистор от схемы видеоконтроллера. Т.е. получается /INT геренируется и от видеоконтроллер (на шине данных #FF) и от схемы формирования ВВ51 (на шине данных нужные биты D3, D4 ).
Получается комбинации битов:
3,4bit = 0 #E7 - RST 20
4bit = 0 #EF - RST 28
3bit = 0 #F7 - RST 30
Правильно?
Интересно, что в ПЗУ Профи по вызываемым RST от COM порта? А что делает драйвер?
Да, всё верно. RST 30h - по прерыванию от часов реального времени (срабатывание будильника). В ПЗУ Профи по мысли разработчиков не было BIOS. Там было ПЗУ с набором тестов и процедурой стартера. Я это назвал "ветвитель", т.е. после reset запускалась процедурка, которая инициализировала палитру компьютера, а потом уже в зависимости от того, нажата ли кнопка on/off был или переход в меню Basic-128 или (при отжатой кнопке), происходила попытка загрузки ОС с дискеты. Если дискета имела секторы размером 1024 байт и был в наличии сектор 9 на 0 дорожке 0-й стороны, то он читался и запускался. Если дискеты не было, то переход в меню тестов. Если дискета TR-DOS то переход в TR-DOS.
Драйвер COM-порта находился в ОЗУ, в режиме CP/M ПЗУ отключено, с адреса 0000 по 00FF расположена системная страница и там по адресам rst xx были команды перехода в CBIOS. CBIOS это как бы расширенный БИОС CP/M.
Так вот, драйвер компорта или читает байты полученные извне или отправляет их туда. Драйвер вызывается из программы. Сейчас я не помню команд того драйвера, но можно посмотреть исходник. Терминальная программа работала через этот драйвер. Но вариантов терминальной программы было несколько, была вроде бы и ещё программа от KLUG. Все программы от него были в старом варианте системы (не Микродос от Крестьянникова с CBIOS а предыдущее поколение), там иные драйверы и всё иначе. Программа могла иметь и свой драйвер который после запуска подменял системный. Сейчас точно я ответить не могу. Исходников последних версий драйверов COM-порта тоже нету (есть ранние версии).
Драйвер COM-порта находился в ОЗУ, в режиме CP/M ПЗУ отключено, с адреса 0000 по 00FF расположена системная страница и там по адресам rst xx были команды перехода в CBIOS. CBIOS это как бы расширенный БИОС CP/M.
Так вот, драйвер компорта или читает байты полученные извне или отправляет их туда. Д.
А никто не пробовал сделать блокировку /INT от видеоконтроллера, во время работы в режиме CP/M, для корректной работы COM порта? Скажем свободный бит какой-то в порту.
PS: Сорри за неграмотные вопросы - у меня был когда-то Профи, но я не интересовался особо его расширенными режимами.
Нет. Но можно было обойти проблему программно, что я и сделал в своей реализации драйвера COM порта. Решение простое, если вызов прерывания (аппаратного) был замаскирован и не отработан, то можно вызвать в конце обработчика 50 Гц нужное нам, для ввода вывода. Если было принято что-то - читаем. Проверил - работает, на драйвере мыши (недоделанном). Но данные не теряются.
По теме интерфейса RS-232 на фирменных аппаратах есть интересный сайт.
https://www.emagsoftware.it/spectrum/
И просто интересные ссылки с форума :
http://foro.speccy.org/viewtopic.php?f=6&t=1438
https://www.worldofspectrum.org/forums/discussion/31548/spectrum-128k-rs232-to-pc-serial-cable
https://www.worldofspectrum.org/forums/discussion/34291/
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot