Scorpion HDD
ZXNet echo conference «real.speccy»
From Sergey Zotov → To All 27 May 2001
Тут у меня непонятно чего творится. Hе хочет програмно маунтиться раздел. А при
попытки получить дескриптор подключенного раздела вообще вываливаюсь по ошибке
Tape loading error.
Примеры:
...
ld c,35
ld a,%00001011
ld de,txt
rst 8
db #81
...
txt db "d:\tmp \Disk01"
ПОсле этого, при попытке считать каталог, получаю тот же диск, который и был
подключен. Ошибки в CY нет.
...
ld c,35
ld a,%00010011
ld hl,descr
rst 8
db #81
...
descr ds 25
Тут и появляется Tape loading error.
чего я неправильно делаю?
ZXNet: 500:8462/1 ~/ <~ http://www.zx.ru/zs/
Fido: 2:5057/21.93 /_ _> ftp://zx-museum.org.ru/zs/
From Fyodor Odegov → To All 27 May 2001
Однажды в воскресенье 27 Мая 2001 года в 16:20:40 Sergey Zotov писал письмо к
All по поводу Scorpion HDD:
SZ> Тут у меня непонятно чего творится. Hе хочет програмно
SZ> маунтиться раздел.
[skip...]
SZ> чего я неправильно делаю?
Ты все правильно делаешь - неправильно работает само ПрофПЗУ. Это известный
глюк, который мне когда-то приходилось решать.
В общем, на винте есть специальный сектор, в котором хранится инфа о
подключенных разделах. Если переключать разделы через теневик вручную, то вся
информация в этом секторе обновляется нормально. Hо если пользоваться
подпрограммами RST #8, то информация обновится только в восьмом банке, и при
любом обращении к TR-DOS через 15619 и еще в нескольких случаях инфа
восстановится:(
Единственный выход - переписывать информацию в секторе настроек программно,
т.е. через порты винта. Там еще несколько тонкостей есть, типа подсчета
контрольной суммы итд, но это уже мелочи...
Вообще эта тема в 53-ей или 54-ей ZXNews хорошо освещалась.
Если что интересует, прошу в мыло.
Желаю удачи !
С уважением Fyodor Odegov.
From Kirill Frolov → To All 10 June 2001
FO> Ты все правильно делаешь - неправильно работает само ПрофПЗУ. Это
FO> известный глюк, который мне когда-то приходилось решать.
Доведи информацию до общественности.
From Fyodor Odegov → To All 12 June 2001
FO>> ПрофПЗУ. Это известный глюк, который мне когда-то
FO>> приходилось решать.
KF> Доведи информацию до общественности.
Здесь всё просто: при переключении разделов на винте через ТМ, вся информация
о них записывается в сектор эмуляций и остаётся в восьмом банке. То есть
проблем здесь не возникает.
Hо если переключать разделы через функции RST #08, то информация обновится
только в восьмом банке, а в секторе эмуляций ничего не изменится (это можно
заметить даже визуально: индикатор обращения к винту не мигнет). Если после
этого читать с подключенного подраздела с помощью функций RST8 или #3D13, то
всё будет нормально, но стоит только обратиться к винту по 15619, то считывание
будет происходить с предыдущего подключенного раздела.
Выход из проблемы: переписывать сектор эмуляций вручную. Так как он с помощью
функций RST8 не доступен, придется переписывать его с помощью прямого доступа к
портам SMUC'а.
Hа этом подробно не буду останавливаться: всё уже написано в ZXNews54 (там
большая статья Влада Сотникова об этом). Кому надо - прочитают.
Желаю удачи !
С уважением Fyodor Odegov aka FION.