Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Basic для Mazovia. ПЗУ есть, но при включении не стартует.
RSS

Basic для Mazovia. ПЗУ есть, но при включении не стартует.

Помогите найти образ ПЗУ №2 (левого)

<<Назад  Вперед>> Страницы: 1 2 3 4 * 5 6
Печать
 
Сергей С
Member


Всего сообщений: 151
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 янв. 2017
В биосе Мазовии вектор INT 18h (0000:0060h) установлен на адрес F000:E71A, исполняя код которого происходит перенос строки и вывод сообщения "Boot disk failure. Type key to retry", ожидается нажатие клавиш после чего возвращается из этого прерывания. К циклу на адресе 0fe3fa: int 19, jmp 0fe3fa . Условий для перехода на F600:0000 нет в INT19h (F000:E6F2) состоящей из 17 команд, то есть самостоятельно биос даже при наличии дополнительных микросхем ПЗУ, не станет исполнять код записанный в них.
Загрузившись с дискеты, написав в debug команду g=f600:0 я оказался в IBM Basic, без знака равно просто писало что программа выполнена успешно(Program terminated normally (0000)).
sanders предлагаю проверить как минимум отображение всех банков, как у меня на картинке.Так как я не нашёл сообщения о том что с дискеты всё грузится и лишь необходимо принципиально найти способ запуска без неё.

Прикрепленный файл (rom_bios.gif, 0 байт, скачан: 18 раз)
sanders
Advanced Member
Профессионал

Откуда: Санкт-Петербург
Всего сообщений: 6434
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
26 мар. 2008
Вот оно!
То, что я чуял. Не обращается Мазовия к Бейсику! Завтра отпишусь о результатах.
Если поможете мне что-то подправить, чтобы Бейсик стартовал сам, я буду рад.
Т.е. мне важны: характерные надписи - Mazowia...Mikroromputery...Warszawa, ну и чтобы Бейсик стартовал, если нет дискеты. Остальное можно подправить ради старта Бейсика :-)
Сергей С
Member


Всего сообщений: 151
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 янв. 2017
Из файлов в архиве Mazovia1914.rar был собран образ который загружается в эмулятор.
Могу предложить следующий вариант патча для системы реализующий такой алгоритм работы: после 5-ти неудачных попыток старта с дискетного устройства проверяется первый байт(0E9h) из адресного пространства дополнительных микросхем(F600:0000), при её совпадении передаётся туда управление, иначе выводится сообщение о неудачи загрузки с диска и предлагается нажать F1 для повтора этого алгоритма. При старте с дискет и вызова INT18h при наличии Basic - он запустится, при его отсутствии никакого сообщения не будет, управление вернётся обратно системе.

Прикрепленный файл (patch.gif, 0 байт, скачан: 18 раз)
sanders
Advanced Member
Профессионал

Откуда: Санкт-Петербург
Всего сообщений: 6434
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
26 мар. 2008
Сергей С, вот мои результаты:
- версия BIOS совпадает, байты по команде -e f600:0 и т.д. совпадают с тем, что у Вас (полностью все, что на Вашем первом экране)
- команда g=f600:0 приводит к зависанию без каких-либо надписей.
- команда g f600:0 пыводит на экран 3 строки абракадабры с разной скоростью появления символов и вешает комп.
- без винчестера при двух дисководах, если дискета не вставлена, компьютер ждет ее бесконечно долго. Никакие нажатия не приводят к таймауту ожидания. Как только вставлю дискету, началась загрузка.

Я теперь попробую родной комплект Бейсика и тут же отпишусь. Сейчас я пробовал комплект от Tronix-а, якобы тоже Мазовий-ный, но он слегка отличался от родного.
Теперь с Вашей помощью нужно подумать - как прервать ожидание системной дискеты. Ведь если у человека нет дискет вообще, но есть Бейсик в ПЗУ, то как-то его запустить нужно.

Попробовал другой комплект Бейсика.
- первые байты всех банков тоже совпадают.
- g=f600:0 выдает Devide overflow и выпадает из debug-а в DOS. g f600:0 выдает три строки абракадабры и вешает комп.
Может, перед выполнением g=... нужно было что-то куда-то заслать, как мне раньше советовали?

В среду распакую Мазовию №3 с 3-им по происхождению комплектом ПЗУ и доложу результаты по ней.
Сергей С
Member


Всего сообщений: 151
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 янв. 2017
sanders, мои предположения:
По совпадению биоса и тех байт что отображены uav1606 написал способ дампа, позволяющий проверить полную корректность чтения используемой конкретной платы, именно этот вариант и следует теперь применить для по байтового сравнения.
По не адекватному поведению из debug, а если использовать образ такой дискеты(записанный например через RAWRITE.EXE) из zip-архива?
Вы писали:
[q]
С "новым" комплектом, который прошит по ссылке Tronix-а, обращение к дисководу примерно через минуту снимается, и выдается сообщение о том, что нет системной дискеты.
[/q]
Сейчас(сообщение Tronix-а редактировалось) по ссылке есть только сам Basic который полностью совпадает с тем, что находится в вашем архиве с Мазовией.
Разве была им выложена ещё одна версия биоса Мазовии(не ver 1.1?) которая и могла возможность осуществить не/прерывное ожидание системной дискеты до опроса и старта внутреннего бейсика?
Чем предложенный алгоритм в моём варианте патча биоса не устраивает?
Что мной не проверено важного и принципиального, так это возможность запуска именно этого Basic и софта на 8086 процессоре(эмулятор использует 386+,387+), то есть не использованее 32битных и других инструкций, особой работы команд push/pop, регистра флагов и прочее. Про то что видеокарта опозналась как ч/б не принципиально.
sanders
Advanced Member
Профессионал

Откуда: Санкт-Петербург
Всего сообщений: 6434
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
26 мар. 2008
Я проверю, обе ли платы обращаются к дисководу одинаковое (бесконечное) время.
На счет rawrite - ничего не понял. что нужно сделать? И для проверки чего?
Ваш алгоритм устраивает.
Сергей С
Member


Всего сообщений: 151
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 янв. 2017
В том биосе что выложен, изначально алгоритм такой, и вести себя по другому без правки он логически не может:

F000:E6F2 ; ---------------------------------------------------------------------------
                                                               ; начало программы прерывания 19h
F000:E6F2                 mov     cx, 5          ; число циклов, попыток чтения
F000:E6F5
F000:E6F5 loc_FE6F5:                            
F000:E6F5                 push    cx
F000:E6F6                 sti
F000:E6F7                 xor     ah, ah        ;подготовка и дальнейшее выполнение начальной установки устройства
F000:E6F9                 int     13h             ; DISK - RESET DISK SYSTEM
F000:E6F9                                             ; DL = drive (if bit 7 is set both hard disks and floppy disks reset)
F000:E6FB                 les     bx, cs:dword_FFEEE   ; указание адреса буфера для чтения
F000:E700                 xor     dx, dx                      
F000:E702                 mov     cx, 1         ; следующие несколько строк предназначены для считывания одного первого сектора дискеты/диска содержащей чаще всего в себе программу начальной загрузки
F000:E705                 mov     ax, 201h
F000:E708                 int     13h         ; DISK - READ SECTORS INTO MEMORY
F000:E708                                         ; AL = number of sectors to read, CH = track, CL = sector
F000:E708                                         ; DH = head, DL = drive, ES:BX -> buffer to fill
F000:E708                                         ; Return: CF set on error, AH = status, AL = number of sectors read
F000:E70A                 pop     cx
F000:E70B                 jb      short loc_FE715     ; перейти на адрес с меткой loc_FE715 если в результате был возвращён флаг ошибки(CF), например нет дискеты или её не удалось прочитать
F000:E70D                 add     sp, 6                    ; поднять стек на 6 байт
F000:E710                 jmp     cs:dword_FFEEE  ; перейти на адрес указанный в [cs:FEEE], это адрес буфера (0000:7c00)
; куда была ранее скопирована с диска программа содержащая инструкций по дальнейшей загрузке ядра используемой операционной системы, например файла IO.SYS
F000:E715 ; ---------------------------------------------------------------------------
F000:E715
F000:E715 loc_FE715:                            
F000:E715                 loop    loc_FE6F5  ; повторить цикл с адреса имеющим метку loc_FE6F5
                                                              ; вызов прерывания 18h, исполнение её команд действий
F000:E717                 int     18h             ; TRANSFER TO ROM BASIC
F000:E717                                             ; causes transfer to ROM-based BASIC (IBM-PC)
F000:E717                                             ; often reboots a compatible; often has no effect at all
F000:E719                 iret                       ; выход из программы прерывания 19h
F000:E71A ; ---------------------------------------------------------------------------
F000:E71A                 push    ax             ; начало программы прерывания 18h
F000:E71B                 push    si
F000:E71C                 call    loc_FF800   ; вызов подпрограммы для перехода на следующую строчку отображаемого текста на экране монитора
F000:E71F                 mov     si, 0FA0Fh ; начальный адрес выводимой строки сообщения "Boot disk failure. Type key to retry"
F000:E722                 call    sub_FF96B  ; вызов подпрограммы для вывода сообщения на экран и ожидания нажатия клавиш
F000:E725                 pop     si
F000:E726                 pop     ax
F000:E727                 iret                       ; выход из программы прерывания 18h
F000:E727 ; ---------------------------------------------------------------------------


Предложенный для старта образ дискеты с английской Dos 6.22 и сторонним debug, для того чтобы исключить влияние загружаемых драйверов и программ, резидентов через используемые вами варианты CONFIG.SYS и AUTOEXEC.BAT, на работу в монопольном(?) режиме Basic. RAWRITE - это одна из программ позволяющих записать/считать полный образ дискеты, тоесть даже программу начальной загрузки системы, не доступную при обращении посредством файловой системы через менеджеры файлов.
sanders
Advanced Member
Профессионал

Откуда: Санкт-Петербург
Всего сообщений: 6434
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
26 мар. 2008
Т.е. аналог Teledisk или DiskDup?
Я сделал две системные дискеты: 6.22 и 3.3 без всего. Т.е. только IO.SYS, MSDOS.SYS, COMMAND.COM
Я включил третью плату Мазовия (с третьим комплектом ПЗУ).
При запуске g=f600:0 всё виснет (по Ctrl-Alt-Del перезагружается)
При запуске g f600:0 выводится 3 строки абракадабры и виснет (по Ctrl-Alt-Del перезагружается).

Подтверждаю, что если дискета не вставлена, Мазовия через минуту выдает "Boot Disk Failure. Type key to retry".
Сергей С, если Вы настаиваете на Вашем образе системной дискеты, я ее сделаю, но ИМХО тут дело в том, что я испытываю на живой машине, а Вы - в эмуляторе.
Или может все-таки стартовый адрес не F600:0, а чуть другой?
Сергей С
Member


Всего сообщений: 151
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 янв. 2017
Да аналог, вот только Teledisk использует предварительно особым образом упакованные данные для записи.
Вы сделали правильно с дискетами, ничего лишнего в автозагрузочных файлах если таковые имелись.
А в предложенном мною образе диска, даже если он был приведён к формату дискеты на 360кб, находящийся на нём сторонний debug (v1.25 от Paul Vojta) на эмуляторе SPC/XT не смог показать пригласительную строку для ввода команд из-за генерируемой ошибки процессором -> (Invalid Opcode Fault) .
Старт MS-Dos 3.30 с образа двух дискет и команд в отладчике debug(находится на 2-м диске) привёл к успешному старту Basic, при выборе эмулируемой машины IBM PC/XT 5160 с подменённым кодом от биоса Мазовии.
О возможности смены адреса F600:0000 на другой, попробую позже.
Сергей С
Member


Всего сообщений: 151
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 янв. 2017
При исполнении команд Бейсика сегмент кода должен указывать на начало всего 32кб блока, поэтому при переходе на его первую инструкцию/команду используют команду межсегментного перехода.
Влияет ли адрес его положения, похоже что да. При старте он проверяет количество основной памяти(до 640кб) через прерывание 12h, установленный видеорежим и прочее.
Итак, на имеющейся материнской плате EV-1824 с 286 процессором был произведён старт с загрузочной дискеты. Запустив debug и введя команды:

N basicc11.bin
L
R

узнав значение cs=162c, а ip=0100 учитываем что первая инструкция должна читаться как с ip=0, делаем переход дополнительно смещая сегмент на 10h параграфов

g=163c:0000

После запуска, курсор продолжал мигать, клавиатура переключала NumLock, но Бейсик не стартовал.
Симитировав такую ситуацию в эмуляторе, стало понятно, что не проходит должным образом подготовка переменных для работы.
Перезагрузившись и повторив всё снова, но перед командой перехода выполнив редактирование байта в памяти, старт произошёл и был увиден интерфейс Бейсика.

e 60:536
заменить на 01

Может и не понадобится редактировать данный байт, тут проверяется самый младший бит.(Вероятность 50/50, в первом приближении)
Но введя первую программу '10 print "Hello!"' и запустив её на исполнение(F2), ответа не последовало, зависло.
А вообще, при наличии каких условий разработчик предусмотрел корректный запуск своей программы, можно узнать у него.
<<Назад  Вперед>> Страницы: 1 2 3 4 * 5 6
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Basic для Mazovia. ПЗУ есть, но при включении не стартует.
RSS

0 посетителей просмотрели эту тему за последние 15 минут
В том числе: 0 гостей, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS