![]() |
|
|
|
|
|
#1 |
|
Master
Join Date: 5th April 2007
Location: Praha
Posts: 735
Thanks: 60
Thanked 323 Times in 167 Posts
![]() ![]() ![]() ![]() ![]() |
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 )
|
|
|
|
| The Following 10 Users Say Thank You to VELESOFT For This Useful Post: |
|
|
#2 |
|
Master
Join Date: 5th April 2007
Location: Praha
Posts: 735
Thanks: 60
Thanked 323 Times in 167 Posts
![]() ![]() ![]() ![]() ![]() |
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. |
|
|
|
| The Following 2 Users Say Thank You to VELESOFT For This Useful Post: | Hacker VBI (12th May 2013), Robus (2nd July 2010) |
|
|
#3 | |
|
Veteran
Join Date: 23rd March 2007
Location: г. Сухиничи, Калужская обл.
Posts: 1,760
Thanks: 21
Thanked 406 Times in 175 Posts
![]() ![]() ![]() ![]() ![]() |
Quote:
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 [свернуть] Концептолог - балбес ни черта не умеющий делать, но учащий всех кто ведется
|
|
|
|
|
|
|
#4 | |
|
Veteran
Join Date: 20th March 2007
Location: Санкт-Петербург
Posts: 1,655
Thanks: 469
Thanked 523 Times in 409 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
Quote:
|
|
|
|
|
|
|
#5 |
|
Master
Join Date: 5th April 2007
Location: Praha
Posts: 735
Thanks: 60
Thanked 323 Times in 167 Posts
![]() ![]() ![]() ![]() ![]() |
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 |
|
|
|
|
|
#6 |
|
Veteran
Join Date: 7th February 2008
Location: г. Москва
Posts: 1,178
Thanks: 266
Thanked 417 Times in 265 Posts
![]() ![]() ![]() ![]() ![]() |
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. |
|
|
|
|
|
#7 |
|
Member
Join Date: 15th June 2008
Location: Орел
Posts: 69
Thanks: 24
Thanked 13 Times in 9 Posts
![]() |
В описании к старенькому эмулятору 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 ; и никакой ошибки ! А ведь действительно, как сейчас помню, дергалась головка на дисководе туда-сюда не по делу... |
|
|
|
|
|
#8 |
|
Guru
Join Date: 25th January 2005
Location: Miass, Chelyabinsk region
Posts: 4,044
Thanks: 630
Thanked 892 Times in 627 Posts
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
подтверждаю.
__________________
wbw, psb. |
|
|
|
|
|
#9 | |
|
Veteran
Join Date: 20th March 2007
Location: Санкт-Петербург
Posts: 1,655
Thanks: 469
Thanked 523 Times in 409 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
Quote:
__________________
МГТФ - любимый провод! 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
|
|
|
|
|
|
|
#10 |
|
Veteran
Join Date: 20th March 2007
Location: Санкт-Петербург
Posts: 1,655
Thanks: 469
Thanked 523 Times in 409 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
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
|
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|