Как шёл процесс разработки, на каком языке программирования была написана ASTRA (DOS-, Windows-версии), какие инструменты использовались? Какие были сложности?
Несмотря на статус курсового проекта, INFORMER был достаточно продвинутой утилитой.
Определялся процессор, BIOS, жёсткие диски, видеокарта.
Программа была написана на Borland Pascal 7.0 и Turbo Assembler.
Интерфейс был создан с помощью Turbo Vision.
Разработка велась на Intel Pentium 166 МГц, RAM 24 МБ, HDD 3,2 ГБ, S3 ViRGE 2 MB.
Первоначально развитие этого проекта не планировалось, но весной 1998 года была добавлена функция сохранения файла-отчёта и написана документация (24 килобайта текста, писать я всегда любил :-)). Было принято решение развивать программу.
Например, в версии от марта 1998-го было добавлено определение PnP-мониторов.
Возможно, это была первая диагностическая программа для DOS с такой функцией.
Главная проблема при разработке в то время — недостаток документации.
Вы всё разрабатывали самостоятельно, или Вам кто-то помогал?
Общались ли Вы с авторами аналогичных программ, вроде Dr. Hardware, AIDA и др.?
Главным источником знаний по программированию железа в то время был x86/MS-DOS Ralf Brown's Interrupt List. Первые версии писались с помощью этого справочника.
В 2000 году я познакомился с Владимиром Афанасьевым (автор System Speed Test, SST).
В течение трёх лет мы переписывались по электронной почте. Я благодарен Владимиру за помощь в разработке INFORMER/ASTRA. 14 апреля 2003 года я получил последнее письмо от Владимира Афанасьева :-( Что с ним случилось – я не знаю...
Также хочу сказать спасибо всем бета-тестерам ранних версий (после появления постоянного доступа к интернету): Андрею Иконникову, Юрию Лысенко, Максиму Буланову, Алексею Климину, Дмитрию Молоснову и Владимиру Сергееву.
Версия 1.0 INFORMER датирована 23.12.1997. Это самая первая «серийная» версия, или существовали более ранние, возможно, под другим названием?
Очевидно, что были бета-версии, но сохранились только исходники версии 1.0.
Какие сейчас существуют версии программы? (Для каких ОС и т. д.)
ASTRA работала в Windows 95/98/Me, но с выпуском Windows XP стало понятно, что необходима Win32-версия программы.
В ноябре 2003-го была выпущена первая бета ASTRA32 for Windows. Среда Delphi 6.
Для снижения трудозатрат (ну и бросать разработку DOS-версии не хотелось) было принято решение разрабатывать ASTRA32 на основе исходников ASTRA for DOS.
До сих пор обе программы собираются из единого исходного кода. Это значит, что любые изменения (если они не специфичны для DOS или Windows) появляются в обеих версиях программы. Т. е. поддержка новых процессоров или чипсетов автоматически появляется в DOS -версии, а поддержка ретрожелеза появляется в Windows-версии. Причём практически без дополнительных трудозатрат. Благодаря этому DOS-версия до сих пор существует, в отличие от всего остального диагностического софта для DOS (кроме HWiNFO).
Несмотря на статус курсового проекта, INFORMER был достаточно продвинутой утилитой.
Определялся процессор, BIOS, жёсткие диски, видеокарта.
Программа была написана на Borland Pascal 7.0 и Turbo Assembler.
Интерфейс был создан с помощью Turbo Vision.
Разработка велась на Intel Pentium 166 МГц, RAM 24 МБ, HDD 3,2 ГБ, S3 ViRGE 2 MB.
Первоначально развитие этого проекта не планировалось, но весной 1998 года была добавлена функция сохранения файла-отчёта и написана документация (24 килобайта текста, писать я всегда любил :-)). Было принято решение развивать программу.
Например, в версии от марта 1998-го было добавлено определение PnP-мониторов.
Возможно, это была первая диагностическая программа для DOS с такой функцией.
Главная проблема при разработке в то время — недостаток документации.
Вы всё разрабатывали самостоятельно, или Вам кто-то помогал?
Общались ли Вы с авторами аналогичных программ, вроде Dr. Hardware, AIDA и др.?
Главным источником знаний по программированию железа в то время был x86/MS-DOS Ralf Brown's Interrupt List. Первые версии писались с помощью этого справочника.
В 2000 году я познакомился с Владимиром Афанасьевым (автор System Speed Test, SST).
В течение трёх лет мы переписывались по электронной почте. Я благодарен Владимиру за помощь в разработке INFORMER/ASTRA. 14 апреля 2003 года я получил последнее письмо от Владимира Афанасьева :-( Что с ним случилось – я не знаю...
Также хочу сказать спасибо всем бета-тестерам ранних версий (после появления постоянного доступа к интернету): Андрею Иконникову, Юрию Лысенко, Максиму Буланову, Алексею Климину, Дмитрию Молоснову и Владимиру Сергееву.
Версия 1.0 INFORMER датирована 23.12.1997. Это самая первая «серийная» версия, или существовали более ранние, возможно, под другим названием?
Очевидно, что были бета-версии, но сохранились только исходники версии 1.0.
Какие сейчас существуют версии программы? (Для каких ОС и т. д.)
ASTRA работала в Windows 95/98/Me, но с выпуском Windows XP стало понятно, что необходима Win32-версия программы.
В ноябре 2003-го была выпущена первая бета ASTRA32 for Windows. Среда Delphi 6.
Для снижения трудозатрат (ну и бросать разработку DOS-версии не хотелось) было принято решение разрабатывать ASTRA32 на основе исходников ASTRA for DOS.
До сих пор обе программы собираются из единого исходного кода. Это значит, что любые изменения (если они не специфичны для DOS или Windows) появляются в обеих версиях программы. Т. е. поддержка новых процессоров или чипсетов автоматически появляется в DOS -версии, а поддержка ретрожелеза появляется в Windows-версии. Причём практически без дополнительных трудозатрат. Благодаря этому DOS-версия до сих пор существует, в отличие от всего остального диагностического софта для DOS (кроме HWiNFO).
Ctyme
Ralf Brown's Interrupt List - HTML Version
HTML version of the famous Ralf Brown
Interrupt List with over 9000 linked pages and 350 indexes making the
process of searching much easier.
Interrupt List with over 9000 linked pages and 350 indexes making the
process of searching much easier.
🔥2
Давно ли выходило последнее обновление? Какие новые функции были добавлены в последних версиях?
Последняя версия вышла 3 февраля 2025 года.
Все эти годы ASTRA for DOS жила, но все изменения попадали в неё из ASTRA32.
Разумеется, никакого дохода она уже не приносила, но новые версии всё равно собирались. Ретрожелезом в то время я не увлекался, но DOS-версию было жалко.
В 2020 году во времена коронавируса стало больше свободного времени, и я вспомнил, что лет 15 назад я купил пару 286-х и 386-х материнских плат (по цене пары бутылок пива), и решил их всё-таки проверить. Они заработали! Вышел в интернет из браузеров NCSA Mosaic (Windows 3.11) и Arachne/DOSLynx (MS DOS 6.22).
Выяснилось, что ASTRA очень долго определяет BIOS на таких медленных процессорах.
Переделал поиск строк в BIOS на однопроходный, увеличил скорость поиска в 20 раз. Ну а потом затянуло. Стал покупать ретрожелезки. Добавлять поддержку старого железа, которое в 1997 было уже устаревшим (286/386) и особо не тестировалось (первая версия ASTRA разрабатывалась на Intel Pentium 166 МГц).
За эти 5 лет было добавлено определение ISA- и VLB-видеокарт, ASTRA теперь работает на процессорах 8086/8088 (это было непросто, IBM PC радикально отличается от IBM PC/AT 80286), добавлена поддержка старых чипсетов типа Intel 430/440, определение sSpec-номера / OPN-кода процессоров семейства Intel Pentium, AMD K5 и AMD K6 и выше, добавлен новый раздел Sound Info (лучший в мире (?), например, у пользователя с VOGONS правильно определились четыре звуковых карты в одной системе: Creative Sound Blaster Pro 2.0, Creative AWE64, Creative SB Live! и Gravis UltraSound), добавлена расширенная информация о видеочипах NVIDIA от TNT до семейства GTX200 (архитектура, частота ядра и памяти, тип и разрядность шины памяти, температура и т. д.), добавлено определение EISA-устройств (определяются даже несконфигурированные устройства, такое умеет только утилита от AMI).
ASTRA32 также получила эти изменения. Кроме этого, была восстановлена работоспособность ASTRA32 в Windows 9x/Me и Windows NT 4.0. Последние 10 лет тестирование в этих системах не проводилось, и в какой-то момент совместимость сломалась.
Интерфейс DOS-версии остался неизменным от самой первой версии программы по настоящее время. У Вас не было задумки «обновить» внешний вид программы? Может быть, уйти от стиля Turbo Vision?
Я считаю, что интерфейс Turbo Vision – это вершина текстового интерфейса для DOS. Менять ничего не надо. :-)
Не было ли у Вас мысли написать вариант программы для Windows 3.1 или Win32s? Как Вы вообще относитесь к программам-тестам для этой оболочки? Были ли у Вас идеи/попытки создания версий для OS/2, Linux или BeOS? Может быть, позже – для MacOS X?
Windows 3.x работает из DOS. В этом случае можно запустить ASTRA в чистом DOS. Портировать ASTRA32 в Windows 3.x/NT 3.x невозможно. Для этого надо писать новое приложение и драйвер. Трудоёмкость этого страшно представить. То же относится и к прочим операционным системам. Даже поддержка Windows 9x/NT 4.0 даётся непросто. Поддержка Windows 9x/NT 4.0 есть только в трёх современных диагностических утилитах и в сильно урезанном виде.
Приходилось ли Вам обращаться к производителям «железа», чтобы запросить какие-нибудь спецификации или datasheet, для того чтобы правильно идентифицировать какие-нибудь редкие или уникальные девайсы?
До 2022 года у меня действовал NDA-договор с Intel. Был ранний доступ к документации на ещё не вышедшие процессоры/чипсеты. Обычно документация на первые инженерные сэмплы появляется за 3 года до публичного выхода новой архитектуры. В данный момент доступ к документации заблокирован…
Последняя версия вышла 3 февраля 2025 года.
Все эти годы ASTRA for DOS жила, но все изменения попадали в неё из ASTRA32.
Разумеется, никакого дохода она уже не приносила, но новые версии всё равно собирались. Ретрожелезом в то время я не увлекался, но DOS-версию было жалко.
В 2020 году во времена коронавируса стало больше свободного времени, и я вспомнил, что лет 15 назад я купил пару 286-х и 386-х материнских плат (по цене пары бутылок пива), и решил их всё-таки проверить. Они заработали! Вышел в интернет из браузеров NCSA Mosaic (Windows 3.11) и Arachne/DOSLynx (MS DOS 6.22).
Выяснилось, что ASTRA очень долго определяет BIOS на таких медленных процессорах.
Переделал поиск строк в BIOS на однопроходный, увеличил скорость поиска в 20 раз. Ну а потом затянуло. Стал покупать ретрожелезки. Добавлять поддержку старого железа, которое в 1997 было уже устаревшим (286/386) и особо не тестировалось (первая версия ASTRA разрабатывалась на Intel Pentium 166 МГц).
За эти 5 лет было добавлено определение ISA- и VLB-видеокарт, ASTRA теперь работает на процессорах 8086/8088 (это было непросто, IBM PC радикально отличается от IBM PC/AT 80286), добавлена поддержка старых чипсетов типа Intel 430/440, определение sSpec-номера / OPN-кода процессоров семейства Intel Pentium, AMD K5 и AMD K6 и выше, добавлен новый раздел Sound Info (лучший в мире (?), например, у пользователя с VOGONS правильно определились четыре звуковых карты в одной системе: Creative Sound Blaster Pro 2.0, Creative AWE64, Creative SB Live! и Gravis UltraSound), добавлена расширенная информация о видеочипах NVIDIA от TNT до семейства GTX200 (архитектура, частота ядра и памяти, тип и разрядность шины памяти, температура и т. д.), добавлено определение EISA-устройств (определяются даже несконфигурированные устройства, такое умеет только утилита от AMI).
ASTRA32 также получила эти изменения. Кроме этого, была восстановлена работоспособность ASTRA32 в Windows 9x/Me и Windows NT 4.0. Последние 10 лет тестирование в этих системах не проводилось, и в какой-то момент совместимость сломалась.
Интерфейс DOS-версии остался неизменным от самой первой версии программы по настоящее время. У Вас не было задумки «обновить» внешний вид программы? Может быть, уйти от стиля Turbo Vision?
Я считаю, что интерфейс Turbo Vision – это вершина текстового интерфейса для DOS. Менять ничего не надо. :-)
Не было ли у Вас мысли написать вариант программы для Windows 3.1 или Win32s? Как Вы вообще относитесь к программам-тестам для этой оболочки? Были ли у Вас идеи/попытки создания версий для OS/2, Linux или BeOS? Может быть, позже – для MacOS X?
Windows 3.x работает из DOS. В этом случае можно запустить ASTRA в чистом DOS. Портировать ASTRA32 в Windows 3.x/NT 3.x невозможно. Для этого надо писать новое приложение и драйвер. Трудоёмкость этого страшно представить. То же относится и к прочим операционным системам. Даже поддержка Windows 9x/NT 4.0 даётся непросто. Поддержка Windows 9x/NT 4.0 есть только в трёх современных диагностических утилитах и в сильно урезанном виде.
Приходилось ли Вам обращаться к производителям «железа», чтобы запросить какие-нибудь спецификации или datasheet, для того чтобы правильно идентифицировать какие-нибудь редкие или уникальные девайсы?
До 2022 года у меня действовал NDA-договор с Intel. Был ранний доступ к документации на ещё не вышедшие процессоры/чипсеты. Обычно документация на первые инженерные сэмплы появляется за 3 года до публичного выхода новой архитектуры. В данный момент доступ к документации заблокирован…
🔥5
Расскажите о своих планах. Какую перспективу Вы видите для ASTRA в будущем?
Насчёт ASTRA for DOS. Она жива, пока жива ASTRA32 for Windows, т. к. исходники общие и это не требует отдельной поддержки DOS-версии. Единственная диагностическая программа для DOS, которая ещё жива, – это HWiNFO. Мы видим, как Мартин Малик мучается с её поддержкой. Разрабатывать отдельную версию, которая нужна единицам, очень тяжело.
Планы простые — разработать лучшую в мире диагностическую утилиту для DOS. :-)
В принципе, она по многим параметрам лучшая в мире. Адекватно работает на любом компьютере от Intel 8086/8088 до современных Intel Core / AMD Ryzen. Уже уникальное сочетание. :-)
Может быть, существуют планы по переходу на мобильные устройства или портированию на другие операционные системы?
По поводу мобильных версий. Android-приложения работают в виртуальной машине. Прямой доступ к реальному железу невозможен. Весь диагностический софт для Android читает параметры железа из прошивки, в прошивке можно написать что угодно.
Что планируете добавить в будущих версиях? Что нового сейчас в разработке?
Из ближайших планов по ретротематике: поддержка бОльшего числа старых чипсетов (на которые есть документация), определение размера кэша (не через чипсет или CPUID, а по скорости доступа). Ещё интересная тема — определение частоты сопроцессора на 286/386-платах. Как известно, на таких платах частота сопроцессора не равна частоте процессора. Утилита NSSI (единственная) пытается угадать частоту сопроцессора, но не всегда угадывает. Пока провожу эксперименты, но нужны бета-тестеры с экзотическими сопроцессорами.
Можно ли назвать «Астру» успешным коммерческим проектом? Приносит ли она прибыль, и каково количество официально зарегистрированных пользователей?
С появлением официального сайта в 2000 году (https://web.archive.org/web/20000917174943/https://www.informer.newmail.ru/) популярность программы начала расти. В 2001 году INFORMER переименован в ASTRA и стал Shareware.
В 2006 году я получал доход примерно в 5 раз больше, чем на основной работе. Поэтому я уволился с работы, открыл ИП и перешёл на так называемое full-time shareware.
Разумеется, сейчас ASTRA for DOS покупают очень редко. В декабре 2023 ASTRA стала бесплатна для некоммерческого использования. Но если вы хотите поддержать разработку, то её по-прежнему можно купить. :-)
Расскажите, пожалуйста, каким образом Вы тестируете ASTRA? У Вас есть коллекция «железа» разных поколений для тестирования программы? Если да, то, может быть, расскажете про самые интересные, на Ваш взгляд, её «экспонаты»?
Или, может быть, Вы используете виртуальные машины либо что-то ещё?
ASTRA/ASTRA32 умеет сохранять дампы CPUID/PCI/SPD в текстовом отчёте. Если отлаживаемый компьютер не совсем старый (поздние 486-е и новее), то специальная отладочная версия может брать данные не из реального железа, а из файла отчёта.
Поэтому присылайте отчёты, они помогают в разработке.
Если компьютер совсем старый или дампы не могут помочь, то отладка ведётся в эмуляторе 86Box. Собирается нужная конфигурация и загружается образ с нужной операционной системой. Это радикально ускоряет работу. Разумеется, если поддержка нужного железа в нём есть. Есть вещи, которые в эмуляторе не реализованы, например, в нём нет понятия кэша. Поддержки EISA тоже нет. Для этого пришлось покупать материнскую плату с EISA и пару карт расширения и отлаживаться на настоящем железе. Это самый медленный вариант. Обмен с основным компьютером ведётся либо по сети, либо через карту CompactFlash.
Для отладки у меня есть все основные платформы от 8088 до Socket 1151. В коллекции нет Socket 4, Socket 8, Slot 2 и экзотики типа Transmeta Crusoe.
Насчёт ASTRA for DOS. Она жива, пока жива ASTRA32 for Windows, т. к. исходники общие и это не требует отдельной поддержки DOS-версии. Единственная диагностическая программа для DOS, которая ещё жива, – это HWiNFO. Мы видим, как Мартин Малик мучается с её поддержкой. Разрабатывать отдельную версию, которая нужна единицам, очень тяжело.
Планы простые — разработать лучшую в мире диагностическую утилиту для DOS. :-)
В принципе, она по многим параметрам лучшая в мире. Адекватно работает на любом компьютере от Intel 8086/8088 до современных Intel Core / AMD Ryzen. Уже уникальное сочетание. :-)
Может быть, существуют планы по переходу на мобильные устройства или портированию на другие операционные системы?
По поводу мобильных версий. Android-приложения работают в виртуальной машине. Прямой доступ к реальному железу невозможен. Весь диагностический софт для Android читает параметры железа из прошивки, в прошивке можно написать что угодно.
Что планируете добавить в будущих версиях? Что нового сейчас в разработке?
Из ближайших планов по ретротематике: поддержка бОльшего числа старых чипсетов (на которые есть документация), определение размера кэша (не через чипсет или CPUID, а по скорости доступа). Ещё интересная тема — определение частоты сопроцессора на 286/386-платах. Как известно, на таких платах частота сопроцессора не равна частоте процессора. Утилита NSSI (единственная) пытается угадать частоту сопроцессора, но не всегда угадывает. Пока провожу эксперименты, но нужны бета-тестеры с экзотическими сопроцессорами.
Можно ли назвать «Астру» успешным коммерческим проектом? Приносит ли она прибыль, и каково количество официально зарегистрированных пользователей?
С появлением официального сайта в 2000 году (https://web.archive.org/web/20000917174943/https://www.informer.newmail.ru/) популярность программы начала расти. В 2001 году INFORMER переименован в ASTRA и стал Shareware.
В 2006 году я получал доход примерно в 5 раз больше, чем на основной работе. Поэтому я уволился с работы, открыл ИП и перешёл на так называемое full-time shareware.
Разумеется, сейчас ASTRA for DOS покупают очень редко. В декабре 2023 ASTRA стала бесплатна для некоммерческого использования. Но если вы хотите поддержать разработку, то её по-прежнему можно купить. :-)
Расскажите, пожалуйста, каким образом Вы тестируете ASTRA? У Вас есть коллекция «железа» разных поколений для тестирования программы? Если да, то, может быть, расскажете про самые интересные, на Ваш взгляд, её «экспонаты»?
Или, может быть, Вы используете виртуальные машины либо что-то ещё?
ASTRA/ASTRA32 умеет сохранять дампы CPUID/PCI/SPD в текстовом отчёте. Если отлаживаемый компьютер не совсем старый (поздние 486-е и новее), то специальная отладочная версия может брать данные не из реального железа, а из файла отчёта.
Поэтому присылайте отчёты, они помогают в разработке.
Если компьютер совсем старый или дампы не могут помочь, то отладка ведётся в эмуляторе 86Box. Собирается нужная конфигурация и загружается образ с нужной операционной системой. Это радикально ускоряет работу. Разумеется, если поддержка нужного железа в нём есть. Есть вещи, которые в эмуляторе не реализованы, например, в нём нет понятия кэша. Поддержки EISA тоже нет. Для этого пришлось покупать материнскую плату с EISA и пару карт расширения и отлаживаться на настоящем железе. Это самый медленный вариант. Обмен с основным компьютером ведётся либо по сети, либо через карту CompactFlash.
Для отладки у меня есть все основные платформы от 8088 до Socket 1151. В коллекции нет Socket 4, Socket 8, Slot 2 и экзотики типа Transmeta Crusoe.
🔥4
Из экзотики есть материнская плата EISA с парой карт (SCSI, сеть) расширения. Научился программировать EISA-устройства. Много писал об этой плате и программировании EISA в своём Telegram-канале (https://t.iss.one/SysinfoLab).
Хотелось бы сделать поддержку MCA-устройств, но такое железо найти практически нереально или оно стоит как крыло от «Боинга».
Может быть, вспомните на конкретном примере, с каким «железом» было работать сложнее всего?
Пара примеров (всю боль могут прочувствовать только программисты, остальным можно не читать).
Выяснилось, что ASTRA32 не работает в Windows NT 4.0 без сервис-паков. Падает в самом начале где-то на этапе инициализации, до моего кода дело не доходит.
Первая мысль: надо поставить Delphi и посмотреть в отладчике, что происходит.
Delphi требует, чтобы был установлен сервис-пак 3. Устанавливаю сервис-пак 3 – и ASTRA32 начинает прекрасно работать. Удаляю сервис-пак, опять падает, но и Delphi без него не работает. Начинается метод тыка. Удалил сторонний модуль перевода интерфейса. Падает. Начал перебирать старые версии. Нашёл версию трёхлетней давности, которая заработала. Чем она отличается? Она была собрана в Delphi 6. Виновата версия Delphi? Не факт, надо проверить. Пытаюсь эту старую версию собрать в Delphi 7. Что само по себе непросто. Собрал, начала падать. Виновата Delphi 7.
Что делать дальше? Не откатываться же на Delphi 6? Начинаю удалять всё подряд (второстепенные окна настройки, мастер отчётов, сплэш-скрин и подобное). От программы практически ничего не осталось, кроме главной формы. Не работает. Удалил все иконки – и внезапно всё заработало. Возвращаю иконки назад, опять всё работает. Как такое может быть? В основной версии удаляю иконки, потом добавляю назад – и всё начинает работать. После внесения изменений в код (не связанный с интерфейсом и иконками) через какое-то время опять программа начинает падать. Теперь перед каждым релизом приходится проверять запуск в NT 4.0 без сервис-паков. Если падает, то удаляю и добавляю назад иконки.
На всё это ушло три недели с перекурами.
Купил SCSI CD-ROM Pioneer, и ASTRA32 в Windows NT 4.0 начала падать в синий экран.
Выяснилось, что это происходит при попытке выполнить неподдерживаемую CD-приводом SCSI-команду. В этом случае драйвер должен вернуть ошибку, а он думает секунд 5 и валит винду в синий экран. Собираю похожую конфигурацию в 86Box, никаких синих экранов, но там SCSI-контроллер другой модели. Кто виноват? ASTRA32 или драйвер? Пытаюсь проверить сторонний диагностический софт. Выяснилось, что со SCSI в NT 4.0 никто не умеет работать, максимум могут определить модель устройства, никакой расширенной информации нет.
Прошерстил DDK, всё делаю как в мануалах. Остаётся тот самый метод тыка.
Проблема в том, что после синего экрана надо выключить комп, включить, секунд 30 идёт POST, минуты 3-4 загружается NT 4.0, минут 5 загружается Delphi (В системе 32 МБ памяти, нужны модули с Parity Check, больше таких модулей у меня нет).
Что-то меняю, опять синий экран и 10 минут до следующей итерации. Позже сделал маленькую консольную утилиту, которую можно быстро собрать без загрузки Delphi.
Экономия пяти минут, но всё равно долго. Параметров при исполнении SCSI-команд много. Прошла неделя, пока я понял, что не нравится драйверу. В DDK размер буфера всегда равен 192 байтам, у меня стоял комментарий от 2008 года, что любое отличное от 192 значение приводит к BSOD. Поэтому менять я его стал в последнюю очередь, когда всё остальное не помогло. Выяснилось, что драйверу не нравился размер буфера. Размер должен быть не 192 байта, а ровно столько, сколько данных возвращает конкретная SCSI-команда. Возможно, это проблема конкретного драйвера.
Скорее всего, в интернете тех лет обсуждалась эта проблема, но старый интернет стремительно вымирает (особенно старые форумы). Есть web.archive.org, но в нём очень плохой поиск. Это ещё одна проблема ретропрограммирования.
Хотелось бы сделать поддержку MCA-устройств, но такое железо найти практически нереально или оно стоит как крыло от «Боинга».
Может быть, вспомните на конкретном примере, с каким «железом» было работать сложнее всего?
Пара примеров (всю боль могут прочувствовать только программисты, остальным можно не читать).
Выяснилось, что ASTRA32 не работает в Windows NT 4.0 без сервис-паков. Падает в самом начале где-то на этапе инициализации, до моего кода дело не доходит.
Первая мысль: надо поставить Delphi и посмотреть в отладчике, что происходит.
Delphi требует, чтобы был установлен сервис-пак 3. Устанавливаю сервис-пак 3 – и ASTRA32 начинает прекрасно работать. Удаляю сервис-пак, опять падает, но и Delphi без него не работает. Начинается метод тыка. Удалил сторонний модуль перевода интерфейса. Падает. Начал перебирать старые версии. Нашёл версию трёхлетней давности, которая заработала. Чем она отличается? Она была собрана в Delphi 6. Виновата версия Delphi? Не факт, надо проверить. Пытаюсь эту старую версию собрать в Delphi 7. Что само по себе непросто. Собрал, начала падать. Виновата Delphi 7.
Что делать дальше? Не откатываться же на Delphi 6? Начинаю удалять всё подряд (второстепенные окна настройки, мастер отчётов, сплэш-скрин и подобное). От программы практически ничего не осталось, кроме главной формы. Не работает. Удалил все иконки – и внезапно всё заработало. Возвращаю иконки назад, опять всё работает. Как такое может быть? В основной версии удаляю иконки, потом добавляю назад – и всё начинает работать. После внесения изменений в код (не связанный с интерфейсом и иконками) через какое-то время опять программа начинает падать. Теперь перед каждым релизом приходится проверять запуск в NT 4.0 без сервис-паков. Если падает, то удаляю и добавляю назад иконки.
На всё это ушло три недели с перекурами.
Купил SCSI CD-ROM Pioneer, и ASTRA32 в Windows NT 4.0 начала падать в синий экран.
Выяснилось, что это происходит при попытке выполнить неподдерживаемую CD-приводом SCSI-команду. В этом случае драйвер должен вернуть ошибку, а он думает секунд 5 и валит винду в синий экран. Собираю похожую конфигурацию в 86Box, никаких синих экранов, но там SCSI-контроллер другой модели. Кто виноват? ASTRA32 или драйвер? Пытаюсь проверить сторонний диагностический софт. Выяснилось, что со SCSI в NT 4.0 никто не умеет работать, максимум могут определить модель устройства, никакой расширенной информации нет.
Прошерстил DDK, всё делаю как в мануалах. Остаётся тот самый метод тыка.
Проблема в том, что после синего экрана надо выключить комп, включить, секунд 30 идёт POST, минуты 3-4 загружается NT 4.0, минут 5 загружается Delphi (В системе 32 МБ памяти, нужны модули с Parity Check, больше таких модулей у меня нет).
Что-то меняю, опять синий экран и 10 минут до следующей итерации. Позже сделал маленькую консольную утилиту, которую можно быстро собрать без загрузки Delphi.
Экономия пяти минут, но всё равно долго. Параметров при исполнении SCSI-команд много. Прошла неделя, пока я понял, что не нравится драйверу. В DDK размер буфера всегда равен 192 байтам, у меня стоял комментарий от 2008 года, что любое отличное от 192 значение приводит к BSOD. Поэтому менять я его стал в последнюю очередь, когда всё остальное не помогло. Выяснилось, что драйверу не нравился размер буфера. Размер должен быть не 192 байта, а ровно столько, сколько данных возвращает конкретная SCSI-команда. Возможно, это проблема конкретного драйвера.
Скорее всего, в интернете тех лет обсуждалась эта проблема, но старый интернет стремительно вымирает (особенно старые форумы). Есть web.archive.org, но в нём очень плохой поиск. Это ещё одна проблема ретропрограммирования.
Telegram
ASTRA32 и ASTRA. Программы определения конфигурации компьютера.
Канал разработчика программ определения конфигурации компьютера ASTRA32 for Windows и ASTRA for DOS. Новости, тестирование.
https://www.astra32.com/ru
https://www.sysinfolab.com/ru
https://www.astra32.com/ru
https://www.sysinfolab.com/ru
🔥4❤1
Если не сложно – расскажите, пожалуйста, о Вашем уникальном алгоритме вычисления статуса надёжности винчестеров, а также оставшегося ресурса SSD-дисков. Насколько достоверен такой прогноз?
Уникальным он был в 2005 году. Эта была одна из первых диагностических утилит, которая для обычного пользователя показывала состояние диска в виде Хорошо/Средне/Плохо. Алгоритм основан на анализе SMART-атрибутов и моей статистике по отказам жёстких дисков. Если статус диска Плохой (Bad), то его надо менять немедленно. Если Средний (Poor), то диск ещё поживёт, но важные данные хранить на нём нельзя.
Оставшийся ресурс SSD-дисков определяет контроллер диска.
Случались ли в Вашей деятельности какие-нибудь смешные случаи, курьёзы?
В прошлом году выяснилось, что последние 22 года ASTRA32 for Windows не работает в Windows NT 4.0 на старых процессорах уровня 486DX 33 МГц. Причём никогда не работала, начиная с первых версий. В 2003 году подобных компьютеров почти не осталось, а если и остались, то работали печатными машинками в Windows 95 (в ней проблем не было).
У Вас были (или есть сейчас) другие проекты (помимо «Астры»)? Чем Вы сейчас вообще занимаетесь? (Хобби, работа, семья?)
Других проектов нет. Хобби в настоящее время – это ретрокомпьютеры.
Как Вы вообще относитесь к downgrade – сохранению компьютерной истории, использованию старых компьютеров и ПО? Может быть, посещаете какие-то сайты на эту тему?
ASTRA for DOS – это и есть лютый downgrade. Читаю ретрофорумы и ретроканалы в Telegram. У меня есть свой небольшой канал по ретротематике в Telegram: https://t.iss.one/SysinfoLab
Используют ли ASTRA любители старых компьютеров? Есть ли какая-то обратная связь с ними, то есть Вам приходят какие-то баг-репорты, предложения, результаты тестов?
Да, мне присылают отчёты и пожелания. Совместно исправляем ошибки и недочёты. Всем спасибо, но хотелось бы больше отчётов с ретрожелеза.
Приятно встретить на «Авито» или «Мешке» скриншот ASTRA на ретрожелезе как подтверждение работоспособности.
Возможно, у Вас будут какие-нибудь пожелания читателям журнала?
Всем здоровья, это самое главное.
Большое спасибо за интересное интервью!
На вопросы отвечал:
Константин Владимирович Кондаков (a2kkv)
Вопросы задавали:
uav1606
Вячеслав Рытиков (eu6pc)
Андрей Шаронов (Andrei88)
Уникальным он был в 2005 году. Эта была одна из первых диагностических утилит, которая для обычного пользователя показывала состояние диска в виде Хорошо/Средне/Плохо. Алгоритм основан на анализе SMART-атрибутов и моей статистике по отказам жёстких дисков. Если статус диска Плохой (Bad), то его надо менять немедленно. Если Средний (Poor), то диск ещё поживёт, но важные данные хранить на нём нельзя.
Оставшийся ресурс SSD-дисков определяет контроллер диска.
Случались ли в Вашей деятельности какие-нибудь смешные случаи, курьёзы?
В прошлом году выяснилось, что последние 22 года ASTRA32 for Windows не работает в Windows NT 4.0 на старых процессорах уровня 486DX 33 МГц. Причём никогда не работала, начиная с первых версий. В 2003 году подобных компьютеров почти не осталось, а если и остались, то работали печатными машинками в Windows 95 (в ней проблем не было).
У Вас были (или есть сейчас) другие проекты (помимо «Астры»)? Чем Вы сейчас вообще занимаетесь? (Хобби, работа, семья?)
Других проектов нет. Хобби в настоящее время – это ретрокомпьютеры.
Как Вы вообще относитесь к downgrade – сохранению компьютерной истории, использованию старых компьютеров и ПО? Может быть, посещаете какие-то сайты на эту тему?
ASTRA for DOS – это и есть лютый downgrade. Читаю ретрофорумы и ретроканалы в Telegram. У меня есть свой небольшой канал по ретротематике в Telegram: https://t.iss.one/SysinfoLab
Используют ли ASTRA любители старых компьютеров? Есть ли какая-то обратная связь с ними, то есть Вам приходят какие-то баг-репорты, предложения, результаты тестов?
Да, мне присылают отчёты и пожелания. Совместно исправляем ошибки и недочёты. Всем спасибо, но хотелось бы больше отчётов с ретрожелеза.
Приятно встретить на «Авито» или «Мешке» скриншот ASTRA на ретрожелезе как подтверждение работоспособности.
Возможно, у Вас будут какие-нибудь пожелания читателям журнала?
Всем здоровья, это самое главное.
Большое спасибо за интересное интервью!
На вопросы отвечал:
Константин Владимирович Кондаков (a2kkv)
Вопросы задавали:
uav1606
Вячеслав Рытиков (eu6pc)
Андрей Шаронов (Andrei88)
Telegram
ASTRA32 и ASTRA. Программы определения конфигурации компьютера.
Канал разработчика программ определения конфигурации компьютера ASTRA32 for Windows и ASTRA for DOS. Новости, тестирование.
https://www.astra32.com/ru
https://www.sysinfolab.com/ru
https://www.astra32.com/ru
https://www.sysinfolab.com/ru
🔥4
Фото из интервью:
1 - ASTRA32 v4.20 под Windows 95
2 - XT-компьютер разобран, поэтому скриншота с настоящего железа нет. Есть только из эмулятора
3 - Скриншот ASTRA for DOS с основного компьютера AMD Ryzen 5 5600
4 - Самый старый ноутбук в коллекции. Chaplet Systems Halikan NBA386SX. Ориентировочно 1993 год
6 - Тестовый набор AGP-видеокарт Nvidia (26 штук) и тестовый стенд времён разработки низкоуровневой поддержки видеочипов Nvidia
5 - Тестовый стенд для отладки поддержки EISA. Материнская плата DEC PRIORIS MTE (EISA/VLB). EISA SCSI-контроллер Adaptec AHA-2740/42W. Сетевая карта 3COM EtherLink III EISA. VLB-видеокарта Cirrus Logic CL-GD5429
1 - ASTRA32 v4.20 под Windows 95
2 - XT-компьютер разобран, поэтому скриншота с настоящего железа нет. Есть только из эмулятора
3 - Скриншот ASTRA for DOS с основного компьютера AMD Ryzen 5 5600
4 - Самый старый ноутбук в коллекции. Chaplet Systems Halikan NBA386SX. Ориентировочно 1993 год
6 - Тестовый набор AGP-видеокарт Nvidia (26 штук) и тестовый стенд времён разработки низкоуровневой поддержки видеочипов Nvidia
5 - Тестовый стенд для отладки поддержки EISA. Материнская плата DEC PRIORIS MTE (EISA/VLB). EISA SCSI-контроллер Adaptec AHA-2740/42W. Сетевая карта 3COM EtherLink III EISA. VLB-видеокарта Cirrus Logic CL-GD5429
🔥9👍1
Вышла новая бета версия ASTRA32 for Windows 4.21 beta от 27 мая 2025 года.
Новое в этой бете:
- добавлена подробная информация о чипсете VIA VT82C486/VT82C486A/VT82C496G
(режим контроллера памяти, размер и тип кеша L2 и т.д.)
- увеличена скорость поиска в базе данных в 3-8 раз
- исправлены некоторые незначительные ошибки
Новое в этой бете:
- добавлена подробная информация о чипсете VIA VT82C486/VT82C486A/VT82C496G
(режим контроллера памяти, размер и тип кеша L2 и т.д.)
- увеличена скорость поиска в базе данных в 3-8 раз
- исправлены некоторые незначительные ошибки
👍6🔥5
astra32beta.zip
3.5 MB
ASTRA32 4.21 beta
Инсталлятор и версия в архиве
Инсталлятор и версия в архиве
🔥2👍1
Вышла новая бета версия ASTRA for DOS 4.21 beta от 27 мая 2025 года.
Новое в этой бете:
- добавлена подробная информация о чипсете VIA VT82C486/VT82C486A/VT82C496G
(режим контроллера памяти, размер и тип кеша L2 и т.д.)
- увеличена скорость поиска в базе данных в 3-8 раз
- исправлены некоторые незначительные ошибки
Новое в этой бете:
- добавлена подробная информация о чипсете VIA VT82C486/VT82C486A/VT82C496G
(режим контроллера памяти, размер и тип кеша L2 и т.д.)
- увеличена скорость поиска в базе данных в 3-8 раз
- исправлены некоторые незначительные ошибки
🔥7👍1
Новое в версии 7.21:
- улучшено определение процессоров семейства 386/486 (без поддержки CPUID) с помощью метода CPU RESET
- добавлена подробная информация о чипсете Intel 440MX (поддерживаемый и текущий тип памяти и частота, режим контроллера памяти, тайминги и т.д.)
- добавлена подробная информация о чипсете VIA VT82C486/VT82C486A/VT82C496G (режим контроллера памяти, размер и тип кеша L2 и т.д.)
- добавлено определение sSPEC номера процессоров семейства Intel 486
- добавлено определение коэффициента умножения процессоров 486
- увеличена скорость поиска в базе данных в 3-8 раз
- улучшена поддержка процессоров семейства Intel Xeon Granite Rapids-SP, Xeon Granite Rapids-AP, Xeon Granite Rapids-D
- улучшена поддержка процессоров семейства Intel Xeon Sierra Forrest
- улучшена поддержка процессоров семейства Intel Lunar Lake-V
- добавлено определение процессоров AMD Ryzen Threadripper (Shimada Peak)
- добавлена предварительная поддержка семейства процессоров
Intel WildCat Lake
Intel Bartlett Lake
AMD Zen 6
- исправлено чтение информации DDR5 SPD на чипсетах Intel
- исправлено определение номера AMD OPN процессоров AMD Athlon/Sempron
- исправлено зависание программы при определении звуковой карты ESS 1868 в некоторых случаях
- исправлено зависание программы на процессорах семейства IBM 486SLC/BLX
- исправлены некоторые незначительные ошибки
- обновлена база данных программы
- улучшено определение процессоров семейства 386/486 (без поддержки CPUID) с помощью метода CPU RESET
- добавлена подробная информация о чипсете Intel 440MX (поддерживаемый и текущий тип памяти и частота, режим контроллера памяти, тайминги и т.д.)
- добавлена подробная информация о чипсете VIA VT82C486/VT82C486A/VT82C496G (режим контроллера памяти, размер и тип кеша L2 и т.д.)
- добавлено определение sSPEC номера процессоров семейства Intel 486
- добавлено определение коэффициента умножения процессоров 486
- увеличена скорость поиска в базе данных в 3-8 раз
- улучшена поддержка процессоров семейства Intel Xeon Granite Rapids-SP, Xeon Granite Rapids-AP, Xeon Granite Rapids-D
- улучшена поддержка процессоров семейства Intel Xeon Sierra Forrest
- улучшена поддержка процессоров семейства Intel Lunar Lake-V
- добавлено определение процессоров AMD Ryzen Threadripper (Shimada Peak)
- добавлена предварительная поддержка семейства процессоров
Intel WildCat Lake
Intel Bartlett Lake
AMD Zen 6
- исправлено чтение информации DDR5 SPD на чипсетах Intel
- исправлено определение номера AMD OPN процессоров AMD Athlon/Sempron
- исправлено зависание программы при определении звуковой карты ESS 1868 в некоторых случаях
- исправлено зависание программы на процессорах семейства IBM 486SLC/BLX
- исправлены некоторые незначительные ошибки
- обновлена база данных программы
👍6🔥3
astraiso721.zip
3.4 MB
Версия в архиве и загрузочный ISO образ
🔥6