nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 22 Sep 2018 14:25



Reply to topic  [ 7 posts ] 
TURBOSPETS 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16951
Location: Colorado
Reply with quote
Всё началось в середине 2011 года, когда я решил не захламлять тему (уже несуществующую) про хардваремановский специалист (см. тут, там и там) и создал отдельный топик про свою вариацию на тему хардваремановской макетки в печатке с клавой на борту и картриджем (см. схему тут). В-краце о компьютере - как и в хардваремановском варианте это клон Специалиста и Специалиста-MX (за исключением некоторых мелочей, которые могут быть добавлены позже) с двумя возможными процессорами Z80 или 8080 (только один из них должен быть установлен в панельки, причём вместе с 8080 надо также ставить микросхему DD4), работающий на частоте 2.5 МГц. Компьютер выдаёт сигнал в режиме SVGA 800x600@60Hz. Из моих нововведений - стандартная клавиатура Специалиста предполагается быть смонтирована непосредственно на плате компьютера, имеется больше памяти (включая теневой экран) и интерфейс для 512Кбайтного картриджа, пятицвет и восьмицвет могут переключаться и программно, и вручную (кнопочками т.к. цветные игры не знают на чём они запущены и цветность надо будет пробовать экспериментально - ручками).

На борту имеется ПЗУ 64К (две половинки - 32К для стандартного режима и 32К для MX), 32K ОЗУ цвета (две половинки по 16К которые могут переключаться), 128К основное и видео ОЗУ (две половинки по 64К которые могут переключаться), 512К дополнительное ОЗУ (виртуальный диск с 8 страницами по 65472 байта) и опционально картридж 512К (ещё 8 страниц виртуального диска).

Шины данных и адреса не буферизированы. Сигнал RD буферизирован в случае 8080 (DD4.4). На буферизацию WR идёт один из OR-элементов 74ACT32 (DD50.4), выход которого может прокачивать до 60 ТТЛ входов. Также ACT серию придётся поставить на DD1 и DD2 - из-за скорости (ACT умеет до 90 МГц), а всё остальное (кроме 7406 и 74LS295A) - это HCT (быстрый CMOS с TTL-входами), т.к. я всё ещё надеюсь на батарейное питание :roll:

Сигнал BLNK подан через резистор на вход B0 клавиатурного ВВ55 (там где обычно вход магнитофона сидит) - теперь программно можно узнать когда обратный ход луча пошёл (BLNK=0?), чтобы переключать экраны (а их у нас два), например для мультиколора ;)

Заодно я перепечатываю сюда всё то, что HardWareMan писал про устройство и работу его специалиста:

HardWareMan wrote:
Так вот, карта памяти следующая. По сбросу включен Mode_3, который на самом деле является стандартным специалистом. При этом, порт клавиатуры расположен по адресам F800-FFFF, весь набор портов по адресам F000-F7FF, 8 устройств по 4 ячейки. При этом, клавиатурный ППА доступен так же по адреса F000-F003 и так далее до F7E0..F7E3. Для аналогии с режимом МХа, предлагаю использовать именно F7E0..F7FF для обращения к портам. Младшие 32КБ занимает ПЗУ, которое может быть отключено (по сбросу оно включается автоматически). Остальную область занимает основное ОЗУ с экраном. ПЗУ в Mode_3 может быть отключено... Сам регистр режимов доступен по адресам F7FC-F7FF в режиме Mode_3 и FFFC-FFFF в остальных 3х (Mode_0, Mode_1 и Mode_2 - это режимы МХа). При этом, Mode_0 соответствует выключению ПЗУ и RAM диска в режиме МХ, Mode_1 соответствет включению RAM диска в режиме МХ (при этом я пока сохранил дешифрацию МХа: диск занимает с 0000 по FFBF, в своем скорее всего порежу диск до 0000-FEFF, что упростит схему дешифратора), а Mode_2 соответствет включению внутреннего ПЗУ в режиме МХ. Замечу, что ПЗУ стоит на 64КБ (можно и больше, но уже странично), а в карте процессора он занимает всего 32КБ. Т.е., в ПЗУ 2 страницы по 32КБ и каждая из них соответствет своему режиму (т.е., для стандартного это 0000-7FFF в ПЗУ, а для МХа - 8000-FFFF), что позволяет записывать уникальный софт для каждого режима.

Процесс загрузки я уже оглашал: по сбросу режим стандартного спеца, там пускается софт выбора режима, по типу спектрума128, если выбирается стандартный - то грузится система с карты (или ПЗУ, если карта не вставлена, круто же?) и ПЗУ отключается. Либо формируется шлюз в окне процессора (FFC0-FFDF), который переключает режим на Mode_2 и прыгает в 0000, запуская ПЗУ в режиме МХа. Как видно, все просто и логично. Думаю, карту памяти все представили и рисовать ее нет необходимости. С портами тоже все прозрачно.

.....

Карта памяти уже обсуждалась мной ранее, я лишь напомню ее области:

[Режим 0: MX RAM (запись в FFFCH)]
0000H - FFDFH = Основное ОЗУ.
FFE0H - FFFFH = Порты ввода-вывода

[Режим 1: MX EXT RAM (запись в FFFDH)]
0000H - FFBFH = Дополнительное ОЗУ
FFC0H - FFDFH = Основное ОЗУ (шлюз)
FFE0H - FFFFH = Порты ввода-вывода

[Режим 2: MX ROM (запись в FFFEH)]
0000H - 7FFFH = ПЗУ МХа, включая систему в первых 16КБ
8000H - FFDFH = Основное ОЗУ
FFE0H - FFFFH = Порты ввода-вывода

[Режим 3: STD (запись в FFFFH или по сбросу)]
0000H - 7FFFH = ПЗУ (секция STD) или основное ОЗУ, управление: FFFAH
8000H - EFFFH = Основное ОЗУ
F000H - FFFFH = Порты ввода-вывода, причем в области F800H-FFFFH блокируется на ППА клавиатуры

.....

По сбросу там 0, т.е. ROM включен и 5 цвет выбран. ПЗУ для текущего варианта. Монитор v4 (который мы пользовали на кружке). Выход в него стандартный - СТР+ВК (надо будет пофиксить для автозапуска, так как без магнитофона автозагрузка не нужна). Расширенные директивы:
{B} - Basic "Практик"
{E} - Редактор текстов "Практик" (aka ED^7000)
{A} - Ассемблер "Микрон", адаптированный на работу с редактором "Практик" и перенесенный в 8000H
{Z} - Дизассемблер "Микрон", адаптированный на работу с редактором "Практик" и перенесенный в 8000H
{X} - Переход в режим МХ.
Ассемблер и дизассемблер что-то партачат - там со стеком чтото я перемудрил видимо, при работе на оригинальном Спеце он работает а вот на моем (с ОЗУ заместо ПЗУ) подвисает, потом пофиксю. Так что не пользуйте их. Остальное работает нормально. ОЗУ не портится при сбросе.

Карта памяти в режиме стандарт:
0000H - 7FFFH = ROM/RAM
8000H - EFFFH = RAM
F000H - F7FFH = IOPs
F800H - FFFFH = SYSPPA (IOP.#0)
ПЗУ нужно только для старта (там же я держу бэйсик, редактор и асм с дасмом, загружая их оттуда в ОЗУ по расширенным директивам Монитора v4), оно же загружает монитор и ПСПЗУ в родные адреса.

..............

Итак, поменял я 561ИЕ10 в строке на связку 1533ИЕ10. Глюк в цвете фона сразу же пропал! Более того, я выяснил, что за глюк с точками слева и пропавшими точками справа! Оказалось, 555ИР16 (сдвиг) пишет по спаду, а ТМ8 (атрибуты) по фронту. Как итог - полточки рассинхронизации + задержки в логике = почти на точку опаздывал сдвиг относительно атрибутов! Атрибуты были строго на своем месте, а точки опаздывали... Так что этот узел надо переделать. Подобрать более внятные регистры (один на сдвиг и один на хранение атрибутов), желательно полностью синхронные... Кстати, можно сделать бордюр как у спектрума...


Адреса в удобоваримой форме:

Code:
         | MX-mode     | STD-mode (default)
0) KEY   | FFE0...FFE3 | F7E0...F7E3, F800...FFFF
1) PROG  | FFE4...FFE7 | F7E4...F7E7
2) DISK  | FFE8...FFEB | F7E8...F7EB
3) TIMER | FFEC...FFEF | F7EC...F7EF
4) CARD  | FFF0...FFF3 | F7F0...F7F3
5) RSRV  | FFF4...FFF7 | F7F4...F7F7
6) COL   | FFF8...FFFB | F7F8...F7FB
7) MOD   | FFFC...FFFF | F7FC...F7FF

DISK и RSRV  не используется в схеме HardWareMan-a
TIMER и CARD отсутствуют на макетке HardWareMan-a, но есть в схеме fifan-a
в STD режиме порты повторяются каждые 32 байта начиная с F000 до F7FF
в реальном MX вместо CARD расположена вторая область контроллера дисковода

Порт COL:
STD:
   D0 = 0 - включить ROM, 1 - выключить ROM
   D1 = 0 - пятицвет, 1 -  восьмицвет
   D2 = 0 - основная страница ОЗУ и цвета, 1 - теневая страница
MX:
   D0-D3 => цвет фона (IRGB)
   D4-D7 => цвет изображения (IRGB)


При записи в FFFDh (Mode1) учитываются 4 младшие бита, которые записываются по этому адресу (по схеме fifan-a только 3) - они задают страницу дополнительного ОЗУ (в моём варианте страницы от 8 до 15 - это картридж).

Все микросхемы в SOIC (если не указано иного) и нумерация в основном совпадает с хардваремановской:
 SpetSvga-2011
DD1 - 74ACT161
DD2 - 74ACT08
DD3 - 74HCT00
DD4 - 7406 (DIP) - убирается в случае Z80
DD5 - 74HCT161
DD6 - 74HCT00
DD7 - 74HCT08
DD8 - 74HCT74
DD9 - 74HCT4520 (???)
DD10 - 74HCT93
DD11 - 74HCT30
DD12 - 74HCT30
DD13 - 74HCT02
DD14 - 74HCT74
DD15 - 74HCT257
DD16 - 74HCT257
DD17 - 74HCT257
DD18 - 74HCT257
DD19 - CY62128 (128K)
DD20 - CY62256 (32K)
DD21 - 74LS295 (DIP)
DD22 - 74LS295 (DIP)
DD23 - 74HCT273
DD24 - 74HCT175
DD25 - 74HCT257
DD26 - 74HCT245
DD27 - 74HCT573
DD28 - i8080 (DIP) или z80 (PLCC) - в разных панельках
DD29 - M27C512 (64K) - DIP с УФ стиранием
DD30 - TC554001 (512K)
DD31 - 74HCT32
DD32 - 74HCT04
DD33 - 74HCT21
DD34 - 74HCT08
DD35 - 74HCT11
DD36 - 74HCT30
DD37 - 74HCT08
DD38 - 74HCT138
DD39 - i8255 (PLCC)
DD40 - 74HCT74
DD41 - 74HCT74
DD42 - 74HCT74
DD43 - 74HCT04
DD44 - 74HCT86
DD45 - 74HCT00
DD46 - 74HCT02
DD47 - 74HCT244
DD48 - 74HCT161
DD49 - i8255 (PLCC)
DD50 - 74ACT32

_________________
:eugeek: https://twitter.com/Shaos1973


Last edited by Shaos on 10 Jun 2011 07:05, edited 13 times in total.



09 Jun 2011 03:08
Profile WWW
Doomed

Joined: 06 Oct 2006 04:17
Posts: 516
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Shaos wrote:
Code:
         | MX-mode     | STD-mode (default)
0) KEY   | FFE0...FFE3 | F7E0...F7E3, F800...FFFF
1) PROG  | FFE4...FFE7 | F7E4...F7E7
2) DISK  | FFE8...FFEB | F7E8...F7EB
3) TIMER | FFEC...FFEF | F7EC...F7EF
4) CARD  | FFF0...FFF3 | F7F0...F7F3
5) RSRV  | FFF4...FFF7 | F7F4...F7F7
6) COL   | FFF8...FFFB | F7F8...F7FB
7) MOD   | FFFC...FFFF | F7FC...F7FF



Поправка: в STD режиме устройств кроме KEY и PROG не существует. Да ещё COL HardWareMan ввёл для переключения цветов 5/8.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


09 Jun 2011 06:36
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16951
Location: Colorado
Reply with quote
fifan wrote:
Поправка: в STD режиме устройств кроме KEY и PROG не существует. Да ещё COL HardWareMan ввёл для переключения цветов 5/8.


А я так понял, что существует (например COL и MOD)
По COL инфа есть чуть ниже этой таблицы

_________________
:eugeek: https://twitter.com/Shaos1973


09 Jun 2011 06:42
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
fifan wrote:
Поправка: в STD режиме устройств кроме KEY и PROG не существует. Да ещё COL HardWareMan ввёл для переключения цветов 5/8.


А я так понял, что существует (например COL и MOD)
По COL инфа есть чуть ниже этой таблицы

А что COL использует все 4 выделенных байта памяти?


10 Jun 2011 05:45
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16951
Location: Colorado
Reply with quote
Lavr wrote:
Shaos wrote:
fifan wrote:
Поправка: в STD режиме устройств кроме KEY и PROG не существует. Да ещё COL HardWareMan ввёл для переключения цветов 5/8.


А я так понял, что существует (например COL и MOD)
По COL инфа есть чуть ниже этой таблицы

А что COL использует все 4 выделенных байта памяти?

Угу - по любому из 4-х адресов можно писать, как я понял

_________________
:eugeek: https://twitter.com/Shaos1973


10 Jun 2011 06:40
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16951
Location: Colorado
Reply with quote
Возникла мысль сделать TURBOSPETS-85 - пусть в нём будет 8085AH-2, работающий на частоте 5 МГц (с возможностью переключиться в 2.5 МГц?) - соответственно всю хитрую хардвареманскую алхимию по игре с двухфазным синхросигналом для проца надо выкинуть, оставив только растактовки для 800x600@60Hz. Далее - 8085 имеет однофазный тактовый сигнал и чуть более короткие машинные циклы - первый цикл M1 от 4 до 6 тактов (причём ALE всегда есть в первом такте этого цикла) и до 4 дополнительных циклов от M2 до M5 - все по 3 такта (в первом такте таких циклов может быть ALE, а может и не быть - если цикл не подразумевает обращение к памяти). Если случился ALE (по которому стробируются младшие 8 бит адреса с мультиплексированной шины данных), то это означает, что в следующем такте неминуемо случится /WR или /RD (к памяти или портам), который продлится почти 2 такта. Для VGA 800x600@60Hz пиксельклок равен 40 MHz, но т.к. наше графическое разрешение в два раза меньше (прорежено по горизонтали плюс повторение по 2 раза каждой строки), то пиксельклок будет 20 MHz т.е. байты должны вычитываться с частотой 2.5 МГц (собственно как и есть в хардваремановском варианте) или каждый второй такт 8085 - значит так или иначе оно периодически будет попадать на процессорные /WR или /RD - отсюда следует, что и /WR, и /RD при обращении к ОЗУ надо сократить до одного такта и т.к. память у нас быстрая, то это вполне сработает. Значит по приходу каждого ALE мы смотрим есть ли в этом такте чтение из ОЗУ для видео - если есть, то даём процу время только в следующем втором такте (запоминая в регистре прочитанное) т.к. обращение к ОЗУ для видео случится в третьем такте, а если нет видео во время ALE, то чтение из ОЗУ для видео точно будет в следующем втором такте и нам надо дать процу время в третьем такте - вобщем как-то так...

P.S. На самом деле при сбросе ALE по S0 и S1 уже можно понять что будет следом - /WR или /RD (примерно на полтакта раньше самих сигналов). В случае /RD байт можно подготовить заранее (адрес уже известен) и запомнить его в регистре, для последующей отдачи в процессор. А вот в случае /WR ничего в первом такте сделать ещё нельзя т.к. проц ещё не выдал данные для записи (они появятся только в следующем такте).

_________________
:eugeek: https://twitter.com/Shaos1973


04 Mar 2016 20:29
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 16951
Location: Colorado
Reply with quote
На самом деле надо бы сначала оригинальную схему развести, собрать и запустить, а уже потом думать про 8085, а пока у меня всё остановилось 4 июня 2011 года вот в таком состоянии:


Attachments:
SpetSvga2011-06-04.jpg
SpetSvga2011-06-04.jpg [ 60.45 KiB | Viewed 829 times ]

_________________
:eugeek: https://twitter.com/Shaos1973
03 Feb 2018 21:36
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 7 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


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:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.