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 30th May 2007, 20:12   #1
Member
 
Krenon's Avatar
 
Join Date: 16th April 2007
Location: Санкт-Петербург
Posts: 67
Thanks: 0
Thanked 0 Times in 0 Posts
Krenon is on a distinguished road
Default Как глушить дисковод

Если кто не знает это делается так: ВГ подаётся любая команда I типа с битом h=0 (модификатор поднять головки). Потом даётся пауза, чтобы головки поднялись, двигател заглох. Перед тем как начнётся перепозиционирование подаётся принудительное прерывание. Величина паузы - в XAS'е три HALT'а, но на практике хватает одного.
__________________
C Nonsense in BASIC, 0:1
Krenon is offline   Reply With Quote
Old 30th May 2007, 21:21   #2
Guru
 
newart's Avatar
 
Join Date: 19th January 2005
Location: Санкт-Петербург
Posts: 10,689
Thanks: 394
Thanked 1,447 Times in 714 Posts
newart has a brilliant futurenewart has a brilliant futurenewart has a brilliant futurenewart has a brilliant futurenewart has a brilliant futurenewart has a brilliant futurenewart has a brilliant futurenewart has a brilliant futurenewart has a brilliant futurenewart has a brilliant futurenewart has a brilliant future
Default

Quote:
Originally Posted by Krenon View Post
Если кто не знает это делается так: ВГ подаётся любая команда I типа с битом h=0 (модификатор поднять головки). Потом даётся пауза, чтобы головки поднялись, двигател заглох. Перед тем как начнётся перепозиционирование подаётся принудительное прерывание. Величина паузы - в XAS'е три HALT'а, но на практике хватает одного.
Может тебе стоит возродить Lamergy или что то вроде того (Krenongy?) и вести там раздел "хочу все знать"?
А не плодить темы, от которых ощущение будто автор общается сам с собой.
newart is offline   Reply With Quote
Old 31st May 2007, 16:39   #3
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

лучше глушить дисковод динамитом как рыбу

а вообще, надежнее сделать out(#ff),0 в тр-досе и никаких хальтов
__________________
wbw, psb.
psb is offline   Reply With Quote
Old 1st June 2007, 12:43   #4
Master
 
Join Date: 27th April 2005
Location: Москва
Posts: 869
Thanks: 0
Thanked 6 Times in 5 Posts
Sonic is on a distinguished road
Default

Quote:
Originally Posted by psb View Post
а вообще, надежнее сделать out(#ff),0 в тр-досе и никаких хальтов
Только после этого надо регистры дорожки и сектора взад выставлять и делать рекалибровку, по хорошему если.
И еще замечание: если в дисководе нет диска, то мотор не выключается. Чтобы его выключить, в порту #FF предусмотрен бит, который имитирует выдачу HLT на ВГ93. В TR-DOS есть подпрограммка хитрая, она на него серию импульсов выдает. Адрес не помню, она вызывается перед входом в командный процессор. Там выбирается текущий дисковод, даются импульсы, затем зачем-то выбирается дисковод D, снова даются имульсы. Нарушение этого алгоритма не канает - двигло не выключается.
Sonic is offline   Reply With Quote
Old 1st June 2007, 16:49   #5
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 Sonic View Post
И еще замечание: если в дисководе нет диска, то мотор не выключается.
это при out(#ff),0 не выключается?) ага, ага при таком выключается всё! сложнее включить потом (пример тому - magic) но как-то можно, сходу не помню как..

а в тр-дос, кажется, не на всех контроллерах дисководы выключаются.. у меня выключался тлько по прошествии 15 индексных импульсов.
__________________
wbw, psb.
psb is offline   Reply With Quote
Old 1st June 2007, 17:53   #6
Master
 
Join Date: 27th April 2005
Location: Москва
Posts: 869
Thanks: 0
Thanked 6 Times in 5 Posts
Sonic is on a distinguished road
Default

Включить не так сложно:
1) Отпустить Reset.
2) Подождать - не знаю сколько но это ключевой момент, посему чем дольше тем лучше.
3) Установить в регистре дорожки число, соответствующее реальности. Сделать это можно двумя способами: либо подать команду "чтение индекса" и посмотреть считанный заголовок, либо подать команду "рекалибровка" AKA "Восстановление" в старой литературе, при этом башка гарантированно отъедет на 0 трек и в регистре гарантированно встанет 0.
Прикол с Magic заключается в отсутствии необходимой паузы (2). Загрузка порта #FF там есть (выбираем верхнюю сторону диска), и затем следует первая команда - рекалибровка. К тому моменту, как подается эта команда, ВГшка не успевает выйти из ступора и тупо повисает.
По поводу индексных импульсов - да, бит HLT порта #FF через диод заведен еще и на IP. Смысл - эмуляция индексных импульсов. Как раз для остановки дисковода при отсутствии диска. Смысл выбора дисковода D:, насколько я понимаю, заключается в том, чтобы выбрать дисковод, которого скорее всего нет, и из-за этого линия HLT будет болтаться в "1". Нетрудно догадаться, что при отсутствии диска в 5.25" приводе HLT всегда будет висеть в "0" (оптопара постоянно засвечена).
Помнится я подключил дисковод D: и получил интересную картину: при попытке остановки дисковода на мгновение помигивает светодиод дисковода D:, затем снова переходим на текущий, двигатели продолжают вращаться. Т. о. при наличии всех четырех приводов и при отсутствии во всех приводах дисков, алгоритм работать не будет.
Sonic is offline   Reply With Quote
Old 1st June 2007, 18:55   #7
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

о, прикольно
спасибо за детальные разьяснения
__________________
wbw, psb.
psb is offline   Reply With Quote
Old 2nd June 2007, 18:31   #8
Member
 
Join Date: 14th February 2005
Location: Владивосток
Posts: 112
Thanks: 17
Thanked 5 Times in 3 Posts
mishutka is on a distinguished road
Default

припоминаю что мотор останавливается если выбрать другой (даже не существующий) дисковод а потом вернуться к текущему
mishutka is offline   Reply With Quote
Old 4th June 2007, 10:47   #9
Master
 
Join Date: 27th April 2005
Location: Москва
Posts: 869
Thanks: 0
Thanked 6 Times in 5 Posts
Sonic is on a distinguished road
Default

Quote:
Originally Posted by mishutka View Post
припоминаю что мотор останавливается если выбрать другой (даже не существующий) дисковод а потом вернуться к текущему
Вряд-ли. Операция смены текущего дисковода на ВГ93 вообще никак не влияет, ибо проходит мимо нее. Скорее всего ты путаешь, или имеет место быть какой-нибудь побочный эффект.
Sonic is offline   Reply With Quote
Old 5th June 2007, 04:38   #10
Master
 
Grand's Avatar
 
Join Date: 10th April 2005
Location: Сибирь
Posts: 631
Thanks: 20
Thanked 90 Times in 43 Posts
Grand will become famous soon enoughGrand will become famous soon enough
Default

Во многих моих программах используется метод снятия выбора дисковода с использованием процедуры из ПЗУ TR-DOS, например в G's Boot. Исходники G's Boot'а - на ZX Open Source.
__________________
Если в каком-либо моем сообщении перестала работать гиперссылка, напишите мне об этом в личном сообщении.

Grand's — сайт об электронно-вычислительной технике
(программы, документация, фотографии)

Last edited by Grand; 5th June 2007 at 04:42.
Grand 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 05:35.


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