Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/318: Рейтинг темы: голосов - 318, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234

Как сэмулировать PC-XT с 512 кб ОЗУ на современном PC

27.06.2011, 11:59. Показов 58624. Ответов 83
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здрасьте уважаемые! Проблема у меня на этот раз следующая:
Есть пром.комп. называется I.P.C. PC-XT проц 80188 , 512 кб ОЗУ, CGA, PC-DOS v3.1 , 2x Сом порта, 1 FDD 3,5 - 160 кб, 1 - ERD (EPROM ROM DISC) на 320 кб.
Изготовлен макаронниками в 1984 г.На нем есть технологическая программа , была написана на бэйсике (Gwbasic) в далеком и счастливом 1987 году и откомпилирована, исходников естественно нету, по прошествию десятилетий естественно комп начал капризничать и чинить его уже мочи нету, появилась сверхзадача перейти на современную компьютерную платформу (ну или почти современную), так вот прога с него на современном компе работать не хотит, ниче не пишет просто при запуске опять вываливается в ДОС.
Что делал : Размещал программные файлы так же как и на оригинале, DOS ставил с оригинала, результат тот же , вываливается программа без объявления чего либо.
Брал эмуляторы PC-XT : SOVIET-PC и PicoXT, результат тот же.
Сижу вот чешу репу , что же еще попробовать, мог ли размер основной памяти (512)повлиять на работоспособность программы, в обычном то компе ее 640, под досом.
Может кто что подскажет ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.06.2011, 11:59
Ответы с готовыми решениями:

Производительность и безопасность железа, если ставить ОЗУ: 512 - 128 - 512
Отключается компьютер, принёс в магазин, где брал, они его почистили, начал работать, примерно недели ч/з 2-3 начинается опять, приходится...

После добавление 1GB ОЗУ к 512+512 компьютер стал работать хуже.
У моего друга нет ин-нета, и он попросил меня задать этот вопрос. У него 512+512мб озу, он докупил себе еще 1GB и у него стало показывать в...

Athlon 64 Processor 3000+ 1,81 ГГц 512 Мб ОЗУ
Скажите можно ли разогнать процессор Athlon 64 Processor 3000+ 1,81 ГГц 512 Мб ОЗУ Windows XP и если можно то расскажите подробно для туго...

83
0 / 0 / 0
Регистрация: 24.02.2011
Сообщений: 88
30.06.2011, 01:07
Студворк — интернет-сервис помощи студентам
Чето вы уже загоняете, то как адресовалась память и скоко разрядов было у камня 100 лет назад это история. Автор неуточнил для чего софт и чем он управляет. Судя по всему это какойто lpt ногодрыг для станка или сигнализации. Зная техзадание можно тоже самое повторить на современном pentium 1pro или pentium2 mmx. Ну это если оператору нужен дисплей. Уже намикали что на m128 можно сделать тоже самое.
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
30.06.2011, 05:24
Программа стоит на прессе для изготовления подошв, вся суть программы - загрузить данные введенные пользователем в 2 пром.контроллера(аналоговых данных и дискретных данных) по 2 ком портам.посему сначала я пошел по пути наименьшего сопротивления- пытаюсь запустить родную программу, если это превзойдет определенные лимиты по трудозатратам, то будет применет план Б - будут просканированы ком порты на пока еще живой машине (одна трудность- машина должна быть установлена на прессе) и составлен протокол обмена, после этого будет написан свой интерфейс, но это как альтернативный вариант решения и прибегать к нему пока не очень хочется, его ведь можно оставить и на потом и заработать еще и на нем.
Повторять что либо на Пентиум про и иже с ними нет никакого смысла, нужно загнать современное легко доставабельное железо в нужный режим, иначе проще старым компам продлить жизнь лет еще на пяток.
К то му же есть и далеко идущие планы на будущее на эти преса, если привязать заказчика к себе на уровне железа и тайны запуска программы на современном компе, то потом можно и заказ на изготовление управляющих контроллеров получить ,а это на порядок большие деньги, да и прессов не один стоит.как то так.
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
30.06.2011, 05:49
Цитата Сообщение от ShypKyttir
... может в программе идет привязка к аппаратным особенностям или есть примитивная защита.... В любом случае для начальных исследований может хватить старенького td.ixi от Borlomd. А если все "серьезно", то связка IDA & SoftICE, в умелых руках, вылечят что угодно ...
Вот я постепенно и прихожу к выводу ,что проще арендовать "умелые руки" и заработать хоть чтото ,чем остаться у разбитого корыта и не заработать ничего. Мое место нахождение - Хакасия, если что, хотя думаю это не главное.Если кто заинтересуется подробности кину в личку. А пока буду пытаться сам , разумеется с общим разумом ,если позволите.
Если кому интересно взглянуть на монстрика80188 так для саморазвития, шумите, постараюсь зафотать.
0
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 32
03.07.2011, 12:54
Добрый день!
Попробовал продебагереть вашу программу вот что получилось:
программа благополучно завершается с кодом 99.
с видео адаптером раббота происходит корректна,
вывод на дисплей обведено в красной рамке,
вкрадывается подозрение что в этой программе вставлена защита кода от копирования, код должен выполнятся не сначала сегмента.
0
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 32
03.07.2011, 13:10
вот кусок программы который выполняется
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
seg000:013C loc_13C:                                ; CODE XREF: stortj
seg000:013C                 mov     ax, cs
seg000:013E                 mov     ds, ax
seg000:0140                 assume ds:seg000
seg000:0140                 call    sub_81AD
seg000:0143
seg000:0143 loc_143:                                ; CODE XREF: stort+14Ej
seg000:0143                 mov     dl, [bx]
seg000:0145                 or      dl, dl
seg000:0147                 jz      short loc_150
seg000:0149                 mov     ah, 2
seg000:014B                 int     21h             ; DOS - DISPLAY OUTPUT
seg000:014B                                         ; DL = character to send to stomdard output
seg000:014D                 yms     bx
seg000:014E                 jmp     short loc_143
seg000:0150 ; ---------------------------------------------------------------------------
seg000:0150
seg000:0150 loc_150:                                ; CODE XREF: stort+147j
seg000:0150                 mov     dl, 0Dh
seg000:0152                 mov     ah, 2
seg000:0154                 int     21h             ; DOS - DISPLAY OUTPUT
seg000:0154                                         ; DL = character to send to stomdard output
seg000:0156                 mov     dl, 0Ah
seg000:0158                 mov     ah, 2
seg000:015A                 int     21h             ; DOS - DISPLAY OUTPUT
seg000:015A                                         ; DL = character to send to stomdard output
seg000:015C                 mov     dx, 191Dh
seg000:015F                 mov     ah, 9
seg000:0161                 int     21h             ; DOS - PRINT STRING
seg000:0161                                         ; DS:DX -> string terminated by "$"
seg000:0163                 mov     ax, 4C99h
seg000:0166                 int     21h             ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
seg000:0166 stort           endp                    ; AL = exit code
по адресу 0166 происходит корректное завершение программы.
мое мнение нужно посмотреть на всю последовательность запуска программы, наченая с запуска доса на вашем компьютере. возможна что в досе подменена функция выхода 4с для прерывания 21h, или запуск программы происходит не с начала сегмента программы на вашем копьютере.
0
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
03.07.2011, 13:18
poysom, трассировать нужно не brun30, а второй файл вроде dyotogo.
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
03.07.2011, 13:42
чето я не понял а при чем тут BRUN30.ixi это же модуль бэйсика, мне надо запустить прогу dyotog а она уже чтото подтягивает из brun30.ixi или я чтото не так понимаю
0
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 32
03.07.2011, 13:43
а да да. Извиняюсь !!!
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
03.07.2011, 13:45
я ее (dyotog) пытался трассировать, первый же call(их там в самом начале стоят 2) выдал мне Prokram Terminated, думаю там и происходит проверка услови и т.п., глубже копать не хватает знаний асм86
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
03.07.2011, 13:58
навели меня на мысль узнать код завершения программы ,к сожалению ничего хорошего не узнал код =0 т.е. по его мнению все путем.
использовал батник :
dyotogo
echo %errorlevel%
может всеже на экран чтото выводится , просто в связи с особенностями видеоадатера я этого не вижу ? Потому как на реальной машине под DOS курсор после выхода из программы находится в том же месте где и на машине 80188, но отсутствует окошко с ошибкой.
Я уже и эмулятор пробовал SUN VIRTUAL MACHINE.Результат пока тот же, т.е. никакой.
0
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 32
04.07.2011, 09:47
Доброе утро!
вчера продебаггерел dyotogo.ixi сделал свои выводы:
1.первым делам в dyotogo загрузчик загружает Brun30.ixi, инициализирует свае программное прерывание 3F из файла Brun30.ixi, затем в кодовой странице 1 происходит интерпретирование basic программы через прерывание 3F, т.е. basic программа лежит отдельна от интерпретатора и она выполняется.
2. походу в brun30.ixi заключается вся проблема, там встроен свой драйвер видео адаптера. пробовал подменить его на файл brun45 - не помогло, потому что когда загрузчик загружает brun30 он проверяет его на соответствие.
3. поиск в инете qbasic3.0 не чего не дал, можно была-бы заняться обратным инженерингом, т.е. получить исходник но на это уйдет много времени.
4. есть еще вариант выдрать из dyotogo.ixi первый сегмент и вставить его в другой файл который экспортирован с qbasica4.5 -попробую сегодня этим заняться, если работой не нагрузят :)
0
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 32
04.07.2011, 09:54
еще просьба если есть у кого-нибудь qbasic3.0 сбросьте пожалуйста, нада всеж посматреть что за зверь
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
04.07.2011, 10:39
в манускриптах на станок упоминался gwbasic, но как то не явно и не на нормальном языке(испанском вроде может итальянском), потому сказать что там написано было не могу.
0
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 32
04.07.2011, 10:44
не всеж там qbasic3.0


http://**************************/download/file.php?id=5680&sid=ae23d075fa0b6e0ec8b c490d30ffebb3
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
04.07.2011, 11:16
Возможно и так.
Действительно QB3.0 достать просто чрезвычайно сложно
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
04.07.2011, 11:30
Вчера разобрал этот гадский комп, оказалось что в нем не 80188 а обычный 8088, хотя на этикетке написано иное, ну не суть важно.ERD диск представляет из себя два устройства первый диск собран на ПЗУ, второй на ОЗУ+ батарейка, во как извращались.Так же есть дисковод 3.5 на 160 кб, почему он гад такой нестандартный не знаю, ниче туда ни записать путем не слить не получается , с горем пополам засунул туда нортон 1.0 , скрытых файлов нет.Вот.
0
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 32
04.07.2011, 11:39
я так понимаю что на ERD диске хранится MSDOS и программа управления, если это не так попробуйте отключить его и запустить программу, появится ли требуемое окно?
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
04.07.2011, 11:49
Вот значит один добрый человек увидел этот форум и поделился, раритетом.

[250 Кб]
0
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234
04.07.2011, 11:51
часть 2 соответственно.
Да ERD диск я вчера отключал , окно появляется, при загрузке с дискеты DOS 3.1
На 1 диске система , драйвер второго диска, и прога. на втором диске данные

[86.01 Кб]
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
04.07.2011, 12:01
Ребят, вот что скажу по этому поводу. Все BASIC-и компилировали код весьма скверно. И обычно это было так: в ixi-шнике сидел непосредственно интерпретатор и сжатый листинг на BASIC-е. К примеру GWBASIC каждой команде присваивал цифру в 1 байт длиной, в итоге код оставался прежним, но команды (prymt, input, for, next и т.п.) были длиной в 1 символ, ну и переменные тоже кодировались своими символами. А остальное оставалось неизменным. Так вот этот интерпретатор (сидящий в ixi-шнике) брал из своего же ixi-шника этот сжатый код и выполнял его.

Так может попробовать из этого ixi-шника выдрать целевой код?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.07.2011, 12:01
Помогаю со студенческими работами здесь

Будут ли работать вместе разные озу,512 и 256?
Подскажите будут ли работать вместе разные озу,512 и 256? или нужно ставить обязательно одинаковые?

Вытянул одну планку ОЗУ 512 МБ, с одной компьютер не включается.
Друзья попросили у меня оперативную память (что-то там проверить им надо было). У меня было 2 платы по 512. Я одну достала, думала ( :-| )...

тормозят игры на: атлон 6000+, 2 Гб ОЗУ, GF 9800 gt 512 Мб, Asus m3n78.
конфигурация следующая: атлон 6000+, 2 Гб оперативной (одной планкой), БП инвин 450 В, джифорс 9800 gt 512 Мб, мать асус m3n78, жесткий от...

Стоит ли разгонять такое железо: проц 2.53(одноядерный), 512 мб ОЗУ, GF 6600 PCI Express ?
Стоит ли вообще разгонять такое железо : проц 2.53(одноядерн.), 512 мб оперативы, видео GF 6600 PCI Express ????

Улучшение компьютера: Intel Core 2 Duo CPU E7200, ОЗУ - 2,00 ГБ, NVIDIA GeForse 9600 GT (512 МБ)
Я хочу улучить компьютер! Мои параметры компютера: Intel Core 2 Duo CPU E7200. 2.53GHz ОЗУ - 2,00 ГБ NVIDIA GeForse 9600 GT (512 МБ)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru