nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 10:08



Reply to topic  [ 14 posts ] 
Порты для 0-3 логических сегментов Z80 
Author Message
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Привет!

Прошу помощи у всезнающего ALL-а!
Все адресное пространство Z80 (64 кило) делится на 4 сегмента (0-3) по 16 кило каждый. Каким образом (схемно) делаются порты каждый на свой 16kB сегмент ?. Т.е. каждый из 4-х портов включает указанную
(любую из 0-255, при 4 метрах ОЗУ) страницу только в свой сегмент.
Чо то не могу докумекать как это делается.

_________________
Vasil Ivanov
vasil-i@yandex.ru


31 Jul 2010 10:33
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Vasil Ivanov wrote:
Привет!

Прошу помощи у всезнающего ALL-а!
Все адресное пространство Z80 (64 кило) делится на 4 сегмента (0-3) по 16 кило каждый. Каким образом (схемно) делаются порты каждый на свой 16kB сегмент ?. Т.е. каждый из 4-х портов включает указанную
(любую из 0-255, при 4 метрах ОЗУ) страницу только в свой сегмент.
Чо то не могу докумекать как это делается.


Тебе надо четыре регистра 8-разрядных поставить с Z состоянием - чтобы проц мог туда писать (как минимум), выходы с них соединяешь вместе и ведёшь на A14-A21 твоей памяти. От проца A14 и A15 ведёшь к демультиплексору 2:4, выходы которого цепляешь к OE каждого из регистров. Адреса A0-A13, шину данных, RD и WR от проца ведёшь прямиком на память. Всё :)

P.S. Во - нашёл свою зарисовку 4-летней давности! Тут к вышеописанному добавился ещё демультиплексор на порты доступа к регистрам и логика записи в них по WR - это можно по всякому делать:

Image

_________________
:dj: https://mastodon.social/@Shaos


31 Jul 2010 19:34
Profile WWW
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Shaos wrote:
Vasil Ivanov wrote:
Привет!

Прошу помощи у всезнающего ALL-а!
Все адресное пространство Z80 (64 кило) делится на 4 сегмента (0-3) по 16 кило каждый. Каким образом (схемно) делаются порты каждый на свой 16kB сегмент ?. Т.е. каждый из 4-х портов включает указанную
(любую из 0-255, при 4 метрах ОЗУ) страницу только в свой сегмент.
Чо то не могу докумекать как это делается.


Тебе надо четыре регистра 8-разрядных поставить с Z состоянием - чтобы проц мог туда писать (как минимум), выходы с них соединяешь вместе и ведёшь на A14-A21 твоей памяти. От проца A14 и A15 ведёшь к демультиплексору 2:4, выходы которого цепляешь к OE каждого из регистров. Адреса A0-A13, шину данных, RD и WR от проца ведёшь прямиком на память. Всё :)

P.S. Во - нашёл свою зарисовку 4-летней давности! Тут к вышеописанному добавился ещё демультиплексор на порты доступа к регистрам и логика записи в них по WR - это можно по всякому делать:

Image


Спасибо за хелп!. Буду схемно проверять (в протеусе) твою зарисовку.

_________________
Vasil Ivanov
vasil-i@yandex.ru


31 Jul 2010 23:36
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
А не проще поставить пару ИР26 (74HC670)?

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


01 Aug 2010 02:54
Profile WWW
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Post 
b2m wrote:
А не проще поставить пару ИР26 (74HC670)?


Может и проще - но они труднодоставаемые, а значит - дорогие. В данный момент доступны только в соиках (HC и HCT) по цене за полтора доллара штучка (хорошо, что я раньше прикупил себе 4 штучки 74LS670 в DIP-корпусе для экспериментов).

_________________
:dj: https://mastodon.social/@Shaos


01 Aug 2010 09:12
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Если будешь пихать схему в CPLD, то забудь о Z, и сделай переключение на мультиплексоре. Остальное все так. Ну я про основную идею. От себя добавлю, что сбрасываемый регистр (особенно в 0 странице) желателен, чтобы по сбросу был всегда установлен рабочий код (если 4МБ адресное пространство у тебя общее для RAM и ROM.


01 Aug 2010 11:06
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Post 
HardWareMan wrote:
Если будешь пихать схему в CPLD, то забудь о Z, и сделай переключение на мультиплексоре. Остальное все так. Ну я про основную идею. От себя добавлю, что сбрасываемый регистр (особенно в 0 странице) желателен, чтобы по сбросу был всегда установлен рабочий код (если 4МБ адресное пространство у тебя общее для RAM и ROM.


Да - согласен - регистры надо инициировать, например при включении чтобы управление передавалось в ROM, который по умолчанию втыкается в нулевую страницу, а тот уже инитит регистры соответствующим образом.

_________________
:dj: https://mastodon.social/@Shaos


01 Aug 2010 12:52
Profile WWW
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
Shaos wrote:
HardWareMan wrote:
Если будешь пихать схему в CPLD, то забудь о Z, и сделай переключение на мультиплексоре. Остальное все так. Ну я про основную идею. От себя добавлю, что сбрасываемый регистр (особенно в 0 странице) желателен, чтобы по сбросу был всегда установлен рабочий код (если 4МБ адресное пространство у тебя общее для RAM и ROM.


Да - согласен - регистры надо инициировать, например при включении чтобы управление передавалось в ROM, который по умолчанию втыкается в нулевую страницу, а тот уже инитит регистры соответствующим образом.


Пока остановился на таком варианте.

Code:
   +---+----+----+
---|D0 |    |  Q0|---
---|D1 |    |  Q1|---
---|D2 |    |  Q2|---
---|D3 |    |  Q3|---
---|D4 |    |  Q4|---
---|D5 |    |  Q5|---
---|D6 |    |  Q6|---
---|D7 |    |  Q7|---
   +---|    |    |
---|WRA|    |    |
---|WRB|    |    |
--o|WR |    |    |
   +---|    |    |
---|RDA|    |    |
---|RDB|    |    |
--o|RD |    |    |
   +---|    |    |
--o|RES|    |    |
   +---+----+----+


Это 8-ми разрядный аналог (по принципу работы) 74170.
В четыре 8-ми разрядных регистра можно раздельно записывать/читать любую информацию.

D0..D7 - входы
Q0..Q7 - выходы

При WR 1->0 происходит защелкивание данных со входов D0..D7.
WRA-WRB - выбор регистров для записи.


При RD=1 на всех выходах Q уст."0".
При RD=0 происходит выдача информации на выходы Q, согласно адресу на RDA-RDB.
RDA-RDB - выбор регистров для чтения.

RES - сброс записанных данных м/с в ноль.

Шурик схему брошу тебе на мыло (shaos@mail.ru), вставь ее (или сцилку) в эту мессагу. Там дешифратор 74139my отличается
от стандартного 74139 только тем, что у моего варианта выходы не инверсные. Все равно эта схема для
плисины, так что лучше перерисовать дешифратор 2:4, чем добавлять лишние инверторы.

_________________
Vasil Ivanov
vasil-i@yandex.ru


03 Aug 2010 23:50
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Reply with quote
Post 
HardWareMan wrote:
Если будешь пихать схему в CPLD, то забудь о Z, и сделай переключение на мультиплексоре.


Спасибо, учту. Что касается схемной реализации, то имеется матрица на D-триггерах, 4 колонки на 8 строк. 74139 выбирает колонки, 74153 выбирают строки.

Quote:
От себя добавлю, что сбрасываемый регистр (особенно в 0 странице) желателен, чтобы по сбросу был всегда установлен рабочий код (если 4МБ адресное пространство у тебя общее для RAM и ROM.


Ты прав. Я такую фитчу встречал еще у Орион-128, когда читал описание работы его схемы. Как раз для этого у меня есть пин RES,
сбрасывающий все записанные данные.

_________________
Vasil Ivanov
vasil-i@yandex.ru


04 Aug 2010 00:15
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Post 
Vasil Ivanov wrote:
Шурик схему брошу тебе на мыло (shaos@mail.ru), вставь ее (или сцилку) в эту мессагу. Там дешифратор 74139my отличается
от стандартного 74139 только тем, что у моего варианта выходы не инверсные. Все равно эта схема для
плисины, так что лучше перерисовать дешифратор 2:4, чем добавлять лишние инверторы.


Вставляю (кликнув на картинку можно стянуть PDF размером 171K):

Image

А вот сцылка на зазипованный PDF:

http://nedopc.org/nedopc/upload/4x8.zip (27K)

_________________
:dj: https://mastodon.social/@Shaos


04 Aug 2010 04:44
Profile WWW
Fanat
User avatar

Joined: 13 Dec 2020 21:11
Posts: 86
Reply with quote
Post Re:
b2m wrote:
А не проще поставить пару ИР26 (74HC670)?

Спасибо за наводку! Внезапно нашёл кучу в соседнем магазине (видать никому кроме меня не были нужны). В DIPе, купил 6 штук.

Кстати, на этих регистрах можно ещё и палитру для видеовывода сделать, например, 4 из 16 возможных цветов, 8 из 16 или 4 из 256 - на двух, ну и,
раз пошла такая пьянка, 8 из 256 на 4-х.
Shaos wrote:
Да - согласен - регистры надо инициировать, например при включении чтобы управление передавалось в ROM, который по умолчанию втыкается в нулевую страницу, а тот уже инитит регистры соответствующим образом.

Рядом всё равно городить ещё регистр/буфер, чтоб пропускать адрес насквозь при обращении к портам (страницы у адреса портов это не плохо, но вот со страницами памяти совпадать им уж точно незачем), можно его использовать для первичного включения (если !IORQ или ещё со времён сброса установлен триггер, сбрасываемый любым переключением страниц).


08 Feb 2021 07:07
Profile
Novelist
User avatar

Joined: 18 Nov 2022 06:33
Posts: 41
Location: Урюпинск
Reply with quote
А не проще взять Z180? Там уже всё реализовано, правда, на 3 сегмента.

_________________
Two Beer? Or not Two Beer?


21 Aug 2023 00:05
Profile ICQ WWW
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
oldlazycat wrote:
А не проще взять Z180? Там уже всё реализовано, правда, на 3 сегмента.
Ну Z180 это старьё-старое, а Z80 вроде как до сих пор штампуется :)
А вообще в Z180 очень странный MMU - где-то тут на форуме обсуждалось... нашёл:
http://www.nedopc.org/forum/viewtopic.php?p=104326#p104326
Quote:
Задействовать дополнительне разряды адреса от Z180 (A17,A18,A19) скорее всего не получится, т.к. бортовой MMU делит доступную память на 3 части, причём первая часть - это всегда начало памяти, а последняя - это всегда конец, т.е. перемещаться по большой памяти может только среднее окно, а нам надо 4 независимых области по 16K...
т.е. фактически у Z180 перемещаемое окно одно - среднее, а первой и последнее это всегда начало и конец адресного пространства, так-что спасибо ненадо...

_________________
:dj: https://mastodon.social/@Shaos


21 Aug 2023 00:23
Profile WWW
Novelist
User avatar

Joined: 18 Nov 2022 06:33
Posts: 41
Location: Урюпинск
Reply with quote
Shaos wrote:
oldlazycat wrote:
А не проще взять Z180? Там уже всё реализовано, правда, на 3 сегмента.
Ну Z180 это старьё-старое, а Z80 вроде как до сих пор штампуется :)
А вообще в Z180 очень странный MMU - где-то тут на форуме обсуждалось... нашёл:
http://www.nedopc.org/forum/viewtopic.php?p=104326#p104326
Quote:
Задействовать дополнительне разряды адреса от Z180 (A17,A18,A19) скорее всего не получится, т.к. бортовой MMU делит доступную память на 3 части, причём первая часть - это всегда начало памяти, а последняя - это всегда конец, т.е. перемещаться по большой памяти может только среднее окно, а нам надо 4 независимых области по 16K...
т.е. фактически у Z180 перемещаемое окно одно - среднее, а первой и последнее это всегда начало и конец адресного пространства, так-что спасибо ненадо...

Ничего подобного! Открываются 3 окна в пределах 64 КБ из любой части адресуемого 1 МБ с шагом 4 КБ.

_________________
Two Beer? Or not Two Beer?


29 Aug 2023 13:42
Profile ICQ WWW
Display posts from previous:  Sort by  
Reply to topic   [ 14 posts ] 

Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.