nedoPC.org

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



Reply to topic  [ 10 posts ] 
И снова "Эрик"... 
Author Message
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
http://www.spetsialist-mx.ru/index16.html

Самым последним на странице упоминается "Эрик". Под рукой нет того журнала, где он описывался, но о нём я читал. А разве он имел не "Спектрумовские" корни?


22 Oct 2011 01:57
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Самым последним на странице упоминается "Эрик". Под рукой нет того журнала, где он описывался, но о нём я читал. А разве он имел не "Спектрумовские" корни?

Неее... это мёртворождённый монстрик ближе всё ж к "Специалисту" с Z80.
Интересно даже был ли экземпляр "Эрик"-а у кого-либо кроме автора? :wink:


22 Oct 2011 02:02
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
За давностию лет уже не всё помню, но где-то встречалась мне переписка автора с кем-то. Так вот этот "кто-то" довольно агрессивно нападал на автора за его творчество и за возможное "перетягивание одеяла" пользователей :). Из прочтения этой переписки у меня осталось впечатление, что работающего варианта не было даже у автора...


22 Oct 2011 02:15
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Скачал и почитал. Помню, что посматривал я на него после публикации с разными крамольными мыслями :). Но до дела не дошло, потому как "Орион" уже был.
Даже и не предполагал, что у "Спеца" было столько последователей.


22 Oct 2011 05:29
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Старый топик про Эрика:

http://www.nedopc.org/forum/viewtopic.php?t=8766

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


22 Oct 2011 10:03
Profile WWW
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Прошло чуть больше четверти века и судьба наконец повернулась к ЭРИКУ лицом. Судя по всему первые пять плат установочной партии ЭРИКА изготовлены, сейчас находятся в стадии сборки и отладки, несколько плат уже заработали, остальные спаяны, отлаживаются. Т.о платформа ЭРИКА возродилась !

Хотелось бы, чтобы кто-нибудь из собравших этот компьютер прогнал тест и определил эффективную скорость ЭРИКА. Там клок Z80 4 МГЦ, но применяется WAIT и идея синхронизации CPU и видеочасти - оригинальная, видеоадаптер делает два /CAS, при одном /RAS.

Без хотя бы ещё одной банки ОЗУ ЭРИК мало интересен для программирования. Так как без доп.ОЗУ, не считая CGA-цвета, это тот же Специалист, из плюсов имеющий лишь доступ в дополнительное ОЗУ в под-ПЗУ-шечной области, плюс возможность включать ещё 3 окна ПЗУ по 16К с 0000, 4000 и 8000. Но главным преимуществом ЭРИКА над Специалистом является скорость, что делает ненужными всякие химические методы ускорения обмена с КНГМД. Это позволяет использовать стандартный КНГМД на ВГ93, а возможно и типовой набор дискетных подпрограмм.

Для программистов ЭРИК ценен и интересен наличием в нём процессора Z80. Кажется это первый ZX-несовместимый компьютер в стране на процессоре Z80 для которого разработали печатную плату (следующим стал ОРИОН-ПРО, но это произошло намного позднее, лишь в 1999 году). Неизвестно были ли произведены платы ЭРИКА в своё время; если маленькая опытная партия и была, то позже публикации, т.к в разводке печати обнаружены ошибки.

В архитектуре ЭРИКА с экраном на 9000 можно работать, как и в Специалисте из ПЗУ C000, а с второй плоскостью экрана на D000 нужно работать из окон ПЗУ включённых ниже или лучше кодом в ОЗУ располагающимся в том же сегменте экрана D000. Добавив однобитовый порт (взяв под него ненужный ТМ8 регистра банок) можно было бы монохромный экран программно переключать на D000, что дало бы шанс на жизнь и 64-х килобайтовой версии ЭРИКА, т.к позволяло бы иметь 48 кб TPA в CP/M (а сама CP/M в под-ПЗУ-шечном ОЗУ или в ПЗУ С000).

Чуть более сложно тот же результат для ЭРИКА-64 с единственной банкой можно достичь, если ввести вот такую доработку. Это позволит иметь DOS с TPA на 48 кб, если эту DOS прошить в ПЗУ включаемом в окне C000.

Но концепция ЭРИКА изначально рассчитана на расширение ОЗУ хотя бы до 192 кб. Вероятно разумным вариантом добавления ОЗУ в ЭРИК стала бы напайка второй банки РУ5 вторым этажом. Это будет совсем просто, если схема ЭРИКА уже формирует готовый /CAS для второй банки. Если же нет, то придётся добавить ещё один TTL-корпус формирующий /CAS0 и /CAS1. При добавке всего 128К дополнительного ОЗУ или ПЗУ (в страницы 2 и 3) в добавок к имеющимся одной банке ОЗУ и одной банке ПЗУ, не нужна установка ТМ8.

Было бы интересно, если бы кто-нибудь разбирающийся в схемотехнике сумел бы выделить из схемы ЭРИКА его 4-х оконный диспетчер памяти. Это полезно не только на предмет повышения квалификации малограмотных, но и можно подумать о его использовании в обычном Специалисте с напаянной второй банкой ОЗУ. К тому же кому-нибудь может прийти в голову идея как диспетчер памяти ЭРИКА можно несложно улучшить.


Last edited by barsik on 29 Nov 2019 07:07, edited 4 times in total.



24 Nov 2019 22:51
Profile
Fanat

Joined: 22 Mar 2018 20:46
Posts: 52
Reply with quote
На ZX-PK уже замутили Эрика и запускают в железе.
https://zx-pk.ru/threads/29363-vozrozhd ... -quot.html


25 Nov 2019 04:34
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
Хотя CGA-цвет хуже для игр (из-за малого числа цветов), но для системных программ этого хватает. Попиксельный цвет позволяет развитую графику, при динамике графики не возникает никаких искажений цвета знакоместа (клешинга), что встречается в некоторых играх ZX.

В частности, при написании программ в стиле GUI цвет с побайтовым разрешением намного хуже, чем попиксельный. Как плавно перемещать цветную иконку, если цвет байтовый? Поэтому в Apple-II и Commodore-64 GUI - монохромный.

Хотя автор этого не понял, архитектура ЭРИКА не ограничивает тупым использованием стандартного ROM-BIOS Специалиста размещаемого в ПЗУ C000...CFFF. И нет смысла дорабатывать код ПЗУ Специалиста под архитектуру ЭРИКА. Гораздо разумнее оставить код ПЗУ Специалиста для программ Специалиста, а для самого ЭРИКА сделать развитый ROM-BIOS с объёмом в 16 кб специально под его архитектуру и процессор Z80.

Т.к в ЭРИКЕ-64 ПЗУ как грязи, то не жалко истратить 4 кб на хранение ROM-BIOS-а Специалиста. При включении режима Специалиста включается монохром и код ROM-BIOS Специалиста загружается в ОЗУ C000...CFFF. У меня в начале 90-тых так было сделано в Специалисте на Z80 (чтобы было удобнее менять код ROM-BIOS), ПЗУ было отключаемым и стояло с 0, по сбросу код грузился на C000. Такая архитектура удобна для CP/M. Защищать эту область ОЗУ от затирания не потребовалось, ни одна программа не портила код C000...CFFF.

Ещё по поводу ROM-BIOS. Как я и утверждал с 1988 года для Специалиста (ОРИОНА и любой другой графической машины с байтовым экраном) в ПЗУ должен использоваться драйвер шрифта 8*10 (а лучше 8*9). А ещё лучше, чтобы это был не просто шрифт, а полноценный цветной оконный драйвер. И по возможности даже с поддержкой элементов GUI, а точнее меню (вертикальных и горизонтальных). Что означает цветной ясно, а оконность драйвера означает, что среди искейп-команд выводимых на консоль есть команды для работы с окнами и меню.

Например, чтобы вывести в окне сообщение достаточно всего двух команд ассемблера (хотя всего один CALL расширяется десятком макрокоманд, и исполняются десятки подпрограмм оконного BIOS объёмом в многие сотни байт). Но программисту заботиться не надо. Расход труда программиста всего в две строки текста, а в ОЗУ это отнимает всего ~20 байтов. Когда процессор дойдёт до этого места откроется окно с титром и рамкой и сообщением в нём, а по нажатию пользователем любой клавиши закроется.
Code:
        LD      DE,TFATAL
        CALL    W_MSSG
Для реализации работы в окнах пользователь открывает окно строкой OPEN, а по окончании закрывает строкой CLOSE, вот простейший пример, - надо спросить у пользователя уверен ли:
Code:
        OPEN    9,11,7,28,RED,T_SURE
. . . здесь позиционирование и вывод строки запроса . . .
        CALL    CLOSEK
        AND     5FH
        CP      'Y'
С оконным драйвером, выдав небольшую цепочку байтов на CONOUT, мы можем открыть окно. При этом старое содержимое окна сохраняется в буфере (когда окно закрывают, то исходный экран восстанавливается), окно оцвечивается, рисуется рамка с титром окна. Чтобы открыть окно, программисту достаточно написать всего одну строку с командой OPEN (см.выше). А вот такое простейшее макро реально выполняет открытие окна:
Code:
; Создаёт окно, сохраняет его содержимое и чертит рамку окна с титром.

OPEN    MACRO   UP,LEFT,HIGHT,WIDTH,COLOR,TITR
        RST     18H
        defb    1BH,9AH,UP,LEFT,HIGHT,WIDTH
        defb    1BH,9DH
        defb    1BH,55H,6,COLOR,1BH,92H,0
        CALL    S_MONO
        ZAGOL   TITR
        ENDM
Работа с вертикальными и горизонтальными меню такая же простая. Вызывается функция, ей передаётся адрес структуры меню... и всё, - всё остальное делает интерфейс.
Code:
M_NAMS: defb    'A'
        defb    'B'
        defb    'C'
        defb    'D'
        defb    'E'

M_HKOO: defb    4
MWIDTH: defb    21
M_HOFS: defb    0       ; Смещение начала пунктов меню слева
M_VOFS: defb    1       ; смещение текстов в меню от верха  окна
PNKLEN: defb    1       ; длина сообщений в меню
PUNKTS: defb    5       ; Число пунктов меню
M_STEP: defb    4       ; PNKLEN+3
У меня есть оконный драйвер и даже с функциями GUI. Имея такой ROM-BIOS становится совсем легко делать красивые программы. Программист освобождается от забот об интерфейсе. А имея безлимит ПЗУ можно добавить поддержку мыши, окон со скрол-балками и работу с иконками.

Также управляются и профессиональные графические терминалы. Управляют искейп-кодами, а не подпрограммами, во первых, чтобы не вводить дополнительные сущности в имеющиеся DOS, а во-вторых ЯВУ только и умеют выводить байты на CONOUT.

Если бы эмуляторы поддерживали ЭРИК, то надо 3 минуты, чтобы странслировать для ЭРИКА-64 CP/M с TPA в 35.5 кб для работы с дисководом и винчестером. Причём, с хорошим драйвером VT52. Это в ЭРИКЕ удобно, т.к, если я верно понял из журнального описания, есть возможность иметь 16 кб ОЗУ в адресах C000...FFFF. В 16 кб влезет и CP/M и драйвер VT52.
gdv2002 wrote:
На ZX-PK уже замутили Эрика и запускают в железе

Уже запустили, о том и написал.


25 Nov 2019 04:45
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post Re:
barsik wrote:
Если бы эмуляторы поддерживали ЭРИК

Если внимательно почитать тему про Эрик на zxpkru, то можно заметить, что я уже добавил эмуляцию Эрика в свой эмуль. И доработки по перемещению ОЗУ делать не надо, достаточно установить порт палитры в нужное значение. Разве что, драйвер вывода придётся свой (подправленный) использовать, который сразу в D000 выводит.

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


25 Nov 2019 11:53
Profile WWW
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
b2m wrote:
я уже добавил эмуляцию Эрика в свой эмуль
Посмотрю в ближайшие дни, хотя для программирования ЭРИК неудобен. А схема его очень сложная и непонятная, в отличие от Специалиста, и начерчена не для людей.

Чтобы странслировать даже простейший вариант CP/M для ЭРИКА-64 надо чётко уяснить архитектуру и работу конфигурационных портов. И из-за отличия КНГМД это так просто не сделать. Хотя если эмулятор поддерживает ещё 2 банки ОЗУ, то не очень сложно сделать CP/M имеющую только VDISK в 128К.

В журнальной статье много противоречий и неясны нюансы. Сначала написано, что битами D6,D7 порта $F1, точнее битом D6, при D7 всегда равном 1, определяют ОЗУ или ПЗУ включено в области выше C000. Если бит D6=0, то включено ОЗУ, при 1 соответственно ПЗУ. Аналогично и с другими окнами. В тексте написано, что адрес А17, который для каждого окна задаётся старшим битом двойки битов, управляет тем, включено ли в окне стоящее на плате реальное ОЗУ/ПЗУ или внешнее мифическое ОЗУ/ПЗУ.

Чётко словами указано, что при A17=1 включается ОЗУ/ПЗУ имеющееся на плате. Значит, согласно тексту, чтобы работать с ОЗУ и ПЗУ стоящими на плате старшие биты всех двоек должны быть равны 1. Но тут же автор пишет, что для базовых конфигураций он выдаёт в порт $F1 управляющий окнами числа $14 и $15, что по побитово и по двойкам 00.01.01.00 и 00.01.01.01. Здесь не только старшие биты не 1, но есть и числа 00.

Автор чётко и ясно пишет, что чтобы выбиралось ОЗУ двойка соответствующая конкретному окну д.быть 10B. Но среди приведённых двоек нет ни одной двойки равной 10. Можно думать, что надо или переставлять биты или инвертировать их.

По логике из кодов $14 и $15 можно сделать вывод, что наоборот, вопреки тексту старшие биты двоек д.быть =0. И в выборе ОЗУ/ПЗУ, снова вопреки тексту, ноль соответствует ПЗУ, а 1 - ОЗУ. Это сразу производит неприятное впечатление, т.к с такими грубыми ошибками в серъёзном техническом тексте нельзя описывать самую главную часть архитектуры.

Рисунок 4 невразумительный, ничего не поясняет. С учётом ошибки автора с инверсией A17 (что при A17=1 читаются банки 2 и 3) регистр RVV (записываемый по OUT $F0) включает вместо 128 Кбайт отсутствующих банок 2 и 3 кусок внешней памяти в 128К в соответствии с номером в регистре RVV. Вроде бы можно думать, что диспетчер с окнами будет работать и на ОЗУ 32 мб. Но в статье никак не указано, как подключать эту дополнительную память. Какие сигналы на неё идут? Нет схемы доп.ОЗУ.

ПЗУ в области C000 включается только на 14К, а в области F800...FFFF стоит ППА клавиатуры. Но, хотя сдуру это даже не упомянуто, но по логике при включении в этом окне ОЗУ ППА на F800 исчезает. Иначе нельзя вывести на весь экран D000 в 12 кб. Автор думает, что ППА в Специалисте стоит на F800. Он даже не посмотрел в исходники ROM-BIOS-ов, иначе бы знал, что ППА клавиатуры стоит на FF00, а область F800...FEFF предназначена для доп.портов. Получается, что для работы с клавиатурой надо включать ПЗУ с C000.

Про цвет тоже ни хрена непонятно. Написано, что есть 4 цвета для чего используются 2 плоскости. А как формируется цвет пикселя не написано (и по схеме понять сложно). Это м.быть как в ОРИОНЕ, где два бита задающие цвет пикселя берутся по одному из каждой экранной плоскости. А может быть как в CGA и ИРИШЕ, где два соседних бита экранного байта задают цвет.

Кто бы все нюансы ЭРИКА объяснил, расписал, чтобы всё было понятно. Скорости ЭРИКА для КНГМД на ВГ93 хватит и КНГМД на ВГ93 по логике одинаковые, но биты регистра управления автор ЭРИКА взял неизвестно откуда. Не из схем КНГМД Корвета, Вектора, Львова и с Beta-диском ZX тоже (кажется) не совпадает. Это (а также команды OUT вместо LD) не позволяют использовать имеющиеся процедуры работы с дискетой.
b2m wrote:
доработки по перемещению ОЗУ делать не надо, достаточно установить порт палитры в нужное значение.
Возможно имеется ввиду, что палитрой можно отключить вывод из экранной плоскости с адреса 9000, сделав так, чтобы картика формировалась только второй плоскостью с D000. Это вообще-то несвойственно палитрам. Палитра обычно перекодирует логический цвет в физический. Видимо какие-то необычные палитры в ЭРИКЕ. Но если перевод моноэкрана на D000 не требует коррекций схемы, это удачно.


26 Nov 2019 10:58
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 10 posts ] 

Who is online

Users browsing this forum: No registered users and 7 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.