User Tag List

Показано с 1 по 10 из 91

Тема: Обсуждение: Локальная сеть корвет

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вообщем, я закончил первый, черновой вариант базовой поддержки сети. Базовая - потому что эмуляция сетевого адаптера далеко не полная. То есть настройка режима работы ВВ51 через командный порт не реализована - режим жестко задан как 19200-8-О-1. С другой стороны, а надо ли точно эмулировать этот ВВ51? Вот для ИРПС порта - другое дело.
    Собственно, эмулируются пока только чтение из сети, запись в сеть, проверка готовности приемника (передатчик готов всегда) и прерывание от сети.

    В файл конфигурации я добавил 2 параметра - LANADDR, то есть адрес РМУ в сети, и LANPORT, указывающий имя последовательного устройства, например /dev/ttyS0. Программа открывает этот порт, и взаимодействует через него с подключенным к нему реальным корветом. Как вариант, предусмотрена работа с виртуальными компортами (псевдотерминалами) - если указать LANPORT=/dev/ptmx, то будет создан подчиненный вторичный компорт, имя которого показывается на консоль при старте, например -

    Код:
    forth32@cad ~/korvet/kemu $ ./kdbg 
    
    Последовательный порт /dev/ptmx открыт, fd=5
    Подчиненный псевдотерминал - /dev/pts/3
    Driver: ALSA
    Этот вторичный компорт можно открыть, например, моей программой KL. Ну или запустить еще одну копию эмулятора и указать его в LANPORT.

    Итак, программа STS в эмуляторе работает полностью. Я ее, кстати, впервые увидел в работе. Уродство редкостное. Спрашивает подтверждение на каждый чих. За такое в комплекте КУВТ надо оба яйца с корнем отрывать. Поскольку STS привязана к NETLIB, в CP/M она не работает. А с микродосом возникла проблема - в большинстве микродосов в эмуляторе не работает клавиатура. На реальном корвете работает, а тут - нет. И не поймешь где виснет - отладчик в эмуляторе требует полноэкранный режим и мне, соответственно, недоступен. Единственный рабочий микродос оказался на диске de_9_01.kdi.
    Программа нашла мой реальный корвет, определила его адрес, позволила передать-принять данные. Кстати, на РМУ при этом вывдится текст "Работа прервана загрузкой программы" - хорошая идея, надо ее ко мне в программу вставить.
    Попробовал я CP/N. Он передал клиентскую часть на корвет, она там запустилась и выдала A>, но по первой же команде повисла намертво. КОРНЕТ виснет при загрузке с дискеты, СФЕРА требует сетевой диск B, подробнее я не разбирался.

    Теперь о проблемах. Во-первых, в обратную сторону сеть работать не хочет. То есть когда реальный корвет - сервер, а эмулятор - РМУ. Похоже, теряются прерывания. То есть PIC_IntRequest(3) не вызывает прерывания. Тут придется посидеть в GDB, поотлавливать этот момент. Ну и с псевдотерминалом тоже есть проблема:

    Код:
    forth32@cad ~/korvet/lan $ ./kl -d /dev/pts/3 -vbp -s0 -l100
    
     @ Послан адрес
     @ Послана команда запроса данных типа 3
     + Прием данных:
     - Принят пакет типа N - прерываем прием данных
     - Данные не получены
    То есть эмулятор принимает адрес, и даже пытается отреагировать на команду, но отвечает N. Тут я еще заметил, что через псевдотерминал обмен идет ОЧЕНЬ быстро - понятно, что тут скорость не ограниченна 19200, и очень похоже что эмулятор просто не успевает за потоком данных. Надо разбираться с буферизацией и управлением потоком.

    Ладно, для первого дня и так неплохо. Поскольку насчет репозиториев мы еще не договорились, выкладываю свои труды на яндексдиск - http://yadi.sk/d/9kivUREpRRam3
    Все равно это очень временный файл.

    Но все еще впереди. Разберемся с прерываниями, согласованием потоков данных, клавиатурой - будет отличная игрушка.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    12 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от forth32 Посмотреть сообщение
    Итак, программа STS в эмуляторе работает полностью. Я ее, кстати, впервые увидел в работе. Уродство редкостное. Спрашивает подтверждение на каждый чих. За такое в комплекте КУВТ надо оба яйца с корнем отрывать. Поскольку STS привязана к NETLIB, в CP/M она не работает. А с микродосом возникла проблема - в большинстве микродосов в эмуляторе не работает клавиатура. На реальном корвете работает, а тут - нет. И не поймешь где виснет - отладчик в эмуляторе требует полноэкранный режим и мне, соответственно, недоступен. Единственный рабочий микродос оказался на диске de_9_01.kdi.
    про отрывать - очень точные слова
    по этому народ и стал писать "заменители"

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

    есть 3 типа микродосов
    для ОПТС 1.x
    для ОПТС 2.x
    для ОПТС 1.x и ОПТС 1.x

    первый и второй можно скачать http://pk8020.narod.ru/s2-download-soft.html
    разница там следующая
    в микродос используется опрос клавиатуры из ПЗУ (в CP/M он свой)
    причем в ОПТС 1 он работает по вызову функции
    а в ОПТС 2 по прерываниям
    соответсвенно и "биос" микродоса должен это учитывать
    и соответственно не работает неправильная версия
    и еще мелочь, в ОПТС1 в конфигурации памяти нет АЦЗУ
    а в ОПТС2 оно есть (как и в CP/M)
    в этом смысле ОПТС2 ближе к CP/M, по крайней мере кое что из CP/M софта которые лезет прямо в экран - работает

    кстати в микродос этих версий нет рамдиска

    и есть 1 (одина) версия, которая проверяет на какой ОПТС она запустилась и патчит себя
    кроме того в ней есть драйвер рамдиска
    /td0/MIKRDOS3.KDI

    кстати, в эмуляторе то нужнуй ром в конфиге выбрать можно
    ты как раз и нашел Микродос для ОПТС2


    под cp/m есть Postman
    \DmitriyKrautsov\Unsorted\unsort06.kdi
    \DmitriyKrautsov\Unsorted\unsort18.kdi






    c ОПТС 1.x был свой микродос

    ---------- Post added at 20:06 ---------- Previous post was at 19:04 ----------

    клавиатура вроде починилась

    в keyboard.c

    заменить
    Код:
      for (i=0;i<MAXKEY;i++)      {KeyAlias[i]=key[i];}
    на
    Код:
      for (i=0;i<KEY_MAX;i++)      {KeyAlias[i]=key[i];}

  4. #3

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от esl Посмотреть сообщение

    в микродос используется опрос клавиатуры из ПЗУ (в CP/M он свой)
    То есть при обращении к клавиатуре происходит переключение карты памяти с включением ОПТС, а потом обратно? Ну, сэкономили пару-другую сотен байтов биоса, однако. Только вот непонятно почему некоторые микродосы не работают в эмуляторе но работают на реальном корвете с ОПТС2 на борту. Хотя хрен с ними, мне и одного рабочего микродоса более чем достаточно.

    и еще мелочь, в ОПТС1 в конфигурации памяти нет АЦЗУ
    а в ОПТС2 оно есть (как и в CP/M)
    То есть для вывода каждого байта на экран опять-таки переключают карту? имхо вот это уже идиотизм. Ради экономии килобайта памяти такие накладные расходы...

    Я смотрю, ты плотно копал микродос. Скажи вот тогда, он устроен так же, как и CP/M, то есть BIOS+BDOS+CCP ? Мне просто непонятно, почему некоторые программы лезут к терминальному драйверу напрямую по адресам Exxx вместо обращений через точку входа BDOS.

    и есть 1 (одина) версия, которая проверяет на какой ОПТС она запустилась и патчит себя
    кроме того в ней есть драйвер рамдиска
    Похоже, что я на эту версию и нарвался. Правда, попробовать рамдиск не получилось - из-за отсутствия шифта не могу ввести знак =. А на реальном моем корвете ГЗУ 48К, там не будет рамдиска.

    под cp/m есть Postman
    Попробовал его. БЛИН! Это же небо и земля! Нормальный оконный интерфейс, и работает как часы. Все передается и принимается.

    Под такое дело попробовал соединить 2 эмулятора через виртуальный терминал. Как ни странно, все более-менее заработало. И передача в эмулятор, и прием другим эмулятором. То есть и прерывания не теряются. Правда, возникают иногда ошибки передачи, но с этим разберемся как-нибудь. А вот CP/N отказалась работать полностью. Если на реальный корвет хотя бы ОС заливается, то тут принимающий эмулятор просто виснет. Ну да ладно, пока и так неплохо.

    Пора заняться изучением аллегро.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Локальная Wiki: обсуждение
    от CityAceE в разделе Форум
    Ответов: 113
    Последнее: 26.11.2025, 23:35
  2. Сеть MSX-1
    от Eugeny в разделе MSX
    Ответов: 36
    Последнее: 23.02.2020, 20:55
  3. Сеть в КУВТах
    от CodeMaster в разделе ДВК, УКНЦ
    Ответов: 8
    Последнее: 04.02.2017, 11:25
  4. Локальная сеть корвет
    от forth32 в разделе Корвет
    Ответов: 9
    Последнее: 04.07.2014, 00:29

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •