Ошибки в us0.37.4

Bugs (reports, fixes, etc.)

Postby null_device » 29 Jan 2011, 16:49

После выхода "пофикшенной" версии, перекачал архив со сборкой, но особой разницы не заметил.. Проверил запуск обоих EXEшников.
Если во вкладке ula, изменить значение только в строке int len, нажать ОК и открыть окно еще раз.. значение остается прежним (если "потыкаться" в несколько строк, введенное значение сохраняется, но толку от этого чуть)! При этом величина прописаная в *.ini файле значения не имеет, вписывай 24 или 42 - при запуске во вкладке будет число 32.
Работа с ВГ несколько исправлена, но, некоторые программы по прежнему работают некорректно(в BV невозможно выбрать дисковод, кроме "первого выбранного", RDS вообще "не видит диск" и т.п.), либо дооолго "читают" дискету.
----
Для примера внизу, на первом рисунке показаны скриншоты теста на версии 37.4, на втором 37.3 fix 4. В обоих выставлены значения int len=42..
ImageImage
User avatar
null_device
 
Posts: 7
Joined: 29 Jan 2011, 12:26
Location: Красноярск
Group: Registered users

Postby deathsoft » 29 Jan 2011, 16:54

null_device wrote:RDS вообще "не видит диск" и т.п.

Это уже исправлено (сегодня с утра):
! Исправлены коды условий для команды Dx в ВГ93 (биты обрабатывались задом наперед)
! Исправлена обработка команды Dx в ВГ93 (после этой команды не обновлялся статус, было испорчено в прошлой версии)
User avatar
deathsoft
 
Posts: 4634
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 29 Jan 2011, 16:56

Теперь про INTLEN, инт в унрале обрабатывается как в кае, если прерывания в процессоре разрешены - то инт снимается сразу как начинает выполнятся первая команда обоаботчика (цикл /IORQ, /M1), если прерывания в процессоре запрещены, то длина инта определятеся параметром INTLEN. По понятным причинам длину инта в таком режиме програмно измерить нелзя (повторного захвата инта никогда не будет).

Далее про тест 4.30, в нем есть глюк, если тест пиешт что инт короткий, то он всегда пишет что на шине ???, не зависимо от того что там в действиетльности (ошибка в коде теста). Для проверки что вектор реально равен FF можно взять тест инта от Ковалевского http://vtrdos.ru/system/TESI1_10.ZIP, там сразу будет видно, что вектор ФФ (а елси в настройках инта поставить bus float то вектор будет рандомным, в тесте поползут полоски с битами).
User avatar
deathsoft
 
Posts: 4634
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 29 Jan 2011, 16:58

null_device wrote:Если во вкладке ula, изменить значение только в строке int len, нажать ОК и открыть окно еще раз.. значение остается прежним

Да - это глюк, надо пофиксить.
User avatar
deathsoft
 
Posts: 4634
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 29 Jan 2011, 16:59

null_device wrote:При этом величина прописаная в *.ini файле значения не имеет, вписывай 24 или 42 - при запуске во вкладке будет число 32.

Величина берется из пресета:
; PRESET.NAME=FRAME,PAPER,LINE,INT,INTLEN,EvenM1,4TBorder,floatBus,floatDOS,PortFF
PRESET.PENTAGON=71680,17989,224,50,32,0,0,0,0,0

а там где параметр intlen указан отдельно - это работает если нету никакого пресета preset=
User avatar
deathsoft
 
Posts: 4634
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby lvd » 29 Jan 2011, 17:14

deathsoft wrote:По понятным причинам длину инта в таком режиме програмно измерить нелзя

Можно. Только более хитро.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7143
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby deathsoft » 29 Jan 2011, 17:21

lvd wrote:Можно. Только более хитро.

Да, делать DI и нопы и EI в им2, и смотреть когда сработает прерывание, я это уже понял.
User avatar
deathsoft
 
Posts: 4634
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby null_device » 29 Jan 2011, 17:27

deathsoft wrote:Для проверки что вектор реально равен FF можно взять тест инта от Ковалевского


Им я тоже "измерял" длительность инта и "стабильность" шины (вектор прерываний). По шине вопросов нет - проблема в правильной длительности инт..
----
lvd wrote:Величина берется из пресета:


Только, что проверил тестом Коваевского. Изменения параметра в пресете (допустим, для пентагона), при выполнении теста ничего не изменило (в том же самом 37.3 fix 4 разница есть).
User avatar
null_device
 
Posts: 7
Joined: 29 Jan 2011, 12:26
Location: Красноярск
Group: Registered users

Postby deathsoft » 29 Jan 2011, 17:29

null_device wrote:Только, что проверил тестом Коваевского. Изменения параметра в пресете (допустим, для пентагона), при выполнении теста ничего не изменило (в том же самом 37.3 fix 4 разница есть).

Естественно не изменяется, я же написал выше, все тесты тестируют при разрешенном прерывании, при этом импульс инт снимается СРАЗУ при выполнении процессором первой же инструкции. А параметр intlen нужен для снятия инта когда в процессоре прерывания запрещены. Для этого нужно писать отдельный специальный тест, стандартные тесты будут показываь что инт короткий, т.к. никогда не ммогут захватить инт повторно, даже на команде nop.

В старом унриале цикл подтверждения прерывания не использовался, и инт был всегда длиною intlen (как в зеленом скорпионе).
User avatar
deathsoft
 
Posts: 4634
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 29 Jan 2011, 17:44

deathsoft wrote:Да - это глюк, надо пофиксить.

Так, это тоже исправил.
User avatar
deathsoft
 
Posts: 4634
Joined: 07 Apr 2007, 00:58
Group: Registered users

Next

Return to Ошибки

Who is online

Users browsing this forum: No registered users and 1 guest