User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 854

Тема: УКНЦ загрузка через стык С2

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

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

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Просто товарищь написал - кидаем 512 байт данных, потом 512 нулей и.. типа всё будет тип-топ?? Ню ню.
    Я понимаю что это "кривота" и так видимо делать нельзя. Скорей-всегда какая-то буферизация в виндузе работает, пока не разобрался где ее отключить или как сделать flush этому буферу.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

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

  3. #2

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,506
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Я понимаю что это "кривота" и так видимо делать нельзя. Скорей-всегда какая-то буферизация в виндузе работает
    Добраться до УК-НЦ сейчас мне тяжело, так что пока про УК-НЦ ничего не скажу.
    В других же случаях ещё на было случая, что бы эта буферизация (и не в Windows, а в железе, скажем, у моих FTDI стоит умолчание - 4096 байт) как-то мешала.

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    где ее отключить
    В настройках COM порта

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    или как сделать flush этому буферу
    Я так понимаю, что что-то самописное используется для общения с УК-НЦ через COM порт?

  4. #3

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Я так понимаю, что что-то самописное используется для общения с УК-НЦ через COM порт?
    Со стороны УКНЦ стандартный загрузчик из ПЗУ. Он банально грузит 512 байт по адресам 0-777 и если первый код = nop - то запускает прямо с адреса 0.
    Со стороны ПК юзается софт Никиты (https://github.com/nzeemin/ukncbtl-u...cComSender.cpp, понятно с некими уже моими модификациями ибо мне не надо грузить .sav, а только загрузить 512 байт)
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  5. #4

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,506
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Со стороны УКНЦ стандартный загрузчик из ПЗУ
    Это понятно

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Со стороны ПК юзается софт Никиты
    Ну вот в нём и надо разбираться - раз из эмулятора Патрона всё норм

  6. #5

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    BlaireCas, а учитывая, что у вас COM через USB, можете опробовать мою утилитку загрузки? Это тот же UkncComSender, только с другим загрузчиком и параметром для скорости. Мой загрузчик учитывает тайм-аут и считает контрольную сумму. Если что не так, то на экране будет вывод, что произошла ошибка. На железном порту всё прекрасно, но учитывая, что USB плюётся пакетами, не будет ли ошибки тайм-аута.
    Вызов: UkncComSender COM-порт FileName [BaudRate]. Третий параметр необязательный, по умолчания 9600. В вашем случае надо 57600.

    Актуальная версия дальше по теме.
    Последний раз редактировалось Alex_K; 26.06.2023 в 15:30.

  7. #6

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    можете опробовать мою утилитку загрузки?
    Ваша версия "почти прокатила" Выдало
    Loading...
    ?UKNCMSN-F-Timeout

    (я так понимаю просто после загрузчика шел payload и поэтому загрузчик-то полностью забросился, а вот сам файл уже недошел, тут похоже правда какая-то проблема с буферизацией и последние сколько-то байт у меня из винды недоходят)
    Последний раз редактировалось BlaireCas; 26.06.2023 в 13:19.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  8. #7

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Loading...
    ?UKNCMSN-F-Timeout
    Ясно. Вот из-за USB-COM видно и вышло. Наверное тайм-аут надо увеличивать или убирать его.

    А на каком файле, какого объёма?

  9. #8

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А на каком файле, какого объёма?
    Файлик довольно простенький, 1024 байта (впрочем я разные пробовал).
    TSTCLR.ZIP
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  10. #9

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,248
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Файлик довольно простенький, 1024 байта (впрочем я разные пробовал).
    TSTCLR.ZIP
    Попробуйте загрузить Замок Гоблинов, файл довольно большой, как раз хорош для теста.

    - - - Добавлено - - -

    Попробую увеличить тайм-аут, потом выложу новую версию.

  11. #10

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    483
    Спасибо Благодарностей отдано 
    139
    Спасибо Благодарностей получено 
    391
    Поблагодарили
    146 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Код:
        ::Sleep(2000);
        ::FlushFileBuffers(hComPort);
        ::PurgeComm(hComPort, PURGE_RXCLEAR);
        ::PurgeComm(hComPort, PURGE_TXCLEAR);
    Внимание! Sleep - важен перед flush. Точного значения сколько "спать" я не определил. Поставил на глаз.

    (откуда узнал про sleep - нууу.. гуглением)

    Кусок кода для линукса из stackoverflow



    I think I figured it out. For some reason, I need to add a delay before flushing. These two lines added before returning fd seem to have done the trick:

    sleep(2); //required to make flush work, for some reason
    tcflush(fd,TCIOFLUSH);

    --- оттуда-же ---


    The cause of this problem lies in using a USB serial port. If you use a regular serial port, you will not have this problem.

    Most USB serial port drivers don't support flushing properly, probably because there's no way of knowing if there's still data in the internal shift register, FIFO or in the USB subsystem.

    See also Greg's reply to a similar problem reported earlier here.

    Your sleep may cure the problem, but it's only a work-around. Unfortunately there is no solution other than using a regular serial port.

    [свернуть]
    Последний раз редактировалось BlaireCas; 26.06.2023 в 14:12.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Загрузка П.О. через звуковую PC.
    от Biozoom в разделе Commodore 16/64/128
    Ответов: 51
    Последнее: 06.10.2013, 11:12
  2. Загрузка УКНЦ
    от костя в разделе ДВК, УКНЦ
    Ответов: 73
    Последнее: 05.03.2011, 12:55
  3. КУПЛЮ УКНЦ Электроника МС 0511 с распаянным Стык С2.
    от falanger в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 02.03.2010, 18:57
  4. Загрузка на рел Commodore 64
    от Zloy в разделе Commodore 16/64/128
    Ответов: 45
    Последнее: 27.07.2009, 12:59
  5. УКНЦ: загрузка через стык С2
    от tnt23 в разделе ДВК, УКНЦ
    Ответов: 1
    Последнее: 17.04.2009, 19:38

Ваши права

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