Вход

Просмотр полной версии : Устройство контроллера TR-DOS



Zloy
07.09.2008, 20:07
Решил тут "от и до" разобраться в устройстве контроллера TR-DOS... т.к. оного только и не хватает для полного счастья.:) Изучаю по "Beta Disc/TRDOS. Аппаратные средства. Стандартный интерфейс дисковода - Вариант'94." Возникло пару (пока только :)) вопросов по "узлу разрешения-запрета включения системы TR-DOS". Написано что:
"порт полностью идентичен регистру разряда D4 диспетчера переключения страниц ОЗУ, 128К версии машины".
"Порт этот необходим только в контроллерах подключаемых к внешней системной шине фирменных машин, дело в том, что диспетчер страниц ОЗУ 128К размещен в составе микросхемы ULA7 и сигнал состояния адресного пространства недоступен, в машинах отечественной сборки диспетчер выполнен на отдельном регистре, и с доступом к сигналу диспетчера "защелка 48К" проблем нет. "
1. На сколько я знаю D4 (бит 4) в диспетчере памяти соответствует выбору микросхемы ПЗУ, а не режиму "защелка 48К". Получается ошибка в описании?
2. Если этот порт соответствует биту диспетчера памяти машин с 128K, то в одном из режимов (48К или 128К) компьютера контроллер не будет доступен... так ли это? Если да, то зачем так сделано?

caro
07.09.2008, 20:14
1. На сколько я знаю D4 (бит 4) в диспетчере памяти соответствует выбору микросхемы ПЗУ, а не режиму "защелка 48К". Получается ошибка в описании?Вполне вероятно, ошибка.


2. Если этот порт соответствует биту диспетчера памяти машин с 128K, то в одном из режимов (48К или 128К) компьютера контроллер не будет доступен... так ли это? Если да, то зачем так сделано?В режиме 128К, переключатель TRDOS блокируется, поскольку в адресном пространстве 3Dxx у 128K Спектрума находится исполняемый код, что при работе BASICа приводит к несанкционированному переключению ПЗУ на страницу TRDOS.
В странице ПЗУ 48K BASICа в этой зоне находится знакогенератор, что исключает исполнение кода из этой зоны ПЗУ.
Если контроллер расчитан на работу только с 48К машинкой, то этот порт в нём можно вообще не ставить.

Zloy
07.09.2008, 20:33
Вполне вероятно, ошибка.
Я думал опечатка... потом смотрю, на всех схемах "стандартного" контроллера читается именно сигнал D4 (ПЗУ 48/128)... Получается, контроллер определяет режим 48/128 по тому какое ПЗУ подключено. Т.е. если я расширил комп до 128 и оставил ПЗУ 48, то для контроллера этот узел тоже не нужен?

В режиме 128К, переключатель TRDOS блокируется, поскольку в адресном пространстве 3Dxx у 128K
Т.е. TR-DOS можно вызвать только из Basic 48 и при включении?

Zloy
09.09.2008, 16:03
Народ, ну попробуйте кто-нибудь под Basic 128 запустить TR-DOS командой:
RANDOMIZE USR 15616

Если верить схеме, то запуск можно осуществить только из Basic 48 (возможно не на всех контроллерах).

ZEK
09.09.2008, 16:28
Только из 48К, блокировка стоит из 128

Zloy
09.09.2008, 18:44
Я сомневался из-зи того, что в фирменном руководстве к Beta 128 Disk Interface сказано:
SPECTRUM 128 : The Spectrum 128 starts up as normal. To
change to TRDOS, type the following:

RANDOMIZE USR 15616 <ENTER>

Не указано, что команду нужно вводить только из Basic 48... Правда сказано, что при включении Spectrum 128 в TR-DOS войти нельзя (разобрались - из-за того что активна страница ПЗУ c Basic 128). Так что в описании ошибка. Думаю, что не последняя... :)

goodboy
09.09.2008, 19:25
а если я на скорпионе в 128ом бейсике набираю usr 15616 и вываливаюсь в trdos - как это понимать ?

caro
09.09.2008, 19:41
Да, сейчас попробовал в эмуляторе ZXMAC и успешно вышел в TRDOS.
А на моем Кворуме, и на реале и в эмуляторе просто зависает.
Надо подумать.

Добавлено через 22 минуты
Похоже всё таки при стандартном TRDOS-контроллере выполнение RANDOMIZE USR 15616 из BASIC 128 должно вызывать TRDOS.
Дело в том, что выполнение базовых операторов BASICа (к которым относится и RANDOMIZE) происходит из ПЗУ BASIC 48,
тоесть при установленном в 1 бите D4 порта 7FFD.

PS. У меня в Кворуме несколько необычный контроллер - совмещенный CP/M-TRDOS со своими особенностями :)

Addison
09.09.2008, 20:16
Сообщение от Zloy
Народ, ну попробуйте кто-нибудь под Basic 128 запустить TR-DOS командой:
RANDOMIZE USR 15616

Не работает.

всю жизнь на Пентагоне работало.

А как из бейсик 128 загрузчик работает по 15619?
Полно загрузчиков на бейсике, все из режима 128 пускаются.

creator
09.09.2008, 20:30
Похоже всё таки при стандартном TRDOS-контроллере выполнение RANDOMIZE USR 15616 из BASIC 128 должно вызывать TRDOS.

Не то что бы должно, а так оно и есть. ;)


Дело в том, что выполнение базовых операторов BASICа (к которым относится и RANDOMIZE) происходит из ПЗУ BASIC 48,
тоесть при установленном в 1 бите D4 порта 7FFD.

Именно. Во время набора команды работает редактор Basic128 (и соответственно ПЗУ128). А исполняет команду уже Basic48.

Mirazh
31.05.2010, 19:58
Именно. Во время набора команды работает редактор Basic128 (и соответственно ПЗУ128). А исполняет команду уже Basic48.
а как обрабатываются операторы не бейсика48? например play?

Vadim
02.06.2010, 13:46
Оператры которых нет в ПЗУ бейсика-48 обрабатываются в ПЗУ бейсика-128, работа с ком-портом там же. А вообще вопрос возник примерно так же как и ранее про tr-dos. Многие думали, что когда мы делаем randomize usr 15616 управление целиком уходит в ПЗУ beta-диска и возврат в бейсик 48 только по команде return, а это ведь не так. Фактически когда мы видим "командную" строку тырдос, управление большую часть времени находится именно в ПЗУ бейсик 48 (sos), в описании схемы бетадиска указано что переключение ПЗУ на ПЗУ бетадиска невозможно если впечатана страница бейсик-128. А тут такой сыр бор развели. Из ничего прямо.

---------- Post added at 15:46 ---------- Previous post was at 15:42 ----------


Получается, контроллер определяет режим 48/128 по тому какое ПЗУ подключено.

неверно. абсолютно неверно. Режим 128К совершенно не причем.

Addison
04.06.2010, 14:47
1. На сколько я знаю D4 (бит 4) в диспетчере памяти соответствует выбору микросхемы ПЗУ, а не режиму "защелка 48К". Получается ошибка в описании?
Да этот бит показывает что включено - редактор 128к или ОС (48к).
Как я понимаю, редактор 128к в теневой банке ПЗУ - это всего лишь надстройка и не является осью, осью остается 48К. Поэтому вызов TR-DOS осуществляется с проверкой банки ПЗУ, чтобы не оказаться в редакторе. Если включится ПЗУ Tr-DOS, которая тоже является всего лишь надстройкой над ОС 48к, то при вызове процедур ОС и возврате от ПЗУ TR-DOS к ПЗУ спека мы обязоном должны попасть в банку 48к с ОС. Иначе будет ошибка.
Для машины 48к этот порт в TR-DOS не нужен, так как надстройки 128к нет, в машинах 128к, где системный регистр вынесен наружу достаточно просто взять этот сигнал и задать на ЛА2 BDI. В машинах 128к, где системный регистр не выведен на системный разъем, нужно использовать BDI со своим запоминанием D4, если не хотите делать соплей и подключение будет только по системному разъему.



2. Если этот порт соответствует биту диспетчера памяти машин с 128K, то в одном из режимов (48К или 128К) компьютера контроллер не будет доступен... так ли это? Если да, то зачем так сделано?
Будет все работать во всех режимах. Режим 128к, обращается к банке 48к при работе, бит D4 при выполнении команды перехода к TR-DOS из под 128к всего лишь позволяет отмониторить переключение банок со 128к на 48к и в нужный момент подставить теневое ПЗУ TR-DOS.

rnd.gen
18.06.2010, 11:41
Есть ли полное описание работы контроллера дисковода?

Addison
18.06.2010, 16:52
Есть ли полное описание работы контроллера дисковода?
в этой теме , по-моему, в первом посте приводилась ссылка.