User Tag List

Страница 2 из 7 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 69

Тема: "ZX-8088" - Даунгрейд компьютера "Ленинград". Часть 3

  1. #11

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,144
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    772
    Поблагодарили
    418 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Набросал предварительную схему, вернее адаптировал схему от ZX-8085, ибо там обвязка процессора практически идентична, за исключением тактовых сигналов.
    Тактовую частоту на всякий случай завел через джамперы JP1 и JP2. Тактироваться изначально думаю от RAS/, но также ввел и CAS/. Коммутировать будет через JP2, а через JP1 - частота с задержкой или без.

    Кроме того также поправил печатную плату ZX-8085 согласно новым реалиям. Обозвал ее ZX-8088.
    Выложил схему в первый пост, смотрим, высказываемся.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  2. #12

    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    352
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    x86 при сбросе стартует с адреса 0xFFFF0, в отличии от 0x0000 у ВМ80/85/Z80.
    Значит в этой схеме он будет искать ПЗУ в 0xFFF0, а там ОЗУ...
    D30 надо управлять не по /RD, а по DT/R и DEN, иначе как из ПЗУ ЦП читать будет?

  3. #13
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от PVV Посмотреть сообщение
    x86 при сбросе стартует с адреса 0xFFFF0, в отличии от 0x0000 у ВМ80/85/Z80.
    Значит в этой схеме он будет искать ПЗУ в 0xFFF0, а там ОЗУ...
    D30 надо управлять не по /RD, а по DT/R и DEN, иначе как из ПЗУ ЦП читать будет?
    Не совсем так. Он стартует с адреса CS:IP = FFFF:0000, но у простого 8086/8088 индексы это параграфы, т.е. действительно 0xFFFF0. И это легаси, кстати, даже в корах, если смотреть на BIOS, там везде стартовый JMP FAR. А после него обычно дата.

  4. #14

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

    По умолчанию

    Цитата Сообщение от PVV Посмотреть сообщение
    D30 надо управлять не по /RD, а по DT/R и DEN, иначе как из ПЗУ ЦП читать будет?
    Можно пояснить для тех кто в танке, в чем проблема? В даташитах рисуют с DT/R и DEN, но в данной конкретной машине на первый взгляд должен работать и текущий вариант.
    Последний раз редактировалось ivagor; 01.06.2022 в 07:01. Причина: убрал опечатку

  5. #15

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,144
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    772
    Поблагодарили
    418 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Не совсем так. Он стартует с адреса CS:IP = FFFF:0000, но у простого 8086/8088 индексы это параграфы, т.е. действительно 0xFFFF0. И это легаси, кстати, даже в корах, если смотреть на BIOS, там везде стартовый JMP FAR. А после него обычно дата.
    Опа, забыл про долбанные индексные регистры.
    И я так понимаю, мы вполне можем ими не пользоваться - у нас 64к сегмент по сути один

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

    Цитата Сообщение от PVV Посмотреть сообщение
    D30 надо управлять не по /RD, а по DT/R и DEN, иначе как из ПЗУ ЦП читать будет?
    А что при чтении из ПЗУ сигнал RD/ не активен? А как же чтение из портов

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

    Кстати, думаю, что надо при сбросе делать принудительный выбор ПЗУ, чтобы процессор читал первую инструкцию из ПЗУ, а затем уже ПЗУ разблокировать для доступа только из 0000...3FFF адресов.
    Последний раз редактировалось Mick; 01.06.2022 в 08:03.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  6. #16
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Опа, забыл про долбанные индексные регистры.
    И я так понимаю, мы вполне можем ими не пользоваться - у нас 64к сегмент по сути один
    Модель tiny как раз этим и занимается. CS=DS=ES=SS=0 (это для нас, для MS-DOS - некоторое значение).

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

  8. #17

    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    352
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Управление по /RD как то работать будет, но времянки DT/R и DEN гарантируют не работу на встречу выхода ЦП на AD0-7 и буфера.
    По даташиту ЦП переводит свои выходы AD0-7 в Z состояние как бы одновременно с опусканием /RD в ноль, но это время не гаранитрируется, а по DEN это гарантируется.
    При прерывании, INT ведь задействован, кто будет и какой вектор выставлять, на какой части шины AD0-7 или D0-7 ?
    /RD при чтении вектора не формируется, он на INTA будет, а DT/R и DEN будут формироваться, но вектор, соответственно на шине D0-7 должен быть.

    upd: нет, нашел, что гарантируется время от перехода шины AD в Z до опускания /RD в ноль - 0нс. Тем не менее по DEN время больше чем 0.
    Последний раз редактировалось PVV; 01.06.2022 в 09:19.

  9. #18

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,144
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    772
    Поблагодарили
    418 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Модель tiny как раз этим и занимается. CS=DS=ES=SS=0 (это для нас, для MS-DOS - некоторое значение).
    Да но после инициализации CS становится FFFF и нам надо как то его переинициализировать в 0000 так?
    Тогда как будет выглядеть эта операция, чтобы условно из адреса FFF0, который как бы 0000, выполнить следующую команду в ПЗУ, которая уже будет по нормальным адресам 0000....3FFFF.

    Я так полагаю что должна быть первая инструкция в ПЗУ

    jmp far 00:04, где 00 запишется в CS, а 04 запишется в IP.
    И следующая за ней команда выполнится уже по адресу 0004h?

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

    Цитата Сообщение от PVV Посмотреть сообщение
    При прерывании, INT ведь задействован, кто будет и какой вектор выставлять, на какой части шины AD0-7 или D0-7 ?
    /RD при чтении вектора не формируется, он на INTA будет, а DT/R и DEN будут формироваться, но вектор, соответственно на шине D0-7 должен быть.
    Пока не сильно углубился в познаниях x86, а то у него нет фиксированного адреса прерывания по умолчанию как у ВМ80?
    Если нет, то шина данных AD0...AD7 подтянута к 1, то есть при чтении будет значение FFh
    Последний раз редактировалось Mick; 01.06.2022 в 10:18.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  10. #19

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

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    jmp far 00:04
    Лучше 6, если не хочешь перейти внутрь самой первой инструкции.

  11. #20

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,144
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    772
    Поблагодарили
    418 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Лучше 6, если не хочешь перейти внутрь самой первой инструкции.
    А точно

    jmp far 00:06

    EAh 06H 00h 00h 00h

    По прерыванию, если считывается FFh, то 255 вектор находится по адресу 03FCh
    Последний раз редактировалось Mick; 01.06.2022 в 10:38.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

Страница 2 из 7 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. "ZX-8080" - Даунгрейд компьютера "Ленинград"
    от Mick в разделе Разработка электроники
    Ответов: 908
    Последнее: 28.05.2025, 15:52
  2. "ZX-8085" - Даунгрейд компьютера "Ленинград". Часть 2
    от Mick в разделе Разработка электроники
    Ответов: 60
    Последнее: 22.07.2024, 21:01
  3. Ответов: 17
    Последнее: 26.12.2015, 23:22
  4. куплю "нулёвку" - материнку или копм в сборе 8088-8086
    от palsw в разделе Барахолка (архив)
    Ответов: 59
    Последнее: 08.05.2012, 11:19
  5. Ответов: 0
    Последнее: 15.08.2010, 14:38

Ваши права

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