Speccy - наш выбор!  
ZXPRESS
ZXTUNES
Virtual TR-DOS
World of Spectrum
ZX Spectrum Old Demos •

Go Back   Speccy - наш выбор! > ZX Spectrum Software > Оси

Reply
 
Thread Tools Display Modes
Old 12th March 2010, 02:50   #1
Master
 
VELESOFT's Avatar
 
Join Date: 5th April 2007
Location: Praha
Posts: 735
Thanks: 60
Thanked 323 Times in 167 Posts
VELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really nice
Default 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 )
VELESOFT is offline   Reply With Quote
The Following 10 Users Say Thank You to VELESOFT For This Useful Post:
Activator (12th March 2010), Andrey F (1st December 2012), breeze (12th March 2010), Cygnus (2nd July 2010), kgbond (5th July 2010), moroz1999 (31st January 2012), Raydac (12th May 2013), Robus (2nd July 2010), SoftFelix (11th April 2010), twm (7th November 2012)
Old 25th April 2010, 01:08   #2
Master
 
VELESOFT's Avatar
 
Join Date: 5th April 2007
Location: Praha
Posts: 735
Thanks: 60
Thanked 323 Times in 167 Posts
VELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really nice
Default 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 ?

Last edited by VELESOFT; 25th April 2010 at 01:10.
VELESOFT is offline   Reply With Quote
The Following 2 Users Say Thank You to VELESOFT For This Useful Post:
Hacker VBI (12th May 2013), Robus (2nd July 2010)
Old 12th May 2010, 23:27   #3
Veteran
 
savelij's Avatar
 
Join Date: 23rd March 2007
Location: г. Сухиничи, Калужская обл.
Posts: 1,760
Thanks: 21
Thanked 406 Times in 175 Posts
savelij is a glorious beacon of lightsavelij is a glorious beacon of lightsavelij is a glorious beacon of lightsavelij is a glorious beacon of lightsavelij is a glorious beacon of light
Default

Quote:
Originally Posted by VELESOFT View Post
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 нижняя плата http://dlcorp.ucoz.ru/forum/10-482-11836-16-1256739577
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
[свернуть]


Концептолог - балбес ни черта не умеющий делать, но учащий всех кто ведется
savelij is offline   Reply With Quote
The Following 2 Users Say Thank You to savelij For This Useful Post:
Robus (2nd July 2010), SoftFelix (1st December 2012)
Old 19th May 2010, 12:12   #4
Veteran
 
SoftFelix's Avatar
 
Join Date: 20th March 2007
Location: Санкт-Петербург
Posts: 1,655
Thanks: 469
Thanked 523 Times in 409 Posts
SoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of light
Default

Quote:
Originally Posted by VELESOFT View Post
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?
SoftFelix is offline   Reply With Quote
Old 1st July 2010, 20:55   #5
Master
 
VELESOFT's Avatar
 
Join Date: 5th April 2007
Location: Praha
Posts: 735
Thanks: 60
Thanked 323 Times in 167 Posts
VELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really niceVELESOFT is just really nice
Default 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
VELESOFT is offline   Reply With Quote
Old 22nd January 2012, 16:12   #6
Veteran
 
Join Date: 7th February 2008
Location: г. Москва
Posts: 1,178
Thanks: 266
Thanked 417 Times in 265 Posts
Alex Rider is just really niceAlex Rider is just really niceAlex Rider is just really niceAlex Rider is just really niceAlex Rider is just really nice
Default

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.
Alex Rider is online now   Reply With Quote
Old 6th February 2012, 02:02   #7
Member
 
Join Date: 15th June 2008
Location: Орел
Posts: 69
Thanks: 24
Thanked 13 Times in 9 Posts
MEGAMONSTER is on a distinguished road
Default

В описании к старенькому эмулятору 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 ; и никакой ошибки !


А ведь действительно, как сейчас помню, дергалась головка на дисководе туда-сюда не по делу...
MEGAMONSTER is offline   Reply With Quote
Old 6th February 2012, 02:48   #8
Guru
 
Join Date: 25th January 2005
Location: Miass, Chelyabinsk region
Posts: 4,044
Thanks: 630
Thanked 892 Times in 627 Posts
psb is a splendid one to beholdpsb is a splendid one to beholdpsb is a splendid one to beholdpsb is a splendid one to beholdpsb is a splendid one to beholdpsb is a splendid one to beholdpsb is a splendid one to beholdpsb is a splendid one to behold
Default

Quote:
Originally Posted by MEGAMONSTER View Post
А ведь действительно, как сейчас помню, дергалась головка на дисководе туда-сюда не по делу...
подтверждаю.
__________________
wbw, psb.
psb is offline   Reply With Quote
Old 1st December 2012, 15:02   #9
Veteran
 
SoftFelix's Avatar
 
Join Date: 20th March 2007
Location: Санкт-Петербург
Posts: 1,655
Thanks: 469
Thanked 523 Times in 409 Posts
SoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of light
Question

Quote:
Originally Posted by savelij View Post
Еще один вариант того же патча:

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?
Attached Files
File Type: rar KAY_ProfROM4_TR-DOS.rar (9.0 KB, 77 views)
__________________
МГТФ - любимый провод!
KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 8.4GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL
SoftFelix is offline   Reply With Quote
Old 1st December 2012, 15:14   #10
Veteran
 
SoftFelix's Avatar
 
Join Date: 20th March 2007
Location: Санкт-Петербург
Posts: 1,655
Thanks: 469
Thanked 523 Times in 409 Posts
SoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of lightSoftFelix is a glorious beacon of light
Default

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


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +4. The time now is 00:21.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Map Яндекс.Метрика