пока немного не понятно. вот например. сдвиг головы да? берём из одной статьи гед пишут:
Код:
di
ld a,d ;d - логический но-
;мер дорожки
srl a ; вычисляем физич.
; номер (a/2)
ld c,#7f; сюда надо помес-
; тить номер до-
; рожки,на которую
; я хочу отьехать.
call outc
ld a,#3c; выбор стороны
bit 0,d
jr z,l01
ld a,#2c
l01 ld c,#ff
call outc; устанавливаем
; нужные для
; нормальной ра-
;боты биты порта #ff и номер
;стороны регистр #3f устанавли-
;вать не надо, он должен сам по
;себе содержать номер текущей
;дорожки
ld a,#18; код команды пози-
;цион.
call out1
ld ix,#3ef5
call dos; ожидание выполне-
;ния
di ; команды.
jp cont
...
out1 ld c,#1f
outc ld ix,#2a53
dos push ix
jp #3d2f
далее:Что делает ВГ 93: при получении в регистр #1f кода #18, она дает
сигнал на раскрутку диска. Затем сравнивает значения регистров
#3f и #7f, определяет направление и количество шагов головки и
шагает, изменяя значение рег.#3f.
т.е. я так понимаю это: указываем трек на который хочу переместиться, в регистре #7f (Data reg). даём каманду #18
(Поиск, биты 3 и 4 - при этом бит 3 = загрузка головки, бит 4 обсолютный) и ВГ будет перемещать голову, изменяя содержимое регистра #3f (регистр номера река) к соответствию регистра #7f (регистр данных, где мы указали желаемый номер трека). так?
смотрим далее. если допустим при чтении сектора из какого-то трека, голова попрежнему сидит на том же треке. нам надо прочитать ещё оджин сектор из того же трека. как это лучше сделать?
например:
Код:
ld a,(ix+PHTRACK) ;текущее значение
out (#3f),a
ld c,a
ld a,(ix+TRACK) ;желаемый рек
ld (ix+phtrack),a
out (#7f),a ;устанавливаемое
cp c ;они равны?
jr nz,str2 ;нет seek track
.....
str2: Ld a,(settrk)
Out (WGCOM),a
res 2,a
ld (settrk),a
Call WAITBEG
т.е. суть такова, проверили трек в буфере и тот на который надо ехать. если совпали, то ничего не делать, т.е. каманду 18 не давать, а продолжать в том же духе. но. надоли при этом (если они совпали), задавать в соответствующие регистры эти номера? т.е. как я писал выше, только что прочитали сектор с трека и надо ещё с того же трека прочитать ещё сектор. сравнили - трек тот же..каковы дальнейшие действия? или мжет быть в любом случае без проверок, сразу указал номер трека , дал каманду 18 и пофигу на сравнения?