Да, на выходных попробую... Думаю еще набраться сил, и достать стандартный контроллер МТ,
и пробовать делать одни и те-же операции на стандартном и не стандартном..
Вид для печати
.
Тестовая программа: TSTDX_v1.0 - предназначена для определения реальной скорости работы привода при инициализации и чтении секторов:
Код:.RU TSTDX
TSTDX - v1.0
1 sec 00001:20798
INIT 00000:10084 CSR/000040 ; SR/000204 ; ER/000000
Read SR 00000:20763 CSR/000040 ; SR/000200 ; ER/000000
Read 0:01
TR Sector 00000:00000
TR Track 00000:00000
Read Done 00000:09366
Read 0:03
TR Sector 00000:00000
TR Track 00000:00000
Read Done 00000:00432
Read 0:05
TR Sector 00000:00000
TR Track 00000:00000
Read Done 00000:00430 CSR/000040 ; SR/000000 ; ER/000000
Program completed.
.
Есть смысл запускать дважды - первый раз с рабочим диском в приводе 0, второй раз - с неформатированным диском в приводе 0.
Результат на форматированном диске:
На неформатированном:Код:
.RU TSTDX
TSTDX - v1.0
1 sec 00001:53774
INIT 00000:49288 CSR/000040 ; SR/000004 ; ER/000000
Read SR 00000:21230 CSR/000040 ; SR/000000 ; ER/000000
Read 0:01
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:03819
Read 0:03
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:01438
Read 0:05
TR Sector 00000:00000
TR Track 00000:00000
Read Done 00000:00000 CSR/000040 ; SR/000000 ; ER/000000
Program completed.
Без диска:Код:.RU TSTDXTSTDX - v1.0
1 sec 00001:53755
INIT 00000:49288 CSR/000040 ; SR/000004 ; ER/000000
Read SR 00000:21231 CSR/000040 ; SR/000000 ; ER/000000
Read 0:01
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:01632 CSR/100040 ; SR/000000 ; ER/000120
Program completed.
- - - Добавлено - - -Код:.RU TSTDXTSTDX - v1.0
1 sec 00001:53713
INIT 00000:28187 CSR/000040 ; SR/000004 ; ER/000120
Read SR 00000:00503 CSR/000040 ; SR/000000 ; ER/000120
Read 0:01
TR Sector 00000:00004
TR Track 00000:00004
Read Done 00000:01513 CSR/100040 ; SR/000000 ; ER/000120
Program completed.
Жесть как медленно через hx сливается лента... Чуть дернется и стоит... Дернется и стоит... Жаль что ИРПС в СМке максимум 19200 держит... :(
Уже понятно, где ругается COPYDX :
Код:ResetDX:
Mov #CSINIT, @$SReg
Mov #100., R1
Call WaitDX
BCS LRet
BiT #ESID, @$DReg
BEq NtRd
Mov #C.RDST, R0 ; R0 = Чтение регистра состояния.
BiS $Drive, R0 ; Учесть номер привода.
Mov R0, @$SReg
4$:
Mov #32., R1
Call WaitDX
BCS LRet
BiT #ESDRY, @$DReg
;; BEq NtRd ; Это убрать
LRet:
Return
Остальное можно оставить, как в оригинале.
.
Похоже, что признак готовности в регистре данных DX сбрасывается при любом обращении к регистру статуса.
Для проверки этого предположения - исправленная версия теста: TSTDX_v1.1
Запускать есть смысл только с рабочим диском в приводе 0 - для остальных вариантов разницы результатов с предыдущей версией TSTDX быть не может.
http://s020.radikal.ru/i720/1602/eb/1b9ae54b1c8c.jpg
LPT как бы в РС находится. Или что имеется ввиду? ИРПР?