Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 25

Тема: BUGS IN TRDOS

  1. #1
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    752
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию BUGS IN TRDOS

    See videos. First video sign use classic TRDOS rom and classic ZX roms:


    And this is same video with fixed TRDOS version:


    This ZIP file contain different ZX roms and TR-DOS roms with fixed return to basic:
    http://velesoft.speccy.cz/other/trdo...ed_hl'.zip

    1) - Fixed ZX rom refresh value of HL' register after return from machine code. This roms ignore bug in all trdos versions and RETURN will work always correct with all trdos roms.

    2) - Fixed TR-DOS roms refresh HL' register before return to ZX rom/basic. Can be used with all ZX roms. (this way is best )

  2. Этот пользователь поблагодарил VELESOFT за это полезное сообщение:

    solegstar (14.12.2020)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    752
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию next bug in TR-DOS: LIST command

    TR-DOS command LIST allocate block of zx ram for read sectors with directory. After end of LIST command must TR-DOS release allocated ram and return.

    LIST command work correct only if is used in basic line: RANDOMIZE USR 15619:REM:LIST

    but LIST from TR-DOS command line not release allocated memory before return. Each LIST from command line allocate next ram and if ramtop is low then can allocate all free zx memory and show OUT OF RAM message. RETURN command realease all allocated memory.

    See video example of TR-DOS 5.03


    Czech version of TR-DOS 5.05(cz) use fixed code of command LIST. Allocated ram is always released at end of LIST command.


    Exist any other TR-DOS versions with fixed this bug ?
    Последний раз редактировалось VELESOFT; 25.04.2010 в 00:10.

  5. #3
    Veteran Аватар для savelij
    Регистрация
    23.03.2007
    Адрес
    г. Сухиничи, Калужская обл.
    Сообщений
    1,793
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от VELESOFT Посмотреть сообщение
    This ZIP file contain different ZX roms and TR-DOS roms with fixed return to basic:
    http://velesoft.speccy.cz/other/trdo...ed_hl'.zip

    1) - Fixed ZX rom refresh value of HL' register after return from machine code. This roms ignore bug in all trdos versions and RETURN will work always correct with all trdos roms.

    2) - Fixed TR-DOS roms refresh HL' register before return to ZX rom/basic. Can be used with all ZX roms. (this way is best )
    Еще один вариант того же патча:

    ORG #1D0C
    EXX
    LD HL,#2758
    EXX
    DEC HL
    LD A,#12
    CP (HL)
    RET NZ
    DEC HL
    JP #235

    Достоинство: не требуется занимать дополнительные байты.

    Скрытый текст

    Profi 4.02 512k
    Profi 5.04 1024k нижняя плата здесь
    Scorpion 256k+ProfROM+SMUC 1.3+SMUC 2.0+ZXMC2
    Pentagon v2.2+Z-controller+ZXMC2+NeoGS
    АТМ 7.10 1024k
    Pentagon 2.666LE
    ZX Evolution 4Mb rev B
    [свернуть]


    Извещение лички отключено, захожу редко.

  6. #4
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,975
    Спасибо Благодарностей отдано 
    171
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    88 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от VELESOFT Посмотреть сообщение
    TR-DOS command LIST allocate block of zx ram for read sectors with directory. After end of LIST command must TR-DOS release allocated ram and return.

    LIST command work correct only if is used in basic line: RANDOMIZE USR 15619:REM:LIST

    but LIST from TR-DOS command line not release allocated memory before return. Each LIST from command line allocate next ram and if ramtop is low then can allocate all free zx memory and show OUT OF RAM message. RETURN command realease all allocated memory.
    А можно узнать, как и где фиксится этот баг применительно к 5.03?

  7. #5
    Master Аватар для VELESOFT
    Регистрация
    04.04.2007
    Адрес
    Praha
    Сообщений
    752
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию TR-DOS 5.05cz - DISASS

    It's disass of Czech bug-fixed TR-DOS 5.05cz:
    http://portal.vakoveverky.net/module...cat.php?cid=18
    Disass is uncomplette but can help for fix bugs in new TR-DOS versions 6.xx
    Author of disass: POKE

  8. #6
    Super Moderator Аватар для Alex Rider
    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,908
    Спасибо Благодарностей отдано 
    29
    Спасибо Благодарностей получено 
    89
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Hi! Sorry for my english. Do you have any information about TR-DOS bug described here: http://zx.pk.ru/showthread.php?t=17886 ?
    This bug is fixed in your TR-DOS version?
    P.S. The problem: TR-DOS converts multi-byte keywords typed by characters in BASIC128 editor after REM to 1-byte tokens (and compresses a line), but does not change length bytes of BASIC line (then BASIC is corrupted). It is a good idea to change the first char of keyword to BASIC token and replace following bytes to spaces. The best idea - learn TR-DOS to execute BASIC lines without tokenization.

  9. #7
    Member
    Регистрация
    15.06.2008
    Адрес
    Орел
    Сообщений
    190
    Спасибо Благодарностей отдано 
    27
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В описании к старенькому эмулятору UKV by Uglekov K , автор пишет:


    Ошибка в TR-DOS, которую я нашел с помощью эмулятора

    Сразу оговорюсь, что речь пойдет о версии TR-DOS 5.03; но найденная
    ошибка присутствует и во всех ее модификациях, которые я видел, и в версии
    5.01.

    Как отмечалось выше, если моему эмулятору не указать положение точек
    TEST и SEEK1, то при чтении/записи блока длиной больше 128 секторов зависание
    гарантировано. Когда я стал разбираться, в чем же дело, то обнаружил следующее.
    На входе в подпрограмму 3E44 (=SEEK1) в регистре B должна лежать константа
    позиционирования (от 8 и до 0Bh); с ней делают OR 18h и кладут результат в
    регистр команд контроллера (значения 18h-1Bh соответствуют команде SEEK без
    проверки адресных маркеров на дорожке). При вызове 3E44 из 3EB5 (=TEST) регистр
    B никак не определен, и может содержать, например, число секторов при вызове
    3D13 с C=5 или 6. Если же число секторов больше 20h, то в регистр команд будет
    направлен не код команды SEEK, а что-то иное.
    Простая проверка на SPECTRUM'е показывает, что все происходит именно
    таким образом. Вызывая 3D13 с BC=4005h несколько раз подряд (DE считаем
    неизменным), можно наблюдать перемещение головок дисковода на один шаг к центру
    диска перед позиционированием на начало читаемого блока, а при вызовах c
    BC=6005h наблюдается один отдельный шаг в обратном направлении. Если учесть, что
    40h OR 18h = 58h - код команды STEP IN, а 60h OR 18h = 78h - код команды STEP
    OUT, то никаких сомнений сомнений уже быть не может: ЭТО ОШИБКА TR-DOS.
    Сразу следует вопрос: а можно ли испортить диск, если задать число
    секторов 0A0h-0BFh (чтобы получить команду записи сектора), или 0F0h-0FFh (чтобы
    получить команду записи дорожки) ? Ответ - нет. Даже если контроллер
    воспринимает числа 0B8h и 0F8h как законные команды (это я не проверял), то для
    того, чтобы запись на диск началась, контроллер должен сначала получить первый
    байт данных; для команды записи сектора этот байт должен поступить не позже
    прохождения 8-го байта GAP перед записываемым сектором, для записи трека - в
    течение прохождения 3 байт с момента подачи команды. Если первый байт данных не
    получен в эти сроки, то операция сразу же завершается с ошибкой LOST DATA (бит
    2 статусного регистра), и выставляется сигнал IRQ (как и положено при завершении
    любой операции). В эмуляторе не предусмотрено выполнение задержек по данному
    правилу, и сигнал IRQ не выставляется до тех пор, пока через регистр данных
    контроллера не будет передан блок нужного размера.
    Раз эта ошибка не может привести к порче диска, то закономерен вопрос:
    а стоит ли на нее вообще обращать внимание? Если вас интересует повышение
    скорости обмена с диском, то ответ - непременно! Все модификации TR-DOS на
    базе версии 5.03 с приставочками "FAST","TURBO" и т.п. совершенно бессмысленны,
    если при каждом обращении к функциям 5,6 подпрограммы 3D13 будет теряться время
    либо на позиционирование (хорошо,если только на один шаг), либо на поиск
    сектора.
    Что можно предложить взамен? Вместо вызова 3E44 из 3EB2 вызываем
    что-нибудь вроде 880h (если там свободно), а по адресу 880 помещаем

    PUSH HL ; H сейчас содержит номер трека и еще понадобится
    PUSH AF ; то же замечание
    CALL 3E08h ; регистры HL и DE будут испорчены,но DE можно не сохранять
    LD B,A ; наконец-то в B попадает значение константы позиционирования
    POP AF
    POP HL
    JP 3E44h ; и никакой ошибки !


    А ведь действительно, как сейчас помню, дергалась головка на дисководе туда-сюда не по делу...

  10. #8
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MEGAMONSTER Посмотреть сообщение
    А ведь действительно, как сейчас помню, дергалась головка на дисководе туда-сюда не по делу...
    подтверждаю.

  11. #9
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,975
    Спасибо Благодарностей отдано 
    171
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    88 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question

    Цитата Сообщение от savelij Посмотреть сообщение
    Еще один вариант того же патча:

    ORG #1D0C
    EXX
    LD HL,#2758
    EXX
    DEC HL
    LD A,#12
    CP (HL)
    RET NZ
    DEC HL
    JP #235

    Достоинство: не требуется занимать дополнительные байты.
    Хочу пропатчить TR-DOS в Скорпионовском ПРОФ-РОМ v4.01 (адаптация для КАЯ by Ewgeny7, убрана проверка на CRC). В тексте выше точно указан ORG #1D0C для патча? Вроде должен быть #1D0F?
    Вложения Вложения
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

  12. #10
    Guru Аватар для SoftFelix
    Регистрация
    20.03.2007
    Адрес
    Санкт-Петербург
    Сообщений
    2,975
    Спасибо Благодарностей отдано 
    171
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    88 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    p.s. Всё правильно, ORG должен быть на #1D0C.
    МГТФ - любимый провод!
    KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. BUG in TRDOS
    от VELESOFT в разделе Оси
    Ответов: 5
    Последнее: 01.07.2010, 19:52
  2. trdos for spectrum 128 /+2
    от sergey2b в разделе Зарубежные модели
    Ответов: 75
    Последнее: 26.04.2010, 02:12
  3. TRDOS 6.11P
    от alsp в разделе Оси
    Ответов: 39
    Последнее: 11.04.2010, 16:29
  4. NMI in TRDOS
    от VELESOFT в разделе Оси
    Ответов: 6
    Последнее: 09.02.2010, 15:41
  5. TRDOS для Neo
    от ILoveSpeccy в разделе Внешние накопители
    Ответов: 20
    Последнее: 08.03.2008, 15:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •