Кстати очень часто этот порт дергается в TRDOS, пример где то выше.Там кстати проверяются bit6 и bit7 после чтения из порта. Здесь же похоже перекочевала часть функций TRDOSа ну и плюс нововведения.Сообщение от spensor
Кстати очень часто этот порт дергается в TRDOS, пример где то выше.Там кстати проверяются bit6 и bit7 после чтения из порта. Здесь же похоже перекочевала часть функций TRDOSа ну и плюс нововведения.Сообщение от spensor
Пришла в голову грустная мысль. Поскольку порт FDC сейчас выбирается при любом состоянии бита 7, то введение еще одного порта ничего не изменит. Если бы при установленном "диске А" сразу же выбирался бы и "диск С", тогда идея с "теневым" FDC имела бы право на жизнь. но этого не происходит...
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Кста, по поводу хранения информации о подключенных дисках. При "выставлении" дисков, равно как и при их "демонтаже" происходит обмен непосредственно с винчестером (винт жужжит долю секунды). На запись в NVRAM нет никаких признаков, т.к. эта процедура занимает пару секунд и эта задержка была бы заметна. Даже если специально сохранить дамп настроек в NVRAM, а затем по быстрому переназначить "дорожки" и выключить Скорп, при запуске он восстановит только последние подключения. И прямое чтение из NVRAM эти подключения не изменит.
По поводу сохранения в RTC - ботва другая, но такая же
Микросхема часов - весчь опциональная, и в инструкции никаких изменений в работе с дисками не указано. Тем более, что по умолчанию эта МС даже не ставилась.
Почему-то вспомнился до сих пор не изученный DB3. Может он и есть тот "ключ" (или "переключатель")... Жалко, схемы оригинального СМУКа под рукой нет
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Если реально используется вышепредположенный принцип, то либо так, либо ИР26/ИР32 (1шт на два порта).Сообщение от ewgeny7
Трудно сказать, в приведенном ниже примере (взято из primer0c.rar), видно нечто похожее на вариант предложенный мной:Сообщение от ewgeny7
Вот и пойди-разберись что это значит.Код:LAB_0CFF: ld bc,0ffbah ; выставляем в порте SYS D7=1 0d02 3ef7 ld a,0f7h 0d04 32f0df ld (0dff0h),a 0d07 ed79 out (c),a 0d09 01ba7f ld bc,7fbah ; обращаемся к порту FDC 0d0c 3eff ld a,0ffh 0d0e 32eedf ld (0dfeeh),a 0d11 ed79 out (c),a
Это правда, но в жизни бывает много сюрпризовСообщение от ewgeny7
Всякое может быть. Попробуй "поиграть" с ним, может что-то прояснится.Сообщение от ewgeny7IMHO, не поможет, но если уж так надо, то смотрите в прототеме этой темы "Порты SMUC".Сообщение от ewgeny7
Вот ссылка на тему:http://zx.pk.ru/showthread.php?t=456&highlight=SMUC
Последний раз редактировалось spensor; 10.11.2005 в 13:19.
Пересмотрел тему "Порты SMUC" Похоже там схем уже давно нет Ладно, думаю не будет нарушением правил если я перезалью схему еще раз уже в эту тему.
Все подключения хранятся на винчестере в секторе 3 и в памяти в 8 странице.Сообщение от ewgeny7
Порт 7FBA используется в тр-досе для быстрого определения, что подключено -
реальный дисковод и образ на винчестере. А дисководов у Скорпиона только 2.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Обращение к дисководам C/D через 3D13 всегда идет на винчестер. Проверка реальный диск или образ идет только на драйвах A и B (7,6 биты порта 7FBA).Сообщение от spensor
На самом деле если смотреть переделанные исходники TRDOSа перед обращением к порту он сначала берет номер дисковода для временных операций(текущего). затем уходит в теневой сервис монитор по rst 08h(закамуфлированный вызов по адресу 0826 - в моем примере LAB_0826) с функцией 81h.Сообщение от Blade
Кстати говоря подсказка. В последенем примере есть таблица адресов функций. Так вот функция 22h - IdHdd - идентификация жесткого диска, 23h - монтирование подразделов диска.
Откуда у Вас такая информация? Монтируются все ЧЕТЫРЕ диска A,B,C,D.Сообщение от Blade
Другое дело, что диски C и D запоминаются только на текущую сессию, т.е. после выключения-включения питания восстанавливаются только диски А и В.
Все это я проверяю сам, на реальном Скорпи, на ПрофПЗУ и тестовом СМУК.
А обращение к три дэ тринадцать инициирует обращение к внутренним п/п ПрофПЗУ, которые уже сами смотрят, реальный ли это диск или виртуальный. Нужно учитывать, что тыр-дос в Скорпи и в ... скажем так, оригинальном Спекки - отличаются, в основном за счет выноса части процедур и доп. доработок в теневой монитор.
Последний раз редактировалось Ewgeny7; 11.11.2005 в 23:10.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Должны запоминаться все 4 диска. Так было в смуке 1.2, 1.3. Unreal 0.32 с Проф-ПЗУ 4.01 также запоминает все диски.Сообщение от ewgeny7
Не совсем так. вот кусок дизассемблера:Сообщение от ewgeny7
LAB_0A01: ld a,(5cf6h)
0a04 c5 push bc
0a05 01ba7f ld bc,7fbah
0a08 ed48 in c,(c)
0a0a fe01 cp 01h
0a0c 2808 jr z,LAB_0A16
0a0e 300a jr nc,LAB_0A1A
0a10 cb79 bit 7,c
0a12 2019 jr nz,LAB_0A2D
0a14 1808 jr LAB_0A1E
LAB_0A16: bit 6,c
0a18 2013 jr nz,LAB_0A2D
LAB_0A1A: cp 04h
0a1c 300f jr nc,LAB_0A2D
LAB_0A1E: pop bc
0a1f 51 ld d,c
0a20 c5 push bc
0a21 0e02 ld c,02h
0a23 cd2608 call LAB_0826 ; RST 8
0a26 81 db #81
0a27 c1 pop bc
0a28 dae73e jp c,LAB_3EE7
0a2b e1 pop hl
0a2c c9 ret
LAB_0A2D: pop bc
0a2e c3eb1f jp LAB_1FEB
Это из функций 5/6 3D13. Берется текущий диск, читается 7FBA, если диск А - проверяется бит 7, если диск B - проверяется бит 6. Если они установлены - переход на процедуры работы с ВГ93, если сброшены - RST8: DB #81. Для дисков С и D сразу идет переход на RST8.
Если в Unreale включить Проф-ПЗУ и СМУК, то 3D13 никогда не обращается к реальным диководам C и D.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)