Важная информация

User Tag List

Страница 81 из 86 ПерваяПервая ... 777879808182838485 ... ПоследняяПоследняя
Показано с 801 по 810 из 854

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

  1. #801
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  2. #802
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,211
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    608
    Поблагодарили
    400 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  3. #803
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #804
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,211
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    608
    Поблагодарили
    400 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

  5. #805
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 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 (респект авторам)

  6. #806
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,003
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно в начале расскоментировать .asect и .=0, после строчки PPUEND: добавить
    Код:
    	.BLKB	^O<1000>-.
    И собрать командой

    link/nobitmap/stack:0/top:1000 TSTCLR

    1000 из .BLKB ^O<1000>-. должна быть синхронизирована с 1000 из /top:1000

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

    tcflush (и по идее FlushFileBuffers) - это НЕ ОЖИДАНИЕ передачи всего буфера, а его СБРОС

    "tcflush() — Flush input or output on a terminal

    Flushes input data that has been received by the system but not read by an application.

    Flushes output data that has been written by an application but not sent to the terminal."

    И, похоже (Sleep(2000) намекает), проблема банальна - в буфере на com порт ещё есть что-то для передачи, а программа уже завершилась и windows СБРАСЫВАЕТ все буфера для COM порта или же это делают вот эти два вызова

    ::PurgeComm(hComPort, PURGE_RXCLEAR);
    ::PurgeComm(hComPort, PURGE_TXCLEAR);

    если они были в первоначальном варианте

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

    И ещё комментарий по тексту загружаемого. Если закомментить
    Код:
    	.asect
    .=0
    То программа будет собрана с адреса 1000 и при загрзуке её с адреса 0 работать, по идее, не будет - много абсолютных ссылок, типа:
    Код:
    	mov	#PPUSTA, R4		; run PPU code
    ...
    PPMSG:	.word	PPARR			; address of beginning of array
    ...
    PPSEN:	mov	#PPMSG, R0		; array address

  7. #807
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    ::PurgeComm(hComPort, PURGE_RXCLEAR);
    ::PurgeComm(hComPort, PURGE_TXCLEAR);

    если они были в первоначальном варианте
    Не Это "мое" уже дополнение. В первоначальном варианте просто было закрытие файла порта да и все. (::CloseHandle(hComPort)
    Это я уже развлекаюсь так-сказать. Но sleep действительно помог.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  8. #808
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,003
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Но sleep действительно помог.
    С его помощью идёт ожидание в лоб завершения процесса передачи. Теперь понятно, почему 512 нулей в конце так же помогли - забили буфер windows и/или com порта, а пока оно пыхтит в процесс переноса их от проги в буфер - нужная инфа (первый 512 байт) гарантированно ушли в УК-НЦ

  9. #809
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    ::PurgeComm(hComPort, PURGE_RXCLEAR);
    ::PurgeComm(hComPort, PURGE_TXCLEAR);

    если они были в первоначальном варианте
    Не Это "мое" уже дополнение. В первоначальном варианте просто было закрытие файла порта да и все. (::CloseHandle(hComPort)
    Это я уже развлекаюсь так-сказать. Но sleep действительно помог.

    Цитата Сообщение от Hunta Посмотреть сообщение
    Если закомментить
    Оно собственно и закомменчено для РТ-11. Савка-то работает для системы.
    Если раскомментить - то это вариант для загрузки по адресу 0, там правда чет с ПП накосячено, но это мелочи, код в него грузится и даже исполняется.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  10. #810
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,003
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В общем, надо разбираться с Windows API - как ДОЖДАТЬСЯ опустошения буфера. По хорошему - и Windows и COM порта, так как я не уверен, что Windows не сбрасывает COM порт, если программа, которая его использовала - вызвала функция закрытия хендла com порта или не завершилась.

    И понятно, почему и у Патрона и у меня всё работает - и там и там приложение класса Сервер - то есть они не завершают свою работу после передачи чего-либо

Страница 81 из 86 ПерваяПервая ... 777879808182838485 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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