Просмотр полной версии : SpecCheckUp - проверялка для ПК Специалист
CityAceE
05.09.2024, 21:14
Пока писал эмулятор под Raspberry Pi пытался вникнуть в нюансы работы тех или иных устройств, чтобы сэмулировать всё с максимальной точностью. Для чего даже завёл отдельную тему (https://zx-pk.ru/threads/35304-voprosy-po-arkhitekture-quot-spetsialista-quot.html). И на каждую такую фичу писал небольшой тест, чтобы убедиться, что всё работает так, как задумано. А потом пришла мысль все эти проверки собрать воедино. А когда начал объединять, то получилось, что одни проверки хорошо ложатся на другие. А потом решил результаты не в отладчике смотреть, а выводить текст на экран. Ну и в итоге появилась вот такая программулина - SpecCheckUp. Я её писал-писал, а потом у меня случился отпуск. Думал, что вернусь и допишу (ещё как минимум пару проверок не добавил + есть нереализованные идеи по текущим), но в итоге забросил это дело, так как энтузиазм угас. А сейчас просто решил выложить в том виде, в котором оно сейчас есть. Вдруг, кому-то пригодится. И чём чёрт не шутит, вы предложите какие-то свои идеи для проверок или ещё что-то другое.
Ну и очень любопытно было бы посмотреть на результаты запуска на других реальных компьютерах. А то у меня выборка маловата - из реалов только мой Лик и несколько эмуляторов, включая свой собственный.
Забавно, но только благодаря этой программке я с удивлением узнал, что, оказывается, Emu80 в конфигурации SP580 поддерживает ВИ53.
Результат работы программы на Emu80 (с подключенной ВИ53):
https://pic.maxiol.com/images2/1725560779.780858384.speccheckup.png
Результат работы программы на реальном Лике:
https://pic.maxiol.com/thumbs2/1725560860.780858384.speccheckuplik.jpg (https://pic.maxiol.com/?v=1725560860.780858384.speccheckuplik.jpg&dp=2)
Компьютер Serg6945:
https://pic.maxiol.com/thumbs2/1725684401.780858384.chkup.png (https://pic.maxiol.com/?v=1725684401.780858384.chkup.png&dp=2)
Косвенно свидетельствует о эмуляции... Слишком длинно, лучше наверное: Возможно эмуляция.
При определённом схеме (не SP-580) зачем-то вычисляется контрольная сумма в блоке F800...FFFF. А вот в блоке D8000...D8FF контрольную сумму не подсчитал. Ну это в эмуляторе SPMX_java (http://xn----7sbombne2agmgm0c.xn--p1ai/Soft/SPMX_java.rar) в emu "Системное сообщение" и "схема начального пуска" выводится, в отличие от эмуллятора SPMX_java. Хотя последний эмуллятор не показатель, он заточен под МХ.
CityAceE
06.09.2024, 18:04
При определённом схеме (не SP-580) зачем-то вычисляется контрольная сумма в блоке F800...FFFF.
Позволяет быстро судить о реальности ВВ55. Чтение содержимого РУС у реального компа и эмуляторов отличается. На это требуется отдельный тест. Это я ещё просто не доделал.
А вот в блоке D8000...D8FF контрольную сумму не подсчитал.
Если там ВИ53, контрольную сумму подсчитать невозможно, так как невозможно разом прочитать все ячейки. А их значение меняется постоянно.
Ну это в эмуляторе SPMX_java в emu тест вообще не запускается.
Постараюсь посмотреть что программе конкретно не нравится в этом эмуляторе.
Если определяется клон SP580/нет, то исходя из этого можно наверное и подсчитать контрольную сумму. Наличие последней по блокам - хорошая задумка. В общем хорошая программа! Под рукой нет реального Специалиста (Сябра/Экспресс) чтоб проверить на на данных клонах.
Serg6845
06.09.2024, 18:29
Позволяет быстро судить о реальности ВВ55. Чтение содержимого РУС у реального компа и эмуляторов отличается. На это требуется отдельный тест. Это я ещё просто не доделал.
есть еще момент - были ИК55, ВВ55А, а еще 82C55A. как минимум у последнего из РУС читается содержимое РУС с 7 битом в 1 (в отличие от ИК55 как минимум)
Если там ВИ53, контрольную сумму подсчитать невозможно, так как невозможно разом прочитать все ячейки. А их значение меняется постоянно.
это же хороший признак того что там ВИ53 - если КС постоянно меняется - возможно оно. то же самое справедливо и для системного ВВ55 - если в процессе подсчета КС будет нажата кнопка или например с магнитофона что-то прилетит.
CityAceE
06.09.2024, 18:53
есть еще момент - были ИК55, ВВ55А, а еще 82C55A. как минимум у последнего из РУС читается то что туда записано (в отличие от ИК55 как минимум)
Ну вот хороший вариант сделать отдельный тест на них.
это же хороший признак того что там ВИ53 - если КС постоянно меняется - возможно оно.
Собственно, я почти так и определяю таймер это или нет. Несколько раз считываю 8 байт и если там значения разные, то делаю вывод, что это таймер.
если в процессе подсчета КС будет нажата кнопка или например с магнитофона что-то прилетит.
Тогда будет сам пользователь виноват. У меня нет цели учесть все возможные варианты. Если пользователь не хочет получить хороший результат и будет нажимать кнопки и включать магнитофон, то это его личные проблемы.
Serg6845
06.09.2024, 21:58
Тогда будет сам пользователь виноват. У меня нет цели учесть все возможные варианты. Если пользователь не хочет получить хороший результат и будет нажимать кнопки и включать магнитофон, то это его личные проблемы.
а это зависит от схемы узла считывания. некоторые (например известная схема на 561ЛН2) имеют тенденцию дергать выход даже без сигнала на входе.
- - - Добавлено - - -
Если интересно - вот
http://sksb3.no-ip.org:8085/chkup.png
мой реал, правда далекий от журнального. память - РУ5, про защелку - правда, C000-DFFF - ПЗУ, E000-FEFF - ОЗУ. FF00-FFFF - ВУ. причем там еще и RTC присутствует, так что КС меняется каждую секунду.
CityAceE
07.09.2024, 07:46
Если интересно
Очень интересно! Спасибо! Добавлю твой скрин в первый пост.
мой реал, правда далекий от журнального.
Тем ценнее результат!
память - РУ5
Вообще я на твои фотки, которые ты выкладывал ранее, ориентировался. Но, значит, что-то пошло не так. Можешь, пожалуйста, ещё раз прислать экран дампа сразу после включения с 0x7000?
C000-DFFF - ПЗУ
Интересная надпись "START TAPE". Ранее с такой не сталкивался.
E000-FEFF - ОЗУ
Теоретически, конечно, определять тоже можно. Но, боюсь, что будет определение только твоего компа.
FF00-FFFF - ВУ
А как же совместимость с софтом? Я не раз видел, что дёргают адреса F000-F003 при опросе клавиатуры.
причем там еще и RTC присутствует, так что КС меняется каждую секунду.
Всё это, безусловно, тоже можно было бы определять. Но я боюсь, что все эти доработки есть только единственном виде - у тебя.
CityAceE
07.09.2024, 07:51
Хотя последний эмуллятор не показатель, он заточен под МХ.
Вот да, я посмотрел. Там похоже всё валится на первом же стандартном вызове очистки экрана. И для вывода системного сообщения также используется стандартная процедура ПЗУ. Я думаю, что в этом всё дело. Когда вернусь к этой программе буду держать в голове эти моменты.
Serg6845
07.09.2024, 09:41
Вообще я на твои фотки, которые ты выкладывал ранее, ориентировался. Но, значит, что-то пошло не так. Можешь, пожалуйста, ещё раз прислать экран дампа сразу после включения с 0x7000?
http://sksb3.no-ip.org:8085/d7000.png
но не исключаю что картина может зависеть от завода-изготовителя тех РУ5.
Интересная надпись "START TAPE". Ранее с такой не сталкивался.
"дело было вечером, делать было нечего"
оно как-то по смыслу больше подходит - понятно что ждет ввода с ленты. хотя я уже и забыл про это - надпись у меня вообще не выводится, сразу в монитор.
а поскольку вместо ПЗУ у меня STK12C68 - вносить правки очень просто. и если налажал - всегда можно откатиться к предыдущему состоянию.
Теоретически, конечно, определять тоже можно. Но, боюсь, что будет определение только твоего компа.
так я и не претендую, просто рассказываю как есть.
А как же совместимость с софтом? Я не раз видел, что дёргают адреса F000-F003 при опросе клавиатуры.
это наверно SP580, а он со стандартным несовместим ровно по этой причине. в журнальном варианте системный ВВ55 начинается с F800, и софта, использующего адреса отличные от FF00-FF03 - я пока не встречал.
Всё это, безусловно, тоже можно было бы определять. Но я боюсь, что все эти доработки есть только единственном виде - у тебя.
да понятно, надо же знать что искать :)
у меня там много всего - 2 ВВ55, SD контроллер на ПЛИС, 580ВН59 (да, у меня и прерывания технически есть), и до кучи - ISA мультикарта от PC (COM, LPT, FDD) - вот сижу xmodem отлаживаю...
ISA мультикарта от PC (COM, LPT, FDD) - вот сижу xmodem отлаживаю...
Под 16550?
Serg6845
10.09.2024, 08:09
Под 16550?
16450. пробовал и 16550 и 8250 - разницы не заметил. 115200 на порту вытянул, но все тормозит CRC, 2 килобайта/сек где-то выходит.
HardWareMan
10.09.2024, 08:59
16450. пробовал и 16550 и 8250 - разницы не заметил. 115200 на порту вытянул, но все тормозит CRC, 2 килобайта/сек где-то выходит.
UART без FIFO уже на скорости 38400 дудосит 486DX266 прерываниями так, что всё начинает тормозить, а вы про 8ми битки. Просто посмотри, какие гапы у тебя в потоке при 115к и сам всё поймёшь.
Serg6845
10.09.2024, 21:59
UART без FIFO уже на скорости 38400 дудосит 486DX266 прерываниями так, что всё начинает тормозить, а вы про 8ми битки.
ну и что? а здесь у проца других задач нет, все ресурсы на выгребание данных из порта.
Просто посмотри, какие гапы у тебя в потоке при 115к и сам всё поймёшь.
посмотрел. никаких. ну то есть они конечно есть - передатчик (core i5 со всеми fifo и т.п.) после получения ACK думает 5мс перед отправкой следующего пакета и CRC пакета считается почти втрое дольше приема пакета, как я и говорил. в процессе приема пакета никаких гапов нет. ну и если отключить CRC - получаем 32713 байт (полезных) за 4 секунды.
http://sksb3.no-ip.org:8085/xmodem-crc.sr
http://sksb3.no-ip.org:8085/xmodem-no-crc.sr
~5 мегов каждый. открывать PulseView.
и если продолжать - наверно не здесь, здесь как-то не в тему.
HardWareMan
11.09.2024, 08:45
посмотрел. никаких. ну то есть они конечно есть - передатчик (core i5 со всеми fifo и т.п.) после получения ACK думает 5мс перед отправкой следующего пакета и CRC пакета считается почти втрое дольше приема пакета, как я и говорил. в процессе приема пакета никаких гапов нет. ну и если отключить CRC - получаем 32713 байт (полезных) за 4 секунды.
Эм. Я про передачу 115к только средствами 8ми биток. С проверкой правильности передачи.
Serg6845
13.09.2024, 20:22
Эм. Я про передачу 115к только средствами 8ми биток. С проверкой правильности передачи.
а без разницы. будут те же самые тормоза в тех же самых местах что и на приеме - на расчете CRC. и FIFO здесь не поможет никак от слова совсем.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot