PDA

Просмотр полной версии : TR-DOS 5.041



Vadim
30.11.2012, 23:26
Представляю новую версию системы TR-DOS, которая предназначена для замены версий 5.03/5.04/5.04s/5.04t. В ней исправлены ошибки (не все) и сделаны некоторые обновления. Совместимость максимально сохранена. Проверено большое количество программ, обращающихся напрямую к процедурам TR-DOS через точку входа 3D2F, процедуры к которым эти программы обращаются находятся по тем же адресам, что и в предыдущих версиях.
Система создана через восстановление исходного текста 5.04T, а не методом наложения заплаток на существующий код. Исходный текст проанализирован, найденные ошибки и неточности исправлены, но это не последняя редакция системы.
Система находится ещё в стадии доработки. Жду сообщений о несовместимости со старыми версиями или просто отзывов.
Создавалась она не как самоцель (хотя и это было бы неплохо), а как ступень к новой версии TR-DOS с поддержкой НЖМД для компьютеров типа Профи.

Vadim
30.11.2012, 23:33
Сразу хочу сказать, что я видел почти все версии TRDOS которые появились в 90-е годы и позднее. Я их анализировал, те версии что были у меня - 100% патчи или к 5.03 или к 5.04 и т.д. Чешская версия 5.05 заметно отличается по коду, но к сожалению она далеко не идеал. На реале тест не выдержала. Второе нажатие Enter в команде LIST без дискеты в дисководе повесило систему. Все остальные версии "патчи" - не исправляли вообще или исправляли частично ошибки TRDOS. Это главное, заметно по патчам, что исходного текста у авторов не было. Ошибок в системе много, почти каждый день я что-нибудь да нахожу.

Лас
30.11.2012, 23:39
Представляю новую версию системы TR-DOS, которая предназначена для замены версий 5.03/5.04/5.04s/5.04t.
С чего вдруг она предназначена для замены? Вам так хочется?

Vadim
30.11.2012, 23:47
С чего вдруг она предназначена для замены? Вам так хочется?
Да нам так хочется, нам хочется использовать версию TRDOS с меньшим количеством багов. Если Вам так не хочется - не используйте.

---------- Post added at 01:47 ---------- Previous post was at 01:44 ----------


С чего вдруг она предназначена для замены?
Предназначена, в данном контексте, это цель, с какой это делалось. В любой разработке должна быть цель.

Лас
30.11.2012, 23:54
Своевременно. Через 26 лет после выпуска TR-DOS вдруг появляется какая-то версия с исправленными кое-какими багами и претенциозно позиционирующаяся как "версия на замену". Откуда знать, что ваша версия не будет случайным образом форматировать диски...

Vadim
30.11.2012, 23:57
Своевременно. Через 26 лет после выпуска TR-DOS вдруг появляется какая-то версия с исправленными кое-какими багами и претенциозно позиционирующаяся как "версия на замену".
Вы эксперт? Сомневаюсь. Ознакомились со всем содержимым? Или только понты как всегда, не подкрепленные ничем?

Лас
01.12.2012, 00:03
Вы эксперт? Сомневаюсь. Ознакомились со всем содержимым? Или только понты как всегда, не подкрепленные ничем?
Мне хватило вашего списка исправленных ошибок с перлами такого рода:

- Заменена процедура селектора функций которые вызываются через 3D13, процедура стала короче, проще и понятнее. Опять же высвободилось место;"
Ни исходного кода, ни адресов не указано. Для кого процедура стала проще и понятнее? Для юзера? Для ВГэйки?

Решил открыть исходник.
Увидел следующее:

; TR-DOS v5.041
; ~~~~~~~~~~~~~
;Vadim (C) 2012.

С какого перепугу вы в TR-DOS втыкаете свои копирайты - я не смог понять. Завис, закрыл исходник от греха подальше.

goodboy
01.12.2012, 00:05
в паре эмулей с этой прошивкой зависон при командах CAT/LIST.
на Unreal`e игрушка Kolobok2 не запустилась. и не надо нам внушать что весь софт должен использовать trdos по стандартным точкам входа. при желании наверняка найдутся ещё программы не работающие с этой прошивкой. пускай и них внутри *****код, но на старой прошивке они работают.

Vadim
01.12.2012, 00:19
Ни исходного кода, ни адресов не указано. Для кого процедура стала проще и понятнее? Для юзера? Для ВГэйки?
Для подобного рода суждений надо посмотреть эту процедуру в оригинале, а потом модифицированную. Думаю вопросы отпадут.

С какого перепугу вы в TR-DOS втыкаете свои копирайты - я не смог понять. Завис, закрыл исходник от греха подальше.
Копирайты в данном случае указывают авторство исходника и не более того, а не авторство на trdos, Боже упаси.

---------- Post added at 02:11 ---------- Previous post was at 02:09 ----------


и не надо нам внушать что весь софт должен использовать trdos по стандартным точкам входа.
Где, кто внушал? По стандартным точка входа всё должно работать.

в паре эмулей с этой прошивкой зависон при командах CAT/LIST
В каких?

---------- Post added at 02:12 ---------- Previous post was at 02:11 ----------


при желании наверняка найдутся ещё программы не работающие с этой прошивкой. пускай и них внутри *****код, но на старой прошивке они работают.
Читал моё самое первое сообщение? Жду инфы, что где не работает.

---------- Post added at 02:19 ---------- Previous post was at 02:12 ----------


Откуда знать, что ваша версия не будет случайным образом форматировать диски...
Исходник прилагается. Случайным образом не будет. А вот неслучайным - будет, но в процедуре форматирования есть баг, пока он не исправлен.

Vadim
01.12.2012, 00:43
Помнится особенно из-за включенного IM1 во время чтения данных с ВГ93.
Не совсем понял о чём идёт речь. Im 1 включен по умолчанию, при чтении данных с ВГ93 прерывания запрещаются. Или в той версии нет? Да и вообще, режим обслуживания прерываний разве имеет значение?

goodboy
01.12.2012, 00:50
В каких?
SpecEmu и RealSpectrum. (наверно там неполная эмуляция ВГ)
игрушку Kolobok2 я специально привёл к примеру поскольку знаю что она может завалить нестандартную прошивку. возможно и журналы ZX-Format не пойдут.

Vadim
01.12.2012, 01:28
возможно и журналы ZX-Format не пойдут.
Их не проверял, забыл(((. Колобка где взять? Где-то был у меня, но проще скачать чем найти... Спектакулятор, как мне кажется не эмулит ВГ93, использует точки перехвата, остальные скорее всего тоже. Я на анриле проверяю, потом шью ППЗУ и смотрю на реале.

---------- Post added at 03:20 ---------- Previous post was at 03:19 ----------


Спектакулятор,
Я на нём ещё пробовал, там не работало.

---------- Post added at 03:28 ---------- Previous post was at 03:20 ----------

Ясно, ZX-Format'ы не идут. Позднее посмотрю, куда они лезут. Вообще, я собирал инфу, какие программы куда обращаются. Как правило это были или процедуры загрузки сектора или seek из Magic или доступ к системному регистру Бетадиска. Реже чтение INTRQ DRQ. Ведь вообще, любая программа может обратиться по любому адресу. С такой постановкой систему изменять совершенно нельзя. Но можно выявить точки которые использовались в 99% программ и обеспечить совместимость. Да, 1% не пойдет, если этот 1% очень важен, можно сделать фикс этих программ.

Shadow Maker
01.12.2012, 02:01
Вообще конечно ПРАКТИЧЕСКОГО смысла в новых версиях тырдоса нет. Все равно сейчас командами его никто не пользуется, только бутами да RUN "X". Да и возиться с перепрошивкой реалов тоже никто не будет. Но если интересно самому, то почему бы и нет.

Vadim
01.12.2012, 02:39
Все равно сейчас командами его никто не пользуется, только бутами да RUN "X". Да и возиться с перепрошивкой реалов тоже никто не будет. Но если интересно самому, то почему бы и нет.

Хммм. Но ошибки то не только в командах, они есть и в функциях (в основном, кстати). Самая нехорошая в функции seek (описана не раз). Да и на реале без ошибок и без левых дёрганий головок при загрузке файла всяко будет лучше? Не так ли? Я в первую очередь ориентируюсь на реальные компы. А насчёт перепрошивки я бы не был так категоричен. Если выявим все несовместимости и сделаем (я сделаю) прошивку, которая будет без основной массы глюков и при этом весь или почти весь софт будет работать, разве это не повод обновить ПЗУ? Большой проблемы в этом нет. Сейчас на спектруме нет простых пользователей, которые мало что знают. Да хотя бы в эмулях заменить прошивку, что бы избавиться от багов и то будет хорошо.

---------- Post added at 04:39 ---------- Previous post was at 04:11 ----------


ПРАКТИЧЕСКОГО смысла в новых версиях тырдоса нет
А мы хотим загружать программы TR-DOS с винта? На реале без новой версии никак.

Titus
01.12.2012, 04:01
Ведь вообще, любая программа может обратиться по любому адресу. С такой постановкой систему изменять совершенно нельзя. Но можно выявить точки которые использовались в 99% программ и обеспечить совместимость. Да, 1% не пойдет, если этот 1% очень важен, можно сделать фикс этих программ.
Вот именно. И в этом плане патченные TR-DOS'ы гораздо более надежны, чем перекомпилированные заново, у которых весь код сьехал на новые места. Для совместимости с родным TR-DOS'ом самое важное, оставить потенциально используемый код на своих местах. А это весь код. Патчи можно размещать в неиспользуемых областях, без смещения основного кода. Я для себя писал в 96 году TR-DOS 7.0 (так вроде назвал, выкладывал тут на форуме), которая является патченной версией 5.03. Основная фича - это турбозагрузчики вместо стандартных медленных процедур. Так вот за несколько лет использования ее, никакой несовместимости не выявлено было. А если что-то могло и не пойти, то достаточно нажать 'shift' (кажется), и тр-дос превращался в 5.03.

Vadim
01.12.2012, 05:50
которая является патченной версией 5.03.
Патчи 5.03, и всех других это всего лишь заплатки поставленные на больного. Болезнь они не излечат. А её можно излечить. Да, при изменении всё "съезжает", но я большую часть моментов учёл. Это можно увидеть в исходнике. Остались незначительные вещи о которых я не знал. Скорее всего несколько адресов. И все, программы, которые вам нужны будут работать. Видимо просто не весь список адресов и соотв. мест оригинального ПЗУ у меня есть. Но это не страшно. Укажите мне какая программа не работает и я найду решение.

---------- Post added at 07:08 ---------- Previous post was at 07:07 ----------


И в этом плане патченные TR-DOS'ы гораздо более надежны, чем перекомпилированные заново,
Чушь и бред от человека не знающего внутренности trdos.

---------- Post added at 07:14 ---------- Previous post was at 07:08 ----------


Для совместимости с родным TR-DOS'ом самое важное, оставить потенциально используемый код на своих местах. А это весь код.
Конечно же нет! Достаточно поставить точку останова в 3D2F, и снять статистику какие же адреса юзали спектрумисты 90-х. Набирается не более 20-и адресов. Спектрофон возможно вызывал не только 3d2F а любой другой адрес из диапазона. Но это другой вопрос. Так вот, на свои местах я оставил весь код, по которому обращается большинство программ. Да, остались некоторые, которые пока не работают, но это не проблема. Скажите адреса и я модифицирую код, всё прекрасно будет работать.

---------- Post added at 07:21 ---------- Previous post was at 07:14 ----------

Говорить о том, что существующая версия trdos неизменна, что при любом измени ее рушится весь софт - глупо. Есть программы, которые лезли туда, куда им не положено было лезти, но они это делали. Это факт. И факт в том, что никто нам не сможет запретить сделать модификацию TRDOS такую, что и ошибок её не будет и софт старый работать будет. Гарантия примерно 99,9%. И не надо мне плести про не совместимость.

---------- Post added at 07:26 ---------- Previous post was at 07:21 ----------

А вот далее, развитие системы подразумевает, что левых обращений внутрь процедур не будет. Тогда возможно развитие. А не дрочево в рамках дискеты. Реально всё это. Даже не меняя структуры trdos дискеты размещать её на винте, в любой момент записать на реальную дискету или наоборот, сделать так, что бы trdos воспринимала бы её как реальный диск. Я не говорю о ваших *****решениях, которые загружают образ дискеты в расширенное ОЗУ. А говорю о реальной работе программ, с образами на винте.

---------- Post added at 07:50 ---------- Previous post was at 07:26 ----------

А ещё мне интересно снять статистику, что же кроме ZX-Format и колобка не идёт....
Демы все вроде идут. От ранних до последних. А раз формат отказал - так проблема!!! Капееец! куёвая прошивка-то! Ога! Оригинал в 1000 раз лучше! Формат не идёт! И что? что он не идёт? Я вообще, как бы не вижу проблемы, но скорее всего она решаема и решаема очень легко. Ну полезли авторы формата по "неизведанным" точкам. И что?

Sayman
01.12.2012, 07:33
а я примерно и ожидал такой реакции. Vadim, бросай это дело.

Лас
01.12.2012, 09:37
Да пусть автор пишет что хочет, это его личное дело, никто ему запретить ничего не может. Он же не за деньги впаривает свой титанический труд.
Но меня он никакими коврижками не заставит перепрошиваться на его перекомпилированную версию ДОС'а. Неоправданный риск.

KURGAN-DOS 5.041 - блажь заморская, антихристова лжа! :)

Sayman
01.12.2012, 09:40
Лас тебе лечиться пора!!!

null_device
01.12.2012, 10:32
Идея неплоха, но до тех пор, пока "не выловлены все блохи" - прошивать сей tr-dos на реальный комп не вижу смысла. Удручает неработоспособность "форматов" и "колобка", а возможно и чего-то еще (раз такие "грабли" выявлены у нескольких дистрибутеров, значит проблема имеет место быть).

Vadim
01.12.2012, 11:00
KURGAN-DOS 5.041 - блажь заморская, антихристова лжа!

ЛАС или кто ты там? Тебе реально надо лечиться, На форуме от тебя только под*бки, ругательства и тому подобное. Может у тебя с сексуальной сферой проблемы? Может скрытый гомосексуализм? Раз такие формы это принимает у тебя? Сходи к врачу, полечись. Реакция совершенно неадекватная, то про формат пишешь, то про курган. Мой город ты раз уже обосрал (побывать бы тебе разок, вставили бы тебе). Если ты гомосек - ты так и скажи. А лучше уйди с форума, найди себе мужика, который тебя будет дрючить и успокойся.

Titus
01.12.2012, 12:54
А ещё мне интересно снять статистику, что же кроме ZX-Format и колобка не идёт....
Позапускай мои:
1. Elite-3 новосибирская, с не снятой моей защитой. Формат диска обычный, обращение к TR-DOS нестандартное.
2. Street Fighter. Формат диска бессекторный, обращение к TR-DOS нестандартное.
3. Юстировщик дисководов. Не помню название.

Образов под рукой у меня нет, так что вопрос к vtrdos и хранителям образов.

Rindex
01.12.2012, 13:50
3. Юстировщик дисководов. Не помню название.

http://zx.pk.ru/showpost.php?p=364554&postcount=17

Остальное, включая Колобок2 на http://vtrdos.ru/ в играх - Russian, Remix и т.д.

Vadim
01.12.2012, 17:08
3. Юстировщик дисководов. Не помню название.



http://zx.pk.ru/showpost.php?p=364554&postcount=17

В эмуле работает, на реале моём - нет. В TR-DOS 5.04T также отказался запускаться.

Vadim
01.12.2012, 19:11
Колобок делает переходы внутрь TRDOS на команды ret. всего 10 адресов. Внес исправления, заработал он.

Rindex
01.12.2012, 19:39
В эмуле работает, на реале моём - нет. В TR-DOS 5.04T также отказался запускаться.

Юстировщик этот точно работает на моём Профи 3.2 с тр-досом 5.04Т. Я на нём наши дисководы юстировал, ибо самый удобный.

Vadim
01.12.2012, 19:53
Так эмуль у меня настроен на порты профи, в нём запускается. А на реале нет. Ни в турбо ни без турбо, в 48К режиме, с нажатой кнопкой. Не идёт. А насчёт колобка я не знаю. Стоит ли доводить систему, что бы он запускался? Думается мне, что больше программ с таким поведением не будет. Может лучше пропатчить его самого?

Rindex
01.12.2012, 19:55
Я же по русски написал - НА РЕАЛЕ У МЕНЯ РАБОТАЕТ!

Vadim
01.12.2012, 19:56
Я же по русски написал - НА РЕАЛЕ У МЕНЯ РАБОТАЕТ!
Я понял, что у тебя работает, но и у тебя профи 3.2, а у меня 5.03

solegstar
01.12.2012, 21:30
Vadim, а что происходит с четвертым битом 7ffd - ROM14? скорее всего из-за него проблемы, т.к. в контроллере 3.2 он не используется (что странно), а в 5.03 идет на дешифратор РТ4.

Vadim
01.12.2012, 21:52
а что происходит с четвертым битом 7ffd - ROM14? скорее всего из-за него проблемы, т.к. в контроллере 3.2 он не используется (что странно), а в 5.03 идет на дешифратор РТ4.
Он равен 1. Это включает ПЗУ бейсик-48 и возможно включение ПЗУ TR-DOS.

lisica
01.12.2012, 22:01
если он в 0 то тырдос не включится.

---------- Post added at 21:01 ---------- Previous post was at 20:59 ----------


к новой версии TR-DOS с поддержкой НЖМД для компьютеров типа Профи
А с карточками? Другими моделями?

Vadim
01.12.2012, 22:27
А с карточками? Другими моделями?
Можно и к другим. Пока не знаю, я взялся за TRDOS, с восстановлением исходника из-за того, что бы освободить в нём место, удалив то что не используется. Без исходника никак. Ну а раз уж так получилось, то решил сделать версию с исправленными ошибками, убрать хотя бы самые грубые.

psb
01.12.2012, 22:46
Идея неплоха,
ну как обычно - идея хорошая, реализация ГОВНО. Vadim, без обид, продолжай работать в стол:)))


Демы все вроде идут. От ранних до последних. А раз формат отказал - так проблема!!! Капееец! куёвая прошивка-то! Ога! Оригинал в 1000 раз лучше! Формат не идёт! И что? что он не идёт? Я вообще, как бы не вижу проблемы, но скорее всего она решаема и решаема очень легко.
вот такой подход всю работу сводит на нет и подрывает доверие. кто-то еще о "профессионалах" заикался? профи в данном случае - это не тот, кто разобрал и исправил чужую программу, а тот, кто понимает что он делает и зачем. и вот с этим у автора проблемы:) сколько там программ под тр-дос понаделано? проверить даже 90% из них - убиться (а изменения в прошивке просто огромны, раз адреса поплыли). а вот спектрофоны, форматы и колобки - это отличнейшие проекты, и если они не работают... автор просчитался. причем, в самом начале, ибо неверное понимание реальных вещей или потребностей человеков. потому - в стол.

п.с. Лас хоть и резок, но по сути он прав. если кто-то этого не понимает - в стол.

sergey2b
02.12.2012, 01:28
Исходники 5.04Т давно уже есть и места для патчей в дыр-досе достаточно:
подскажите пожалуйста где можно посмотреть

Vadim
02.12.2012, 07:24
а вот спектрофоны, форматы и колобки - это отличнейшие проекты, и если они не работают... автор просчитался.
Я уже нашёл почему не работает zx-format. С ближайшее время они все пойдут. Зачем это делается я прекрасно знаю. Мне не нравится зависающий trdos. Ошибки на каждом шагу.

Исходники 5.04Т давно уже есть
Где? Я не видел.

Лас
02.12.2012, 08:04
ЛАС или кто ты там? Тебе реально надо лечиться, На форуме от тебя только под*бки, ругательства и тому подобное. Может у тебя с сексуальной сферой проблемы? Может скрытый гомосексуализм? Раз такие формы это принимает у тебя? Сходи к врачу, полечись. Реакция совершенно неадекватная, то про формат пишешь, то про курган. Мой город ты раз уже обосрал (побывать бы тебе разок, вставили бы тебе). Если ты гомосек - ты так и скажи. А лучше уйди с форума, найди себе мужика, который тебя будет дрючить и успокойся.
Я чего-то недопонял. Что это за фигня в ответ на критику и почему у этого господинчика еще нет красной карточки? :)

Vadim
02.12.2012, 08:57
(а изменения в прошивке просто огромны, раз адреса поплыли)
На самом деле я почти не менял самих дисковых процедур, всего в паре мест. Ясно же, что программам имеет смысл обращаться именно к ним. Какой смысл вызывать парсер строки? Или токенизатор? Основные изменения в дисковых процедурах коснулись начала работы с диском, процедуры проверки на наличие дискеты, тест типа дисковода и процедура seek. Её адрес остался тот же, но саму процедуру я изменил. Сейчас буду смотреть, что надо исправить, что бы ZX-Format'ы пошли. Первый ZXF, кстати идёт, Kolobok тоже. Я выложил исправленный вариант, с форматами пока ещё непонятно почему не работают. Спектрофоны идут все.

Кстати, когда я только начинал делать изменения, то хотел делать их минимальными, оставляя адреса процедур теми же. Но не за всеми уследил. Высвобождал место в тех местах, куда вряд ли будут обращения, а процедура выполняет ту же функцию.

Sayman
02.12.2012, 09:30
собственно говоря, по-большей части любая ос или иная софтина пишется с учётом правильного использования. варианты "читерства", т.е. работа в обход чего-либо, никакой разраб не гарантирует. есть стандартная процедура, скажем та же 3d13h. через неё всё работает. а вот если через другие "дыры" не работает - это проблемы "пользователя".

Лас
02.12.2012, 09:36
собственно говоря, по-большей части любая ос или иная софтина пишется с учётом правильного использования. варианты "читерства", т.е. работа в обход чего-либо, никакой разраб не гарантирует. есть стандартная процедура, скажем та же 3d13h. через неё всё работает. а вот если через другие "дыры" не работает - это проблемы "пользователя".
Здрасьте, приехали.
В 2012 году, наконец-то, пришли люди, которые расскажут "пользователям", что если на старой прошивке, которой они пользовались 20 лет, всё работало, а на новой, "улучшенной" прошивке "на замену старой, негодной" - перестало работать, то это их, "пользователей" проблемы.

Vadim
02.12.2012, 09:46
Здрасьте, приехали.
В 2012 году, наконец-то, пришли люди, которые расскажут "пользователям", что если на старой прошивке, которой они пользовались 20 лет, всё работало, а на новой, "улучшенной" прошивке "на замену старой, негодной" - перестало работать, то это их, "пользователей" проблемы.
Колобок делает 10 переходов внутрь TRDOS на команды RET. Зачем? С диском он работает через 3D13. Зачем делать переходы? Если хотим проверку сделать, можно читать значения из ПЗУ и проверять их, если что то не так - вывести сообщение. Любые изменения кода чреваты несовместимостью, но если не менять, то ошибки останутся. ZX-Format'ы используют мудрёный загрузчик, который обращается к ПЗУ trdos в целях защиты. Ещё видел несколько программ, которые лезут к дисковым процедурам, хотя необходимости в этом нет. Всё то же самое делают функции 3D13. При ошибке они выводят сообщение? Так это можно было и отключить.

Sayman
02.12.2012, 10:15
всё работало для *****кода никаких гарантий не было и быть не может. и то что оно работало на старой версии, это не значит теперь что новая версия фуфло. писали бы нормально, не было бы таких проблем.

scl^mc
02.12.2012, 11:33
для *****кода никаких гарантий не было и быть не может
а если "*****код" использует особенности оригинальной прошивки?

Vadim
02.12.2012, 12:56
а если "*****код" использует особенности оригинальной прошивки?
Так в том то и вопрос, что использует он их не по делу. Разобрался я почти со всеми zx-форматами, Из-за обращения в процедуру проверки наличия дискеты не работали 3-6 форматы. Для проверки вернул старую процедуру, заработали 1,3-6 и 8. Проблемы с 2-м и 7-м. Буду разбираться и добиваться их работы.

ZXF#2 читает содержимое ПЗУ с адреса 2900h, при несовпадении с тем, что сохранено в программе - полосы. Прошивку ПЗУ я так понимаю ему надо 5.03/5.04s/5.04t. Проверяет он следующие диапазоны адресов
2900-2AFF
3E00-3FFF
Для того что бы журнал запустился, надо заменить байт по адресу 7E41 на 0.

---------- Post added at 14:56 ---------- Previous post was at 13:35 ----------

Обновил в первом посте прошивку и исходник. Итак, ZXF#1,3,4,5,6,7, 8 работают. Во 2-м надо заменить байт. в последовательности 10 1A BE 20 07, 20 меняем на 0. На диске встречается 2 таких последовательности, где работает первая - не знаю, менять надо во второй. Колобок работает.

Titus
02.12.2012, 13:27
Надо просто выписать плюсы и минусы использования новой прошивки.

Минусы:
1. Нет никакой гарантии, что пойдет /корректно/ любая програмам написанная для тр-дос 5.03

Плюсы:
1. Те, кто будут впредь польозваться работой в тр-дос будут избавленны от некоторых глюков и ошибок.

Хм... лично я выбираю первое, ибо совместить и то, и то невозможно. А ошибки тр-дос давно описаны и стали ее особенностями.

---------- Post added at 13:27 ---------- Previous post was at 13:25 ----------

p.s.: Имеется ввиду совместить совместимость и перекомпилированный тр-дос. Поскольку родной, но с заплатками, на которые отведены неиспользуемые места, в разы надежнее и совместимее.

NovaStorm
02.12.2012, 13:40
>в разы надежнее и совместимее
А речь, как я понимаю, об этом и не идёт. Цель ставиться сделать "правильно". И это достойная цель.

Vadim
02.12.2012, 13:41
А ошибки тр-дос давно описаны и стали ее особенностями.
Далеко не все. Если хорошо так покопать, то ещё найдётся немало. Например, в любой версии trdos сделать команду RETURN - произойдет выход в бейсик (надо что бы комп стартовал из ПЗУ trdos). Делаем в бейсике ещё раз RETURN и ещё.

Titus
02.12.2012, 13:44
Далеко не все. Если хорошо так покопать, то ещё найдётся немало. Например, в любой версии trdos сделать команду RETURN - произойдет выход в бейсик (надо что бы комп стартовал из ПЗУ trdos). Делаем в бейсике ещё раз RETURN и ещё.

Все это замечательно, безглючный тр-дос и вообще.
Но проблема в том, что программ для Спектрума новых пишут очень мало, и будут писать еще меньше. А основной парк - это те, что написаны под 5.03. И их большинство. Поэтому ориентир должен быть на них прежде всего. Если б исправленная тр-дос появилась в 91-93 году - это было бы шикарно. Но сейчас уже все написано под 5.03, и нового софта почти не будет, т.к. платформа перешла в категорию раритетов и хобби.

Vadim
02.12.2012, 13:53
Но проблема в том, что программ для Спектрума новых пишут очень мало, и будут писать еще меньше. А основной парк - это те, что написаны под 5.03. И их большинство. Поэтому ориентир должен быть на них прежде всего. Если б исправленная тр-дос появилась в 91-93 году - это было бы шикарно.
Я проверяю программы, если выявляется несовместимость стараюсь изменить прошивку так, что бы устранить её. Что бы программа пошла. Это единственный путь, если я хочу и новую прошивку и что бы старый софт (который возможно лезет внутрь процедур TRDOS) работал. Я уверен, что не 100% программ будут полностью работоспособны, но можно довести процент до 99 или 99,9. А это уже будет очень хорошо. Если не пойдет несколько программ, разве их нельзя пропатчить? Можно конечно. А насчет 92-93, то конечно, это было бы замечательно, если бы в то время появилась новая прошивка. Можно было бы ввести новые функции, для реализации того, чего не хватало и зачем лезли в ПЗУ напрямую, а не через точку входа.

---------- Post added at 15:53 ---------- Previous post was at 15:50 ----------


Если б исправленная тр-дос появилась в 91-93 году - это было бы шикарно. Но сейчас уже все написано под 5.03,
Кстати. Первый trdos который был у меня - 5.01 (из-за медленного дисковода). Адреса процедур у них отличаются.

goodboy
02.12.2012, 13:55
зачем лезли в ПЗУ напрямую, а не через точку входа.
если не рассматривать защиты кода, то в основном для загрузки без использования системных переменных и буфера для сектора (при наличии проблемы с объёмом свободной памяти), а ещё для ускорения загрузки (сократив в своём лоадере задержки при работе с дисководом) до минимума. ещё можно вспомнить распаковщик данных (от RST#7) который мигал светодиодом.

goodboy
02.12.2012, 13:59
Кстати. Первый trdos который был у меня - 5.01 (из-за медленного дисковода). Адреса процедур у них отличаются.

я недавно на такой версии запустил демку Insult - произошла самопроизвольная запись и как итог порча каталога и системного сектора.

Vadim
02.12.2012, 14:01
Проблему нехватки памяти можно было и иначе решить. Интересно, много ли игр с подгружаемыми уровнями обращаются внутрь процедур trdos для того что бы не использовались переменные?

---------- Post added at 16:01 ---------- Previous post was at 16:00 ----------


в большинстве случаев от трдоса обычному пользователю нужен list и run, а они работали.
Как раз таки в команде LIST 2 ошибки, которые могли приводить и к зависаниям и к сбросу. На форуме есть тема.

krt17
02.12.2012, 14:09
Как раз таки в команде LIST 2 ошибки, которые могли приводить и к зависаниям и к сбросу. На форуме есть тема.

Да я видел один замудреный способ ее вызвать но повторю, в 90-ых никогда с ними как простой юзер не сталкивался. Вообщем пока не понятно чем патченая хуже перекомпиленой?
Еще раз спрошу дополнительный функционал планируется?

Titus
02.12.2012, 14:10
Проблему нехватки памяти можно было и иначе решить. Интересно, много ли игр с подгружаемыми уровнями обращаются внутрь процедур trdos для того что бы не использовались переменные?
Много)

goodboy
02.12.2012, 14:15
Проблему нехватки памяти можно было и иначе решить. Интересно, много ли игр с подгружаемыми уровнями обращаются внутрь процедур trdos для того что бы не использовались переменные?
практически все. в начале 90х когда сведений о размещении подпрограмм было мало использовали стандартную точку входа (15635), но при этом сами создавали область переменных (как правило всё зануляли подставив пару значений)

http://zx.pk.ru/showpost.php?p=118827&postcount=16
http://zx.pk.ru/showpost.php?p=118923&postcount=18

http://zx.pk.ru/showpost.php?p=247166&postcount=2

Vadim
02.12.2012, 14:20
Еще раз спрошу дополнительный функционал планируется?
Да, но не сейчас, чуть позднее


Вообщем пока не понятно чем патченая хуже перекомпиленой?
Тем что если пропущены команды, то надо выносить кусочек в неиспользуемое место, ставить на него переход. Это не добавляет понятности кода, если таких заплат будет много - легко в них запутаться. Расширить функционал процедры патчем не всегда легко, ладно если новый вариант занимает столько же байт, сколько и старый или меньше, а если нет? Опять поиск свободного кода, перенос кода туда... Чем отличается моя версия от просто патчей? Сдвиг кода есть только в местах не связанных с диском. Вероятность, что программа туда обратится чрезвычайно мала. Конечно по определению система не 100% соотв. старому trdos. 100% совпадение может быть только при неизменном коде. 5.04s/5.04t не 100% совпадают по коду с 5.03. Но это не вызывает проблем. Да, потому что из основного кода изменено всего несколько байт + использован кусок памяти ранее не использованный. В моём варианте просто изменений больше вот и всё.

---------- Post added at 16:17 ---------- Previous post was at 16:16 ----------


Много)
Будем проверять :)

---------- Post added at 16:20 ---------- Previous post was at 16:17 ----------


Да я видел один замудреный способ
ошибка 1: делаем в бейсике команду CLEAR 24999. Делаем команду LIST. Делаем ещё раз LIST.
ошибка 2: в команде LIST если заполнился экран и комп просит нажать любую клавишу - жмем пробел, выходим в бейсик - наблюдаем разные эффекты.

null_device
02.12.2012, 14:59
Удалена процедура определения макс.скорости перемещения МГ. Она всё равно была неработоспособна(*). В этой редакции системы используется скорость перемещения 6 мс;
----
* - В самой процедуре допущена ошибка: вместо перемещения на цилиндр 32 с минимальной скоростью, выполняется перемещение с макс.скоростью. Тест ничего не даёт. На медленном дисководе он просто не выполнится.

А разве должно быть иначе? Перемещаемся с макс. скоростью->не успеваем->увеличиваем значение (снижаем скорость)->повторяем тест.
У меня при турбировании ВГ, данное значение явно уменьшалось, а на "гнилых" приводах и дискетах честно увеличивалось.
Вопрос: почему тогда значение не заносится в системные переменные (в эмуляторе, всегда равно 255)?

vlad
02.12.2012, 15:04
В общем, проблему совместимости одним только программным путем не решить, нужны и аппаратные изменения.
Проблема совместимости решалась с помощью cache (уже используется во многих быстрых клонах, где медленная ПЗУ не успевает работать за процессором), т.е. стандартное ПЗУ DOS подменялось ОЗУ страницами. Новая программа просто переключалась на свою страницу с новым DOS и могла еще напрямую работать с портами в/в контроллера FDD, старая же использовала классическую версию TR-DOS. Так появилась возможность усовершенствовать ДОС без так называемой потери совместимости.
По этому поводу можно много спорить, что есть лучше или хуже, нужно или не нужно, а можно взять и сделать...

null_device
02.12.2012, 15:05
если автор задумал какой то доп. функционал который с новой прошивкой

Очень в свое время (да и сейчас) нехватало возможности работы с фрагментированными данными. Невозможность обхода ошибочных блоков и дозаписи поверх удаленного файла в середине каталога - создавало ощущение ущербности tr-dos (на уровне эмулятора кассеты).

Titus
02.12.2012, 15:06
В общем, проблему совместимости одним только программным путем не решить, нужны и аппаратные изменения.
Проблема совместимости решалась с помощью cache (уже используется во многих быстрых клонах, где медленная ПЗУ не успевает работать за процессором), т.е. стандартное ПЗУ DOS подменялось ОЗУ страницами.
На классических машинках ПЗУ БЫСТРЕЕ, чем ОЗУ.

Vadim
02.12.2012, 15:58
Для проверки на реале использую Флеш-ппзу от ПЦ. Время доступа у неё вроде 150нс, в турбе у меня 7Мгц (в трдос) - работает без проблем.

Невозможность обхода ошибочных блоков и дозаписи поверх удаленного файла в середине каталога
Вот это сделать можно, только подумать надо хорошо над реализацией.

нехватало возможности работы с фрагментированными данными.
Как это сделать не знаю. Ведь эта возможность вытекает из свойств ФС. Надо думать как это реализовать.

null_device
02.12.2012, 16:47
А что насчет ошибки с переменными скорости перемещения головки дисковода (http://zx.pk.ru/showpost.php?p=556528&postcount=60)?

Vadim
02.12.2012, 17:02
А разве должно быть иначе?
Да, ниже поясню почему.

У меня при турбировании ВГ, данное значение явно уменьшалось, а на "гнилых" приводах и дискетах честно увеличивалось.
От дискет это не зависит совершенно. Процедура должна была определять задержку времени перемещения МГ. На "нормальных" дисководах 5.25 головки могут перемещаться и при 3мс, при стандартном 1Мгц на ВГ93 минимальное время 6мс. Большее время нужно для старых дисководов (в жизни я видел всего один такой привод - Изот 40 дорожек). Если посмотреть процедуру, то даже первая команда "восстановление" должна выполняться с минимальной скоростью, что бы гарантированно исполниться. Потом, если делать позиционирование с высокой скоростью, а дисковод эту скорость не поддерживает, то мы окажемся неизвестно на каком цилиндре. А нужно, что бы 100% туда произошло перемещение. А вот назад уже двигаться с тестируемой скоростью. Потом проверять, на каком цилиндре оказались МГ. Либо наоборот, вперед с тестируемой скоростью, назад с минимальной. Только так тест даст результат.

---------- Post added at 19:02 ---------- Previous post was at 18:57 ----------


Вопрос: почему тогда значение не заносится в системные переменные (в эмуляторе, всегда равно 255)?
В версии 5.041 не используется.

null_device
02.12.2012, 18:05
FCommander виснет на новой прошивке.. :v2_dizzy_facepalm:

Vadim
02.12.2012, 19:32
FCommander виснет на новой прошивке..
При какой операции? Я проверил версию коммандера 4.01, программы запускает, менюшки открывает.

null_device
02.12.2012, 19:37
Версия 4.01 глючная (не всегда корректно выполняет "сжатие" дискеты и копирование на двух дисководах).
4.2 не запускается, 4.4 с вирта, тоже.

---------- Post added at 23:37 ---------- Previous post was at 23:36 ----------


В версии 5.041 не используется.

Какова причина отказа от задействования этих системных переменных?:v2_conf2:

Vadim
02.12.2012, 19:47
Какова причина отказа от задействования этих системных переменных?
Время перемещения сейчас задано жёстко 6 - мс. Смысл хранить эти значения в переменных? Если надо версию для медленных дисководов - не проблема, можно сделать 12мс или ещё медленнее.


4.2 не запускается, 4.4 с вирта, тоже.
Сейчас проверю

null_device
02.12.2012, 19:59
В ту же степь ADS (http://trd.speccy.cz/system/ADS30.ZIP) и RDS (http://trd.speccy.cz/system/RDS_31.ZIP). Сбрасываетя при запуске.

psb
02.12.2012, 20:58
Я уже нашёл почему не работает zx-format. С ближайшее время они все пойдут.
у меня только один вопрос: ты собираешься всю жизнь сидеть и расковыривать все программы на предмет, что же они не работают? или думаешь, что люди будут искать и постоянно подкидывать тебе такие программы на анализ? не будет этого, все быстро стухнет. и про эту версию забудут как страшный сон.

Зачем это делается я прекрасно знаю. Мне не нравится зависающий trdos. Ошибки на каждом шагу.
здесь ты высказал свою личную т.з., которая далека от т.з. большинства. если бы ты сказал, что это альтернативный улучшенный тр-дос - дело твое, можешь городить что хочешь, никто не запретит. но ведь ты же "Представляю новую версию системы TR-DOS, которая предназначена для замены версий 5.03/5.04/5.04s/5.04t."... ну-ну:):) все бросились и заменили:))

Vadim
02.12.2012, 21:01
которая предназначена для замены версий 5.03/5.04/5.04s/5.04t."... ну-ну все бросились и заменили)
Никто никого не принуждает, это раз. А система ещё недоделана это два.

psb
02.12.2012, 21:09
система и не будет доделана! потому что если цель - заменить, делать надо было правильно, а не как захотел вдруг. с таким подходом доделывать до пенсии будешь...

Vadim
02.12.2012, 22:16
а не как захотел вдруг. с таким подходом доделывать до пенсии будешь...
Ну почему же? Я посмотрел куда обращаются программы, в том диапазоне сдвиг кода, подвину его так, как предполагает программа. Не так уж и много программ типа ADS, DCU. В самом плохом случае можно делать правки заново, с исходника 5.04t. Более осторожно следя за изменениями.

psb
03.12.2012, 00:06
Ну почему же? Я посмотрел куда обращаются программы
все овер 9000 программ? ну-ну. учитывая, что фэйл с известнейшими программами УЖЕ случился (которые должны были быть проверены в первую очередь), фэйлом это и останется (в том плане, что никакой замены старых версий не произойдет). это, разумеется, имхо, но чувствую, я не так и далек от истины...

Vadim
03.12.2012, 06:04
все овер 9000 программ?
Не преувеличил ли? :v2_dizzy_roll: Игры (далеко не все) используют одни и теже процедуры, проблемы могли быть (и случились) с дисковыми утилитами. ADS и RDS до размещения темы не проверил, каюсь, надо было. Половина адресов в которые они прыгают совпадают с теми что использовали форматы.

drbars
03.12.2012, 10:26
Vadim, продолжай делать и не трать время на критиков. Доводи до ума прошивку, если тебе это интересно и есть желание. Любой софт на ZX лишним не будет.

psb
03.12.2012, 12:22
Любой софт на ZX лишним не будет.
для коллекционеров;)

SoftLight
03.12.2012, 12:53
Да пусть будет новая версия, ничего страшного в ее появлении не вижу. По дороге может еще какие-то неизвестные интересности оригинальной прошивки обнаружатся.

Mad Killer/PG
03.12.2012, 13:06
Дa нaоборот офигитeльно что Вaдим нe побоялся рaзворушить рeдкосноe хм.., дa eщe нaписaноe чeрeз хм,в общeм молодeц и дaй Бог довeсти до умa!

Vadim
03.12.2012, 14:05
Если выкидывать из системы то, что криво написано, исправлять недочеты кодирования и т.д. То перестанет работать весь софт, который непосредственно обращается внутрь процедур (и даже команд) trdos. Останутся рабочими лишь программы с бейсик загрузчиками и работающими через 3D13, т.е. вызывающие систему через точку входа с обработчиком функций. Если менять процедуры обработчика magic - много программ лезущих внутрь trdos через 3D2F откажутся работать. А магик этот кривизна кривейшая (в плане реализации), хотелось бы вместо него сделать запись в .z80 и загрузку из него. И как быть?

psb
03.12.2012, 14:07
Да пусть будет новая версия, ничего страшного в ее появлении не вижу.
да не вопрос вообще:) просто ожидания не оправдаются, но кого это.....

vlad
03.12.2012, 15:01
Если выкидывать из системы то, что криво написано, исправлять недочеты кодирования и т.д. То перестанет работать весь софт, который непосредственно обращается внутрь процедур (и даже команд) trdos. Останутся рабочими лишь программы с бейсик загрузчиками и работающими через 3D13, т.е. вызывающие систему через точку входа с обработчиком функций. Если менять процедуры обработчика magic - много программ лезущих внутрь trdos через 3D2F откажутся работать. А магик этот кривизна кривейшая (в плане реализации), хотелось бы вместо него сделать запись в .z80 и загрузку из него. И как быть?
Сделать стандартом точку входа с обработчиком функций, все что лезет не туда - его проблемы. Пытаться подстроиться под весь софт лазающий куда ему хочется в tr-dos просто невозможно и незачем, проще организовать вторую точку входа, при переходе на которую подключался бы новый DOS с уже установленным стандартом вызова функций. А старый будет работать как и работал с древним DOS.

null_device
03.12.2012, 15:06
Логичнее отказаться от концепции "замены стандартного tr-dos".
Более "жизнеспособным" был бы проект "альтернативной" прошивки. Eсли хотите, в виде "довеска" над стандартным "tr-dos".
Либо, компиляция tr-dos "с нуля", сохраняя совместимость с программами использующими "стандартные" адреса. Логичнее, "допиливать" несовместимые программы под железо\ОС, чем наоборот.

Vadim
03.12.2012, 15:29
Либо, компиляция tr-dos "с нуля", сохраняя совместимость с программами использующими "стандартные" адреса
Вот я и решил так сделать. Сделать минимум изменений исправив ошибки. Но правда увлёкся))) Вообще, правильным шагом было бы добавить в TRDOS функции, за которыми лезли с "черного хода". А сам этот черных ход закрыть вообще. Да, все программы его юзавшие придется "допиливать". Но зато ужасающих проблем не будет. Можно дорабатывать trdos без серьезных проблем совместимости. Читал описание vtrdos для ATM, там авторы оставили старую прошивку (почти без изменений) и новую, переключая их программно. Старая для работы с дискетами, с софтом который не пойдет на новой. Новая для работы с винтом или с образом дискеты в ОЗУ. Корявое, но решение.

psb
03.12.2012, 16:19
Корявое, но решение.
это как раз с какой стороны смотреть. с вашей стороны - согласен, коряво (реально, я понимаю!), с нашей - лучше так, чем как с вашей:)

Vadim
03.12.2012, 17:01
с нашей - лучше так, чем как с вашей
А как с нашей? Вы в курсе? А переключалка страничек ПЗУ это самое минимальное над тем, если бы ничего не сделать.

psb
03.12.2012, 18:53
А как с нашей? Вы в курсе?
не, не, я не в куррсе, ребят... Vadim, давно все т.з. понятны.

Alex Rider
03.12.2012, 21:50
А магик этот кривизна кривейшая (в плане реализации), хотелось бы вместо него сделать запись в .z80 и загрузку из него. И как быть?

Как варинат - подпилить магик по-минимуму, чтобы кнопку какую спрашивал в момент нажатия. Если нажато - идти своим путем (в .z80), если-нет, работать по-кривому, как раньше. А чтобы место освободить под новый магик, можно было бы выпилить высокоуровневые процедуры работы с каналами, например. Ни одной проги, использующей их, не видел. Заодно освободится пара точек входа-переключателей - на них можно заделать новую прямую систему рестартов для винтов и всякого, что будет поддержано.

P.S. Не забывай, плиз, про возможность удобно штатно определять из кода версию твоей прошивки и поддерживаемые фенечки. И чтобы эта проверка на других прошивках вела себя адекватно.

psb
03.12.2012, 21:58
настоящий .z80 все равно не получится... будет помесь macig'а с z80...

Djoni
03.12.2012, 22:20
Мне кажется сейчас нет проблемы поставить в место микросхем ПЗУ FLASH память, спять самому или купить готовую (http://zx.pk.ru/showthread.php?t=12641)
платку с FLASH на 128-512К залить сразу две прошивки стандартную и альтернативную с исправленными ошибками с поддержкой винчестера и запуска снэпшотов 48k/128k .SNA .Z80 hobeta SPG :)
переключать тумблером.

P.S.
Вон буржуи под свою приблуду divIDE аж восемь System (http://velesoft.speccy.cz/zx/divide/divide-soft.htm)сделали ;)

Vadim
04.12.2012, 06:13
А чтобы место освободить под новый магик, можно было бы выпилить высокоуровневые процедуры работы с каналами, например. Ни одной проги, использующей их, не видел. Заодно освободится пара точек входа-переключателей - на них можно заделать новую прямую систему рестартов для винтов и всякого, что будет поддержано.

P.S. Не забывай, плиз, про возможность удобно штатно определять из кода версию твоей прошивки и поддерживаемые фенечки. И чтобы эта проверка на других прошивках вела себя адекватно.

Эту версию я планирую именно на замену 5.04T. Т.е. по сути это оно же, но с исправленными ошибками. Пока весь протестированный софт работает, всё что было указано выше идёт. Я пересмотрел весь код на предмет не соотвествий, вернул назад то, что можно было не менять (в части мест для печати строк используется прямой call вместо rst 24, хотя понятно, что rst сделали для уменьшения объёма кода).

А вот уже в следущей версии, в которой я хочу сделать поддержку винта - придётся выпилить всё что можно. Тестовые варианты я уже делал, становилось свободными с учетом того что уже было свободно - 8К. Магик выпилил тоже. Конечно весь софт, который в него лез - уже перестает работать. Да, надо сделать функции для определения версии, функции для прямого чтения секторов и т.д. и т.п. всё то, зачем лазили программы. Самый необходимый софт можно будет адаптировать в эту новую прошивку. Часть программ есть в исходниках.

Мне кажется сейчас нет проблемы поставить в место микросхем ПЗУ FLASH память
Для проверки на реале я так и сделал. Записываю во флешку 2 прошивки по 64К. С разными вариантами trdos. переключение кнопкой.


настоящий .z80 все равно не получится... будет помесь macig'а с z80...
Конечно. Ведь по приходу NMI в стек как минимум занесётся адрес возврата. А вот если сделать аппаратные изменения (например подменив все 64К на статик ОЗУ, в который сохранится PC, потом подключить ПЗУ с 0 адреса и запустить обработчик, он уже может снять адрес возврата из статик ОЗУ) - то вполне можно сделать чистый z80. Всё это слишком сложно, да и нужны такие модификации. Если пойти более простым путем - да получим не совсем чистый z80, ну и что? И работать он будет далеко не всегда (достаточно иметь SP=0000..3FFF), но вполне юзабельно будет.

NovaStorm
04.12.2012, 08:15
я хочу сделать поддержку винта
Лучше уж тогда сразу псевдоустройств с LBA для будущих SSD на мемристорной памяти =)

Vadim
04.12.2012, 08:45
Лучше уж тогда сразу псевдоустройств с LBA для будущих SSD на мемристорной памяти =)
Так на самом деле любые устройства могут быть, главное сделать интерфейс обращений к ним, эмуляцию работы с образами. Я уже почти всё продумал. Потом уже, по желанию кто захочет - такой драйвер там и впишет.

Vadim
05.12.2012, 06:30
Все вышеуказанные программы сейчас идут. Проверил. ZXF, кстати, почти все номера не могу работать с дисковода B в принципе. Проверил ещё около 80 номеров других журналов - Adventutrer, DejaVU, Demo or Die, Oberon, Odissey, Scenergy, Spectrum Expert, Spectrofon, Voyager, ZX-Power. Всё работает.

P.S. не работает Consul Commander. Т.к. он разместил в области системных переменных свой код. Переменная FRAMES увеличивается на единицу по прерыванию...

SoftLight
05.12.2012, 12:49
Я так смотрю обсуждение в итоге пришло к flash-пзу и эмуляции обращений TR-Dos для работы с образами. Все это давно реализовано в ZX Evo если что.

Vadim
05.12.2012, 12:54
Все это давно реализовано в ZX Evo если что.
В Эве реализовано, а на Профи нет. Не работает он с винтом в трдос. Ошибки трдос в версии для Эвы исправлены?

SoftLight
05.12.2012, 13:21
... Ошибки трдос в версии для Эвы исправлены?
пока не проверял, но какие-то ошибки от Velesoft-а, я читал (http://zx.pk.ru/showpost.php?p=284115&postcount=207), были исправлены. Там вообще большая часть переписана и путь развития очень напоминает Ваш проект: поддержка винчестера/sd-карт через образы и эмуляцию обращений к 3d13, удалена обработка magic-файлов... Похожий эволюционный путь.

Лас
05.12.2012, 20:23
Данную тему автор назвал "TR-DOS 5.041 для Profi", я не ошибся?

Vadim
05.12.2012, 20:53
Данную тему автор назвал "TR-DOS 5.041 для Profi", я не ошибся?
Эта версия - с исправленными ошибками версия 5.04T. По сути версия 5.04. Когда она будет доведена до ума, её можно будет использовать вместо 5.04s/5.04T. А уже потом, позднее на её основе будет делаться версия для профи с поддержкой винта, в которой имеет смысл расширить кол-во функций по 3D13. Внести туда тот функционал, ради которого лезли напрямую в процедуры TRDOS. Иного пути я не вижу. Да, можно пытаться использовать пустое место, подправляя процедуры так, что бы все программы которые обращались внутрь процедур TRDOS через 3D2F смогли бы работать с винта без модификаций. Свободного места мало, а мне хочется сделать работу не с образом дискеты в ОЗУ, загруженным сторонней программой, а так, что бы trdos работал бы с винтом напрямую, монтируя файлы образов с томов FAT.

VELESOFT
01.05.2013, 22:26
In tr-dos 5.041 is fixed problems with sequential files ? In original tr-dos versions is possible only make file xxx.# , open it for writing or reading and close this file. But other tr-dos commands not work with filetype # :-(

MEGAMONSTER
24.07.2013, 12:57
Vadim, исправлена ли ошибка позиционирования, которая описана тут zx.pk.ru/showpost.php?p=463500&postcount=7

Vadim
24.07.2013, 18:48
исправлена ли ошибка позиционирования, которая описана тут
Эта ошибка исправлена ещё в 5.04t.

L2048_TstSeek:
and 11111100b ;позиционировать с быстрой скоростью
jp ExeFDCcmd_with_kbd_Break ;выдача команды и ожидание INTRQ

savelij
24.07.2013, 19:11
Эта ошибка исправлена ещё в 5.04t.

L2048_TstSeek:
and 11111100b ;позиционировать с быстрой скоростью
jp ExeFDCcmd_with_kbd_Break ;выдача команды и ожидание INTRQ

Вот уж позвольте с вашего профессианализма таки профессионально поржать от души. Вы вообще изволили читать что именно написано по ссылке из 103 поста? И вникали ли вы вообще как сочетается выше приведенный код с тем что по ссылке написано? Я так понимаю что профессианально было проигнорировано, типо так было есть и будет есть. Действительно, а зачем вникать. Ведь уже исправлено. А что исправлено никого не колышет. :)

Vadim
25.07.2013, 10:46
Вот уж позвольте с вашего профессианализма таки профессионально поржать от души
Я писал код уже почти год назад (а исх глянул мельком). Сам бы посмотрел оба исх. В 5.04t не испр. В моей версии испр.

savelij
25.07.2013, 20:05
Я писал код уже почти год назад (а исх глянул мельком). Сам бы посмотрел оба исх. В 5.04t не испр. В моей версии испр.

Не поленился. Посмотрел и даже скомпилял. И в твоей версии не исправлено. Не обольщайся.

MEGAMONSTER
25.07.2013, 21:24
Если так на самом деле. Значит надо исправить.

Vadim
26.07.2013, 09:24
И в твоей версии не исправлено. Не обольщайся.
Любые seek в конечном итоге идут куда? На L2048_TstSeek. Во всех местах стоит, перед выховом оной OR 18h, вот пример
Seek_to_A:
out (FDC_Data),A ;помещение номера дорожки в регистр данных
ld a,b ;время перемещения в 2-х мл.битах
or 18h ;код команды seek с временем перемещения
jp L2048_TstSeek ;позиционирование с быстрой скоростью

;───────────────────────────────────────────────── ───────────────
;Позиционирование. На входе в A должен быть физичес-
;кий номер дорожки, а в b - время перемещения головки дисковода.
Seek_toA_:
out (FDC_Data),a ;загрузка номера дорожки в регистр данных
push bc ;сохранение времени перемещения головки дисковода
ld b,a ;головка уже спозиционирована?
in a,(FDC_Trk)
cp b
pop bc ;восстановление времени перемещения головки
push af ;сохранение результата проверки
ld a,b ;получение команды позиционирования
or 18h
call L2048_TstSeek
pop af ;восстановление результата проверки положения головки
ret z ;если головка была спозиционирована, то возврат
push bc ;сохранение времени перемещения головки?
call Pause02s ;задержка в 725779 тактов
pop bc ;восстановление времени перемещения головки
ret

Что бы ни лежало в b делается or 18h, а в L2048

L2048_TstSeek:
and 00011000b
jp ExeFDCcmd_with_kbd_Break

Т.е? В рег.А получаем всегда 18h т.е. код команды seek

himik
16.08.2013, 00:19
ну ваще, читал все мессаги не отрываясь...
чо в итоге то?

drbars
18.08.2013, 23:15
Приятно юзать классическую прошивку TR-DOS без глюков :)

Lexx!
10.12.2015, 22:35
Vadim, на 3 версии плат будет работать? Как заменить версию внутри 27512

Vadim
11.12.2015, 07:37
Будет. Это ж по сути фикшенная 5.04Т. Как сделать файл для 27512? Слить 4 прошивки в одно целое. тест, трдос, бейсик 128 (или его замену, есть разные прошивки) и бейсик 48. Именно в этом порядке. Потом шить.

Lexx!
11.12.2015, 07:54
Тему не подскажешь? Можно же заменить в 512 кусок и все. По каким адресам трдос сидит

creator
11.12.2015, 08:41
Lexx!, #4000-#7FFF :v2_dizzy_facepalm:

John North
11.12.2015, 09:45
Можно же заменить в 512 кусок и все.
нельзя.
чтоб продать что-то ненужное, надо сначала кпить это ненужное..
вобщем микросхему, чтоб прошить, нужно сперва стереть.. полностью!
хоть УФ, хоть флеш..

Lexx!
11.12.2015, 10:02
Ребят, а не настолько тупой, понятно, что надо стереть. Я имел ввиду в прошивке кусок заменить. Как бы само собой разумеется, что надо стереть. Видимо не так выразился

Vadim
11.12.2015, 10:47
Я имел ввиду в прошивке кусок заменить. Как бы само собой разумеется, что надо стереть. Видимо не так выразился
Как выше уже заметили, с 4000h менять 16К

alvis
11.12.2015, 11:34
Ребят, а не настолько тупой, понятно, что надо стереть. Я имел ввиду в прошивке кусок заменить. Как бы само собой разумеется, что надо стереть. Видимо не так выразился

адреса уже подсказали, а так подели прошивку на четыре равные части, получишь нужные адреса.

Lexx!
11.12.2015, 11:42
Да все, я все понял, мне достаточно строчки с адресам. Как заменить, стереть, прошить я знаю.

solegstar
11.12.2015, 13:09
Vadim, будет ли встроен рамдиск?

Vadim
11.12.2015, 17:52
Vadim, будет ли встроен рамдиск?
Для профи, с винтом смысла в ram-диске я вообще не вижу. Имеет смысл поддержка работы с образами дискет trdos с винта. В этом направлении я начал уже работать в том же 2013г, и продумал реализацию. Сделал версию 5.042, где выкинуто всё лишнее, многое переписано и естественно она стала малосовместимой, потом добавил перехват N-го кол-ва адресов внутри TRDOS, пока как временная мера. Потом от половины избавлюсь не в ущерб совместимости. А так вот, просто рам диск, зачем он??

zx_
12.12.2015, 11:28
былобы здорово комманды для работы с винтом
http://www.worldofspectrum.org/zxplus3e/commands.html