PDA

Просмотр полной версии : Орион-2010. Hard & Soft



Страницы : 1 [2] 3 4 5

Ewgeny7
26.08.2009, 22:05
Так теперь CPM запускается или нет?
Завтра скажу ;) Винчестер и блок питания 5/12в на работе.

Все что я писал постом ранее к fullram не относится!
Да, я правильно понял. И даже правильно сделал. Но допустил косяк в управлении страницей "2". Ведь это в ней работает загрузчик с винчестера?

Error404
26.08.2009, 22:20
Завтра скажу ;) Винчестер и блок питания 5/12в на работе.


Поэтому я пользую ноутбучные. Там только +5.



Да, я правильно понял. И даже правильно сделал. Но допустил косяк в управлении страницей "2". Ведь это в ней работает загрузчик с винчестера?

Считая с 0?

Если считая с 0, то загрузчик CPM, тест ОЗУ, ядро CPM (BDOS и BIOS), анализатор стартапных файлов (типа config.sys), загрузчик драйвера консоли - все они работают в странице 1.
В странице 2 (третьей по счету) работают CCP (console commands processor) и стандартные приложения CPM - там TPA (transient program area). Т.е. там что-то работает уже после того, как всё запустилось.

Ewgeny7
26.08.2009, 22:37
почему-то не работает программа AVI. раньше работала.
Ищу глюки дальше.

Ewgeny7
27.08.2009, 16:43
Что-то вылечилось, да видать не всё. Стартует с винта как и прежде, до вывода партиций. Только теперь после нажатия Ентер читается винт секундочку, ждем секунд 10, и раздается непрерывный звуковой сигнал, а на экране возникает ндпись "error".
Буду мудрить дальше в выходные.

Error404
28.08.2009, 11:07
Что-то вылечилось, да видать не всё. Стартует с винта как и прежде, до вывода партиций. Только теперь после нажатия Ентер читается винт секундочку, ждем секунд 10, и раздается непрерывный звуковой сигнал, а на экране возникает ндпись "error".
Буду мудрить дальше в выходные.

В меню партиций были обе надписи именно "ALTAIR-GAMES-ZX", "ALTAIR-GAMES-OLD"?
Или что-то другое (типа мусор)?

Печатается только "ERROR" и пищит? Если это так с точностью до буквы, то это в BOOT-sectore при загрузке одного из секторов произошла физическая ошибка (т.е. привод в ходе чтения или позиционирования вернул ошибку), другого такого сочетания не должно быть.
Т.е. или диск кривой, или в алгоритме что-то надо подбирать (и не понятно что - там все задержки и длительности импульсов должны быть с запасом).
Естественно, если глюки в эмуляции адресации ОЗУ, то при выполнении кода может быть что угодно, не обязательно старый дохлый винт.

Ewgeny7
28.08.2009, 14:39
В меню партиций были обе надписи именно "ALTAIR-GAMES-ZX", "ALTAIR-GAMES-OLD"?
Или что-то другое (типа мусор)
Это всё чисто/чётко/красиво :)

то это в BOOT-sectore при загрузке одного из секторов произошла физическая ошибка (т.е. привод в ходе чтения или позиционирования вернул ошибку), другого такого сочетания не должно быть.
Почему тогда пищит не при чтении винта непосредственно, а спустя десяток секунд по окончании чтения?
Ладно, буду рисовать на бумажке всю раскладку памяти во всех режимах и перепроверять с прошивкой.
До сих пор не проверял fullram как следует. Exolon чтоли для этого использовать?

Error404
28.08.2009, 15:50
Это всё чисто/чётко/красиво :)
Почему тогда пищит не при чтении винта непосредственно, а спустя десяток секунд по окончании чтения?


Это тайна, покрытая мраком. :)
Не исключено, что если код срубается из-за памяти, то и в подпрограмму вывода на экран "ERROR" и пищания оно проваливается случайно.
Когда буду во Владимире (это не раньше чем через пару недель), попробую прикрутить к реалу HDD вместо CompactFlash (сейчас у меня работает c CF). Кстати, а у тебя провод от ВВ55 к HDD длинный?



Ладно, буду рисовать на бумажке всю раскладку памяти во всех режимах и перепроверять с прошивкой.
До сих пор не проверял fullram как следует. Exolon чтоли для этого использовать?

Памятка (обобщая все о чем уже говорили):



FFFF|=================|
|`````````````````|
|``ROM-BIOS area``|
F800|`````````````````|
|``````Ports``````|
F400|`````````````````|
| некоммутируемое |
| портом "F9" ОЗУ |<------------------ !!! Но при FB/d5=1 эта область
F000|-----------------|<-----\ перестает быть некоммутируемой
| Segment 3 | | и тогда порт "F9" действует на
| | | все адресное пространство 64 К
C000|=================| |
| | | Эта область переключается портом "F9"
| Segment 2 | | То есть при FB/d7=FB/d5=0 область уп-
| | |----- равляемая портом "F9" не включает 16К
8000|=================| | памяти, входящие в Segment 0 и таким
| | | образом порт F9 управляет окном в 48К
| Segment 1 | | Но при FB/d7=1 порт F9 коммутирует на
| | | все адресное пространство в 60 Кбайт
4000|=================|<-----/
| | Segment 0 соответствует окну диспетчера Z80CARD-2
| Segment 0 | При включенном диспетчере номер блока памяти дос-
| | тупного в этом сегменте, определяется портом FBh.
0000|=================|

Ewgeny7
28.08.2009, 22:57
Памятка (обобщая все о чем уже говорили):
Спасибо, но у мну структура сложнее. Одним рисунком не обойдешся :)

---------- Post added at 22:57 ---------- Previous post was at 22:57 ----------


Кстати, а у тебя провод от ВВ55 к HDD длинный?
Стандартный.

Error404
28.08.2009, 23:53
Стандартный.

Информативно. :D
Может, попробовать 1/3 от стандартного? Все же ВВ55 да на длинных параллельных проводах, да на больших частотах...

Ewgeny7
28.08.2009, 23:56
Информативно.
ну, обычный, на три разъема.

Error404
29.08.2009, 00:16
ну, обычный, на три разъема.

Под рукой такого нет, но на память - там не меньше 40 см.
Возможно что-то решит короткий кабель - сантиметров 15.

Кстати, "error 46" - это скорее всего "ошибка ECC: некорректируемая ошибка данных"

Error404
29.08.2009, 16:03
Евгений, когда планируешь опубликовать разработанное?
Может, параллельно кто-то поможет печатку развести...

Ewgeny7
29.08.2009, 16:23
Евгений, когда планируешь опубликовать разработанное?
Может, параллельно кто-то поможет печатку развести...
Ну, у меня полюбому перерыв на неделю выходит. Тестирую VGA и собираю Phoenix.
Чтобы публиковать, нужно схему принципиальную нарисовать. В общем-то, добавляться уже ничего не будет, только убавляться (модуль клавиатуры).
А значит, стоит ли разводить печатку? :)

Error404
29.08.2009, 16:49
Ну, у меня полюбому перерыв на неделю выходит. Тестирую VGA и собираю Phoenix.
Чтобы публиковать, нужно схему принципиальную нарисовать. В общем-то, добавляться уже ничего не будет, только убавляться (модуль клавиатуры).
А значит, стоит ли разводить печатку? :)

Выкинуть из проекта (вв55+атмегу) и переразвести никогда не поздно (а можно вместо атмеги впаять DIN-разъем с шлейфом к "LPT-разъему", и вв55 оставить универсальным портом - минимум доработки уже готовой платы).

Просто без платы на TQFP 0.5 (а будет, как я понимю, 99% вероятность Циклон именно в таком корпусе) фиг чего соберешь, это не DIP. А готовые переходники стоят бешеных денег + к ним надо километр МГТФ.

Сегодня был в Чип-Дипе, купил такой переходник - посмотри вложение (+ по мелочи, типа 512ВИ1). Переходник стоит 130 рублей!!! А вся плата, к которой не надо километр МГТФ, будет стоить не более 300р.

Ewgeny7
29.08.2009, 17:06
Ога, презистор классный :)
А зачем тебе переходничок? Тренироваться будешь, чтобы подвиг Segfault'a не повторить? :)
Хорошо, займусь схемой.

Error404
29.08.2009, 17:09
Ога, презистор классный :)


Не смог пройти мимо :)



А зачем тебе переходничок? Тренироваться будешь, чтобы подвиг Segfault'a не повторить? :)
Хорошо, займусь схемой.

Переходник - на всякий случай, вдруг платы не будет. Я планирую попробовать повторить Орион на CPLD. Ну, когда станет понятно что и как паять. :)

Ewgeny7
29.08.2009, 17:27
Я планирую попробовать повторить Орион на CPLD
Да? А у меня была мысль просто подарить тебе собранный макет как идейному вдохновителю :) После перехода на бету, разумеется. А осталось уже совсем немного. Винт как минимум, винт+клава как максимум.
И, кстати, это уже давно не CPLD, мы в этой теме работаем с FPGA :)

Error404
29.08.2009, 18:16
Да? А у меня была мысль просто подарить тебе собранный макет как идейному вдохновителю :) После перехода на бету, разумеется.


А я бы не отказался. :)



А осталось уже совсем немного. Винт как минимум, винт+клава как максимум.
И, кстати, это уже давно не CPLD, мы в этой теме работаем с FPGA :)

Ну, CPLD, FPGA... Я же не настоящий сварщик (с) :)
Сегодня попробую поправить бутсектор в образе диска с игрушками, чтобы при загрузке системы что-нить выводило на экран. И код ошибки. Может, даст информацию к размышлению.

Ewgeny7
29.08.2009, 19:04
Сегодня попробую поправить бутсектор в образе диска с игрушками, чтобы при загрузке системы что-нить выводило на экран. И код ошибки. Может, даст информацию к размышлению.
Вот это толково :)
Плюс, у тебя нету того проклятущего EXOLONA? Я перерыл все свои архивы с .BRU...

---------- Post added at 19:04 ---------- Previous post was at 19:02 ----------

Млин, отладил работу памяти и портов, теперь турба не работает :)

Error404
29.08.2009, 21:45
Вот это толково :)
Плюс, у тебя нету того проклятущего EXOLONA? Я перерыл все свои архивы с .BRU...

---------- Post added at 19:04 ---------- Previous post was at 19:02 ----------

Млин, отладил работу памяти и портов, теперь турба не работает :)

Эксолон есть, в архивах с BRU его никогда и не было, он был только на дисках с CP/M. И поскольку файл, который запускался из CP/M, размером более 48к, он не может быть по-простому запущен из ORDOS (т.к. при запуске своим кодом залезает в нулевой странице на код Ordos - 0B800 и выше), и все виснет.
Т.е. надо паковать код, и при старте распаковывать...

Ewgeny7
30.08.2009, 00:00
Т.е. надо паковать код, и при старте распаковывать...
Ну и фик с ним. Просто я расчитывал на нее как на программу-тест работы памяти.
Кстати, ТестZ80 говорит что у меня всё нормульно. Что же тогда винту для счастья нужно... :(

Error404
30.08.2009, 14:59
Кстати, ТестZ80 говорит что у меня всё нормульно. Что же тогда винту для счастья нужно... :(

ХЗ что ему нужно. Я попробовал сегодня по-всякому поломать модель памяти в эмуляторе, ничего похожего на твой эффект не добился. Тренеровался на этом образе (я добавил в бутсектор счетчик прочитанных секторов [должен увеличиваться до значения "23"] и вывод номера IDE-ошибки, если она есть). Это образ с игрушками, попутно и там кое-что по мелочи поправил и дополнил, так что рекомендую использовать его:

http://orion-z.hoter.ru/file/337/5251_games.zip

Вообще, склоняюсь к тому, что дело если не в памяти, то в винте. Ему по-любому не менее 15 годков, чего же вы от него хотите? :) Я бы еще попробовал укоротить шлейф и грузануться при помощи HDDF60R$.ord - оно после reset винта делает recalibrate винта, что говорят, иногда помогает престарелым винтам. Есть ромдиск с прогой HDDF60R$.ord :

http://zx.pk.ru/showpost.php?p=214587&postcount=243

Ewgeny7
30.08.2009, 15:02
Вообще, склоняюсь к тому, что дело в винте.
Пробовал на двух винтах. Первый - маверик 250Мб, второй файерболл 3,2Гб.
Результат одинаковый.
Ладно, попробую новый образ залить.

Error404
30.08.2009, 16:46
Пробовал на двух винтах. Первый - маверик 250Мб, второй файерболл 3,2Гб.
Результат одинаковый.


При помощи HDDF60R$.ord пробовал загрузиться?

Не исключено, что глюки в коде системы (может, для HDD нужны еще какие-нибудь магические пассы в коде). Фактически, ты первый, кто подключает HDD. :) До того на Орионе только 2 случая известны - я и Igor_t, у обоих Compact Flash, причем без шлейфа - смонтированные прямо на переходнике. C Compact Flash работает нормально. Я использовал HDD только на раннем этапе внедрежа (еще до CPM) - на единичных тестах "прочитать сектор / записать сектор".

Ну, и я не считаю полностью аналогичные проекты (c ВВ55) с HDD на других платформах.



Ладно, попробую новый образ залить.

Напиши, доходит ли дело до надписи "SECTOR 23"

Ewgeny7
30.08.2009, 17:03
Ответ не сегодня. Заливать образ и пробовать его могу только на работе.

Error404
30.08.2009, 17:18
Ну и фик с ним. Просто я расчитывал на нее как на программу-тест работы памяти.
Кстати, ТестZ80 говорит что у меня всё нормульно. Что же тогда винту для счастья нужно... :(

ТестZ80 проверяет всякие дополнительные фишки типа диспетчера 16к, прерываний, fullram. А наша многострадальная CPM прекрасно работает без всего этого, без прерываний просто не мигает курсор и не работают часы. Т.е. одно не исключает другого.

CPM, той что в образе, только надо чтобы стандартный журнальный Орион был расширен минимум до 192к (страницами порта F9) и Z80 по любой схеме, причем оба эти условия при старте (уже после меню партиций) проверяются, и система выводит на экран соответствующее сообщение и пищит (проверено сегодня в эмуляторе). Кстати, оно и на Орион-Про работает, если запустить из режима совместимости с Орион-128. :)


Ответ не сегодня. Заливать образ и пробовать его могу только на работе.

Не горит. :)

Error404
01.09.2009, 10:25
Не горит. :)

Но как же нетерпится... НУ, КАК? :v2_smile:

Ewgeny7
01.09.2009, 16:50
НУ, КАК?
Феникс сегодня закончил собирать. Успешно :)
Завтра вернусь к Ориону :)
А как дела у Игоря? ;)

Error404
01.09.2009, 17:55
Феникс сегодня закончил собирать. Успешно :)


Круто.
И быстро как. :)



А как дела у Игоря? ;)

Не знаю. Надеюсь, дела отлично.

Ewgeny7
03.09.2009, 15:23
Ну вот, не прошло и трех лет :)
Я перетащил все железяки по Ориону домой, дабы заниматься вечерами.
Коротенький фотовидеоотчет.
Точнее, фото девайса внизу, а это ссылка на маленькое видео (1.56 Мб)
о работе с винтом. Последний сектор на экране - 23.
http://narod.ru/disk/12764698000/DSCN4992_HomeCinema.avi.html
То, что у компа работает диск C (да и D тоже) я уверен, ибо загонял на них объемистые игрушки и успешно запускал их.

Error404
03.09.2009, 18:10
Ну вот, не прошло и трех лет :)


:v2_yahoo:



о работе с винтом. Последний сектор на экране - 23.


23-это последний сектор. Это значит, что BOOT-sector CPM во-первых нормально считался и запустился из меню MasterBootRecord-a, во-вторых BOOT-sector CPM полностью прочитал все, что хотел с системных дорожек своего раздела и передал управление в свежезагруженное ядро ДОС (оно последовательно грузится в верхнюю половину 1-й страницы если считать с 0, грузится залезая на сотню байт выше F000).

Т.е. с Винтом никаких проблем нет (ну, то что считывается реальное содержимое ядра ОС проверять не будем, наверняка оно так и есть).

Видео пока посмотреть не могу - на работе такой контент нам закрыли.

А вот дальше похоже начинаются чудеса (если по-прежнему после загрузки не работает и увисает). Чудеса именно в выполнении кода, который "размазан" по нескольким страницам (периодически переключается порт F9 и код лезет в разные страницы) и в "склеенной" области F000...F3FF. Никакие функции порта FB кроме прерываний не используются. Да и прерывания включаются уже после того как на экране должен пройти счетчик теста ОЗУ - они включаются при загрузке системного драйвера консоли.



То, что у компа работает диск C (да и D тоже) я уверен, ибо загонял на них объемистые игрушки и успешно запускал их.

А вот это я не догоняю - какой комп имеется в виду, и какие диски С и Д ?

Ewgeny7
03.09.2009, 19:51
А вот это я не догоняю - какой комп имеется в виду, и какие диски С и Д ?
Орионовские 20000-2FFFF и 30000-3FFFF соответственно.


код лезет в разные страницы) и в "склеенной" области F000...F3FF
Вот "склееную область" мне надо получше проверить, ибо никакие игрушки это наверняка не используют, поэтому как оно работает толком не проверено.
Вот этим и займусь.

---------- Post added at 19:51 ---------- Previous post was at 19:21 ----------

Error404, нашел ошибку! Ура! Я идиот!
У меня склеенная область распространяется ТОЛЬКО на банки 0 и 1. На 2 и 3 и далее это не работает. Исправляю.

Ewgeny7
03.09.2009, 22:07
Ну, типо вот. СР/М запустилась.

Error404
03.09.2009, 22:21
Ну, типо вот. СР/М запустилась.

Дописывай в подпись еще одну строчку. :)

А сколько памяти показывает тест при старте CPM?
Еще в User15 (у него имя "system") есть прога mshell30
Она садится резидентно в память и вызывается по CTRL+SHIFT+J из любого режима CP/M, где есть ввод с клавиатуры. Там есть пункт memory - интересно, что покажет.

Ewgeny7
03.09.2009, 22:34
А сколько памяти показывает тест при старте CPM?
256. Именно столько рулится портами f9 и fb.
И я подумываю как раз столько в релизе и оставить.


Дописывай в подпись еще одну строчку.
Когда будет стабильная версия, тогда допишу :)
Сейчас еще всё сырое, обычные взглюки после изменения прошивки. Надо "полировать" :)

Error404
03.09.2009, 22:37
256. Именно столько рулится портами f9 и fb.
И я подумываю как раз столько в релизе и оставить.


А почему только 256? Сделай побольше!
Рули портом fb в пределах 256к, а портом f9 - по максимуму сколько получится.
512к это минимум на котором нормально работается.
256к - только играться. :)

Ewgeny7
03.09.2009, 22:41
А почему только 256? Сделай побольше!
http://www.zx.pk.ru/showpost.php?p=216636&postcount=71
выбирай память. нужно или 16битную, или две по 8. И напряжение - 5 вольт.
Что выберешь, с тем и буду ковыряться :)

А в наличии у меня валяются китайские маленькие чипы по 128кб, 8 бит. Парочку таких на плату - было бы хорошо (для меня) :)

Error404
03.09.2009, 23:02
http://www.zx.pk.ru/showpost.php?p=216636&postcount=71
выбирай память. нужно или 16битную, или две по 8. И напряжение - 5 вольт.
Что выберешь, с тем и буду ковыряться :)

А в наличии у меня валяются китайские маленькие чипы по 128кб, 8 бит. Парочку таких на плату - было бы хорошо (для меня) :)

Получается, если брать только 5-вольтовые, то либо надо 4 корпуса 128х8 ставить (что получается громоздко, но в сумме 512к в организации 256х16),
либо надо ставить две
K6X4008C1F-GF55 SRAM 512Kx8 55ns 5V Ind LowLow SO32W 112.20
что дает 1024к в организации 512х16
Более в том списке 5вольтовых большой емкости нет (чтобы в два корпуса уложиться).
Но зато паябельный SO32W (насколько я понимаю, шаг ножек 1,27)

А из 256к в CPM свободными остануться только порядка 70-80к. Даже нормальный эл.диск не сделаешь (она умеет делать эл.диск из незанятого ОЗУ), резидентов можно в незанятом ОЗУ содержать (тот же mshell30 сразу отъедает 32к). Не говоря уже о том, что если я таки сподоблюсь с UZIX, то там надо будет вагончик памяти, чтобы своп был как можно меньше.

Кстати, если заложиться в FPGA на организацию 2х(512х8) и развести плату, то на нее без изменения наверное и 2х(128х8) можно впаять будет? Главное чтобы при порте F9=0,1 выбирались экранные страницы ОЗУ, и при F9=2 любая другая неповторяющаяся страница ОЗУ выбиралась (т.е. последующий после 0 и 1 порядок страниц не важен, должна лишь существовать страница 2 - в ней живет CP/M).

Хотя если поразмыслить, то я могу и CP/M переписать так, чтобы она формировала TPA не строго в странице 2, а в любой имеющейся, кроме 0 и 1. Тогда адресация существующих страниц в режиме 2х(128х8) сможет быть хоть вообще такая: 0,1, 4,5.

Кстати, команда SPEED.COM из User_15 что показывает? :)

Ewgeny7
03.09.2009, 23:38
Кстати, о плате... Пора делать хоть какую-нибудь. Ловить глюки в полкило МГТФа - дело неблагодарное.

Error404
04.09.2009, 09:43
Кстати, о плате... Пора делать хоть какую-нибудь. Ловить глюки в полкило МГТФа - дело неблагодарное.

Тогда надо схему нарисовать.
Желательно в формате таком, чтобы можно было потом затянуть в трассировщик.

По схеме, когда будет понятно что к чему уже есть, можно будет обсудить что и как лучше добавить (например, что вывести на системный разъем и т.п.).

zx-kit
04.09.2009, 10:45
Кстати, о плате... Пора делать хоть какую-нибудь. Ловить глюки в полкило МГТФа - дело неблагодарное.

И второй видеоконвертер для Ориона... Хотя можно в этой же ПЛИС разместить...

Error404
04.09.2009, 11:30
И второй видеоконвертер для Ориона... Хотя можно в этой же ПЛИС разместить...

Интересно, а пробовал ли кто-нибудь (хотя кроме Евгения вроде и пробовать некому) что получится, если использовать стандартный конвертор zst (версии 2.0 для Спектрума) с Орионом и тактом 10МГц?
Это интересно еще с той точки зрения, что кроме компа на FPGA (который изначально можно заточить под VGA, как вариант в одной из прошивок) есть еще и старые Орионы на дискретных мсх, которые кроме как TV-out не могут.

Ewgeny7
04.09.2009, 12:13
Вот в том то и дело, что проще будет паршивку под VGA переделать, чем запихивать конвертер.
А сегодня - извиняйте, я поехал за CF2IDE адаптером

zx-kit
04.09.2009, 12:17
Вот в том то и дело, что проще будет паршивку под VGA переделать, чем запихивать конвертер.
Наверно, и с этой будет работать. Скорее всего слева появится черная полоска.



А сегодня - извиняйте, я поехал за CF2IDE адаптером

Мне тоже такой надо для CMУК... Есть информация почитать?

Error404
04.09.2009, 12:24
Кстати, о плате... Пора делать хоть какую-нибудь. Ловить глюки в полкило МГТФа - дело неблагодарное.

Да простит меня Mick :)

Я тут пофантазировал:

Ewgeny7
04.09.2009, 13:04
Я тут пофантазировал:
FPGA 15х15мм :)

Дмитрий
04.09.2009, 13:53
Error404, монтажное поле на этапе размещения компонентов лучше убрать. В данном случае создало бутылочное горлышко для сигналов шины для слотов расширения, не думаю что они там поместятся...

Да и что касается RTC, может лучше использовать как у Caro на мультикарте? получите и клаву, мышку (?) и RS232 (разъем на монтажке я смотрю именно он, но на чем он реализован в железе?).

---------- Post added at 12:53 ---------- Previous post was at 12:51 ----------

Error404, кстати, уже речь идет об ВГА, а на монтажке этого разъема нету...

Error404
04.09.2009, 14:31
Error404, монтажное поле на этапе размещения компонентов лучше убрать. В данном случае создало бутылочное горлышко для сигналов шины для слотов расширения, не думаю что они там поместятся...


Ну, там я сильно размахнулся с квадратом FPGA (как уже заметил Евгений), так что свободного места там будет достаточно. Я хотел этой очень предварительной картинкой просто идеи предложить:
- на плате должно быть все то, что сейчас у Евгения уже есть на макетке: FPGA, ОЗУ, ПЗУ, 2 порта (IDE и клавиатура, которую по мере замещения схемы с ATMega48 схемой в FPGA можно будет применить как универсальный порт (программатора, принтера и т.п.) )
- дополнительно очень желательно иметь небольшой "слепыш" для народных очумельцев [причем, на "наружнем торце" - чтобы и для вероятного разъема], 1-2 слота для расширения, RTC (часы)
- геометрия должна быть минимальной, но по возможности позволять установить в mATX корпус (места отверстий, слотов, внешних разъемов)



Да и что касается RTC, может лучше использовать как у Caro на мультикарте? получите и клаву, мышку (?) и RS232 (разъем на монтажке я смотрю именно он, но на чем он реализован в железе?).


Это зависит от того, напишет ли кто-то ПО. На настоящий момент только 512ВИ1 поддерживается существующим ПО Ориона. Ну, ее я и изобразил (оно DIP-24)



кстати, уже речь идет об ВГА, а на монтажке этого разъема нету...

Наверное, один из разъемов DB9 можно заменить на DB15 (VGA), а там уж как пойдет - TV туда выводить или VGA (время покажет). Просто у Mick-a такой разъем уже был нарисован в Фениксе, а я просто выкинул "лишнее" с его картинки :)

Дмитрий
04.09.2009, 14:53
Это зависит от того, напишет ли кто-то ПО. На настоящий момент только 512ВИ1 поддерживается существующим ПО Ориона. Ну, ее я и изобразил (оно DIP-24)
К примеру в мультикарте Caro атмега эмулирует работу того самого 512ВИ1 по схеме Mr.Gluk, кто мешает эмулировать работу орионовской схемы? В этом случае переписывать ПО не требуется. Но это все зависит от предпочтений, доставаемости компонентов и жирности периферийного микроконтроллера.

zx-kit
04.09.2009, 15:18
К примеру в мультикарте Caro атмега эмулирует работу того самого 512ВИ1 по схеме Mr.Gluk, кто мешает эмулировать работу орионовской схемы? В этом случае переписывать ПО не требуется. Но это все зависит от предпочтений, доставаемости компонентов и жирности периферийного микроконтроллера.

А давайте на моей материнской плате делать.

Дмитрий
04.09.2009, 15:26
zst, кто ж мешает? твоя МП ваще "хамелеон" :) поставил плату дешифратора портов спека - получили спек, заменил на ДП ориона - орион :)
Но тока я смотрю здесь задача иная - сделать минимальную по габаритам плату с использованием современных технологий - FPGA, которая позволяет одним мановением руки превратить один комп в другой, была бы прошивка.

Ewgeny7
04.09.2009, 15:55
Да и что касается RTC, может лучше использовать как у Caro на мультикарте? получите и клаву, мышку (?) и RS232
Мультикарта не пойдет по причине, почему нельзя вместо Мега48 ставить Мега8515.
Не та реакция портов. А в 48 просто не хватит ног на мышки+RS232. Так что здесь затык.

---------- Post added at 15:55 ---------- Previous post was at 15:46 ----------

Кстати, я почему-то не вижу на плате разъема CF :)

caro
04.09.2009, 16:00
Мультикарта не пойдет по причине, почему нельзя вместо Мега48 ставить Мега8515.
Не та реакция портов. А в 48 просто не хватит ног на мышки+RS232. Так что здесь затык.Это как раз не проблема, можно поставить ATMega164(324/644).
Да и мне кажется при использовании FPGA надо бы отказаться от 55-х портов - устарели они.

Ewgeny7
04.09.2009, 18:38
Да и мне кажется при использовании FPGA надо бы отказаться от 55-х портов - устарели они.
Согласен. Гемора с ними много :(
Но и из схемы их не выкинуть (применительно к 100-ногой FPGA). Ибо 48 свободных ног на альтере не валяются. Если только на 208-лапые пересаживаться, но там цена другая.

Error404
04.09.2009, 19:31
Согласен. Гемора с ними много :(
Но и из схемы их не выкинуть (применительно к 100-ногой FPGA). Ибо 48 свободных ног на альтере не валяются.

Ну, клавиатура же в перспективе может уйти в FPGA, и одна из ВВ55 освободится... Можно будет эту ВВ55 вообще убрать.



А сегодня - извиняйте, я поехал за CF2IDE адаптером

Приобрел? Полезнейшая весчь. У меня в реале Орионе такая штука установлена - очень удобно.



Кстати, я почему-то не вижу на плате разъема CF :)

Гм. Добавил. :)
http://zx.pk.ru/showpost.php?p=216922&postcount=295

Ewgeny7
04.09.2009, 19:51
Гм. Добавил.
:)
Наверное, лучше будет разъем ИДЕ убрать вообще, ПЗУ на его место, альтерку уменьшить и на место ПЗУ засунуть слот CF, чтобы он целиком лежал на плате. Но это ИМХО всего навсего :)


Приобрел? Полезнейшая весчь. У меня в реале Орионе такая штука установлена - очень удобно.
Да, приобрел. Залил на флешку 256Мб образ орионовский, питание взял с платы Ори. Теперь усиленно занимаюсь переводом альфы в бету (борьба за стабильность работы компика). Броня крепкааа, и танки наши быыстрыыы...

Ewgeny7
04.09.2009, 19:55
Немножко фото

Mick
04.09.2009, 20:38
Немножко фото


Ну а теперь берем PCADик и всю эту трехмерную конструкцию проецируем на печатную плату :)

Error404
04.09.2009, 21:57
:)
Наверное, лучше будет разъем ИДЕ убрать вообще, ПЗУ на его место, альтерку уменьшить и на место ПЗУ засунуть слот CF, чтобы он целиком лежал на плате. Но это ИМХО всего навсего :)


Ну, у нас же к шине IDE 2 девайса подключаемо - master и slave. Т.е. кроме CF к этой же ВВ55 можно одновременно подключить еще CDROM или HDD. Один разъем хорошо, а два - лучше. :)
Просто их как-то подвинуть надо. Ну, тут уж дизайнеру карты в руки.

Ewgeny7
05.09.2009, 00:15
Полностью переделал контроллер памяти. Теперь СР/М запускается почти всегда :)
На очереди "зачистка" портов.
Загадочная машина - Орион... С какогото перепугу начал работать TASM, который даже в эмуле не работает... Saboteur I то работает, то не работает. Зато аж слезу накатило, когда из-под СР/М вдруг заработала Nether Earth...
Ладно. Спокойной ночи, а то мозги уже дымятся.

Ewgeny7
05.09.2009, 11:47
Как и следовало ожидать, в турбе винчестер недоступен, ибо ВВ55 тормозззз.

Mick
05.09.2009, 12:21
Как и следовало ожидать, в турбе винчестер недоступен, ибо ВВ55 тормозззз.

Запихай ее в ПЛИСину и пробуферизируй выходы и проблемы исчезнут. :)

Ewgeny7
05.09.2009, 12:36
Запихай ее в ПЛИСину и пробуферизируй выходы и проблемы исчезнут.
А копыта лишние где я возьму?

Ewgeny7
05.09.2009, 12:43
Занятые пины окрашены темным, свободные - светлые. И далеко не все светлые можно занять :)

Mick
05.09.2009, 12:53
Занятые пины окрашены темным, свободные - светлые. И далеко не все светлые можно занять :)

Значит на 144 переходи, а там и до 208 не долго будет :)
На крайняк можно попробовать заменить ВВ55 на что нибуть типа ATF1502(04) - вроде цены приемлемы

Ewgeny7
05.09.2009, 12:58
ATF1502(04) - вроде цены приемлемы
Я не знаю, что это, но EPM3032 можно попытаться впендюрить.

Error404
05.09.2009, 13:02
Как и следовало ожидать, в турбе винчестер недоступен, ибо ВВ55 тормозззз.

Надо использовать 82с55 (580вв55 сейчас уже наверное и не купишь, по крайней мере в ЧипаДипе только 82с55).
А какая частота?
На 5 Мгц всегда работали даже престарелые советские ВВ55 80х гг. прошлого века.
А в принципе, разгонять надо по максимуму. На 10М шустрит очень прикольно. :)
На диске с играми в каталоге User_15 есть утилита, на прерываниях меряющая скорость компа. Называется speed.com.

Вообще, решается примитивно (и в этой же ПЛИС), и решение применялось еще в старые времена при турбировании до частот более 10М (у меня в реале и на 10 М советские ВВ55 работали без доработок, но примерно 50/50), - введением простой схемки на триггере: генерировать единичный импульс длиной 2 такта на ноге /WAIT процессора при любом обращении "/MREQ & F400...F6FF & Turbo=1". Готовой схемы под рукой нет.

Кстати, это решает и вопрос по быстродействию AtMega48, и тормозных ОЗУ (для ОЗУ надо выкинуть проверку на диапазон F400...F6FF)

В принципе, можно заменить ВВ55 тремя регистрами, но на плате займет столько же места, и не хочется терять универсальный порт, на котором кроме IDE что угодно можно прицепить.

Mick
05.09.2009, 13:14
Я не знаю, что это, но EPM3032 можно попытаться впендюрить.

ATF1502 тоже самое что EPM7032
ATF1504 = EPM7064
ATF1508 = EPM7128

---------- Post added at 13:14 ---------- Previous post was at 13:04 ----------


580вв55 сейчас уже наверное и не купишь


Еще как купишь, их еще полно - места надо знать :)

Ewgeny7
05.09.2009, 14:38
Работу с ВВ55 еще буду полировать.
Тут вот такой вопросик. Чтение винта/запуск СР/М идет хорошо, за исключением одного "узкого места". Это повторялось и на ХДД и на флешке. После тестирования памяти грузится ОС, на экране просят ввести дату/врему. Отвечаем Интером два раза. Вот тут и наступаем момент Х. Загрузка может нормально пойти дальше, а может "подвиснуть". Светодиод занятости ИДЕ горит постоянно. Затем сообщение об ошибке. В результате NC не загружается, но по DIR можно вывести каталог.
А как рулить в директориях CР/М? В МСДОС делается "cd " либо "cd..". А здесь?

Error404
05.09.2009, 15:01
Работу с ВВ55 еще буду полировать.
Тут вот такой вопросик. Чтение винта/запуск СР/М идет хорошо, за исключением одного "узкого места". Это повторялось и на ХДД и на флешке. После тестирования памяти грузится ОС, на экране просят ввести дату/врему. Отвечаем Интером два раза. Вот тут и наступаем момент Х. Загрузка может нормально пойти дальше, а может "подвиснуть". Светодиод занятости ИДЕ горит постоянно. Затем сообщение об ошибке. В результате NC не загружается, но по DIR можно вывести каталог.
А как рулить в директориях CР/М? В МСДОС делается "cd " либо "cd..". А здесь?

Дату оно спрашивает, т.к. не нашло на порту F760 rtc 512ВИ1.
В этом случае часы эмулируются на INT50Гц.
а NC даже и не пытается стартовать? А если в командной строке набрать "NC"?
Он стартует последней командой config.sys, причем из другого (не текущего каталога), т.е. с применением PATH:


run NC.COM


А если последовательно выполнить:


USER 15
NC


Запускается?

По командам ССР:



Команды CCP.
~~~~~~~~~~~~
* 1. COLOR <цвет текста> [<цвет фона>]

Пример: COLOR 3 13

Команда служит для установки цветного или черно-белого режима экрана и
для установки цвета текста и фона . Параметр <цвет фона> может отсутствовать,
в этом случае будет изменен лишь цвет выводимого текста. Параметры кода цвета
могут принимать значения 0..15 (десятич.) .
Команда COLOR 0 0 устанавливает монохром.
Команда без параметров устанавливает монохром.

* 2. CLS

Очистка экрана. Команда без параметров .

3. DIR [<диск>:][<файл(ы)>] [/D]

Пример: DIR B:*.MAC
DIR *.TXT /D

Команда служит для вывода оглавления диска (каталога). В сравнении со
стандартным CCP имеет следующие расширения :
- перед выводом каталога выводится метка диска (если она есть)
- каталог выводится либо в сокращенном варианте (только имена файлов)
в несколько колонок - если ключ /D отсутствует, либо в более
полном варианте (имена + даты + время создания файлов) - если
задан ключ /D .
- после вывода каталога выводится общий размер диска (в килобайтах) и
размер свободного дискового пространства (в килобайтах).
Вывод оглавления диска можно прервать, нажав на любую клавишу.

* 4. ECHO <ОN или OFF или список строковых и числовых констант>

Пример: ECHO OFF
ECHO 'Попищим ',7,7,7,7,7,"Еще попищим",7,7,7,7,7

Команда служит для включения/выключения режима эхо-печати (отображения на
экране исполняемых команд) при выполнении подмен и ВАТ-файлов и для вывода
текстовых сообщений и однобайтовых символов (описываемых кодом 0..255), зада-
ваемых в команде как список констант - через запятую. Строковые константы
заключаются в кавычки или апострофы. Например, для вывода двух пробелов
можно записать : ECHO 32,' '
Можно выводить и параметры командной строки (см. пример ВАТ-файла)
Команда очень удобна для выдачи на консоль управляющих кодов (0..31) и
искейп-последовательностей.
В конце вывода списка параметров система от себя добавляет коды CR/LF
(возврат каретки и перевод строки).
Особенность: в режиме ECHO OFF команда ERA не спрашивает подтверждения о
удалении, что удобно для пакетных файлов.


5. ERA [<диск>:]<файл(ы)>

Пример: ERA *.MAC

Команда служит для удаления одного или группы файлов и отличается от стан-
дартного исполнения только тем, что в режиме ECHO ON запрашивает подтвержде-
ние об удалении.

* 6. INSERT <имя юзера кого вкладывать> <имя юзера куда вкладывать>

Пример: INSERT FORMAT SYSTEM
INSERT PASCAL

Команда служит для отображения и изменения вложенности юзеров (определене
нового "родителя" для юзера).
Команда без параметров выводит на экран дерево юзеров, где вложенность
отображается отступами.
Команда с одним параметром-именем юзера вкладывает этот юзер в корневой
(юзер 0).
Команда с двумя параметрами вкладывает юзер, имя которого является первым
параметром, в юзер, имя которого является вторым параметром.

* 7. KILL <имя драйвера>

Пример: KILL PLAYER
KILL PL*

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

* 8. MEM

Команда без параметров и служит для вывода информации о занятости памяти :
- Если в дополнительной памяти (ХТРА) инсталлированы драйвера, то выводится
список драйверов, где для каждого драйвера указывается его размер (в кб),
начальный адрес в длинном формате (<банк>:<адрес>) и используемые этим
драйвером системные вектора.
- Выводится полный размер присутствующей в ПК исправной памяти (в кб) и
размер свободной памяти в ХТРА (в кб).

* 9. PROMPT [ON или OFF]

Пример: PROMPT ON
PROMPT
Команда служит для переключения режима отображения в системном промпте
имени (номера если нет имени) юзера. Команда без параметров инвертирует признак
режима промпта. Например, для юзера с именем SYSTEM вид системного промпта :
- в режиме PROMPT ON : A:\SYSTEM>
- в режиме PROMPT OFF : A>

10.REN <новое имя>=<старое имя>

Пример: REN CONSOLE.MAD=CONSOLE.MAC

Команда служит для переименования файлов и полностью аналогична стандартному
СРР.

11.SAVE <имя файла> <количество блоков>

Пример: SAVE TPA.DAT 200

Команда служит для записи в файл с именем <имя файла> 256-байтных блоков с
адреса 100h и выше в количестве <количество блоков>

12.TYPE <имя файла>

Пример: TYPE BEST*.TXT

Команда служит для просмотра текстовых файлов и отличается от стандарта
только тем, что имя можно указывать с метасимволами (*,?).
Вывод текстового содержимого файла можно прервать, нажав на любую клавишу.


13. USER [<номер>/<имя юзера>][=<новое имя юзера>]

Пример: USER
USER PASCAL
USER SYSTEM=PROGRAMS

Команда с одним параметром - числом (0..15) полностью аналогична стандарт-
ному CCP - выбирает соответствующий юзер.
Команда без параметров служит для вывода "дерева юзеров" .
Команда с одним параметром - именем юзера выбирает соответствующий юзер,
если он есть. Т.о. в любой юзер можно переходить как по номеру, так и по его
имени. Переходить можно из любого юзера в любой - вложенность не устанавливает
никаких приоритетов (в отличии от Альтаир-ДОС), что дает полную совместимость
со стандартной СРМ.
Команда с двумя параметрами присваивает юзеру, имя которого является первым
параметром новое имя - второй параметр.
Вместо команды USER можно набирать CD. Эти команды полностью аналогичны,
но CD не выводится в списке команд.

* 14. VER

Команда вызывается без параметров и выводит на экран номер версии системы.

* 15. VOL [<новое имя диска>]

Пример: VOL
VOL VOLUME_LABEL

Команда без параметров служит для просмотра метки диска (если она есть).
Команда с параметром устанавливает новую метку диска.

* 16. WIDTH [6/8]

Пример: WIDTH
WIDTH 8

Команда с параметром служит для выбора ширины шрифта (6/8 бит).
Команда без параметров инвертирует предыдущую установку.

* 17. /

Команда вызывается без параметров и устанавливает юзер 0 (корневой).

* 18. ?

Команда вызывается без параметров и выводит на экран список команд ССР.

Примечание: знаком * отмечены новые команды CCP ( в сравнении со стандартным )



кроме того, в config.sys определены подмены (логика, ИМХО ясна):



SET @ = WIDTH
SET / = ECHO OFF & USER 0
SET CD = ECHO OFF & USER
SET LS = ECHO OFF & DIR
SET RM = ECHO OFF & ERA
SET CAT = ECHO OFF & TYPE


Т.е. поменять каталог (USER) можно как командой CD, так и USER с параметром- номером или именем каталога=юзера

Ewgeny7
05.09.2009, 16:58
А как это понять - запускаю fdisk.com, он мне сообщает что нет HDD и драйвера под него.:v2_eek:

---------- Post added at 16:58 ---------- Previous post was at 16:09 ----------

В общем, система вроде стабильна. Заморока только с запуском ОС (которую я описывал). Проскочив то место, далее работаем без проблем.
Пока сохраняю проект как альфа 0.06.
Кажется настало время определиться с окончательным списком деталей.
Буду узнавать в ЭФО стоимость Циклонов на 144 и 208 ног. Если сильно много, то стоит подумать о применении ЕРМ3032 в качестве порта F600.
С памятью вроде определились? Два чипа по 512кб 8бит по 112руб.?
Итого получается (во втором варианте):
EP1C3T100C8N - 170 RUB
EPM3032ALC44 - 56 RUB
K6X4008C1F - 112 RUB * 2 = 224 RUB
AT29C020-90 - 120 RUB
EPCS1 - 95 RUB
---------------------------
К580ВВ55 - Х.З. РУБ.
AtMega48 - 90 РУБ.
К1533ЛН1 - 10 РУБ.
Кварц 20Мгц
Резисторы 510е 3шт.
7805 (КРЕН5А)
EZ1086 (3.3в)
Диоды 1N4800 4шт.
Резист. сборка 4к7 1шт. (лучше пару)
Конденсаторы 470м, 100м, 10м, 0,1м * 15шт.
Дип-свитч 3 секции (10руб)
Батарейка и панелька под нее.
Панельки под ПЗУ (32) и ВВ55 (40) и Мегу (28узкое) и ЕРМ3032 (44 PLCC)
Слот CF
Светодиод.

Вроде как всё...

Да, еще не просчитано комплектуха для видеовыхода. Навскидку будет четыре транзистора и десятка полтора резисторов. В общем, схему возьму пожалуй из "Скорпиона" :)

Error404
05.09.2009, 17:24
А как это понять - запускаю fdisk.com, он мне сообщает что нет HDD и драйвера под него.:v2_eek:


Ну оно же пишет: "No IDE drives or [COLOR="Red"]IDEBDOS driver not installed"

fdisk работает с областью HDD, выходящей за пределы CP/M партиции, поэтому он работает не штатными п\п CPM, а при помощи драйвера IDEBDOS.COM (который расположен там же, в USER_15). Поэтому перед FDISK.COM надо сначала запустить этот драйвер, причем в данном случае надо передать параметр - номер порта (т.к. по дефолту оно настроено на F500):


IDEBDOS port:f600


полный список параметров драйвера IDEBDOS можно посмотреть выполнив команду


IDEBDOS help





В общем, система вроде стабильна. Заморока только с запуском ОС (которую я описывал). Проскочив то место, далее работаем без проблем.


ты так и не написал - а NC в проблемном случае даже и не пытается стартовать (выводит свою строку "Norton Commander etc...")? А если попав в CPM в командной строке набрать "NC"? Выполняются ли другие команды config.sys (которые до старта NC)
А если, уже провалившись в приглашение CPM, последовательно выполнить команды:
USER 15
NC

NC стартует последней командой config.sys, причем из другого (не текущего каталога), т.е. с применением PATH. Давай протрассируем выполнение config.sys. Для этого при загрузке CPM (когда на экране идет счетчик ОЗУ) надо нажать и удержать кнопку F4 (или ctrl+C).
Далее для каждой строки config.sys отвечаем "Y" (да), и смотрим что происходит после строки
run NC.COM




Пока сохраняю проект как альфа 0.06.
Кажется настало время определиться с окончательным списком деталей.
Буду узнавать в ЭФО стоимость Циклонов на 144 и 208 ног. Если сильно много, то стоит подумать о применении ЕРМ3032 в качестве порта F600.


А чего просто не сделать при обращении к ВВ55 2 такта WAIT для режима ТУРБО и использовать любые ВВ55?
Будет ли с ЕРМ3032 в качестве порта F600 лучше? И в ней ли вообще дело - может на ТУРБО программно формируемые управляющие сигналы IDE становятся коротковаты? Вряд ли конечно, но чем черт не шутит. Тогда поможет только WAIT, а без него на ЕРМ3032 будет та же самая петрушка, что и на ВВ55.
Попробовать бы сначала с 82c55 (чисто проверить гипотезу быстродействия самой ВВ55).
И хватит ли у ЕРМ3032 сигнальных ног, если всего их 44? (1:RW+1:CS+2:Addr+8:data+8 portA+8 portB+8 portC=36) Единственным достоинством вижу, что не надо будет ставит ЛН1 - инверторы можно сделать прямо внутри ПЛИС.

Так турбо все-таки на какую частоту делаешь, когда не работает IDE?



С памятью вроде определились? Два чипа по 512кб 8бит по 112руб.?


ДА, очень хочется чтобы было 512к или более. А при минимуме корпусов, получается что только так.

zx-kit
05.09.2009, 17:27
EPCS1 - 95 RUB


Можно ее заменить более дешевым аналогом M25P40 ?

Ewgeny7
05.09.2009, 17:35
Можно ее заменить более дешевым аналогом M25P40 ?
А фик его знает... Там же применяется вроде не просто сериал-ПЗУ, а несколько более специализированная...


ты так и не написал - а NC в проблемном случае даже и не пытается стартовать
Нет. Просто вываливается промт ОС.


А если попав в CPM в командной строке набрать "NC"?
А если последовательно выполнить команды:
USER 15
NC
Так всё работает, коммандер загружается. Еще раз нарвусь на ошибку - запищу ее полностью.
Работаю над этим :)

А чего просто не сделать 2 такта WAIT и использовать любые ВВ55?

Error404
05.09.2009, 17:44
Нет. Просто вываливается промт ОС.


Очень странно. Надо поставить 512ВИ1 - чтобы не задавало дурацких вопросов :)
Ты, кстати, не включил ее в список. Или выносим RTC в опциональное?
Попробую в эмуляторе без RTC.

Предлагаю вместо К580ВВ55 по возможности брать 82с55.

Кстати, если в NC нажать "1" (цифру 1, а не F1. Кнопка F1 - выбор диска в текущей панели), то можно прочитать встроенную систему помощи.

Добавил описание ДОС тут:
http://zx.pk.ru/showpost.php?p=217284&postcount=10

Там, кстати, написано, что выполнение config.sys прерывает кнопкой F5 (ctrl+d). Глупый вопрос - оно у тебя случайно не нажимается при вводе времени?
Вопрос снят. Кнопка F5 (и соответствующий код клавиши в Мониторе) есть только у клавиатуры MC7007. Парадокс, но на матрице клавиш РК-86 место для этой кнопки есть, но оно пустует. Съэкономили, чудаки.

Mick
05.09.2009, 18:18
С памятью вроде определились? Два чипа по 512кб 8бит по 112руб.?


А не хочешь попробовать микруху SDRAM 4MX16x4,банка
Стоимость рублей 70, а метров дофига :) Может и ноги освободятся.

Error404
05.09.2009, 18:27
А не хочешь попробовать микруху SDRAM 4MX16x4,банка
Стоимость рублей 70, а метров дофига :) Может и ноги освободятся.

Так тож динамика. С динамики и начинали, но не получилось ничего.

Mick
05.09.2009, 18:33
Так тож динамика. С динамики и начинали, но не получилось ничего.

Что то я упустил видать. С динамикой чего не получилось, вроде простая она.

ZEK
05.09.2009, 18:40
С динамикой чего не получилось, вроде простая она.
SDRAM от DRAM в корне отличается по управлению

Ewgeny7
05.09.2009, 18:47
Поймал ошибку - "Error on C: Bad sector"
После этого можем или вылететь в ОС или загрузка продолжается как обычно и попадаем в NC.

Error404
05.09.2009, 19:36
Поймал ошибку - "Error on C: Bad sector"
После этого можем или вылететь в ОС или загрузка продолжается как обычно и попадаем в NC.

Ну, что причина этого - ХЗ.
То что config.sys или прерывает или нет по ошибке Bad sector - это штатное поведение (зависит от того какую кнопку нажать - что-то типа или enter или ^C). Такое в любом режиме CPM.
Обычно такое пишет если действительно подпрограмма чтения сектора возвращает ошибку. Ну и, конечно, не исключен глюк (глюк ОС), хотя я пока не натыкался, в т.ч. и на реале (но на реале я не сильно долго игрался, я в основном - эмуляторщик).
Или может действительно что-то нестабильно работает на ВВ55?

Надо собирать еще несколько компов - для статистики. :)
Врядли я это отлажу на эмуляторе.

---------- Post added at 19:36 ---------- Previous post was at 19:16 ----------


SDRAM от DRAM в корне отличается по управлению

Но и от SRAM?

ZEK
05.09.2009, 20:35
Но и от SRAM?
Естественно, писал к тому что если с DRAM разобрался с SDRAM это не поможет

Mick
05.09.2009, 20:39
Естественно, писал к тому что если с DRAM разобрался с SDRAM это не поможет

Думаю стоит разбираться и с SDRAM, мало ли глядишь ewgeny7 Ориошу на 16 битную шину переведет(ядро Т80 под 16 бит перепишет).
Ведь там где уже частоты позволяют - там появляются компиляторы ;)

ZEK
05.09.2009, 20:50
едь там где уже частоты позволяют - там появляются компиляторы
При той шине что используется в TV80, если не придумывать что то хитрое с регенерацией, сомнительно что получится выдавать больше 16-20МГц без вайтов и т.д.

Ewgeny7
05.09.2009, 23:31
Пока у меня навернулись обе партиции на CF (результаты экспериментов по записи под СР/М), наконец-то доделал турборежим. Переключается с дип-свитча, можно прямо во время работы (помех не возникает).
Скорости работы:
обычный - около 3 Мгц,
турбо - около 7 Мгц.
Столь странные цифры вызваны несколько необычным клоком проца (задержка клока в момент чтения видеопамяти контроллером, дабы ВВ55 получали полноразмерный запрос) и режимом fastZ80. Первое тормозит, второе разгоняет, так что получаем нечто описанное выше.
Турбо получилось достаточно удобное - и не тормоз вроде, и играть возможно :)

Error404
06.09.2009, 11:08
Пока у меня навернулись обе партиции на CF (результаты экспериментов по записи под СР/М),


С первой же записи навернулись? :v2_confu:
Странно. Не должно...



наконец-то доделал турборежим. Переключается с дип-свитча, можно прямо во время работы (помех не возникает).
Скорости работы:
обычный - около 3 Мгц,
турбо - около 7 Мгц.
Столь странные цифры вызваны несколько необычным клоком проца (задержка клока в момент чтения видеопамяти контроллером, дабы ВВ55 получали полноразмерный запрос) и режимом fastZ80. Первое тормозит, второе разгоняет, так что получаем нечто описанное выше.
Турбо получилось достаточно удобное - и не тормоз вроде, и играть возможно :)

Запусти уже в CPM из USER_15 программу speed.com. :v2_smile: Она меряет быстродействие (правда, программа кривоватая - не рассчитана на AltairDOS и при выходе выключает прерывания. Но это не смертельно - лишь курсор мигать не будет, а часов нормальных все равно пока нет).
Экранчики в режимах турбо и нетурбо пришли сюда - посмотреть. Интересно. :)

Если в Турбо IDE не работает, сделай следующе:

При помощи текстового редактора SED отредактируй config.sys (он в USER_0) - раскомментируй (удали REM) строку

REM ASSIGN DRIVE E = vdisk 60 ; in-memory "disk" 60kb

И перезарузись. Теперь у тебя есть электронный диск "E" - на него в режиме нетурбо можно все скопировать - speed.com и еще что-то (в NC копирование - это клавиша "5", отмечать файлы - пробелом), а потом в турбо - запустить с диска Е.
В NC выбор диска в текущей панели - клавиша F1, выбрать USER (каталог) в текущей панели- клавиша "7"

Ewgeny7
06.09.2009, 13:08
Запусти уже в CPM из USER_15 программу speed.com.
Ну не могу уже :)
Нету там этого файла. SED есть, а SPEED нету...

Если в Турбо IDE не работает, сделай следующе:

При помощи текстового редактора SED отредактируй config.sys (он в USER_0) - раскомментируй (удали REM) строку

REM ASSIGN DRIVE E = vdisk 60 ; in-memory "disk" 60kb

И перезарузись. Теперь у тебя есть электронный диск "E" - на него в режиме нетурбо можно все скопировать - speed.com и еще что-то (в NC копирование - это клавиша "5", отмечать файлы - пробелом), а потом в турбо - запустить с диска Е.
В NC выбор диска в текущей панели - клавиша F1, выбрать USER (каталог) в текущей панели- клавиша "7"
Щас попробую.

---------- Post added at 12:02 ---------- Previous post was at 12:02 ----------


Экранчики в режимах турбо и нетурбо пришли сюда - посмотреть. Интересно.
Сделаю.

---------- Post added at 12:04 ---------- Previous post was at 12:02 ----------


С первой же записи навернулись?
Странно. Не должно...
Ага. Сначала "опробовал" команду SAVE ОС. Навернулась первая партиция. Потом что-то еще делал - и навернулась вторая.

---------- Post added at 13:08 ---------- Previous post was at 12:04 ----------


га. Сначала "опробовал" команду SAVE ОС. Навернулась первая партиция. Потом что-то еще делал - и навернулась вторая.
Сейчас ничего не ломается, но с SAVE что-то никак не подружиться...
Команда Save qwe.txt 10 корректна? Она вроде должна сохранить в файл qwe.txt дамп с адреса 0100h длиной 2560 байт. Однако, bad command... Почему?

b2m
06.09.2009, 13:15
В CP/M вроде наоборот было: SAVE nn filename.ext

Ewgeny7
06.09.2009, 14:28
В CP/M вроде наоборот было: SAVE nn filename.ext
Дык в инструкциях писано что имя сперва...
Партиция, где я пытался записывать, снова навернулась :)
Что интересно, если я уже в ней загружен, то продолжаю успешно работать. Но после перезагрузки её просто нет... Ужос! :v2_eek:
В турбо ИДЕ вешается, программы СПИИД в Юзер15 и Юзер0 нету, сама операционка работает хорошо, только сохранение хромает, пошол я на болото, наемся жабонят...

---------- Post added at 14:28 ---------- Previous post was at 13:26 ----------

Заработало ИДЕ с турбой. В момент обращения к портам F4 - F6 турбо аппаратно переключается в нормальный режим, потом возвращается в турбо.

Error404
06.09.2009, 15:58
Дык в инструкциях писано что имя сперва...


Команда SAVE - единственная которой я никогда не пользуюсь, и никогда не проверял соответственно. Даже синтаксис не помню - не могу утверждать врет описание или нет. :) А поскольку ССР на 100% переписан относительно стандартного, то возможно всё!
Буду посмотреть...

Попробуй покопировать нортоном в одной партиции - из одного каталога=юзера, в другой. Нортон работает через системные вызовы CPM, как и ССР (как и должна любая программа).



программы СПИИД в Юзер15 и Юзер0 нету, сама операционка работает хорошо, только сохранение хромает

Но он там есть! speed.com. :v2_wacko:
В новом образе диска с игрушками (где при загрузке пишется счетчик до "SECTOR 23") - есть в обоих партициях в USER_15.
И поскольку на User_15 настроен PATH, то в промпте ОС speed можно набирать из любого каталога=юзера - оно запустится.

На всякий случай обновил образ, который надо заливать на HDD/CF:
http://orion-z.hoter.ru/file/337/5288_games.zip

Там еще обновил прогу fat.com (читалка файлов MS-DOS партиций) - она на предыдущем была битая.

---------- Post added at 15:58 ---------- Previous post was at 15:35 ----------

Кстати, в этой актуальной версии, как и в предыдущей (в обоих счетчик до "SECTOR 23") команды SAVE нет вообще! :v2_rolley

Раньше была, но в последних версиях выкинуто было за ненадобностью. :)
В CCP по команде "?" она теперь в списке команд отсутствует. И CCP ее не понимает и по этой команде ничего не делает, только выводит "File not found" - имея в виду, что нет такого файла - save.com .

Вопрос - на какой версии Евгений тестируется? :v2_wink2:
В старой версии возможно и speed.com нету, и какие-нибудь ошибки.

Ewgeny7
06.09.2009, 16:59
Но он там есть! speed.com.
:)

Error404
06.09.2009, 18:14
:)


Хм. Это версия еще до того как я добавлял в бутсектор счетчик до "SECTOR 23". Ведь он же у тебя был! Я синхронно с этой правкой бутсектора еще и файлы туда дописал!
Ниччего не понимаю...

и fat.com при запуске ничего не пишет? А должен. Я сегодня его заменил. И обновил на сайте.
Загрузи еще раз этот файл:
http://orion-z.hoter.ru/file/337/5288_games.zip

В архиве файл games.ohi какую дату имеет?

Ewgeny7
06.09.2009, 19:07
Хм. Это версия еще до того как я добавлял в бутсектор счетчик до "SECTOR 23". Ведь он же у тебя был! Я синхронно с этой правкой бутсектора еще и файлы туда дописал!
Ниччего не понимаю...

и fat.com при запуске ничего не пишет? А должен. Я сегодня его заменил. И обновил на сайте.
Загрузи еще раз этот файл:
Файлик закачал, через полчасика будет отчет.
Fat.com просто висит...

---------- Post added at 19:07 ---------- Previous post was at 18:24 ----------

Вот теперь все проги на месте :)
speed.com показал немножко другие результаты - 0,9 в нормальном режиме и 1,97 в турбо. Т.е. согласно тесту получаем 2,25 и 4,9Мгц соответственно. По ощущениям казалось побыстрее (запускал эмуль параллельно).
фат.ком работает, но пока не разобрался нафик он нужен :)
М80 - ассм?
Что такое exit.com - пробовать не буду. Вдруг, в самом деле полный эксит получится :v2_eek::v2_devil:

Пофиксил несколько багов. В том числе "укоротил" прерывания в 4 раза.
Ибо в турбе многие игрушки слетали. И СР/М стало успешнее пролетать "узкое место".

Error404
06.09.2009, 19:23
Вот теперь все проги на месте :)
speed.com показал немножко другие результаты - 0,9 в нормальном режиме и 1,97 в турбо. Т.е. согласно тесту получаем 2,25 и 4,9Мгц соответственно. По ощущениям казалось побыстрее (запускал эмуль параллельно).
фат.ком работает, но пока не разобрался нафик он нужен :)
М80 - ассм?
Пофиксил несколько багов. В том числе "укоротил" прерывания в 4 раза.
Ибо в турбе многие игрушки слетали. И СР/М стало успешнее пролетать "узкое место".

m80 - макроассемблер.

Ну, хорошо. А то я стал за себя уже переживать. :)
Все, поехал я в командировку на неделю.
Читать ветку буду, как насчет писать - не знаю.

Ewgeny7
06.09.2009, 19:29
Читать ветку буду, как насчет писать - не знаю.
Удачи! Постараюсь до твоего приезда ничего не делать :)

Error404
06.09.2009, 20:05
Удачи! Постараюсь до твоего приезда ничего не делать :)

:)
Схему можно нарисовать. Того, что уже есть.

Ewgeny7
06.09.2009, 20:34
Схему можно нарисовать. Того, что уже есть.
Вот этим и займусь.
Версию обновил до 0.07. Работает всё, кроме устойчивой работы ВВ на порту F6. Кажется мне, что замена на 82С55 поможет.

Error404
07.09.2009, 09:10
Вот этим и займусь.
Версию обновил до 0.07. Работает всё, кроме устойчивой работы ВВ на порту F6. Кажется мне, что замена на 82С55 поможет.

А закономерность глюков с ВВ55 какая-то просматривается?
Пробовал писАть на CF под CPM при помощи NC?

Error404
11.09.2009, 19:39
Как дела у Главного конструктора? Чего то тут полнейшее затишье...

Ewgeny7
11.09.2009, 20:20
ГК пользуясь Вашим отсутствием занимается Фениксом м прибабахами к нему типа СМУКов всяких :)
Прямо сейчас пялюсь в VHDL-код YM2149. Пока мало что понял... Надо пойти стакан принять. Кофе.

---------- Post added at 20:20 ---------- Previous post was at 20:15 ----------


А закономерность глюков с ВВ55 какая-то просматривается?
Тут кстати кое-какая закономерность есть. ИДЕ работает когда ВВ55 "прогревается". На "холодную" или "уже теплую" в плане стабильной работы рассчитывать не приходится. В общем, нашел в Питере какуюто UDP82C55A. Надо съездить за ней.

Error404
11.09.2009, 21:05
Прямо сейчас пялюсь в VHDL-код YM2149.


Это вселяет оптимизм.



Тут кстати кое-какая закономерность есть. ИДЕ работает когда ВВ55 "прогревается". На "холодную" или "уже теплую" в плане стабильной работы рассчитывать не приходится. В общем, нашел в Питере какуюто UDP82C55A. Надо съездить за ней.

В старые времена советские ВВ55 (выборочно) еще были чувствительны к длительности импульсов /WR, /RD процессора. Какая у них длительность в FPGA? Именно с этой точки зрения решало применение /WAIT. Дает ли такой же эффект переключение такта в нетурбо?
А пробовался только один экземпляр ВВ55?

Ewgeny7
13.09.2009, 12:00
А пробовался только один экземпляр ВВ55?
Не, две штуки.


Дает ли такой же эффект переключение такта в нетурбо?
Одинаково.


Именно с этой точки зрения решало применение /WAIT
У меня при работе с портами F4 и F6 полюбасу включается нетурбо.

В общем, пока вчера катался в Ивангород, появилась идея что тут может быть "замешан" порт F4. Попробую жёстче блокировать его при обращении к F6.
Ибо срывы идут как раз в том месте, где после нашатия Интер сразу идет работа с винчестером.

Error404
13.09.2009, 15:55
А с VHDL-код YM2149 получается что-нибудь?
Это тоже хочется. :) В Орионе конечно не так много прог с муз процессором как в ZX (чтобы делать это обязательным модулем), но достаточно, чтоб было жалко от него отказываться. А когда AY в FPGA и не надо дополнительного корпуса на плате - самое оно.

Ewgeny7
13.09.2009, 16:47
А с VHDL-код YM2149 получается что-нибудь?
Пока даже не пытался.
Запихнуть нетрудно. Но непонятны некоторые вещи.

Error404
14.09.2009, 18:30
Немножко фото
http://zx.pk.ru/showpost.php?p=217048&postcount=307


Кстати, только что обратил внимание: на картинке, где панели Нортона в правой панели (панель в режиме full), у тебя даты/время файлов имеют вид "63.00.96 63:63". Это какие-то чудеса чудесные, т.к. образ диска
http://orion-z.hoter.ru/file/337/5288_games.zip
и в эмуляторе, и на реале показывает даты "00.00.96 00:00" - это расшифровка дат, когда на свежесгенерированной системе соответствующие сектора HDD заполнены нулем (в этой ОС даты считаются с полуночи начала 96 года).
В самой распоследней версии какие даты файлов показываются?

Ewgeny7
14.09.2009, 18:45
Нормально вроде...

Error404
14.09.2009, 19:09
Нормально вроде...

т.е. что-то поменялось с момента 307 поста (см. картинку по ссылке, меня не глючит? :) )
http://zx.pk.ru/showpost.php?p=217048&postcount=307

Ewgeny7
14.09.2009, 19:47
т.е. что-то поменялось с момента 307 поста
Ага. Изменилась работа с ВВ55.
Сейчас проект дошел до состояния, когда уже не знаешь что улучшать...
Чую своим чуем, что заменив ВВ55 на 8255 всё заработает совсем чётко.
Некогда съездить в центр за микрухой :(

Error404
18.09.2009, 10:03
Сейчас проект дошел до состояния, когда уже не знаешь что улучшать...


Надо делать схему, печатку и выводить в народ. Народ - мастак по части понапридумывать чего улучшать. :)



Чую своим чуем, что заменив ВВ55 на 8255 всё заработает совсем чётко.
Некогда съездить в центр за микрухой :(

Сегодня еду во Владимир, на реале еще раз погоняю IDE-шный софт на чтение\запись (будет или нет воспроизводиться глюк, ранее не замечал). У меня там используется КР580ВВ55А 1990 года выпуска. Впаяна, другие проверить не могу. Комп турбирован до 5Мгц по схеме с WAIT (ОЗУ работает на 2,5 МГц, CPU и порты - на 5МГц). В среднем это дает 3,5 МГц реального такта, что оптимально для режима "нетурбо". В "турбо", как показывает практика, желательно иметь 7-10 МГц реального такта.

Ewgeny7
20.09.2009, 23:38
Вроде бы фкурил исходники работы с клавиатурой. За основу взяты модули с соседнего топика про Вектор :) , плюс преобразования igor_t для Ориона. Насчет авторства серьёзно не вникал, содержимое интересней :)
Смущает только высокий клок для тактирования - 40Мгц. Надеюсь что 20Мгц на нашей девборде для счастья хватит, учитывая невысокую скорость процессора. Что в свою очередь обусловлено достаточно медленной (дешевой) памятью.
Также прошу помощи спецов. Имеем готовый модуль YM2149.
На выходе каналов имеются 8-разрядные данные. Насколько знаю, эти 8 бит должны рулить ШИМом. Как это обычно реализуется?
Т.е. предполагаю, что на высоком клоке (на каком лучше?) один период клока грубо говоря делим на 256 участков, и "заполняем" его "1" в зависимости от входных данных. Выходит, что например код 128 "заполнит" период на половину, 64 - на четверть.
ТАК это делается?

Error404
21.09.2009, 10:55
А я пока ничего не проверил - у меня реал не работает. :frown: Точнее работает первую минуту-другую, а потом что-то где-то прогревается, и все виснет. Не знаю пока в какую сторону копать, и такая мешанина навесного монтажа, что лезть туда страшно. Старость- не радость, надо собирать новый. :)
--
Зато появилась мысль как сделать работу в CP/M стабильнее. У меня там при работе с IDE не запрещаются прерывания. Возможно если отключать прерывания на время записи/чтения сектора (а потом включать), то в целом будет работать стабильнее. Но исходники в Москве, переделать смогу только через пару недель. И опять же вопрос - в этом ли дело.
--
Евгений, можешь попробовать отключить в прошивке FPGA прерывания и проверить работу с IDE без прерываний?

Ewgeny7
21.09.2009, 15:43
Евгений, можешь попробовать отключить в прошивке FPGA прерывания и проверить работу с IDE без прерываний?
Могу. Завтра. Компик остался на работе, над ним ведется доработка паяльником.

Ewgeny7
23.09.2009, 21:42
Переделал клавиатуру для работы напрямую с ПЛИС. Спасибо огромное svofski и igor_t! Вас небыло рядом, но ваши идеи вечны! :)
Теперь, дабы наконец-то вместо "альфа" написать "бета", нужна информация по YM.
Какие порты, подключение в реале. И главное - каким же образом всё-таки выглядит ШИМ-преобразование для выходов звука?

Error404
23.09.2009, 22:09
Переделал клавиатуру для работы напрямую с ПЛИС. Спасибо огромное svofski и igor_t! Вас небыло рядом, но ваши идеи вечны! :)


Круто. Нетерпится узнать подробности - т.е. какие кнопки работают, работает ли поле курсорных кнопок, функциональные, ctrl-shitf, поле цифровой клавиатуры?
Это вообще как-то настраиваемо, напрмер если надо будет "переместить кнопку по матрице"?



Теперь, дабы наконец-то вместо "альфа" написать "бета", нужна информация по YM.
Какие порты, подключение в реале. И главное - каким же образом всё-таки выглядит ШИМ-преобразование для выходов звука?

Про ШИМ не знаю, а подключение абсолютно одинаковое с ZX-феникс :)
Делалось так специально чтобы не переделывать звук в программах от Спектрума.
Порты BFFD/FFFD. Конкретно как оно у меня подключено к Ориону можно посмотреть здесь:
http://orion-z.hoter.ru/file/355/2434_scr_turbo_AY_kempston.rar

svofski
23.09.2009, 22:14
На здоровье :)

ШИМ звука я не делал, но по-моему в этом не должно быть ничего сложного? Есть два счетчика. Один простой, Ц1, который считает свои, допустим, 8 разрядов и просто переполняется. Второй, Ц2, -- с параллельной загрузкой. Оба вычитают 1 на каждый клок, но Ц2, досчитав до 0, блокируется.

Разрешающий сигнал записи значения с выхода АЫ в Ц2 = (Ц1 == 0).

Выход аудио = Ц2 != 0;

По-моему это должно работать. Если основной клок 3МГц и хочется выводить 8 бит, то реальная частота семплирования будет 11178 Гц, то есть звуки где-то до 6 кГц. Вполне съедобно для АЫ. Наверное стоит выход АЫ профильтровать скользящим средним, чтобы не было алиасинга.

tnt23
23.09.2009, 22:24
Вот про ШИМ с fpga4fun.com (там они его называют PWM):

http://www.fpga4fun.com/PWM_DAC.html

Ewgeny7
23.09.2009, 22:39
Всем спасибо! Буду "курить" :)


какие кнопки работают, работает ли поле курсорных кнопок, функциональные, ctrl-shitf, поле цифровой клавиатуры?
Считываются вроде как все. Что увидит Орион при нажатии - назначается в матрице преобразования кодов. Я взял готовую "раскладку" у igor_t. При желании можно редактировать. Маленько неудобно, что исчез сброс с клавиатуры.
И цифровое правое поле назнчено как "не нумлок". Но это решаемо.

svofski
23.09.2009, 23:23
module PWM(clk, PWM_in, PWM_out);
input clk;
input [7:0] PWM_in;
output PWM_out;

reg [8:0] PWM_accumulator;
always @(posedge clk) PWM_accumulator <= PWM_accumulator[7:0] + PWM_in;

assign PWM_out = PWM_accumulator[8];
endmodule
Не могу понять. Если на каждый клок значение аккумулятора будет увеличиваться на входное значение, это что ж это будет?

Ewgeny7
23.09.2009, 23:40
Это вообще как-то настраиваемо, напрмер если надо будет "переместить кнопку по матрице"?
Если интересно, вот две матрицы. Сначала выполняется первая, переводит непосредственно код клавиши в код АСЦЫ.
Вторая - уже привязка непосредственно к Ориону.
Детально я в этой каше пока не разбирался, некогда было :)

tnt23
24.09.2009, 09:28
Не могу понять. Если на каждый клок значение аккумулятора будет увеличиваться на входное значение, это что ж это будет?

Там аккумулятор 9-битный, а входное значение 8-битное. Известно что - или аккумулятор переполнится, или нет.

b2m
24.09.2009, 11:14
Не могу понять. Если на каждый клок значение аккумулятора будет увеличиваться на входное значение, это что ж это будет?
Будет линейная зависимость выходной частоты от входного значения.

svofski
24.09.2009, 11:37
Там аккумулятор 9-битный, а входное значение 8-битное. Известно что - или аккумулятор переполнится, или нет.

Это да, одно из двух наверняка произойдет. Вопрос только, как называется то, что получается на выходе. ШИМ характеризуется периодом и скважностью (классическая картинка: синус рисуется поверх пилы и ширина импульсов определяется точками пересечения пилы синусом). В fpga4fun-ном примере я вижу изменение крутизны самой пилы, то есть ее периода, в зависимости от модулирующего сигнала.. Как мы называем такое? Что-то типа ЧМ выходит. Кроме того, он выводит непосредственно бит переноса, который будет становиться 1-й только на один клок, это уже вообще какая-то частотно-импульсная модуляция...

Сейчас еще подумал чуть чуть. Это самый настоящий фазовый аккумулятор, только очень малоразрядный и его дельта фазы равна входному значению. Частота на выходе будет равна dФ*Fclk/2^8.

Мой моск.. Зачем люди пишут такие вещи? =)

---------- Post added at 11:37 ---------- Previous post was at 11:36 ----------


Будет линейная зависимость выходной частоты от входного значения.

Или так.

b2m
24.09.2009, 12:13
Мой моск.. Зачем люди пишут такие вещи? =)
Видимо, чтобы получить экспоненциальную зависимость сглаженного выходного сигнала от входного значения.

Error404
24.09.2009, 12:18
предлагаю параллельно модифицировать отганизацию ПЗУ. В настоящий момент у нас (у Евгения, конечно же :) ) применена 128k-ПЗУ (27с010 или аналогичная или бОльшая типа 27c- 28- 020, 040) в которой из первых 64к используется только 2к для Монитора, во вторых 64к расположен стандартный Орионовский РОМ-диск.
-
Предлагаю ввести дополнительный порт в котором будет выбираться какой из 2к-шных сегментов первого 64к-куска ПЗУ виден в адресном пространстве процессора как штатный ПЗУ-Монитор (0F800h...0FFFFh). Это позволит в первом куске иметь "меню", из которого выбирать что угодно - тест памяти, или любой монитор (их много разных версий), или отладчик или еще чего-то. Или вместо меню уныло иметь только один обычнй 2к-шный Монитор - кому как понравится. :)
-
Предлагаю порт 0FCh (он был зарезервирован в портах Z80 Card II как раз для сегментации ПЗУ). При включени питания порт 0FCh инициализировать в 0 - т.е. получим по умолчанию ту же конфигурацию что и сейчас, но которая сможет трансформироваться в зависимости запишем ли мы чего-то в порт 0FCh.
-
Итого, на сегментацию первого 64к-куска ПЗУ уйдет 5 разрядов порта 0FCh (D0..D4). При чтении с порта 0FCh в разрядах D0..D4 возвращать номер активного сегмента первого 64к-куска ПЗУ (т.е. то что туда и записали), а в разрядах D5..D7 - значение 3-х разрядного DIP-конфигуратора, для которого не жадничать и пожертвовать три ножки FPGA.

tnt23
24.09.2009, 12:32
Сейчас еще подумал чуть чуть. Это самый настоящий фазовый аккумулятор, только очень малоразрядный и его дельта фазы равна входному значению. Частота на выходе будет равна dФ*Fclk/2^8.

Мой моск.. Зачем люди пишут такие вещи? =)


(чуть не плача) Модем не мой, я просто разместил объяву!

svofski
24.09.2009, 12:33
tnt23, лол. Не надо все принимать на свой счет =)))

Ewgeny7
24.09.2009, 15:49
в которой из первых 64к используется только 2к для Монитора, во вторых 64к расположен стандартный Орионовский РОМ-диск.
Немножко не так. ПЗУ можно использовать и 64кб. Прошивки расположены таким образом, что 0000H - F7FFH - место под ROM-диск, F800H - FFFFH - монитор соответственно.
А страницы уже самого ПЗУ (по 64кб) я уже переключаю свитчами.
Насчет порта - да с удовольствием :) Если мешаться программам не будет.

Error404
24.09.2009, 17:34
Немножко не так. ПЗУ можно использовать и 64кб. Прошивки расположены таким образом, что 0000H - F7FFH - место под ROM-диск, F800H - FFFFH - монитор соответственно.
А страницы уже самого ПЗУ (по 64кб) я уже переключаю свитчами.
Насчет порта - да с удовольствием :) Если мешаться программам не будет.

Т.е. решил применить ROM-диск только 32к размером? Я думал уже взято по максимуму возможному в Ордос - 64к для диска "А" (РОМ-диска) - уж тут можно вроде не экономить. Потому и писал про то что "пропадает 62к". Такое деление выбрано специально чтобы уместиться в 27с512? На плату ИМХО все равно надо разводить 32 ногий корпус, т.к. таких мсх (128к х 8 и более емкие) можно больше найти - такие сейчас на любой помойке есть в выбрасываемых РС. Среди них и весьма удобные есть - атмеловские 5Vonly флешки с сектором 256 байт - их можно как-нибудь наладить для перепрошивки в самом Орионе.
-
Порт FC вроде не должен ничему мешать.

Ewgeny7
24.09.2009, 19:55
Т.е. решил применить ROM-диск только 32к размером?
62кб РОМ-диск + 2кб Монитор = 64кб ПЗУ :) Граница проходит по F7FF-F800.

Порт FC вроде не должен ничему мешать.
Заказывай битики и уточни раскладку ПЗУ при рулении портом.

Error404
24.09.2009, 20:16
62кб РОМ-диск + 2кб Монитор = 64кб ПЗУ :) Граница проходит по F7FF-F800.


Аааа. Теперь дошло. :)



Заказывай битики и уточни раскладку ПЗУ при рулении портом.

Тогда битики не вписываются во в принципе и без того нормальную концепцию. Тогда погодим с навороченным ПЗУ F800, тем более мне как СРМ-щику оно не надо (а надо только загрузиться, для чего 2к вполне хватает, даже РОМ-диск не особенно нужен). Я возбудился именно на "пропадающие без дела 62к", а оказывается ничего не пропало, всё ушло в дело...

ЗЫ. Но панельку все равно надо разводить 32-ногую. :)

Ewgeny7
24.09.2009, 20:40
ЗЫ. Но панельку все равно надо разводить 32-ногую.
Ессесьтвенно. В соседнем топике фото с предполагаемой ПЗУ :)

Ewgeny7
25.09.2009, 00:16
Вроде привел прошивку в порядок. Замечены "типа случайные" порчи данных на CF. Может, потому и попытки записи напрочь убивали партиции? :(
Придется повнимательней поковырять моменты работы с ВВшкой F600.

Error404
25.09.2009, 10:27
Вроде привел прошивку в порядок. Замечены "типа случайные" порчи данных на CF. Может, потому и попытки записи напрочь убивали партиции? :(
Придется повнимательней поковырять моменты работы с ВВшкой F600.

СРМ использовалась с образа games1.ohi ?
Прошивка с прерываниями?

Ewgeny7
25.09.2009, 15:01
СРМ использовалась с образа games1.ohi ?
Да, новая. И прошивка новая.
Статистика показывает, что косяки главным образом в тот момент, когда Интером подтверждаю, что время и дата мне по барабану и должна продолжиться загрузка ДОС. Тут всё может зависнуть, или вывалиться промт ОС, или наконец пройти далее нормально с загрузкой Нортона. После десятка загрузок приходится заново заливать образ винта на флешку.
Полазил по функциям (hardware) работы с ВВ55. Ничего предосудительного не нашел, всё в принципе такое же, как и при работе с памятью. А с памятью проблем с записью/считыванием нет.
Error404, не помню, ты вроде говорил что с F600 драйвера работают только как с ячейками памяти, т.е. IN/OUT (F6) не применяется?

Error404
25.09.2009, 17:36
Да, новая. И прошивка новая.
Статистика показывает, что косяки главным образом в тот момент, когда Интером подтверждаю, что время и дата мне по барабану и должна продолжиться загрузка ДОС. Тут всё может зависнуть, или вывалиться промт ОС,


В этот самый момент портом 0FBh аппаратно производится включение прерываний (т.е. импульсы начинают подаваться на ножку ЦПУ), до этого они всю дорогу аппаратно выключены. Вне зависимости от этого в коде ДОС (как до так и после) при обращении к IDE делается программное выключение прерываний: DI/EI. Сейчас еще раз убедился - проверил исходник. Не знаю в чем может быть дело, попробую воспроизвести на эмуляторе (реал сдох).



Error404, не помню, ты вроде говорил что с F600 драйвера работают только как с ячейками памяти, т.е. IN/OUT (F6) не применяется?

Да, только операции с памятью - STA\LDA (LD в нотации Z80)

Ewgeny7
25.09.2009, 18:01
Сравнивая работу с эмулятором, обнаружил что порт FB у тебя рулится только командой OUT (FB). Так и должно быть?

Обнаружил ошибку в коде. У меня не блокировалась запись в порты F8 - FB при включенной фулраме по LD (xxxx),x.
Заработали все прочие игрушки, включая любимых Диззей :)
С винчестером всё по старому.

Error404
25.09.2009, 19:32
Сравнивая работу с эмулятором, обнаружил что порт FB у тебя рулится только командой OUT (FB). Так и должно быть?


F4...F7 по LD
F8...FA как по LD, так и по OUT
FB...FF только по OUT

Ewgeny7
26.09.2009, 15:21
Error404, а если использовать вместо ВВ55 обычные АП6?
Порты F6 как работают (в смысле, какие на ввод, какие на вывод данных)?

Error404
26.09.2009, 16:12
Error404, а если использовать вместо ВВ55 обычные АП6?
Порты F6 как работают (в смысле, какие на ввод, какие на вывод данных)?

АП6 не получится, надо ставить три 8-разрядных регистра (т.е. с памятью записанного значения) и Z-состоянием. Для порта где еще висит ЛН1 регистр однонаправленный (данные идут от компа в IDE), на два остальных порта - двунаправленные регистры (данные идут в обе стороны).
-
Вообще все ОЧЕНЬ странно. У меня реал сейчас работает в среднем 1-2 минуты (пока там что-то не прогреется), затем виснет и надо ждать пару часов (чинить пока не начинал, но явно виснет не из-за IDE). Так вот мне ни разу не удалось "встрять" после ввода (или неввода) времени. Всегда все загружается нормально, иногда даже игруху успеваю загрузить (опять же прочитать с IDE) и запустить. Тут везде только чтение, запись если принудительно не запускалась (например, в NC), нигде не вызывается.
-
Вот еще что подумалось: что у тебя происходит в прошивке, если идут обращения по LD в область F700..F7FF? Драйвер консоли (а это именно он при старте запрашивает время и включает прерывания) в том числе и работает с 512ВИ1 (не важно есть она или нет - в эти порты он при старте ломится), а она висит на адресах F760,F761.

---------- Post added at 16:12 ---------- Previous post was at 15:54 ----------

-
А с быстродейсвием клавиатуры в FPGA решилось что-нибудь? Теперь срабатывает пропуск теста памяти при старте ДОС (п.п. Монитора KeyStatus)? Игруха Crazy Cars работает (crcars#.com)? Там тоже порт опрашивается не более чем за за 10 тактов CPU - конструкцией
LD (F400),A
LD A,(F401)

Ewgeny7
26.09.2009, 18:23
АП6 не получится, надо ставить три 8-разрядных регистра (т.е. с памятью записанного значения) и Z-состоянием.
Ясно, думаем дальше...


Игруха Crazy Cars работает (crcars#.com)?
Да, работает нормально.


Теперь срабатывает пропуск теста памяти при старте ДОС (п.п. Монитора KeyStatus)?
Работает. Чем было вызвано несрабатывание - осталось загадкой.


А с быстродейсвием клавиатуры в FPGA решилось что-нибудь?
Тут такое дело. Клавиатура работает, даже вроде как нормально. Даже несмотря на низкий клок (20 вместо 40Мгц). Я поначалу изменял константы для таймеров чтения клавиатуры, но потом вернул всё на место, ибо и так тоже работает. Заодно получилась поддержка ооочень старых клавиатур с доисторическими скоростями :)
Но во многих игрушках приходится изрядно "потыкаться" чтобы проскочить начальное меню. Вероятно, это связано с попытками программ определить что за клава подключена? К примеру - Диззи, Крези Кар, Эксолон, Кибер2...

---------- Post added at 18:17 ---------- Previous post was at 18:14 ----------


Вот еще что подумалось: что у тебя происходит в прошивке, если идут обращения по LD в область F700..F7FF?
Это попадает в облась "portsel", но драйвера для области F7 нет. Это значит, что на шину данных идут данные (при WR='0'), адрес тоже выводится наружу, сигналы WR и RD также снаружи. Но все "селекты" не активны. Т.е. ОЗУ, ПЗУ, порт винта не получают сигнала выборки.

---------- Post added at 18:23 ---------- Previous post was at 18:17 ----------

Error404, у тебя инет быстрый? Просто я мог бы выложить видео с работой компа при запуске ДОС.

Ewgeny7
26.09.2009, 22:32
Вывел отдельную шины данных и адреса для внешних ВВшек.
Ибо до этого применялась мультиплексированная процессор/видеогенератор.
Стало ощутимо лучше работать с винтом. Настраиваю прерывания.

Error404
28.09.2009, 13:43
Ну как?

Ewgeny7
28.09.2009, 20:12
Ну как?
Не, по прежнему, бардак :(
Помаленьку развожу печатную плату под ЛУТ, односторонку :)

Error404
29.09.2009, 16:25
Не, по прежнему, бардак :(
Помаленьку развожу печатную плату под ЛУТ, односторонку :)

Какова нагрузочная способность ПЛИС, если мерить в количестве ножек ТТЛШ (555\1533) которые можно повесить на один выход ПЛИС?
Разведи заодно еще 512ВИ1 и системный разъем?
А 512ВИ1 это же не только энергонезависимые часы и память, но и 2 уже готовых генератора с программируемыми делителями - их можно использовать вместо 580ВИ53 для тактирования мсх организующей RS-232. Как 512ВИ1 подключается есть в соседнем треде (он так и и называется). Только надо будет вывести из ПЛИС сигнал /F760, который =0 когда по LD делается обращение к адресам F760, F761.
А системный разъем просто чтобы был. Такой как в ж-ле Радио 1990\1.
Что скажешь?

Ewgeny7
29.09.2009, 17:46
Взял за основу альтеру на 144 ноги (доступных 104, против 64 на предыдущей модели :) ).
Системный разъем уже обозначил. Единственно, изза односторонности раскидать сигналы совсем как хочу - не получится. Или получится? :v2_conf2: В общем увидим.
Разъем пока нарисовал ИДЕшный, 40-контактный.
Больше половины сделал, и тут меня накрыло... Может, сделать плату двухэтажную, нижняя основная с памятью и всем прочим, а верхнюю платку сделать исключительно под альтеру? Там же дорожки с шагом 0,5 мм, если протравить хорошо не получится, то вся Орионовская плата в помойку пойдет. А так - нижняя на широких шинах, всяко легче делать?
А переход межплатный сделать на "столбиках" из проволочек.
Конечно, маде ин Гадюкино получится, но у меня другого выхода похоже нет. МГТФ уже задолбал :v2_crazy: Не удивлюсь, если и винчестер заработает на печатной плате...

В общем, с винтом у меня пока идей нету. Ухожу в краткосрочный отпуск по неторопливому изготовлению печатки :)

Список изменений комплектухи:
EP1C3T144C8N - новая альтера
AS7C1024B-12TJCN - новая память, по 128кб, по 55руб, нужно 2 штуки. Желающие смогут нарастить память еще "бутербродом" :v2_devil:

Error404
29.09.2009, 18:42
Взял за основу альтеру на 144 ноги (доступных 104, против 64 на предыдущей модели :) ).


А корпус у предыдущей тоже был с шагом ножек 0,5?



Больше половины сделал, и тут меня накрыло... Может, сделать плату двухэтажную, нижняя основная с памятью и всем прочим, а верхнюю платку сделать исключительно под альтеру? Там же дорожки с шагом 0,5 мм, если протравить хорошо не получится, то вся Орионовская плата в помойку пойдет.


Почему бы и нет. Можно заложиться на совместимость со стандартным переходником на TQFP200 (печаткой от ЧипаДипа - помнишь, на картинке с презистором :) ) - ИМХО проще потратить 100 рублей на такой переходник, чем ловить протравы и залипоны на самодельной печатке. Все-таки 0,5 мм это сильно не радиолюбительские размеры шага ножек. Я такое точно самостоятельно не сделаю.



Ухожу в краткосрочный отпуск по неторопливому изготовлению печатки :)


Может, бету зарелизишь? Пока пусть и без печатки...



Список изменений комплектухи:
EP1C3T144C8N - новая альтера
AS7C1024B-12TJCN - новая память, по 128кб, по 55руб, нужно 2 штуки. Желающие смогут нарастить память еще "бутербродом" :v2_devil:

Нафиг бутерброды. :v2_devil: Я с ними наелся еще на старом Орионе - потенциальный глюкодром. Может, все же развести (и соответственно поддержать в прошивке и вывести из ПЛИС) два корпуса по 512х8? У них такой же 32-ногий корпус с такой же точно цоколевкой (+2 адресные ноги), на такую печатку завсегда можно установить без всяких переделок два корпуса по 128х8, а вот обратное (что и озвучено) - не получится.
-
Кстати, если расширять память от конфигурации 256к (две 128х8) можно будет добавлением только одного корпуса, или их обязательно попарно надо ставить, и однотипные? Можно будет, к примеру, без особых извращений к двум имеющимся AS7C1024B-12TJCN добавить ОДНУ мсх 512х8 70нс (именно таких в продаже большинство)?

Ewgeny7
30.09.2009, 20:45
А корпус у предыдущей тоже был с шагом ножек 0,5?
Да, они все такие...


Можно заложиться на совместимость со стандартным переходником на TQFP200
А вот это хорошая идея. Можешь сделать нормальный скан или хотябы эскиз макетки, дабы нижнюю плату подогнать под неё?


Может, бету зарелизишь? Пока пусть и без печатки...
Меня уже трясли на предмет выложить схему и прочее.
Товарисчи, какая может быть схема, когда мы еще не утрясли комплектующие?
Могу выложить функциональную схему, без указания конкретных микросхем.
Да, бета появится после печатной платы. Тут завязка на то, что Mikka_A обещал подогнать бесхозные 82С55 :) Но, я больше склоняюсь что это глюк прерывания/программа. Без прерываний ОС стартует вроде нормально. Если есть прерывания и мы проскочили загрузку ОС, то из Нортона всё работает великолепно. Проги грузятся и запускаются. Вот такая ботва.
И кстати. Я тут грешил, что не идет запись на CF, партиции убиваются. Я был в шоке когда попробовал сделать тоже самое в ЭМУЛЯТОРЕ. Один в один. Попытка записи (копирования в Нортоне) убило партицию прямо в образе games1.ohi :( И само копирование также обрывается с ошибкой.


Можно будет, к примеру, без особых извращений к двум имеющимся AS7C1024B-12TJCN добавить ОДНУ мсх 512х8 70нс (именно таких в продаже большинство)?
У меня на плате так и сделано. Дополнительная память может быть 8-битной, одним корпусом. Я сделаю два по 128 просто по умолчанию, дополнительную можно будет воткнуть дополнительно. Только надо придумать как...

fifan
01.10.2009, 08:10
Могу выложить функциональную схему, без указания конкретных микросхем.
...
Давай функционалку, посмотрим...

Mikka_A
01.10.2009, 11:41
...... Тут завязка на то, что Mikka_A обещал подогнать бесхозные 82С55 :) .........


если так горит - ну давай я в суббту к тебе подскочу днем.... :eek:

Error404
01.10.2009, 17:24
Можешь сделать нормальный скан или хотябы эскиз макетки, дабы нижнюю плату подогнать под неё?


Фотку разве что, и на будущей неделе. Я сейчас во Владимире, уже две недели болею с глазами (2 письма в день - это сейчас для меня предел работы на компе). А платка в Москве.



Но, я больше склоняюсь что это глюк прерывания/программа. Без прерываний ОС стартует вроде нормально. Если есть прерывания и мы проскочили загрузку ОС, то из Нортона всё работает великолепно.


Вот тут совсем не понятно. У меня этап "проскочили\не проскочили" не воспроизводится ни на реале, ни в эмуляторе. Проскакивает всегда. Пробовал на реале как с ВИ1, так и без нее, как на 5Мгц, так и на 2,5Мгц тактовой. Прерывания всегда в это время работали. Да и нет там ничего принципиально такого, что отличалось бы от последующей работы с IDE, когда уже работает нортон (в конечном итоге все идет через одну и туже подпрограмму). На реале пробовал образ games.ohi - работает, games1.ohi не пробовал.



Проги грузятся и запускаются. Вот такая ботва.
И кстати. Я тут грешил, что не идет запись на CF, партиции убиваются. Я был в шоке когда попробовал сделать тоже самое в ЭМУЛЯТОРЕ. Один в один. Попытка записи (копирования в Нортоне) убило партицию прямо в образе games1.ohi :( И само копирование также обрывается с ошибкой.


Конечно, буду посмотреть, но сильно поможет, если опишешь какая последовательность действий приводит к краху. И в каком эмуляторе какой версии (навскидку как минимум три эмуля эмулируют такую схему IDE на Орионе). Мне пока такого эффекта достичь не удавалось (пользую OrionZEm.exe собственного изготовления). :)

Ewgeny7
01.10.2009, 19:10
Error404, это твой эмулятор, OrionZEm.
В Нортоне левую панель, к примеру, открываю в "C:\USER15", правую - в "C:\".
Копирую ЛЮБОЙ файлик, даже батник в 250 байт в другую панель кнопочкой "5".
Файл считывается, начинается запись и... Прогрессбар до конца не доходит. "Directory full". После перезагрузки партиции уже нет.


У меня этап "проскочили\не проскочили" не воспроизводится ни на реале, ни в эмуляторе.
В эмуляторе у меня тоже всё работает в этом плане.
ВВ55 висит на персональных шинах :v2_finge:, связь напрямую с softZ80, ничего работе не мешает. Я уже заколебался искать причину. Переделывал прерывания, менял длину.
Всё, чем отличается Орик от "оригинала" - это процессором. Софтверный и реальный. И кажется, что при "перещелкивании" FB-прерываний проц что-то мухлюет, неправильно немножко отрабатывает его.

---------- Post added at 19:10 ---------- Previous post was at 18:02 ----------

Блок-схема. Брутально карандашем на листке бумаги. Попытался разрисовать все сигналы, чуть-чуть не влезло, чуть-чуть забыл :)
Видеоблок надо просто банально скопировать от спектрума, например "Ленинград-1". Хотя, и нарисованная в схеме "времянка" также неплохо видео формирует :)

Error404
01.10.2009, 19:31
Error404, это твой эмулятор, OrionZEm.
В Нортоне левую панель, к примеру, открываю в "C:\USER15", правую - в "C:\".
Копирую ЛЮБОЙ файлик, даже батник в 250 байт в другую панель кнопочкой "5".
Файл считывается, начинается запись и... Прогрессбар до конца не доходит. "Directory full". После перезагрузки партиции уже нет.


Действительно, воспроизводится при записи если IDE на порту F600 (у меня на реале и по дефолту в эмуляторе IDE на порту F500 - для них все нормально отрабатывает). А я ведь это вроде уже когда-то находил и правил. Вот что значит скомпилил по-быстрому на старых исходниках, чтобы добавить DI/EI при работе с IDE (новые остались на работе в Москве) :) . Поправлю - обновлю.

Keeper
02.10.2009, 00:25
Блок-схема...

Что это за диоды на PS/2? Тем более ps2_data двунаправленный... И для питания сыклона два диода лучше заменить на "то что надо" :)

Ewgeny7
02.10.2009, 20:43
Что это за диоды на PS/2? Тем более ps2_data двунаправленный
Диоды используются как "переходник" 5в - 3в.
Про двунаправленность я абсолютно в курсе событий :)
Но это не используется в принципе. Клавиатура работает в режиме по умолчанию.


И для питания сыклона два диода лучше заменить на "то что надо"
Если здесь найдется чел, считающий что диоды лучше стабилизатора, то ему в психушку дорога. Но если стабилизатора под рукой нет и искать его лень - то все средства хороши :)
Для релиза разумеется будет установлен правильный стабилизатор.

Black_Cat
02.10.2009, 21:20
Если здесь найдется чел, считающий что диоды лучше стабилизаторане думаю, что заметишь разницу :) . В своё время, с помощью пары импульсных выпрямительных диодов было переведено море 486 мамок на 3х вольтовое питание процессора :) ..и ничего - до сих пор живы :)

Ewgeny7
02.10.2009, 22:27
..и ничего - до сих пор живы
Да, Орион работает, Спекки-2007 работает (SD-карта). Но разницу иногда заметить можно. Ядро Циклона (полуторавольтовое) заводиться на 1.4в не желает (точнее, не стартует Т80). А вот превышение до 1.7-1.8 вроде не критично, всё тикает. Но непонятки с прерываниями не отсюда ли растут? Увидим позже.

fifan
04.10.2009, 10:21
Ewgeny7, как насчет сопряжения по двухнаправленным шинах d(7...0), d(15...8), d_bus(7...0)? Не какой развязки, так напрямую лог.1 (5В) на плисину от ОЗУ, ПЗУ и ППА? Или просто не отобразил на блок схеме?

Ewgeny7
04.10.2009, 14:17
как насчет сопряжения по двухнаправленным шинах
Никак. Это не нужно. Порты альтеры не боятся 5 вольт. Но можешь добавить в разрыв резисторы ом 200 если религия не разрешает :)

fifan
04.10.2009, 19:59
Я как понял, цвет и звук пока не реализованы?

Ewgeny7
04.10.2009, 20:49
Я как понял, цвет и звук пока не реализованы?
Цвет есть полный, звук - порты FE и FF. Только AY-ку пока не делал. Нет свободных ног на EP1C3T100. На новом чипе ног уже поболее. Выход звука - просто с ноги альтеры на buzzer, с него на землю. Звук негромкий, но как встроенное решение - вполне нормально.

fifan
07.10.2009, 08:37
...Блок-схема...
А из известной мне схемы покдючения HDD к 82С55 инверторы ЛН1 подключены к порту А кроме PA0,1,2. Ошибся?

Ewgeny7
07.10.2009, 18:27
А из известной мне схемы покдючения HDD к 82С55 инверторы ЛН1 подключены к порту А кроме PA0,1,2. Ошибся?
Рисовал по памяти. Наверное ты прав :)

Error404
09.10.2009, 13:18
А вот это хорошая идея. Можешь сделать нормальный скан или хотябы эскиз макетки, дабы нижнюю плату подогнать под неё?


Куплено в Чип-Дип:
http://www.chip-dip.ru/product0/9000058304.aspx

Плата такая: (как сделать с нее эскиз - не представляю). Размеры примерно 80х80 мм.

pvlad
09.10.2009, 16:41
Куплено в Чип-Дип:
http://www.chip-dip.ru/product0/9000058304.aspx
В Чип-Дип, в продаже две разновидности этой платы, только цена разная.
Чем отличается эта плата? Только качеством?
http://www.chip-dip.ru/product0/500932202.aspx

Error404
09.10.2009, 17:25
В Чип-Дип, в продаже две разновидности этой платы, только цена разная.
Чем отличается эта плата? Только качеством?
http://www.chip-dip.ru/product0/500932202.aspx

Там еще шаг дорожек разный. На этой шаг 0,8мм, а на той что я купил (стоила она месяц назад 130р в магазине или 110 через интернет-заказ, сейчас не знаю) шаг 0,5мм. Конечно, 0,5мм это совершенно не радиолюбительские размеры, но деваться некуда - такой шаг ножек у примененного Циклона. Хотя я, например, такое спаять моим 40-ватным паяльником скорее всего не осилю - надо будет как-то выкручиваться :)

Ewgeny7
09.10.2009, 18:06
Размеры примерно 80х80 мм.
Вот и хорошо, в основном всё ясно. Только хотелось бы уточнить - шаг отверстий на платке 2,5 или 2,54мм. Попробуй линеечкой замерить весь ряд и разделить на количество дырдочек.

pvlad
10.10.2009, 00:03
...Хотя я, например, такое спаять моим 40-ватным паяльником скорее всего не осилю - надо будет как-то выкручиваться
Я тоже паяю 40-ватным паяльником, хотя есть и двадцатка! Надо правильно сформировать и заточить жало. Преимущество: быстро прогревается точка пайки и не успевает перегреться сама плата. Конечно нужен навык - "паять, как стрелять".


Только хотелось бы уточнить - шаг отверстий на платке 2,5 или 2,54мм
Мои измерения (после масштабирования) по фотографии на сайте Чип-Дип показывают, что 2,54! Но могу и ошибаться.

Ewgeny7
10.10.2009, 13:46
Надо правильно сформировать и заточить жало. Преимущество: быстро прогревается точка пайки и не успевает перегреться сама плата.
Эта тема обсуждается в "Железо"->"Unsorted"->"Дела паяльные". Рекомендую.
Там, кстати, фото моего домашнего паяльника, которым я вчера за часик собрал еще один VGA-конвертер c альтерой TQFP-100/0.5. Все дело в никелированном жале за 1,5$ и отсутствии тремора в руках :)

Error404
10.10.2009, 17:51
Мои измерения (после масштабирования) по фотографии на сайте Чип-Дип показывают, что 2,54! Но могу и ошибаться.

Померил, разделил. Все верно, шаг 2,54 (ну, почти :) ). А с размером в первый раз я промахнулся. Реальный размер 75х75мм. Меряно китайской рулеткой, если что. :v2_unsur:

Error404
11.10.2009, 00:10
Действительно, воспроизводится при записи если IDE на порту F600 (у меня на реале и по дефолту в эмуляторе IDE на порту F500 - для них все нормально отрабатывает). А я ведь это вроде уже когда-то находил и правил. Вот что значит скомпилил по-быстрому на старых исходниках, чтобы добавить DI/EI при работе с IDE (новые остались на работе в Москве) :) . Поправлю - обновлю.

Поправил, загрузил на страничку orion-z.hoter.ru . Файл games2.zip. Евгений, сможешь проверить на реале?

Ewgeny7
11.10.2009, 00:17
Файл games2.zip. Евгений, сможешь проверить на реале?
Попробую. Только дома мне не обновить образ на флешке, комп со странностями, надо на работе это делать.

Ewgeny7
11.10.2009, 20:44
Расчитывал купить такую же макетку в чипдипе, чтоб далее творить опираясь на неё. Толи полнолуние, толи в чипдипе пид....ы, в интернете у них есть в наличии, в магазине не оказалось :mad:

---------- Post added at 20:44 ---------- Previous post was at 18:57 ----------

Поставил стабилизатор lm317 на 1.5вольта. Честно говоря. расчитывал что проблемы с IDE исчезнут. Ничего подобного.

Error404
13.10.2009, 09:25
Взял за основу альтеру на 144 ноги (доступных 104, против 64 на предыдущей модели ).

Да, кажется вопрос с предустановленной ОЗУ (ПЗУ) в массиве памяти ПЛИС решен.
Это дает возможность разместить драйвер чтения I2C-ПЗУ объемом до 7 килобайт на нашем чипе.
Семи килобайт вам хватит, в конце концов?


А вот подумалось: если от "железного" ПЗУ F800 отказаться и эмулировать его в предустановленной ОЗУ ПЛИС, ROM-диск хранить в 24с512, то освободится немеряно ножек, не менее дюжины! И можно будет использовать альтеру на 64 ноги. Что думаешь насчет этого:



Может, тогда прямо в Альтере просто эмулировать 2к ПЗУ F800? ПЗУ F800 меняется редко - можно и КонфПЗУ задействовать под это. Прописать 3 варианта (если всего 7к, то Монитор 2к[загрузка Ordos] + Монитор 2к[загрузка с IDE] + Test-Ram 1к) и вывести из Альтеры 2 ножки где перемычками двоично выбирать какое ПЗУ из этих трех видно в F800...FFFF.
И в ПЗУ Монитора поправить загрузчик ORDOS, (чтобы оно грузило Ордос по I2C). ORDOS кстати тоже надо будет править чтобы оно работало по I2C.
А 24с??? будет сугубо ROM-DISK-ом в первых 64к и "чем угодно дополнительным" выше 64к.


Я, поскольку не пользуюсь Ordos, в таком случае смогу в свой экземпляр вообще никакое "железное" ПЗУ не впаиваить! (Ну, не считая КонфПЗУ) А это круто. :v2_thumb: На освободившиеся 250рублей (24с512) я лучше еще одну CompactFlash куплю (или SD-карточку).

Ewgeny7
13.10.2009, 15:25
А вот подумалось: если от "железного" ПЗУ F800 отказаться и эмулировать его в предустановленной ОЗУ ПЛИС, ROM-диск хранить в 24с512, то освободится немеряно ножек, не менее дюжины! И можно будет использовать альтеру на 64 ноги.
Неа, освободится одна ножка и тут же займется четыре. Замена ПЗУ на последовательное увеличит расход ножек на три.
Но мне пока хватает и альтеры 64 и/о, поскольку шину расширения я снова убрал нафик. Подключил последовательное ПЗУ и еще свободно осталось 4 ноги.


Что думаешь насчет этого:
Это оптимально. Тем более внутриальтерное (ВА) ПЗУ сегодня заработало :)
Потестил работу М1RK и M34ZRK. Всё летает :) Можно начинать править Монитор.

Также проверил games2.ohi. Запись/копирование работает хорошо. Перенести бы ещё СР/М на РОМ-диск... Было бы совсем шоколадно ;)

pvlad
13.10.2009, 15:44
А вот подумалось: если от "железного" ПЗУ F800 отказаться и эмулировать его в предустановленной ОЗУ ПЛИС, ROM-диск хранить в 24с512, то освободится немеряно ножек, не менее дюжины! И можно будет использовать альтеру на 64 ноги. Что думаешь насчет этого:

Я, поскольку не пользуюсь Ordos, в таком случае смогу в свой экземпляр вообще никакое "железное" ПЗУ не впаиваить! (Ну, не считая КонфПЗУ) А это круто. :v2_thumb: На освободившиеся 250рублей (24с512) я лучше еще одну CompactFlash куплю (или SD-карточку).

Не понял ход Ваших мыслей: Ордос не нужен, но РОМ-диск оставляем!
Последовательное ПЗУ необходимо не для ОРДОС! Для Вашего случая: устанавливаете на плате контроллера маленькое последовательное ПЗУ 24С01/02/04) - стоит очень дешево, и размещаете в нем свой загрузчик СР/М (думаю поместится в 128/256/512 байт). А своему загрузчику СР/М укажете где находится сама СР/М: на винте, на SD или в каком-то РОМ-диске. По идее, если нет ошибок при загрузке, то - вдохнул/выдохнул и запустиилась СР/М! И никакой ОРДОС! А вот как Ваш загрузчик запустить из последовательного ПЗУ "знает" Альтера и Вы не должны об этом беспокоиться. Это проблема Евгения.

b2m
13.10.2009, 15:55
устанавливаете на плате контроллера маленькое последовательное ПЗУ 24С01/02/04) - стоит очень дешево, и размещаете в нем свой загрузчик СР/М
Зачем лишний корпус, если "внутриальтерное" ПЗУ прекрасно инициализируется из конфПЗУ. В нём и разместить загрузчик.

Ewgeny7
13.10.2009, 15:58
Вот к этой платке прицепляем чип ОЗУ и ВВ55 с компакт-флешью, и ОНО уже сегодня будет рабочим Орионом под СР/М с ПЦ-клавиатурой. Надо только М36ZRK в прошивку альтеры добавить вместо М34.

pvlad
13.10.2009, 16:38
Зачем лишний корпус, если "внутриальтерное" ПЗУ прекрасно инициализируется из конфПЗУ. В нём и разместить загрузчик.

Ну, к примеру! Я обычный программист, "старый орионщик", знаю Z80 и могу написать программу управления дверью своего сортира! Есть готовая плата контроллера и есть описание пользователя и руководство программиста. Я написал программу, отладил ее на эмуляторе Error404 или b2m, на ПС запрограммировал последовательное ПЗУ, вставил в панельку на плате, включил и работает! Зачем мне знать про ваши мониторы? Зачем мне знать как работает и программируется Альтера? Как туда присобачить свой код! Почему я должен разбираться как это сделать? А если при этом у меня все слетело? Кому предъявлять "рекламацию"? Я предложил элегантное решение, устраивающее всех! Да, многоступенчатая загрузка! Не нужно трогать содержимое Альтеры, кто в ней не разбирается! И что, за лишних 2 сек помрете в ожидании загрузки любимой СР/М? А что, SETUP в ПС не прощупывает что и откуда грузить, и что доступно? Сразу бухает "ОРДОС"?

Коллеги! Ну не надо быть уж совсем "орионщиками" и не видеть ничего кроме Ориона! Ведь то, что предлагаете Вы и Error404 - это позиция орионщиков, у которых Орион ради Ориона - just for fun. Ну, а остальным как, кто не вывихнут на Орионе? Или мы делаем проект только для трех человек?

Error404
13.10.2009, 16:59
Не понял ход Ваших мыслей: Ордос не нужен, но РОМ-диск оставляем!
Последовательное ПЗУ необходимо не для ОРДОС! Для Вашего случая: устанавливаете на плате контроллера маленькое последовательное ПЗУ 24С01/02/04) - стоит очень дешево, и размещаете в нем свой загрузчик СР/М (думаю поместится в 128/256/512 байт). А своему загрузчику СР/М укажете где находится сама СР/М: на винте, на SD или в каком-то РОМ-диске. По идее, если нет ошибок при загрузке, то - вдохнул/выдохнул и запустиилась СР/М! И никакой ОРДОС! А вот как Ваш загрузчик запустить из последовательного ПЗУ "знает" Альтера и Вы не должны об этом беспокоиться. Это проблема Евгения.

Так идея в том, чтобы на одной и той же плате были варианты:
1) Только Альтера+КонфПЗУ - это для варианта Орион-128, который реализуется сейчас. В Орионе-128 не было последовательного ПЗУ, под которое еще надо переписать программы (пусть это даже только загрузчики), но зато есть старые программы, которые залил - и вперед (в этом случае ПЗУ можно и не впаивать)
--
2) Альтера+КонфПЗУ+24С01/02/04 + какие-то схемные решения для подгружаемых ПЗУ + драйвер, которого пока нет + мой загрузчик, которого тоже пока нет (его либо надо будет писать заново, т.к. в текущем виде ему нужен Монитор для вывода на экран и для работы с клавиатурой, либо опять же тупо из 24Схх грузить на F800 Монитор с загрузчиком IDE, что и так реализуемо без ПЗУ 24Сxx).
--
Вариант 2 - это уже переходной вариант к новой концепции. Параллельно я считаю правильным и старую (назовем ее "classic") доделать, т.к. она в сущности уже готова.

С точки зрения печатки, обе концепции будут на одной и той же плате (что и понятно, ведь все же это девборда - все решается прошивкой ПЛИС). Только одна уже готова (почти), можно не распыляясь пользоваться и делать board-независимые вещи (например SD/MMC в CPM). Параллельно подтянется (будет внедрена) новая концепция, будет усовершенствоваться борда, напишутся загрузчики и .т.п.

А вот кстати, нескромный вопрос - а с печаткой есть какие-то сдвиги? :v2_rolley

Еще вопрос, а на HDL (или на чем там пишется прошивка) есть условная компиляция (типа #define aaa 1 #ifdef aaa #else #endif)?
Чтобы обе концепции росли из одного файла, дабы не получилось в один прекрасный момент расхождений "одинакового".

PS. C ORDOS (при работе аппаратно на 24Сххх) надо однако тоже что-то придумать. Хотя бы для версии classic - чтобы человек заинтересовавшись этой версии прошивки видел "как оно было".

Ewgeny7
13.10.2009, 17:27
А вот кстати, нескромный вопрос - а с печаткой есть какие-то сдвиги?
Ну, я вроде как снял с себя эту задачу. :v2_smoke:


Еще вопрос, а на HDL (или на чем там пишется прошивка) есть условная компиляция (типа #define aaa 1 #ifdef aaa #else #endif)?
Чтобы обе концепции росли из одного файла, дабы не получилось в один прекрасный момент расхождений "одинакового".
Есть, "Generic". Но расхождений не предвидится вроде. Расхождения будут когда начнем перетаскивать с ТВ на VGA :) Вот там сам черт ногу сломит. Легче будет наверно просто другую прошивку ваять. :v2_conf2:


PS. C ORDOS (при работе аппаратно на 24Сххх) надо однако тоже что-то придумать. Хотя бы для версии classic - чтобы человек заинтересовавшись этой версии прошивки видел "как оно было".
Не выложу исходников, пока это не будет сделано. Я злой и жадный :v2_lol:

Error404
13.10.2009, 17:56
Ну, я вроде как снял с себя эту задачу. :v2_smoke:


Не припоминаю, вроде только что говорили про чип-диповские переходники в контексте разработки печатки.
А почему снял? Сдался? :) Или нашлись желающие помочь?

---------- Post added at 17:52 ---------- Previous post was at 17:50 ----------


Вот к этой платке прицепляем чип ОЗУ и ВВ55 с компакт-флешью, и ОНО уже сегодня будет рабочим Орионом под СР/М с ПЦ-клавиатурой. Надо только М36ZRK в прошивку альтеры добавить вместо М34.

Ух ты. А что это такое? Печатка выглядит как фабричная.

---------- Post added at 17:56 ---------- Previous post was at 17:52 ----------


Неа, освободится одна ножка и тут же займется четыре. Замена ПЗУ на последовательное увеличит расход ножек на три.
Но мне пока хватает и альтеры 64 и/о, поскольку шину расширения я снова убрал нафик. Подключил последовательное ПЗУ и еще свободно осталось 4 ноги.


Убрал шину? А как же я подключу 512ВИ1 (ну или какой другой RTC)? :(



Перенести бы ещё СР/М на РОМ-диск... Было бы совсем шоколадно ;)

Тут надо обсудить как оно может быть. Честно говоря, не совсем понятно - зачем, если для файлов все равно остается внешний носитель - CF или, в перспективе, SD/MMC, откуда все это прекрасно грузится.

Ewgeny7
13.10.2009, 18:16
Начну с конца :)


Честно говоря, не совсем понятно - зачем, если для файлов все равно остается внешний носитель - CF или, в перспективе, SD/MMC, откуда все это прекрасно грузится.
Надежность. Меня уже запарило думать, что же там ВВ-шке не нравится :(
Но при запущенной ОС всё работает чётко... Что там за барабашка такой...



Убрал шину? А как же я подключу 512ВИ1 (ну или какой другой RTC)?
Тут нужно или шину выводить полноценную (альтера на 144 ноги) или сажать RТС на существующую по умолчанию мультиплексированную шину для ОЗУ. Но при этом лучше будет вывести с альтеры ногу "RTC_select" для надежности работы. По второму принципу подключается IDE и была подключена клавиатура на контроллере Caro. Программно это никак не отражается. Только будут случаи, когда проц пишет/читает во внешнее устройство два раза подряд по одному и тому же адресу. А это в большинстве случаев не страшно вроде.


Ух ты. А что это такое? Печатка выглядит как фабричная.
Это фабричная печатка-макетка. Распространяется Spensor'ом из Харькова :)


А почему снял? Сдался? Или нашлись желающие помочь?
Да. Pvlad предложил помощь в разработке печатки. Я потому и начал документацию выкладывать.

Error404
13.10.2009, 18:43
Надежность. Меня уже запарило думать, что же там ВВ-шке не нравится :(
Но при запущенной ОС всё работает чётко... Что там за барабашка такой...


Понятно. Ну, думаю - добъем гадину, чтобы не глючила. Надо же бороться с причиной, а не следствием. А то может потом еще где-то этот глюк проявится.
Вот такая мысль: можешь попробовать при старте ОС войти в режим трассировки выполнения config.sys (надо сразу после меню MBR при старте ОС нажать и удерживать F4 или ctrl+C)? Может, увидим на чем оно валится? Или поймем, что оно валится еще до начала обработки config.sys.



Тут нужно или шину выводить полноценную (альтера на 144 ноги) или сажать RТС на существующую по умолчанию мультиплексированную шину для ОЗУ. Но при этом лучше будет вывести с альтеры ногу "RTC_select" для надежности работы.


Кстати, в ВИ1 по умолчанию мультиплексированная шина адреса/данных. 555ЛЕ1 как раз и приходится ставить, чтобы прицепить к немультиплексированному Z80.



Да. Pvlad предложил помощь в разработке печатки. Я потому и начал документацию выкладывать.

Понятно. Hу, если вместе с Pvlad добьете до финального релиза в железе, то, как говорится, grand respect !

AlexBel
13.10.2009, 20:28
это опять Igor_t под учеткой Алексея....))) надоем я вам сегодня ))))

Неа, освободится одна ножка и тут же займется четыре. Замена ПЗУ на последовательное увеличит расход ножек на три.
вот тут ты шибко ошибаешся.... я в одном проекте ставил SPIную пзуху вместо паралельной и вливал с нее в sram данные при старте , реализовывалось это очень несложной стейтмашиной ;)

Ewgeny7
13.10.2009, 21:45
вот тут ты шибко ошибаешся.... я в одном проекте ставил SPIную пзуху вместо паралельной и вливал с нее в sram данные при старте , реализовывалось это очень несложной стейтмашиной
В чем ошибаюсь?
Параллельная ПЗУ висит на шинах ОЗУ, единственный дополнительный сигнал - ROM_OE. Уберу ПЗУ - станет не нужен этот сигнал.
Добавляя последовательное ПЗУ - добавляю соответствующие SPI-сигналы.
Итого в результате - проигрыш.
Насчет "железного" копирования из SPI-ROM в СРАМ - а зачем? У нас есть процессор на это. А сколько ресурсов/ног ты потратил на эту автоматику?

AlexBel
13.10.2009, 21:53
это опять я , Igor_t ))


Параллельная ПЗУ висит на шинах ОЗУ, единственный дополнительный сигнал - ROM_OE. Уберу ПЗУ - станет не нужен этот сигнал.
вообщето в SPI тоже есть сигнал CS а клок с датаин и датааут ты так же можеш завесить на сигналы от срама . ;) Но в любом случае такой подход неайс хотя и очень даже работоспособный .


Насчет "железного" копирования из SPI-ROM в СРАМ - а зачем? У нас есть процессор на это. А сколько ресурсов/ног ты потратил на эту автоматику?
непомню , но небольше чем 100 - 150 LE

pvlad
14.10.2009, 10:59
Да. Pvlad предложил помощь в разработке печатки. Я потому и начал документацию выкладывать.
На сегодняшний день у нас общие разговоры, и только один человек знает как он делает и что у него работает. К сожалению этого недостаточно для того, чтобы проект "вгонять в железо". А выкладываемая документация - это пока что справочная информация по данной теме. В данном случае необходима либо абсолютно полная схема с точностью до "запятой", либо рабочий образец на макетке.


...Меня уже запарило думать, что же там ВВ-шке не нравится Но при запущенной ОС всё работает чётко... Что там за барабашка такой...
Думаю подход не правильный! Периферию Ориона необходимо отрабатывать на отдельной плате и отдельной Альтере. А плату Орион-контроллера не нужно перегружать таким старьем как ВВ55 и всякими "чип-селектами". На сегодняшний день это уже убожество. Если бы идеология этих портов была перспективна, то и в настоящее время бы применялась. Зачем в универсальный контроллер тащить не перспективные микросхемы? Они нужны на дополнительной плате только для совместимости программного наследия Ориона.
К примеру, почему необходима "стандартизация" по IDE порту? Только для того, чтобы чистяковская или сугонякинская СР/М работала? И там, и там "2.2". Это смертельно для наследия Ориона? Разве нам Error404 не сможет сделать вариант СР/М под новый стандарт портов, с учетом новых более прогрессивных схемотехнических решений? Или программы под СР/М перестанут от этого работать на "новом Орионе"? И таких примеров можно привести не мало.


Тут нужно или шину выводить полноценную (альтера на 144 ноги) или сажать RТС...
Обязательно нужна полноценная системная шина, а дешифрацию всех орионовских портов необходимо делать на дополнительной плате. Я об этом уже сказал выше. Зачем универсальному контроллеру CS для старья 512ВИ? Было бы актуальнее реализовать RS232 на основной плате!

Error404
14.10.2009, 15:17
Пожалуйста, посмотрите этот пост (уж не буду сюда копировать):
http://zx.pk.ru/showpost.php?p=225381&postcount=112

pvlad
16.10.2009, 00:21
Пожалуйста, посмотрите этот пост (уж не буду сюда копировать):

Спасибо! Посмотрел, ответил!

Так все таки, какой должна быть системная шина на основной плате контроллера? Ее следует оставить как в старом Орионе, дополнив новыми сигналами, или позаимствовать что-то новое?

Black_Cat
16.10.2009, 00:27
Так все таки, какой должна быть системная шина на основной плате контроллера? Ее следует оставить как в старом Орионе, дополнив новыми сигналами, или позаимствовать что-то новое?под Z80 можно конечно взять спековскую NemoBus, т.к. под неё есть периферия.. но не знаю как с портами на Орионе

pvlad
16.10.2009, 13:57
под Z80 можно конечно взять спековскую NemoBus, т.к. под неё есть периферия.. но не знаю как с портами на Орионе

Где найти ее раскладку? Что-то отгуглил попусту!

b2m
16.10.2009, 14:37
┌──┬───┬──┐
КОHТАКТ ИМЯ │ B│ │ A│ ИМЯ КОHТАКТ
│ │ │ │
*5 A15 │ 1│ │ 1│ A14 *4
*3 A13 │ 2│ │ 2│ A12 *2
*13 D7 │ 3│ │ 3│ +5V (ТОЛЬКО ЗДЕСЬ _ВСЕГДА_ ЕСТЬ +5V !)
BLK (CSDS) │ 4│ │ 4│ DOS (DCDOS)
-not-used- │ 5│ │ 5│ KAY = 14Mhz / SCORPION = +12V
*14 D0 │ 6│ │ 6│ GND
*15 D1 │ 7│ │ 7│ GND
*12 D2 │ 8│ │ 8│ CLK Z80 (SCORPION aka /RAS 3.5Mhz ONLY !)
*10 D6 │ 9│ │ 9│ A0 *30
*9 D5 │10│ │10│ A1 *31
*8 D3 │11│ │11│ A2
*7 D4 │12│ │12│ A3
- │13│ │13│ IOGE (IORQCE)
*17 NMI │14│ │14│ GND
- │15│ │15│ RDR (CSROMCE)
*19 MREQ │16│ │16│ RS (BIT_4 OF #7FFD)
*20 IORQ │17│ │17│ -not-used-
*21 RD │18│ │18│ -not-used-
*22 WR │19│ │19│ BUSRQ
-not-used- │20│ │20│ RES *26
*24 WAIT │21│ │21│ A7 *37
-not-used- │22│ │22│ A6 *36
-not-used- │23│ │23│ A5 *35
*27 M1 │24│ │24│ A4
RFRSH │25│ │25│ CSR (CSROM)
*38 A8 │26│ │26│ BUSAK
*40 A10 │27│ │27│ A9 *39
KAY=+5V n.u. │28│ │28│ A11 *1
KAY=+12V n.u. │29│ │29│ n.u. KAY=+5V
GND │30│ │30│ GND
│ │ │ │
│ B│ │A │
└──┴───┴──┘
'-' - свободный контакт
'*' - вывод CPU Z80

Error404
16.10.2009, 15:43
'*' - вывод CPU Z80


По схеме возникает такое ощущение, что некоторые линии адресной шины выведены на разъем непосредственно с Z80, а некоторые через "некую прослойку" (для них не указана "*"). Это так? И для чего, интересно, так было сделано?

Ewgeny7
16.10.2009, 15:46
Все адреса и данные, также мряки и иорки, рэдэ и вээр выводятся напрямую с проца.

Black_Cat
16.10.2009, 16:16
По схеме возникает такое ощущение, что некоторые линии адресной шины выведены на разъем непосредственно с Z80, а некоторые через "некую прослойку" (для них не указана "*"). Это так? И для чего, интересно, так было сделано?насамделе для понимания работы лучше юзать схему kay1024.TIF (http://narod.ru/disk/14191172000/kay1024.TIF.html)

Error404
18.10.2009, 15:28
Я хренею. В Чипдипе держатель для SD карты (пластиковая штамповка с 10 контактами) - 440 рублей.

Добавлено. Кажется нашел дешевле у них же, но под заказ.

balu_dark
19.10.2009, 04:55
to ewgeny7 :
либы некоторых чипов для FPGA http://www.fpgaarcade.com/library.htm

Ewgeny7
19.10.2009, 17:20
Я хренею. В Чипдипе держатель для SD карты (пластиковая штамповка с 10 контактами) - 440 рублей.
Вредно смотреть прайсы ЧупаДипса перед сном :)
Сорок шесть рублей разъему цена в любом другом магазине.

либы некоторых чипов для FPGA http://www.fpgaarcade.com/library.htm
Да, спасибо. Я там уже бывал, брал код для YM2149.

balu_dark
20.10.2009, 20:06
Вредно смотреть прайсы ЧупаДипса перед сном :)
Сорок шесть рублей разъему цена в любом другом магазине.

Да, спасибо. Я там уже бывал, брал код для YM2149.

та помнится ты чето парился с поиском скоростных вв55 - а там как раз код лежал. :v2_cheer:

Ewgeny7
20.10.2009, 20:37
та помнится ты чето парился с поиском скоростных вв55 - а там как раз код лежал.
Код 82С55 у меня валяется уже года полтора, еще igor_t подкидывал. Ног у альтеры не миллион, к сожалению. :(

Ewgeny7
03.11.2009, 21:42
Немножко (но полезно) отвлекся :)
http://www.zx.pk.ru/showpost.php?p=229812&postcount=542

Ewgeny7
06.11.2009, 21:44
Собрал платку версии "бета". На ней два новых банка быстрой (10нс) памяти, тактовый, блок стабилизаторов. Памяти по 256кб не нашлось в продаже, поставил по 128кб (в сумме выходит 256).
Затык с макеткой TQFP-208 не решился :(
Поездка в центральный Чип-Дип ничего не дала. Не знаю, где искать.
Привинчу пока старую. Попробую обойтись без шины расширения.

fifan
08.11.2009, 15:00
И как выходит изображение с Ориона? Синхронизация отдельно?

Ewgeny7
08.11.2009, 18:17
И как выходит изображение с Ориона? Синхронизация отдельно?
Да как захочешь :)
У меня выведено и раздельно KI и SI, так и комплекс SYNCH.

---------- Post added at 18:17 ---------- Previous post was at 18:13 ----------

Переделал прошивку под бету. Размер значительно уменьшился, до 2558 ячеек (было 2700 с чем-то изза мудрёной памяти). Полный объем ПЛИС, напомню - 2910.

Ewgeny7
09.11.2009, 19:11
Распаял правильный видеовыход. Взял за основу схему "Скорпиона".
Теперь имеем RGBSyn на Скарт, а также комплекс черно/белый на обычный колокольчик. Сигнал яркости "замешан" с сигналами цвета.

Ewgeny7
10.11.2009, 16:59
Плата "беты".
Блок питания, ОЗУ, РОМ-диск, клавиатурный вход, тактовый, видеомиксер.
ОЗУшки - прям натуральные тараканы :)

fifan
11.11.2009, 07:56
Прикольно память "раскоряченна". Четные выводы в одну линейку, нечетные - в другую?

Ewgeny7
11.11.2009, 17:14
Четные выводы в одну линейку, нечетные - в другую?
Ну, это как получится :)
Просто SOP32 как-то иначе на макетке 2.54 и не запаять.

fifan
11.11.2009, 17:41
Как-то изменилась конечная схема компьютера?

Ewgeny7
11.11.2009, 17:47
"Снаружи" почти не изменилось. Изменения внутри альтеры, благодаря более простой структуре памяти (и большей скорости ОЗУ).

sergey2b
11.11.2009, 17:50
если возможно, можно посмотреть плату с обратной стороны

Ewgeny7
11.11.2009, 17:54
Вот как выглядит на сегодня.
Добавил баззер, батарейку для РАМ-диска и часов, модуль IDE (еще не распаян, только детали установил).
Часы 512ВИ1 будут под альтерой.

Ewgeny7
11.11.2009, 17:56
если возможно, можно посмотреть плату с обратной стороны
Счас, сфотографирую...
Вот. Пришлось аккум на фотоаппарате минуты три подзаряжать :)

Ewgeny7
17.11.2009, 17:52
Давайте чтоли пыль маленько смахнем с этой темы.
Error_404 прислал приятственную donate-посылку :)
В ней среди прочего лежала платка TQFP-0.5x208.
Монтаж нового "сердца" начался.
Напоминаю, что теперь собираем Орион на быстрой памяти, с шиной расширения.
Пока не начал ее делать сам, предлагайте разъем и раскладку сигналов в нем.

fifan
17.11.2009, 19:59
Можно так http://zx.pk.ru/showthread.php?t=8697&highlight=Neo. А я такую же платку с Циклоном прекрепрепить пр помощи разъема/штекеров типа К40.

glukmaker
19.11.2009, 14:39
Я мало знаком с ПЛИСками (можно сказать что совсем не знаком), ибо железом давно не занимался. Так что просьба ногами не бить за возможные глупости с моей стороны.

Но вопросы такие возникли к ewgeny7:

Реально ли в данной (разрабатываемой Вами) реализации ОРИОНа сделать еще и возможность переключения его в режим Спектрума и Специалист_МX не усложняя аппаратную часть?

И судя по всему, Вы решили создать не просто Орион (например графический режим 480*256 - это уже не Орион, а нечто новое, хотя в принципе можно считать это как расширение Ориона), в домашних компьютерах вроде я не встречал таких режимов. Следовательно он должен ориентироваться на ПО работающее в текстовом режиме или на разработку нового ПО. Если не исключен последний вариант, то как Вы относитесь к некоторым доработкам:
например:
1. работа с цветом.
У Специалист_МХ цвет группы пикселов задавался при записи в ячейки основного видеоОЗУ значением из порта (не помню номер). Естественно ОЗУ цвета было недоступно для чтения, а запись в него не всегда была удобна... Но тем не менее смысл в такой реализации имелся... Так как для того чтобы установить цвет для группы байтов, достаточно было один раз записать в порт нужное число, а далее записывать в ВидеоОзу сами эти байты.
В Орионе ОЗУ цвета находится на другой странице, что дает возможность читать и произвольно писать в ОЗУ цвета, но требует постоянного переключения страниц. Ну и разумеется нет возможности один раз задать цвет, для группы байтов.
Поэтому можно было бы совместить достоинства Ориона и Специалист_МХ, т.е. сделать возможность как прямого доступа к видеоОЗУ (собственно как у Вас уже реализовано), так и через порт.

2. Некоторые возможности аппаратного ускорения графических возможностей. Например аппаратная реализация скроллинга. Смысл - подмена адресов доступа к ОЗУ для процессора и для видеоконтроллера. Реализация довольно простая. Думаю не нужно объяснять ее смысл. Но если нужно, то объясню.

Ewgeny7
21.11.2009, 14:05
Реально ли в данной (разрабатываемой Вами) реализации ОРИОНа сделать еще и возможность переключения его в режим Спектрума и Специалист_МX не усложняя аппаратную часть
Для "переключения" понадобится менять прошивку конф-ПЗУ. Две-три прошивки туда не влезут. Плюс, есть ограничение по схемотехнике - кварц подключен не через PLL, поэтому менять частоту клока для разных клонов невозможно. Но даже в случае PLL - из частоты 20Мгц получить 8 или 14 не кажется возможным.


В Орионе ОЗУ цвета находится на другой странице, что дает возможность читать и произвольно писать в ОЗУ цвета, но требует постоянного переключения страниц. Ну и разумеется нет возможности один раз задать цвет, для группы байтов.
Это как это нет? Записываем "атрибуты цвета" в доп. страницу для нужной области экрана и потом спокойно печатаем в основной экран сколько угодно раз, не отвлекаясь на цвет. Одновременной записи в оба банка ОЗУ требует только режим 4 цвета на точку, который нафик не нужен ИМХО.


2. Некоторые возможности аппаратного ускорения графических возможностей. Например аппаратная реализация скроллинга. Смысл - подмена адресов доступа к ОЗУ для процессора и для видеоконтроллера. Реализация довольно простая. Думаю не нужно объяснять ее смысл. Но если нужно, то объясню.
Смысл? Круто, конечно, но кому теперь это нужно?

---------- Post added at 14:05 ---------- Previous post was at 13:55 ----------

Распаял "минимальную обвязку" для альтеры, плюс конф-ПЗУ (платка слева).
http://i023.radikal.ru/0911/01/02bf6e951c40.jpg
Жаль, что плата односторонка, монтаж выглядит не столь кошерно, как на предыдущей версии (платка справа). Но работает, и ладно :)
Начинаю подключать альтеру к плате периферии.

balu_dark
21.11.2009, 14:17
а платку с права - где брал если не секрет?

svofski
21.11.2009, 15:26
Но даже в случае PLL - из частоты 20Мгц получить 8 или 14 не кажется возможным.
Фазовым аккумулятором можно получить любую частоту меньше половины опорной. Будут фазовые шумы, конечно, но для компьютера они не должны быть существенной проблемой.

Ewgeny7
21.11.2009, 19:44
а платку с права - где брал если не секрет?
Как ни странно, из Украины :) У нас их не замечено.

fifan
22.11.2009, 10:16
http://easyelectronics.ru/forum/mydevice/fpga
Верхняя ссылка для образования. Собирайте. Пожалуйста. Специалист на плисине, ввод с ps/2 клавы, выход на VGA монитор, процессор Z80, работа с SD карточкой.
Не надо напрягать людей на счет выдумки какого-то универсального компьютера. Сегодня Орион, завтра Специалист, послезавтра еще какой-нибудь... Ну хорошо, меняешь прошивки, а периферия, частота и та же память, они же отличаются.
Если есть желание,то вперед, никто не держит. Может собирете какой-нибудь "Универсал-2010"...

balu_dark
22.11.2009, 15:11
Как ни странно, из Украины :) У нас их не замечено.

оба на - а отсюда плиз поподробнее! название платы,конторы продавца ну и если можно то цену.

Ewgeny7
22.11.2009, 21:26
оба на - а отсюда плиз поподробнее! название платы,конторы продавца ну и если можно то цену.
Поспрашивай у spensor'a и Дмитрий'я. Это их "вливания" :)

Error404
23.11.2009, 21:51
Пока не начал ее делать сам, предлагайте разъем и раскладку сигналов в нем.

Может, сделать совместимо (насколько возможно) с ПентЭво? Нам все равно, в то же время только туда сейчас реально делается что-то из периферии.

Ewgeny7
23.11.2009, 22:43
Может, сделать совместимо (насколько возможно) с ПентЭво?
ZX-BUS? Можно и так.

Black_Cat
23.11.2009, 22:58
ZX-BUS? Можно и так.токо не ZX-BUS, а NemoBus. ZX-BUS - это вообще не стандарт, такого стандарта не существует в природе!

Ewgeny7
23.11.2009, 23:11
токо не ZX-BUS, а NemoBus. ZX-BUS - это вообще не стандарт, такого стандарта не существует в природе!
Млин, тебя и сюда занесло? Не существует - значит будет OR-BUS :)

Error404
26.11.2009, 11:53
Стесняюсь спросить, ну как, получается что-нибудь? :rolleyes:

Ewgeny7
26.11.2009, 16:29
Стесняюсь спросить
Да не стесняйся, спрашивай :)
Еще не готово к включению. Делаю параллельно три работы, переключаясь поочередно. Орион в таком виде паять очень неудобно, нужно протягивать проводки через две платы друг над другом, попутно обновляя информацию в файлах проекта.
Скоро запустим, 2009 год ведь уже к закату клонится... :)

Ewgeny7
30.11.2009, 18:00
Если что. я не умер. на работе заниматься стало некогда совсем. У руководства наступил творческий энтузиазм, разгребать который приходится всем остальным.
Сижу дома после работы, паяю...

Ewgeny7
30.11.2009, 20:17
Головной модуль Орион-2009 в VHDL.
Некоторые вещи могут показаться странными, но это необходимость :)
Например, синхронный старт процессора и видеогенератора.
Или необычный генератор INT.
Выложил просто для ознакомления, мож кому ради интереса полезно будет :)

LeBohdan
30.11.2009, 21:23
ewgeny7, подскажите чайнику, в работе можно увидеть только в железе? Или есть что-то типа симулятора? Ну или еще лучше - направте на хорошую книгу.

Ewgeny7
30.11.2009, 21:34
в работе можно увидеть только в железе?
Я придерживаюсь концепции эмулятора OrionZEmu от Error_404. Практически они являются родственниками.
Имею ввиду эмуль и Орион-2009 :)

LeBohdan
01.12.2009, 00:29
Я придерживаюсь концепции эмулятора OrionZEmu от Error_404. Практически они являются родственниками.
Имею ввиду эмуль и Орион-2009 :)

Я имел ввиду эмулятор не Ориона, а именно симуляцию работы ПЛИС. Ну или Ориона на ПЛИС.

Ewgeny7
01.12.2009, 08:28
а именно симуляцию работы ПЛИС
О как! :) На ПЛИСах суперсовременные компьютеры делаются, поэтому симулировать ее в реальном времени - кишка тонка будет у писюка :)


Ну или Ориона на ПЛИС
А вот на этот вопрос я как раз и ответил. Я делал реал по мотивам эмулятора (вот такое вот извращение). Поэтому эмуль как раз и будет эмулем Ори на ПЛИС.

Ewgeny7
01.12.2009, 23:06
бета Ориона прочихалась и завелась. Пошла отладка... В коде появились изменения...

fifan
06.12.2009, 08:39
Ewgeny7, курил тут твои коды, я как понял это основной файл, с определениями, описаниями взаимодействий с процессором, работа с портами и памятью. Возникли несколько вопросов:
1. Нельзя ли компонент взаимодействия с клавиатурой (component orionkeyboard) привести;
2. Для чего используется внутренно определяемая память на 2 кБайта (component lpm_rom1)?
3. Работа с магнитофонам (вход/выход) не предусмотрены?

Ewgeny7
06.12.2009, 17:19
1. Нельзя ли компонент взаимодействия с клавиатурой (component orionkeyboard) привести;
2. Для чего используется внутренно определяемая память на 2 кБайта (component lpm_rom1)?
3. Работа с магнитофонам (вход/выход) не предусмотрены?
1. Там реально три модуля, подключаемые "цепочкой". Оригинальный альтеровский, над ним векторовский, еще выше орионовский :) Могу отправить мылом. На всеобщее выкладывать не буду ввиду авторских прав создателей модулей.
2. Это Монитор. В альтере создается ПЗУ 2кб, куда из конфПЗУ при загрузке конфигурации заливается и содержимое монитора. Максимальный объем для моего Циклона - 7кб.
3. Нет, ибо нафик.

Времени заниматься Орионом катастрофически мало. Но кой чего успеваю.
Подогнал коды проекта под новую архитектуру. Вроде всё тикает. Видеовыхлоп со Скорпиона на пяти транзисторах показал себя во всей красе :) Изображение очень хорошее. Пришлось покувыркаться с синхрой. Не сразу разобрался, что на видеосмеситель надо подавать ее в инверсном виде.
На очереди подключение IDE и часов. Буду вешать их сразу на шину расширения.

Ewgeny7
06.12.2009, 21:08
Тут вот какая бяка...
Доступ к внешним устройствам посредством шины расширения будет судя по всему как к портам only?
Нужно ли в принципе вводить сигнал блокировки внутренних портов (IORQGE на Спектруме)?
Я вывел на шину сигналы Data, Addr, IORQ, WR, RD, Reset. Что необходимо добавить?

Mick
06.12.2009, 21:13
Тут вот какая бяка...
Доступ к внешним устройствам посредством шины расширения будет судя по всему как к портам only?
Нужно ли в принципе вводить сигнал блокировки внутренних портов (IORQGE на Спектруме)?
Я вывел на шину сигналы Data, Addr, IORQ, WR, RD, Reset. Что необходимо добавить?

Мое мнение, блокировка внутренних портов не помешает. А шину сделать как в Спеке. Вкусности спека будут доступны и на New Орионе.

Ewgeny7
06.12.2009, 21:33
Типа, слот обычный, врубной? :)
Тут дело в том, что шина расширения будет полюбому активна только при операциях с портами. При работе с мемори активна другая, основная шина проц/ОЗУ/видеогенератор. Точнее, сигналы адреса будут всегда выводиться, управляющие сигналы процессора тоже. А вот шина данных что-то выдаст только в случае IORQ='0' and WR='0'. В других случаях она пассивна (в Z). Вроде как это нормально... Поэтому надобность в MREQ как-то отпадает... Извиняйте, мозга уже свихнулась... :)

Mick
06.12.2009, 22:30
Типа, слот обычный, врубной? :)
Тут дело в том, что шина расширения будет полюбому активна только при операциях с портами. При работе с мемори активна другая, основная шина проц/ОЗУ/видеогенератор. Точнее, сигналы адреса будут всегда выводиться, управляющие сигналы процессора тоже. А вот шина данных что-то выдаст только в случае IORQ='0' and WR='0'. В других случаях она пассивна (в Z). Вроде как это нормально... Поэтому надобность в MREQ как-то отпадает... Извиняйте, мозга уже свихнулась... :)

Ну это какая то хромоногая шина. Нужен на шине и MREQ тоже. Мало ли что в жизни юзеру нужно. :)

Ewgeny7
06.12.2009, 22:33
Ну это какая то хромоногая шина. Нужен на шине и MREQ тоже.
Ладно, уболтали :)
Добавляю MREQ, WAIT, M1, IORQGE

Mick
06.12.2009, 22:40
Ладно, уболтали :)
Добавляю MREQ, WAIT, M1, IORQGE

А также BUSAK и BUSRQ :) для любителей внешнего управления :)

Error404
06.12.2009, 23:01
Что вообще значит "порты внешние", "порты внутренние"? Не догоняю.

Проц обращается к портам. Какая разница, на основной плате они реализованы или на плате расширения? Все равно каждая плата расширения будет нести дешифратор чтобы понимать, что обращение идет именно к ней.

И мне кажется, не будет лишним на какой-нить свободный контакт разъема вывести и MREQ.

Ewgeny7
06.12.2009, 23:16
А также BUSAK и BUSRQ
Нет, не выйдет. Для этого нужно "прогонять" данные ЧЕРЕЗ альтеру, и тут надо не забывать, что внутри у нее совсем не провода, а регистры, которые требуют управления для "разворачивания" потока данных. И адресов и прочего мусора тоже.


Что вообще значит "порты внешние", "порты внутренние"?
На Спектруме это так и обстоит. Могут существовать порты с одинаковой адресацией и на самом компе, и на внешнем устройстве. Для работы внешних активируется сигнал IORQGE, "прерывающий" действие сигнала IORQ внутри компа. При этом проц работает только с внешним портом. Сигнал IORQGE вызывается внешним устройством по комбинации адресных сигналов и М1.
Таким способом можно например сделать внешний контроллер клавиатуры, не выдирая встроенный.

Error404
06.12.2009, 23:40
На Спектруме это так и обстоит. Могут существовать порты с одинаковой адресацией и на самом компе, и на внешнем устройстве. Для работы внешних активируется сигнал IORQGE, "прерывающий" действие сигнала IORQ внутри компа. При этом проц работает только с внешним портом. Сигнал IORQGE вызывается внешним устройством по комбинации адресных сигналов и М1.
Таким способом можно например сделать внешний контроллер клавиатуры, не выдирая встроенный.

Видимо, такую схему надо и на MREQ распространить?
Ведь пока часть портов у нас в памяти по адресам F400..F7FF.

Ewgeny7
06.12.2009, 23:49
Видимо, такую схему надо и на MREQ распространить?
Каков смысл? Для обмена данными с периферией мы имеем диапазон портов 65к.
Если не использовать механизм IORQGE - то поменьше, 0 - F3FF.
Если только расширение памяти на этом делать... Надо продумать :)

Error404
06.12.2009, 23:57
Каков смысл? Для обмена данными с периферией мы имеем диапазон портов 65к.


В том и смысл, что, к примеру, клавиатура - в памяти, а не в области портов.

Ewgeny7
07.12.2009, 00:09
В том и смысл, что, к примеру, клавиатура - в памяти, а не в области портов.
Пытаюсь осмыслить...
Ты имеешь ввиду, при работе с верхней памятью чтобы не мешалась клавиатура (и прочие РОМ-диски)?
Это можно.