Пpогpаммная эмyляция 1818ВГ93

ZXNet эхоконференция «real.speccy»

От Vlad Sotnikov Кому All 04.01.2003

Пpивет, Maxim!

03 янваpя 2003 года (а было тогда 02:52)
Maxim Timonin в своем письме к All писал:


MT> Минимальные тpебования к Спекки для новой пpошивки - 1024Кб RAM.

Это не есть хоpошо.

MT> Оптимальные - 1024Кб RAM и IDE HDD, иначе зачем эта новая пpошивка
MT> вообще нyжна?

А 256 почемy мало?

MT> В бyдyщем, возможно бyдет сделана модификация пpошивки и для клонов с
MT> памятью 512 и 256 килобайт. Цельный TRD, конечно в такyю память не
MT> влезет, но более маленьние SCL-файлы pазместить yдастся, что yже
MT> хоpошо.

Ясно. Вы обpаз в памяти хpаните. А pаботать напpямyю с винтом?

И еще: вы полностью поддеpживаете стандаpт винчестеpа MFS (как в скоpпе)?
Тогда на вашy опеpационкy могли бы пеpесаживаться пользователи скоpпионов
пpостой пеpешивкой ПЗУ. Или нет?


Vega/ex-Style Group.

<филфак-СПбГУ>
FIDO: 2:5030/1006.19 ZXNET: 500:812/19 E-mail: veg...@mail.ru

От Maxim Timonin Кому All 07.01.2003

Вся прелесть новой TR-DOS с эмулятором ВГ93 в том, что ей наплевать, какая
файловая система на винте. Прошивка будет работать исключительно с верхней
памятью, а как туда попадает TRD-образ - ее совершенно не волнует. А
попадать он будет посредством утилит других осей. Тут взят KAY-евский
вариант работы с TRD с винта, но на новом уровне. То есть достаточно будет
под iS-DOS, CP/M или скорповский монитор (в SCORPION-1024) написать
утилитку, которая будет загружать образ с понятной ей ФС в память, затем
сохранять конфигурацию и саму себя в качестве плагина-резидента там же,
затем установит конфигурацию TR-DOS и передаст управление ей. А достать
резидент можно будет путем MAGIC и RESET, для которых в прошивках поставлены
перехватчики, передающие управление резиденту при его наличии (схема как в
АТМ). Резидент будет менять при необходимости образы (сохранять изменения)
или обеспечивать восстановление старой конфигурации, а проще говоря - выход
обратно в ось-источник.

--
Тимонин Максим

От Kirill Frolov Кому All 07.01.2003

MT> Вот - теперь ясно, почему метр...
MT> Hапрямую работать можно, но совместимость падает практически до #3D13
MT> с небольшой разницей, а полноценной эмуляции (именно эмуляции!) ВГ93
MT> добиться невозможно - слишком разные устройства, временный параметры и
MT> куча прочей хрени.

Это какая такая куча хрени? Современные накоители работают быстрее ОЗУ
спектрума. У них в кэш умещается разом весь образ спектрумовского диска. К
тому-же не обязательно абсолютно для всех программ точно выдерживать все
временные характеристики 1818ВГ93. Или же программа не обязательно должна
работать в реальном времени.

MT> А владельцы метровых компов могут уже потирать руки в предвкушении
MT> рулеза.

Mogut ne потирать.

VS>> И еще: вы полностью поддеpживаете стандаpт винчестеpа MFS (как
VS>> в скоpпе)? Тогда на вашy опеpационкy могли бы пеpесаживаться
VS>> пользователи скоpпионов пpостой пеpешивкой ПЗУ. Или нет?
MT> Вся прелесть новой TR-DOS с эмулятором ВГ93 в том, что ей наплевать,
MT> какая файловая система на винте. Прошивка будет работать
MT> исключительно с верхней памятью, а как туда попадает TRD-образ - ее
MT> совершенно не волнует.

Какая устойчивость к сбою у такой системы? Что будет при отключении
питания, сбое пользовательской программы или ошибках в эмулятор ВГ93 ? А будет
так, что юзер 5 часов подряд что-то делал и записывал на RAM-disk, а потом
наступил @#$@#%. Hафиг такой эмулятор нужен, лучше на ГМД записывать, надёжнее.
Это, кстати, беда всех современных эмуляторов спектрума -- образ пишут разом и
только при выходе. Если в момент записи образа происходит сбой то остаёшься и
без старого образа диска, и без нового.

MT> А попадать он будет посредством утилит других осей. Тут взят
MT> KAY-евский вариант работы с TRD с винта, но на новом уровне.

Кевский -- значит самый ущербный.

От Maxim Timonin Кому All 07.01.2003

В общем так - прошивка построена по такому принципу: во всем местах ее, где
были обращения к портам ВГ93 поставлены джамперы. Так что это при подмене
точек входа #3D13 можно просто вставить цельную подпрограмму чтения сектора
с винта. Вот бы все юзаньем этой точки и ограничивались, не былобыпроблем. А
здесь идет эмуляция на уровне каждого байта. Тут -то и показывают свой норов
всякие супер-пупер-загрузчики - то одному надо подсчитывать значение R
(программа расксорки в VINNY PUH) повозвращении из подпрограммы TR-DOS (а
так как при вставке джампера подпрограмма ужлиняется, то и регистр R
принимает другое значение), то определяет нахождение регистра PC по приходу
прерывания (а при юзанье эмуля часто он оказывается в нестандартных адресах)
как в RDS... В общем, даже при идеальной эмуляции ВГ93 возникают проблемы
именно из-за того, что господа программисты очень любят извращаться с ПЗУ.
Нотак или иначе на сегодняшний момент за исключением прог,использующих
нестандартный формат флопа, работает 98% софта. Еще один процент заработает
в скорем времени, и только 1% под вопрсом...