Сообщение от
BYTEMAN
пишет Drive not ready
Константы для количества циклов ожидания были взяты наугад.
Для начала можно сделать ожидание бесконечным, а затем подобрать константы - для этого надо найти в исходнике подпрограммы ожидания:
Код:
.......................................................
;............... Ожидание запроса DX .................;
WaitTR:
1$:
Clr R0
2$:
BiT #<CSTR!CSERR>, @$SReg
BMi DxErr
BNE LRet3
;; SOB R0, 2$ ; Это убрать
Br 2$ ; Это вставить
Br NtRd
DxErr:
.PRI mDxErr
Br ErrRet
.......................................................
;.............. Ожидание готовности DX ...............;
;
; R1 = Количество циклов ожидания.
;
WaitDX:
1$:
Clr R0
2$:
BiT #<CSDONE!CSERR>, @$SReg
BNE LRet3
;; SOB R0, 2$ ; Это убрать
Br 2$ ; Это вставить
SOB R1, 1$
NtRd:
.PRI NotRdy
ErrRet:
SeC
LRet3:
Return
После чего перекомпилить программу :
- - - Добавлено - - -
И там же следом ещё два места, где может ругаться :
Код:
ResetDX:
Mov #CSINIT, @$SReg
Mov #100., R1
Call WaitDX
BCS LRet
BiT #ESID, @$DReg
;; BEq NtRd ; Это убрать
BEq LRet ; Это вставить
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