0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 234

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

27.06.2011, 11:59. Показов 58819. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
[golang] Двоичная куча, min-heap
alhaos 20.05.2026
Двоичная куча Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове. Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше. . .
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru