http://www.spetsialist-mx.ru/index16.html
Самым последним на странице упоминается "Эрик". Под рукой нет того журнала, где он описывался, но о нём я читал. А разве он имел не "Спектрумовские" корни?
И снова "Эрик"...
Moderator: Lavr
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Неее... это мёртворождённый монстрик ближе всё ж к "Специалисту" с Z80.VituZz wrote:Самым последним на странице упоминается "Эрик". Под рукой нет того журнала, где он описывался, но о нём я читал. А разве он имел не "Спектрумовские" корни?
Интересно даже был ли экземпляр "Эрик"-а у кого-либо кроме автора?

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

-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
-
- Doomed
- Posts: 585
- Joined: 19 Feb 2017 03:46
- Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
любительский компьютер ЭРИК возрождён
Прошло чуть больше четверти века и судьба наконец повернулась к ЭРИКУ лицом. Судя по всему первые пять плат установочной партии ЭРИКА изготовлены, сейчас находятся в стадии сборки и отладки, несколько плат уже заработали, остальные спаяны, отлаживаются. Т.о платформа ЭРИКА возродилась !
Хотелось бы, чтобы кто-нибудь из собравших этот компьютер прогнал тест и определил эффективную скорость ЭРИКА. Там клок 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-х оконный диспетчер памяти. Это полезно не только на предмет повышения квалификации малограмотных, но и можно подумать о его использовании в обычном Специалисте с напаянной второй банкой ОЗУ. К тому же кому-нибудь может прийти в голову идея как диспетчер памяти ЭРИКА можно несложно улучшить.
Хотелось бы, чтобы кто-нибудь из собравших этот компьютер прогнал тест и определил эффективную скорость ЭРИКА. Там клок 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.
-
- Fanat
- Posts: 52
- Joined: 22 Mar 2018 20:46
Re: И снова "Эрик"...
На ZX-PK уже замутили Эрика и запускают в железе.
https://zx-pk.ru/threads/29363-vozrozhd ... -quot.html
https://zx-pk.ru/threads/29363-vozrozhd ... -quot.html
-
- Doomed
- Posts: 585
- Joined: 19 Feb 2017 03:46
- Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Хотя 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 байтов. Когда процессор дойдёт до этого места откроется окно с титром и рамкой и сообщением в нём, а по нажатию пользователем любой клавиши закроется.Для реализации работы в окнах пользователь открывает окно строкой OPEN, а по окончании закрывает строкой CLOSE, вот простейший пример, - надо спросить у пользователя уверен ли:
С оконным драйвером, выдав небольшую цепочку байтов на CONOUT, мы можем открыть окно. При этом старое содержимое окна сохраняется в буфере (когда окно закрывают, то исходный экран восстанавливается), окно оцвечивается, рисуется рамка с титром окна. Чтобы открыть окно, программисту достаточно написать всего одну строку с командой OPEN (см.выше). А вот такое простейшее макро реально выполняет открытие окна:
Работа с вертикальными и горизонтальными меню такая же простая. Вызывается функция, ей передаётся адрес структуры меню... и всё, - всё остальное делает интерфейс.
У меня есть оконный драйвер и даже с функциями GUI. Имея такой ROM-BIOS становится совсем легко делать красивые программы. Программист освобождается от забот об интерфейсе. А имея безлимит ПЗУ можно добавить поддержку мыши, окон со скрол-балками и работу с иконками.
Также управляются и профессиональные графические терминалы. Управляют искейп-кодами, а не подпрограммами, во первых, чтобы не вводить дополнительные сущности в имеющиеся DOS, а во-вторых ЯВУ только и умеют выводить байты на CONOUT.
Если бы эмуляторы поддерживали ЭРИК, то надо 3 минуты, чтобы странслировать для ЭРИКА-64 CP/M с TPA в 35.5 кб для работы с дисководом и винчестером. Причём, с хорошим драйвером VT52. Это в ЭРИКЕ удобно, т.к, если я верно понял из журнального описания, есть возможность иметь 16 кб ОЗУ в адресах C000...FFFF. В 16 кб влезет и CP/M и драйвер VT52.
В частности, при написании программ в стиле 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: Select all
LD DE,TFATAL
CALL W_MSSG
Code: Select all
OPEN 9,11,7,28,RED,T_SURE
. . . здесь позиционирование и вывод строки запроса . . .
CALL CLOSEK
AND 5FH
CP 'Y'
Code: Select all
; Создаёт окно, сохраняет его содержимое и чертит рамку окна с титром.
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: Select all
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
Также управляются и профессиональные графические терминалы. Управляют искейп-кодами, а не подпрограммами, во первых, чтобы не вводить дополнительные сущности в имеющиеся DOS, а во-вторых ЯВУ только и умеют выводить байты на CONOUT.
Если бы эмуляторы поддерживали ЭРИК, то надо 3 минуты, чтобы странслировать для ЭРИКА-64 CP/M с TPA в 35.5 кб для работы с дисководом и винчестером. Причём, с хорошим драйвером VT52. Это в ЭРИКЕ удобно, т.к, если я верно понял из журнального описания, есть возможность иметь 16 кб ОЗУ в адресах C000...FFFF. В 16 кб влезет и CP/M и драйвер VT52.
Уже запустили, о том и написал.gdv2002 wrote:На ZX-PK уже замутили Эрика и запускают в железе
-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Re:
Если внимательно почитать тему про Эрик на zxpkru, то можно заметить, что я уже добавил эмуляцию Эрика в свой эмуль. И доработки по перемещению ОЗУ делать не надо, достаточно установить порт палитры в нужное значение. Разве что, драйвер вывода придётся свой (подправленный) использовать, который сразу в D000 выводит.barsik wrote:Если бы эмуляторы поддерживали ЭРИК
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Doomed
- Posts: 585
- Joined: 19 Feb 2017 03:46
- Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Посмотрю в ближайшие дни, хотя для программирования ЭРИК неудобен. А схема его очень сложная и непонятная, в отличие от Специалиста, и начерчена не для людей.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) не позволяют использовать имеющиеся процедуры работы с дискетой.
Возможно имеется ввиду, что палитрой можно отключить вывод из экранной плоскости с адреса 9000, сделав так, чтобы картика формировалась только второй плоскостью с D000. Это вообще-то несвойственно палитрам. Палитра обычно перекодирует логический цвет в физический. Видимо какие-то необычные палитры в ЭРИКЕ. Но если перевод моноэкрана на D000 не требует коррекций схемы, это удачно.b2m wrote:доработки по перемещению ОЗУ делать не надо, достаточно установить порт палитры в нужное значение.