nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 18 Dec 2018 18:10



Reply to topic  [ 37 posts ]  Go to page 1, 2, 3  Next
Аюша-Z80 - СР/М-совместимый компьютер 
Author Message
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 286
Location: Ставрополь
Reply with quote
Многолетняя эпопея в принципе закончена процентов так на 98%, можно и поделиться результатами. Сначала экскурс, если кому интересно.
Началом истории была сборка контроллера Аюша на процессоре 6502. После достаточно успешной эксплуатации недостатки в виде отдельного терминала с 40 символами и неспешный магнитофон вгоняли настроение в грусть. Плюс необходимость адаптации многих программ под железо - и стало совсем скучно. Необходима была Ось. А её для 6502 практически нет (А65 пропускаем а на AppleDOS не засматриваемся). Было решено делать СР/М-совместимую машинку, ибо софта под СР/М ящик, воз и маленькая тележка на выбор.
Конструкция на процессоре ВМ80 далее одной платы не пошла ( http://www.qsl.net/rw6hrm/html/8080.htm ) - проц по сути оказался не нужный ни разработчикам ПО, ни самому Интелу, большинство софта писано под Z80, на чём и остановился. Далее, народ просил заменить 6850 на 580ВВ51 - также решено было сделать. Вся конструкция должна быть однокорпусной, т.е. нужна была видеокарта - она тоже была сделана ( http://www.qsl.net/rw6hrm/html/8bitdisp.htm ).
Клавиатура осталась ASCII, http://www.qsl.net/rw6hrm/html/ascii_kbrd2.htm . Потому что а) она уже была собрана, б)ибо канонично, в)поддерживается СР/М искаропки. Ну разве что немного расширил возможности. Лентяи могут вместо неё использовать переходники PS/2-ASCII для АТ-клав, коих можно найти в инете.
Дисковая система - CF-карта или жёсткий диск с подключением по IDE. Переходники (даже IDE-SD/MMC) поддерживаются. Потому что а)так проще, б)уже было народом сделано и в)выбор носителей играет рояль.
Таким образом за основу были взяты блоки авторства Дэрила Риктора и Гранта Сирла. Результат описан тут http://www.qsl.net/rw6hrm/html/z80.htm , очень неспешно будет дополняться.
Что получилось в итоге:
- процессор Z80. Схемное решение позволяет использовать различные модификации процессора с различной тактовой частотой, доступны 2,457 МГц (Z80, Z80A) и 4 МГц (Z80B), возможно применение тактовой частоты 8 МГц (Z80Н);
- второй задающий кварцевый генератор для последовательного порта и как дополнительный для процессора, 2.457 МГц;
- 64К ОЗУ. В режиме СР/М для ОС доступен весь объем памяти;
- 4х16К ПЗУ. В режиме СР/М отключается;
- расширенная ASCII-клавиатура, позволяющая вводить латинские и кириллические символы, совпадающая по раскладке со стандартными современными клавиатурами. Альтернативная кодовая таблица (СР866);
- последовательный порт, одна скорость 9600 бит/сек (на базе КР580ВВ51);
- три параллельных двунаправленных восьмибитных порта (на базе 82С55);
- вывод на телевизионный дисплей, обеспечиваются режимы 80х25, 40х25, 80х12, 40х12, графика 100х160 поточечно или "спрайтово", совместно с любым текстовым режимом, а также микс из текстовых режимов и графики (построчно). Альтернативная кодовая таблица (СР866). Дисплейный узел не занимает адресов в ОЗУ, являясь устройством вывода. По управлению совместим с VT52 и одной командой с VT100;
- внутренняя дисковая память на базе Compact Flash объёмом 128 Мб (16 логических дисков на носителе).
Работает практически всё ПО, что запускал - DDT, DBase, WordStar (с некоторыми оговорками), табличные редакторы,.. Бейсик поставил BBCBASIC (скачал из проекта N8VEM) - он наголову выше майкрософтовских поделок (если, конечно, мы не собираемся делать из него .СОМ-овские файлы). Можно поморгать светодиодиками или пощёлкать релюшками. Предусмотрены два варианта загрузки - через простой монитор с выбором активной консоли (позволяет запускать не совместимые с СР/М программы) и быстрый, сразу запускающий ось на ТВ-выходе.
Всё расположено в корпусе от бывшего терминала (который ушёл в историю) вместе с блоком питания.
Если что-то и будет дополнительно, то максимум магнитофонный порт (вещь нужная, однако, но без поддержки стандартных аудиодевайсов, исключительно Direct Saturation).
Лишний раз акцентирую внимание: конструкция собиралась из тех элементов, что были под руками, с максимальным использованием. Если какой-либо узел вызывает при повторении сомнение, то можете заменить его на иной конструктивный аналог (если понимаете его работу). Бесовство в виде транзисторных задающих генераторов можете заменить на монолитные чипы, если есть в наличии. Печатная плата не разрабатывалась (а хотелось бы). Сорцы (если нужно) выложу позже, ибо нужно немного откомментить.

Просто поделился, без меркантильности.


Last edited by rw6hrm on 14 Aug 2018 01:20, edited 2 times in total.



04 Aug 2018 12:09
Profile WWW
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 286
Location: Ставрополь
Reply with quote
Кстати говоря, никто не подскажет, как пропатчить DDT, чтобы не забирал на себя прерывание по адресу 0038Н, перевести его, скажем, на 003ВН?.. barsik как-то упомянул об этом мельком, а сорцы DDT пока не попадались.
Просто связка ВВ51+Z80 в режиме прерываний IM2 не желает особо работать.
Да-да, не поставил Z80SIO, а то опять бы начался вой на тему "не достать"...


06 Aug 2018 02:40
Profile WWW
Doomed

Joined: 25 Aug 2009 08:02
Posts: 362
Location: Москва
Reply with quote
rw6hrm wrote:
Просто связка ВВ51+Z80 в режиме прерываний IM2 не желает особо работать.

Для IM2 какой-никакой контроллер прерываний нужен, у меня на это место шикарно встал КР1818ВН19 (Am9519), связка работает, от ВВ51 две линии прерывания, прием и передача. Но - лишний корпус и удаление от минимализма.


06 Aug 2018 03:33
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 286
Location: Ставрополь
Reply with quote
Если бы поставил SIO, то внутри него как раз есть регистр, в который записывается часть адреса п/п прерывания (вторая часть жёстко сидит в бивисе). Да, ставить ещё одну м/с желания никакого ;)
Сорцы нашёл, но вот строки, в которых как раз указан адрес 0038Н и его название, плохо просканирована. Печальбеда...


06 Aug 2018 04:29
Profile WWW
Doomed

Joined: 25 Aug 2009 08:02
Posts: 362
Location: Москва
Reply with quote
А этот сайт не поможет? (возможно, ссылка CP/M 2.2 ORIGINAL SOURCE)


06 Aug 2018 05:47
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 286
Location: Ставрополь
Reply with quote
Было, смотрел, спасибо. Код в архиве отличается от оригинального (у меня сканы с печатью от DR), хотя по большому счёту совпадает. Попробую оттранслировать...


06 Aug 2018 06:16
Profile WWW
Doomed

Joined: 01 Oct 2007 11:30
Posts: 360
Location: Ukraine
Reply with quote
Уточню. У вас IM2 работает в режиме считывания адреса прерывания с шины (0хFF) и видимо эта табличка из 257 бай находиться где-то под потолком ОЗУ?

По делу. Отладчики в реале они такие. Нужен некий код (внедренный от отладчика) и железобетонная точка входа в этот код. Просто слегка разбирался, как работает удаленный отладчик от Hitech-C для Z80.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


06 Aug 2018 10:21
Profile
Doomed

Joined: 01 Oct 2007 11:30
Posts: 360
Location: Ukraine
Reply with quote
Как обычно читаю последнее сообщение :(

Quote:
К сожалению, 100%-совместимости с требованиями СР/М не получается, поскольку используется режим прерываний IM1, поэтому некоторые программы, забирающие себе прерывание по адресу 0038Н, "вешают" систему (DDT и его производные, к примеру).


Но тогда вообще не понятно. Все так работают, наверное философия минимализма (по денге не дорого). IM1 - только 38Н. Любой продвинутый девайс не будет работать. И как обычно все эти траблы разруливаются через биос, MSX этому пример. Это вообще вершина минимализма и стандарта через многие годы (83г.- 92г.). Хотя с каждым годом стандарту становилось все хуже и хуже :( Самое очевидное по денге запилить стандарт от 83г. становилось все сложней и сложней от чего все были в минусе.

Я к чему надо-бы к Аюша-Z80, для начала прикрутить контроллер прерываний, ну это так :)

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


06 Aug 2018 10:52
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 286
Location: Ставрополь
Reply with quote
А зачем контроллер прерываний? Аппаратное прерывание одно, на ввод символа без разницы откуда (клава или СОМ-порт). Других не планируется.
DDT просто прописывает в 0038Н своё значение программного (а не аппаратного) прерывания (и даже не прерывание это, а некая точка рестарта)- как тут контроллер спасёт? Ответ: никак.
Остальные программы такой фигнёй не страдают, потому и не кусают.
Так, по теме: где поправить уже нашел, осталось понять, как из трёх асмовских исходников сделать один выходной файл... Использование "+" чот не катит...


06 Aug 2018 11:23
Profile WWW
Doomed

Joined: 01 Oct 2007 11:30
Posts: 360
Location: Ukraine
Reply with quote
Правленый ddt где-то лежит в сети под rst38. Это не вопрос и пройденный этап.

По философии прерывания от Zilog «нитка» (от выхода до входа. Эту штуку моя кросс-плата поддерживает) - хрень. Делать надо видимо по уму как у Intel.

А так. Ну не знаю. Возможно, захочется чего-то. Со временем :rotate:

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


06 Aug 2018 11:39
Profile
Doomed

Joined: 01 Oct 2007 11:30
Posts: 360
Location: Ukraine
Reply with quote
rw6hrm wrote:
Так, по теме: где поправить уже нашел, осталось понять, как из трёх асмовских исходников сделать один выходной файл... Использование "+" чот не катит...

Там видимо патч в 3-хода (код-а). Из трех исходников не понятного происхождения не надо ничего собирать :)

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


06 Aug 2018 11:48
Profile
Doomed

Joined: 25 Aug 2009 08:02
Posts: 362
Location: Москва
Reply with quote
rw6hrm wrote:
А зачем контроллер прерываний? Аппаратное прерывание одно, на ввод символа без разницы откуда (клава или СОМ-порт). Других не планируется.

Тогда, возвращаясь к режиму IM2. Логично предположить, что вектор прерывания читается как 0FFh с шины. Это если нет ложного чтения в цикле INTA (а оно скорее всего так, потому что исполнительные стробы RD и WR неактивны, а по IORQ просто так ничего не читается) и шина данных подтянута. Проц прекрасно справляется и с таким вектором, нужно только, чтоб страница была не 0FFh, а любая другая. Если и страница, и вектор 0FFh, то адрес обработчика прочитается из ячеек 0FFFFh и 0, что неудобно и скорее всего разрушительно. Если, например, страница 0FEh, то адрес обработчика расположен по адресу 0FEFFh, занимая ячейки 0FEFFh и 0FF00h.


06 Aug 2018 14:02
Profile
Novelist

Joined: 10 Mar 2018 13:50
Posts: 25
Reply with quote
в схемах допущена путаница с выборкой устройств ВВ. В комментариях к схеме указано 00-07 UART хотя к ВВ51 идет сигнал CS1. В дисплейный модуль идет сигнал CS0 хотя в тех же комментариях указано 08-0F. В схеме дисплейного модуля указан вход с основной платы как СS1.

В статье указано:
00Н-07Н - дисплей и клавиатура
08Н-0FH - 580ВВ51.

Я так понимаю правильно все таки в статье?


12 Aug 2018 10:46
Profile
Maniac
User avatar

Joined: 13 Nov 2007 12:09
Posts: 286
Location: Ставрополь
Reply with quote
Да, правильно в статье. Рисунок буду переделывать, поскольку счас воюю с введением режима прерываний IM2, что будет более правильным для ОСи. Жаль, что ВВ51 о таком режиме не знает...
За замечание спасибо.


12 Aug 2018 12:22
Profile WWW
Novelist

Joined: 10 Mar 2018 13:50
Posts: 25
Reply with quote
rw6hrm wrote:
Да, правильно в статье. Рисунок буду переделывать, поскольку счас воюю с введением режима прерываний IM2, что будет более правильным для ОСи. Жаль, что ВВ51 о таком режиме не знает...
За замечание спасибо.


Для подключения ВВ55
RES -> RES (без инверсии)
CS -> CS6
WR -> IOWR
RD -> IORD
A0 -> A0
A1 -> A1
ну и шина данных.
Поправьте если не прав.


12 Aug 2018 13:46
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 37 posts ]  Go to page 1, 2, 3  Next

Who is online

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