На некоторых схемах контроллеров дисковода.не всегда это как и когда ?
Про это давно писали в статьях ZX-PRESS и других, про прошивки TR-DOS и программирование контроллера через точки входа ПЗУ.
Сейчас такое вряд ли встречается, хотя все может быть
На некоторых схемах контроллеров дисковода.не всегда это как и когда ?
Про это давно писали в статьях ZX-PRESS и других, про прошивки TR-DOS и программирование контроллера через точки входа ПЗУ.
Сейчас такое вряд ли встречается, хотя все может быть
ZXM-Phoenix rev.01 2048K, VG93 hw emulator
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
а фиг его знает зачем, видимо из разряда "береженого Бог бережет"
интересно, что при попадании на точку отладчик xpeccy до выполнения команды показывает пзу бейсика, но на самом деле выполняет код уже из тырдосного
- - - Добавлено - - -
так читаться будет бейсик всегда, тырдос включится только по M1
- - - Добавлено - - -
а вот дизасм пзу interface-1:
тоже какбэ говорит нам о сомнении в моментальном переключении пзу; -------------------
; THE 'START' ROUTINE
; -------------------
; An instruction fetch on address $0008 pages in this ROM.
; The three-byte instruction at this location must exist on both sides of
; the looking-glass. The value fetched is immediately discarded.
; It follows that this restart should never be invoked from this ROM.
;; ST-SHADOW
L0008: LD HL,($5C5D) ; fetch character address from CH_ADD.
POP HL ; pop return address to HL register.
PUSH HL ; and save again on machine stack.
JP L009A ; jump forward to continue at START-2.
Прихожу без разрешения, сею смерть и разрушение...
интересно, зачем (немного потыкал, вроде всё работает без неё)
Прихожу без разрешения, сею смерть и разрушение...
вспоминаются как минимум утилиты серии DCU, в частности - 2.12.
"вспомогательных" - это type 1? то есть поиск и перемещение головы? по даташиту - повторяет инвертированный вход индекса (35 нога), в реале - походу тоже, чаще всего 0, с редкими проскоками 1.2) бит #1 регистра состояния после выполнения "вспомогательных" команд (то есть index) чему равен?
всегда 0/1 или "случайное" значение (как диск вертится)? одинаково для всех таких команд или нет?
тут не скажу, оригинальный в руках не держал.3) когда именно всё-таки происходит переключение на ПЗУ тырдоса по ROMCS?
нули/нопы в ПЗУ намекают, что со следующей команды, но проверенные эмуляторы (unreal, xpeccy, zxspin) переключают на первой же
TESTall авторства Сергея Глагольева прыгает на #3D30 (=15664), явно предполагая немедленный ret с #3D30 уже из ПЗУ тырдоса
может ли так быть, что оригинальный бета-диск и (после)советские клоны переключают ПЗУ по-разному?
Зверинецъ
Специалист (был когда-то "совсем стандарт") - 1988-2023
Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
Ленинград2 + CF карта
Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
БК0010-01 стоковый[свернуть]
Lethargeek(27.02.2020)
да это понятно, а вот что считать нормальным и задуманным поведением - было непонятно
Прихожу без разрешения, сею смерть и разрушение...
MAGIC автоматом включает нужное ПЗУ, после чего идёт довольно длительная обработка NMI - это занимает какое-то время, поэтому когда начинается выборка, ПЗУ уже подключено. Иногда даже конденсаторы приходилось подбирать для правильной выборки TRDOS.
Уже не помню как там это всё по схеме было, но у меня без конденсатора для задержки TRDOS нормально не работал. Видимо из-за того что провода до платы с ПЗУ TRDOS были длинноваты![]()
Последний раз редактировалось ZXMAK; 29.05.2020 в 04:22.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Последний раз редактировалось MetalliC; 29.05.2020 в 11:01.
[bETA]mEN(29.05.2020)
не, меджик то отдельная тема. Там проблема встречалась именно с переключением пзу в момент когда была замаплена обычная пзу бейсика, а процессор начинал выборку из окна перехода в пзу трдос. Я этот глюк сам видел на живом спектруме.
Сейчас уже сложно сказать из-за чего именно баг происходил, но связан он был с тем что не на всех контроллерах происходило корректное чтение первого байта сразу в момент выборки пзу трдос. Может из-за того что в момент выборки сразу оба пзу (бейсик и трдос) давали свои данные на шину, может из-за длины проводников шины данных/адреса и линии выборки, или еще из-за чего. Но факт такого бага имел место быть...
Возможно из-за того, что сразу после выборки нового ПЗУ, старое оставалось ещё некоторое время выбранным и возникал конфликт двух ПЗУ на шине. Т.к. в пзу бейсика и в пзу трдос по этому адресу 0, то это не мешает работе. Но если бы в одном из пзу был не 0, то читался бы неправильный опкод.
Последний раз редактировалось ZXMAK; 09.06.2020 в 06:07.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)