User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 107

Тема: Вопросы по архитектуре "Специалиста"

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,246
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    716
    Спасибо Благодарностей получено 
    1,732
    Поблагодарили
    585 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак, переварил то, что мне ответили. Что-то пришлось догуглиливать, но в целом картина прояснилась. Я сейчас отвечу на всё, как понял, а вы меня поправьте, если я где-то ошибся.

    1. Что правильно должно считываться по адресам С000-EFFF, если микросхема ПЗУ не установлена? Emu80 отображает FF, как будто бы установлены чистые микросхемы памяти. Это корректное поведение? Оно обусловлено схемотехникой компьютера?

    По любому адресу, к которому не подключено ни ОЗУ, ни ПЗУ, ни какое-то другое устройство, любой командой, работающей с памятью (например, LDA adr) должен считываться байт 0x82. Но есть одно исключение: если ту же самую область пытаться считать командой IN xx, то в этом случае будет считываться байт 0x42.

    Байты 0x82 и 0x42 представляют из себя слово состояния (Status Word) выдаваемое на шину данных в первом такте машинного цикла и сопровождаемом сигналом SYNC.

    Остаётся вопрос: почему это слово разное для команды IN и остальных команд?

    2. Что должно считывается по адресам в диапазоне F000-F7FF в журнальной версии компьютера? Emu80 отображает циклическую последовательность 00 00 00 FF. Чем это обусловлено? Что будет если попытаться записывать туда данные на реальном компьютере в стандартной конфигурации?

    В стандартном варианте в эту область ничего не подключено. И поэтому оттуда должно считываться 0x82 (0x42), как описано в первом вопросе.

    3. Что должно считываться с адресов F803, F807 и т.д., то есть адресов куда проецируется порт управления штатной микросхемы параллельного порта (КР580ВВ55А)?

    Результат считывания сложный и зависит от содержимого других регистров микросхемы. Эту информацию необходимо получить из документации по КР580ВВ55А (i8255).

    b2m вот здесь пишет: "По поводу РУС: была информация, что оттуда читается последнее записанное в любой из портов А,В,С значение. Тест подтверждает это, но однако показывает, что если порты настроены на ввод, то оттуда читается FF. Можно поправить в эмуляторе для аутентичности (у меня пока возвращается ноль). Что возвращать, когда порт настроен на ввод, а схемно он предназначен на вывод - непонятно."

    4. Как на реальном Специалисте ведут себя команды работы с прерываниями: DI, EI, HLT? Существуют ли какие-то устройства для Специалиста, которые будут реагировать на эти команды?

    В схеме Специалиста не задействован сигнал процессора INTE, отвечающий за обработку прерываний. Поэтому в Специалисте команды DI и EI будут работать просто, как NOP. Команда HLT остановит процессор и он будет ждать сигнала INTE. Но так как, INTE не задействован, процессор ничего не дождётся и будет "висеть". Вывести его из этого состояния можно только сбросом компьютера.

    5. Как на реальном Специалисте ведут себя команды работы с портами IN xx и OUT xx? Что будет если считать данные с несуществующего порта? Существуют ли какие-то устройства для Специалиста, которые будут реагировать на эти команды?

    На Специалисте команды IN и OUT работают точно так же, как и обычные команды работы с памятью. Команда IN считывает в регистр А значение из ячейки памяти, адрес которой формируется из байта, указанного в команде IN. Этот байт помещается и в младший, и в старший байт адреса. Команда OUT записывает значение регистра A в адрес, сформированный по той же схеме, что и в команде IN.

    Команда IN AB аналогична команде LDA ABAB
    Команда OUT AB аналогична команде STA ABAB

    Вопрос: Что из себя представляют полноценные порты для процессора 8080? Они организуются какой-то дополнительной микросхемой? 8080 может обслуживать только 256 разных портов?

    6. Процессор Специалиста работает с частотой 2 МГц. Телевизор отображает 50 кадров в секунду. Я считаю, что между кадрами укладывается (2 * 1 000 000 / 50) тактов процессора. Насколько мои вычисления корректны?

    Частота кадров Специалиста не ровно 50 Hz, а 50,08 Hz. Это значение получается, если частоту строчной развертки, которая составляет 15625 Hz, поделить на количество строк, формируемых Специалистом - 312.
    15625 Hz / 312 строк = 50,08 кадров в секунду

    Один кадр строится за 39936 тактов процессора. Это значение получается, если умножить количество строк (312) одного кадра на количество тактов, которое тратится на формирование одной строки (128)
    128 тактов * 312 строк = 39936 тактов

    Вопрос: Правильно ли я понимаю, что частота кадров 50,08 - это константа? Если увеличивать частоту процессора, то в компьютере, который сделан правильно и его схемотехника учитывает все эти повышения (например, замена i8080 на Z80), частота кадров так и останется равной 50,08 Hz, а количество тактов между началами формирования двух кадров будет увеличено кратно множителю, на который будет увеличена частота процессора?

    7. Я правильно понимаю, что у Специалиста отсутствует какая-либо привязка начала построения кадра к чему-либо. Или всё-таки кадр строится по каким-то временнЫм правилам?

    В классической схеме Специалиста формирование очередного кадра никак не привязано ни к процессору, ни к количеству тактов, ни к чему-либо ещё. Нет никакой возможности отследить начало формирования следующего кадра и как-то привязаться к нему.
    Последний раз редактировалось CityAceE; 27.09.2023 в 18:02.
    С уважением, Станислав.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,424
    Спасибо Благодарностей отдано 
    768
    Спасибо Благодарностей получено 
    2,375
    Поблагодарили
    1,322 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Байты 0x82 и 0x42 представляют из себя слово состояния программы, оно же PSW
    Извините за занудство, но PSW - Processor Status Word. А с упомянутыми байтами речь не о нем, а о Status Word выдаваемом на шину данных в первом такте машинного цикла и сопровождаемом сигналом SYNC.

    Если собираешься эмулировать схему начального пуска, то возможно стоит учесть, что кроме оригинала есть и другие варианты. Доработка до 8 цветов (МК 90/8) сопровождалась заменой управления начальным пуском с бита ВВ55 на выход INTE процессора (+ модификация ПЗУ). И для такого восьмицвета EI и DI не просто NOP. А у современных клонов альтернативный (более распространенный и в других компьютерах) вариант, который позволяет и восьмицветом пользоваться и прерывания не трогать.
    Ну и раз речь коснулась EI и DI, то можно вспомнить и про особенность HALT в орионе и скорее всего в оригинальном специалисте (начиная с этого сообщения, подробности дальше). fifan с присущей ему тактичностью вместо переноса в более подходящее место просто обрубил дискуссию, но вся информация там есть, кроме результата проверки на реале. И надо еще раз подчеркнуть, что для современных клонов типа сябра это не актуально.
    Последний раз редактировалось ivagor; 27.09.2023 в 15:30.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    CityAceE(27.09.2023)

  4. #3

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,246
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    716
    Спасибо Благодарностей получено 
    1,732
    Поблагодарили
    585 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Извините за занудство, но PSW - Processor Status Word. А с упомянутыми байтами речь не о нем, а о Status Word выдаваемом на шину данных в первом такте машинного цикла и сопровождаемом сигналом SYNC.
    Спасибо! Отредактировал своё сообщение, откорректировав информацию прямо процитировав эту информацию. А за одно задал новый вопрос Я хочу потом, когда всё забуду, этим постом пользоваться в качестве справки. Поэтому для себя же всё и разжёвываю, пока знаю и помню.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Если собираешься эмулировать схему начального пуска
    В идеале хотелось бы сэмулировать максимально возможное количество известных особенностей компьютера. Но как уж оно будет - посмотрим. Не исключаю, что брошу всё на полпути, как это часто бывает. Но пока запал имеется Но уже сейчас я хочу выяснить максимум нюансов про работу компьютера, чтобы потом не пришлось всё переделывать заново, если что-то такое эдакое всплывёт. Вон, например, я почти уже сделал всю эмуляцию процессора с нуля и в конце понял, что любое чтение байта из памяти нужно выносить в отдельную универсальную процедуру, так как, например, нужно опрашивать параллельный программируемый интерфейс (клавиатуру). И пришлось переделывать каждую команду, которая так или иначе читает память. Причём я ведь уже писал эмулятор Специалиста на Python, и там я именно так и сделал, но, конечно же, запамятовал об этом.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Доработка до 8 цветов (МК 90/8) сопровождалась заменой управления начальным пуском с бита ВВ55 на выход INTE процессора (+ модификация ПЗУ). И для такого восьмицвета EI и DI не просто NOP. А у современных клонов альтернативный (более распространенный и в других компьютерах) вариант, который позволяет и восьмицветом пользоваться и прерывания не трогать.
    И за это тоже спасибо! Я как раз перечитывая тему про эмулятор Titus'а наталкивался на эту информацию. Буду тоже держать её в голове. Или на листочке для надёжности. Хотя эту тему я как завёл, чтобы ничего потом не забыть.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Ну и раз речь коснулась EI и DI, то можно вспомнить и про особенность HALT в орионе и скорее всего в оригинальном специалисте (начиная с этого сообщения, подробности дальше). fifan с присущей ему тактичностью вместо переноса в более подходящее место просто обрубил дискуссию, но вся информация там есть, кроме результата проверки на реале. И надо еще раз подчеркнуть, что для современных клонов типа сябра это не актуально.
    Ого! А вот эта информация вообще для меня в новинку! Спасибо! Пользуясь своим служебным положением вынес то обсуждение в отдельную тему. Очень надеюсь, что кто-то сможет проверить на реальном Специалисте.

    ivagor, а можно такой же тест и для Специалиста собрать?
    Последний раз редактировалось CityAceE; 27.09.2023 в 17:59.
    С уважением, Станислав.

  5. #4

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,424
    Спасибо Благодарностей отдано 
    768
    Спасибо Благодарностей получено 
    2,375
    Поблагодарили
    1,322 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Остаётся вопрос: почему это слово разное для команды IN и остальных команд?
    Если это новый вопрос, то варианты машинных циклов и соответствующие им слова состояния можно посмотреть в мануале intel или в советских книжках. Интересный момент - в мануале intel 75 года 10 вариантов, в книге
    Щелкунов Н.Н., Дианов А.П. Микропроцессорные средства и системы. М. Радио и связь, 1989
    - 11. Надо поискать более свежий мануал, но 11й в книжке - второй и третий циклы подтверждения прерывания, для специалиста это, скажем так, не особо критично.

    Цитата Сообщение от CityAceE Посмотреть сообщение
    можно такой же тест и для Специалиста собрать?
    Собрать можно, но я сам лучше не буду. У специалиста надо осторожнее подойти к тому, что писать в ВВ55, по крайней мере на оригинальном надо учитывать начальный пуск. Для желающих исходник есть, значительную часть относящуюся к вектору надо выкинуть. Ну или по аналогии написать свой.

    - - - Добавлено - - -

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    микросхема называется 8228 (8238) = 580ВК28/ВК38
    Или на мелкой логике.
    Цитата Сообщение от Serg6845 Посмотреть сообщение
    по большому счету - бессмысленна
    Можно использовать для детектирования версии специалиста.

    - - - Добавлено - - -

    Посмотрел мануал 79 года (там 8080 и 8085) - остались 10 типов машинных циклов.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    CityAceE(28.09.2023)

  6. #5

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,399
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    390
    Поблагодарили
    350 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение

    Байты 0x82 и 0x42 представляют из себя слово состояния (Status Word) выдаваемое на шину данных в первом такте машинного цикла и сопровождаемом сигналом SYNC.

    Остаётся вопрос: почему это слово разное для команды IN и остальных команд?
    Рекомендую первоисточник стр.71

    3. Что должно считываться с адресов F803, F807 и т.д., то есть адресов куда проецируется порт управления штатной микросхемы параллельного порта (КР580ВВ55А)?

    Результат считывания сложный и зависит от содержимого других регистров микросхемы. Эту информацию необходимо получить из документации по КР580ВВ55А (i8255).
    это я в прошлый раз невнимательно вопрос прочитал. если речь только о регистре управления - то см. тот же первоисточник стр. 182 - там это называется "ILLEGAL CONDITION", по факту - может быть что угодно, плюс еще зависеть от производителя микросхемы. это для 8255. а вот если ППА 82C55 - то будет прочитано то что было записано в регистр управления.

    Вопрос: Что из себя представляют полноценные порты для процессора 8080? Они организуются какой-то дополнительной микросхемой? 8080 может обслуживать только 256 разных портов?
    да на оба вопроса. микросхема называется 8228 (8238) = 580ВК28/ВК38. первоисточник стр. 69


    Один кадр строится за 39936 тактов процессора. Это значение получается, если умножить количество строк (312) одного кадра на количество тактов, которое тратится на формирование одной строки (128)
    128 тактов * 312 строк = 39936 тактов

    Вопрос: Правильно ли я понимаю, что частота кадров 50,08 - это константа? Если увеличивать частоту процессора, то в компьютере, который сделан правильно и его схемотехника учитывает все эти повышения (например, замена i8080 на Z80), частота кадров так и останется равной 50,08 Hz, а количество тактов между началами формирования двух кадров будет увеличено кратно множителю, на который будет увеличена частота процессора?
    схемотехника Специалиста просто так не позволит увеличить частоту процессора. много переделывать придется, результат будет зависеть от конкретного варианта переделки.

    - - - Добавлено - - -

    Цитата Сообщение от CityAceE Посмотреть сообщение
    За переключение расположения ПЗУ отвечает штатная микросхема программируемого параллельного интерфейса Intel 8255 (КР580ВВ55А).

    В коде ПЗУ две команды, следующие за командой установки стека, отключают это дублирование ПЗУ в ОЗУ и переводят память в штатный режим:

    Код:
    0xC006: LD A, 0x82
    0xC008: LD (0xFF03), A
    Эта операция обратима.
    и по большому счету - бессмысленна. пропадает доступ к основному ОЗУ, остается только область C000-FFFF.

    При большом желании можно затем и вручную снова включить ПЗУ в область ОЗУ, подав следующие команды:

    Код:
    LD A, 0x10  ; 00010000 - включен 4-й бит порта С (PC4)
    LD (0xFF02), A
    Остаётся вопрос, на который мне не удалось найти ответа, а принципиальная схема компьютера мне ни о чём не говорит. Какой объём памяти после включения Специалиста дублируется с 0xC000 на адрес 0x0000? Вся вторая половина адресного пространства, то есть 0xC000-0xFFFF? Только область Загрузчика - 0xC000-0xС7FF? Какой-то другой вариант?
    C000-FFFF - это верхняя четверть адресного пространства. при 1 на РС4 (журнальный вариант) - она повторяется 4 раза - 0000-3FFF, 4000-7FFF, 8000-BFFF, C000-FFFF.

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

    Этот пользователь поблагодарил Serg6845 за это полезное сообщение:

    CityAceE(28.09.2023)

  7. #6

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,246
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    716
    Спасибо Благодарностей получено 
    1,732
    Поблагодарили
    585 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    C000-FFFF - это верхняя четверть адресного пространства. при 1 на РС4 (журнальный вариант) - она повторяется 4 раза - 0000-3FFF, 4000-7FFF, 8000-BFFF, C000-FFFF.
    На всякий случай вопрос, просто чтобы убедиться. Я же правильно понимаю, что если в таком состоянии что-то писать по любому адресу памяти, хоть с помощью OUT, хоть с помощью любой другой команды, то поведение будет ровно такое же, как если писать в область С000-FFFF? То есть, если это ПЗУ, то записываться ничего не будет, если висячие адреса, то тоже, если область портов, то и реакция будет соответствующей.

    А экран в этом состоянии откуда читается?
    Последний раз редактировалось CityAceE; 28.07.2024 в 22:02.
    С уважением, Станислав.

  8. #7
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    А экран в этом состоянии откуда читается?
    Синхрогенератор выставляет свой адрес, ему пофигу, какая карта памяти активна у процессора в данный момент. Что касается процессора, то при НП когда ПЗУ маппируется во всю память ему экран не доступен, поэтому, он сначала прыгает в верхние адреса (JMP C003) а уже потом отключает НП через настройку системного ППА. А после этого карта памяти стандартная и ОЗУ с экраном и портами доступны по своим законным местам.

    Есть 2 вида схемы НП: на триггере (как в РКшке или Орионе) и упрощённая как у Экспресса. Так вот, у Экспресса нельзя настраивать порт PC4 в лог.1 - карта памяти сразу же переключится в режим НП и всё скорее всего зависнет. Такова плата за простоту. Триггерная схема НП сбрасывается по физическому сбросу и устанавливается однократно при чтении из верхней памяти и по этому не чувствительна к разного рода шалостям и порт можно использовать как хочется. НП у Специалист-МХ отсутствует как класс ибо по сбросу там активируется внутренний ROM-диск, а это один из штатных режимов ЛК. Цена за такое - маленькая загрузочная программа находится в ROM-диске и занимает некоторое количество его объёма.

    Этот пользователь поблагодарил HardWareMan за это полезное сообщение:

    CityAceE(29.07.2024)

  9. #8

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,246
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    716
    Спасибо Благодарностей получено 
    1,732
    Поблагодарили
    585 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Так вот, у Экспресса нельзя настраивать порт PC4 в лог.1 - карта памяти сразу же переключится в режим НП и всё скорее всего зависнет. Такова плата за простоту.
    Я так понимаю, что и у журнального варианта (и у моего Лика) такое же поведение?

    И записи в память в время начального пуска убедительно прошу подтвердить или опровергнуть моё предположение.

    Добрался до эмуляции этой особенности Специалиста и не хочу ничего упустить. По сути эта фишка вообще нигде не используется и вряд ли её как-то можно задействовать с пользовй, но раз компьютер именно так себя ведёт и это можно проверить, то и я хочу это повторить в эмуляторе.
    С уважением, Станислав.

  10. #9
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Я так понимаю, что и у журнального варианта (и у моего Лика) такое же поведение?
    Надо смотреть конкретную схему конкретного журнала.
    Цитата Сообщение от CityAceE Посмотреть сообщение
    И записи в память в время начального пуска убедительно прошу подтвердить или опровергнуть моё предположение.
    По схеме в режиме НП доступно всё, кроме, собственно, ОЗУ, такова упрощённая дешифрация ресурсов в Специалисте. Запись в область самого ПЗУ ничего не даст, РФки не умеют в запись, но если подключить FLASH то можно писать в неё. Запись в системное ППА жизненно необходимо для работы НП.

    Этот пользователь поблагодарил HardWareMan за это полезное сообщение:

    CityAceE(29.07.2024)

  11. #10

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,246
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    716
    Спасибо Благодарностей получено 
    1,732
    Поблагодарили
    585 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Надо смотреть конкретную схему конкретного журнала.
    Вот схема конкретно моего Лика:



    Цитата Сообщение от HardWareMan Посмотреть сообщение
    По схеме в режиме НП доступно всё, кроме, собственно, ОЗУ, такова упрощённая дешифрация ресурсов в Специалисте
    Спасибо! Собственно, это я и пытался выяснить.
    С уважением, Станислав.

Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. RK-КНГМД для "Специалиста"
    от zx_ в разделе Специалист
    Ответов: 136
    Последнее: 14.09.2025, 07:03
  2. Плёночная клавиатура Специалиста "Экспресс"
    от HardWareMan в разделе Специалист
    Ответов: 1
    Последнее: 06.02.2023, 22:59
  3. Симуляция "ЛИКа" (модификации Специалиста)
    от apofig в разделе Специалист
    Ответов: 27
    Последнее: 06.06.2022, 20:31
  4. Ответов: 5
    Последнее: 03.07.2015, 00:22
  5. Продам плату ПК "УЦА" (клон "Специалиста")
    от riogen в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 25.01.2011, 11:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •