PDA

Просмотр полной версии : Вектор-06Ц: Altera DE1



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

svofski
06.12.2007, 23:10
Кому интересно запустить Вектор-06Ц в Altera DE1? Всё, кроме дисковода и АЫ, уже в принципе готово.

AlexBel
07.12.2007, 11:33
Кому интересно запустить Вектор-06Ц в Altera DE1? Всё, кроме дисковода и АЫ, уже в принципе готово.

Было бы интересно :)

fan
08.12.2007, 16:01
Кому интересно запустить Вектор-06Ц в Altera DE1? Всё, кроме дисковода и АЫ, уже в принципе готово.
А можно ли заполучить содержимое всех ПЗУх сабжа ? Особенно интересует D75 по схеме вектора (или DD81 по схеме кристы), та что на видео выхлопе торчит .

svofski
08.12.2007, 17:53
Ну, раз такой живой интерес возник.. :biggrin:

Вот архив с сегодняшним слепком проекта:
см.Обновление
Должен открываться и собираться, относительно быстро, в Quartus II Web Edition. У меня версия 7.1, с другими не проверял.

Никакой доки пока нет, есть только немного комментариев в коде. Расскажу вкратце об особенностях.

1. Видео. Наиболее стремная часть проекта, не судите строго.. На моем мониторе получается увидеть режим 720x576 @ 50Hz, хоть монитор и поругивается на его "неоптимальность". В принципе, можно пересобрать все для режима 800x600@60, но тогда это будет уже как бы другой компьютер. См. define-ы в файле vector06cc.v.

2. Память. Поскольку на DE1 есть 512Кб статического раму, я воспользовался именно им, ибо халява. Распределяется он следующим образом: первые 64Кб, с адреса 0 -- основная память Вектора; следующие за ними (с адреса 0x8000) 256Кб -- квазидиск. В перспективе, конечно же, надо перейти на DRAM. Это сразу облегчит перенос проекта на другие платы.

3. ПЗУ загрузчика, 2Кб, лежит прямо в проекте и собирается в M4K блоках. Инициализируется из zagr512.hex, но это на самом деле какой-то из двухкилобайтных загрузчиков, который я немножко подправил для удобства. В частности, он никогда не чистит основную память.

4. Переключатели и кнопки. Это описано подробно в комментарии к топлевелу. Главное, чтобы SW8 и SW9 были в верхнем положении, остальное в принципе используется только для отладки и мощного мигания лампочками. KEY[0] -- RESET а-ля БЛК+ВВОД, KEY[3], как и F12 на клавиатуре -- БЛК+СБР. В особых случаях можно нажимать KEY[3] и KEY[0] одновременно -- тогда загрузчика вообще не будет.

Про компиляцию.

Тут сказать нечего, все должно собраться сразу, порядка 400 предупреждений будет. В главном файле, vector06cc, есть несколько define-ов. x800x600 даст левый, но более монитороугоднический видеорежим. Остальные направлены на ускорение компиляции при отладке. Можно собрать, например, Вектор без процессора.

Теперь о том, как его загружать.

Сделать JTAG интерфейс как в примерах я пока так и не удосужился. Поэтому для загрузки я пользуюсь примером API из комплекта софта к DE1. Загружатем API-шный модуль, присоединяемся его программой к плате, открываем страничку SRAM и закачиваем. Обычные программы из файлов .rom надо заливать по адресу 0x80 (0x100 в байтах, но память там по 16 бит в слове). После этого отсоединяемся программой, переходим обратно в Квартус, закачиваем vector06cc.sof. Любовно подправленный загрузчик не затрет память, нажимаем F12 и voila.

Вариант загрузки номер два. Все так же, как и в первом случае, но берем образ квазидиска и заливаем его в SRAM начиная с адреса 8000. Теперь загрузчик будет видеть, что на диске что-то есть и будет грузиться с него.

Вариант загрузки номер три, кассетный магнитофон или айпод, никто не отменял. Загрузка с кассеты работает. Да и выгрузка тоже.

Немножко павлина-мавлина: все сорцы открытые. Лицензия на то, что моё собственное -- Modified BSD, переводится на русский приблизительно как "можно делать совершенно всё, что угодно, пенять при этом на себя, автора помнить добрым словом". Кроме того в проекте использован код процессора T80 с opencores.org, 82c55 c fpgaarcade и i2c протокол для конфигурации кодека из примеров от DE1, лицензии на них см. в исходниках.

Да, а о том что находится в ПЗУ на видео выхлопе я понятия не имею. В полноценном Векторе там было ОЗУ, в котором хранилась палитра. Свою реализацию я считаю полноценной, поэтому у меня там тоже ОЗУ =)

Внешние ссылки:
ZIP-архив с проектом и всеми исходниками: см. Обновление
Образ квазидиска для примера: http://www.sensi.org/~svo/vector06c/ramdisk.zip

Обновление: проект теперь живет на http://code.google.com/p/vector06cc/. Там можно и взять самые последние сорцы, и выкачать последний слепок и-или скомпилирвоанные битстрим файлы. Квазидиски по-прежнему лежат тут: кваз1 (http://www.sensi.org/~svo/vector06c/ramdisk.zip) и тут: кваз2 (http://www.sensi.org/~svo/vector06c/ramdisk2.zip).

AlexBel
08.12.2007, 19:42
Ну, раз такой живой интерес возник.. :biggrin:

Вот архив с сегодняшним слепком проекта:
http://www.sensi.org/~svo/vector06c/vector06cc-2007-12-08.zip

Спасибо! Все скачал, постараюсь завтра попробовать. У меня Кактус 6.1, надеюсь, поймет...

ZEman
08.12.2007, 19:59
так это что, эмулятор вектора?
под виндовс?
а можете выложить откомпилированную версию?

caro
08.12.2007, 21:05
так это что, эмулятор вектора?Это аппаратный эмулятор Вектора, реализованный на языке описания аппаратуры.

под виндовс?
а можете выложить откомпилированную версию?Результат компиляции заливается в отладочную плату, в данном случае в Altera DE1.
Выкладывать его здесь не имеет смысла.

AlexBel
08.12.2007, 22:33
Ну, раз такой живой интерес возник.. :biggrin:

Вот архив с сегодняшним слепком проекта:
http://www.sensi.org/~svo/vector06c/vector06cc-2007-12-08.zip
Должен открываться и собираться, относительно быстро, в Quartus II Web Edition. У меня версия 7.1, с другими не проверял......................


Не утерпел, решил не ждать до завтра и загнал Вектор в DE1. :)
В Кактусе 6.1 все откомпилилось нормально, залилось, появился стартовый экран. Файл RAMDISK.img заливал в SRAM с адреса 8000, ставил галочку на "длине файла", явно длину файла не указывал, после установки галочки она установилась автоматически.
После этого сделал сброс. Снова заставка Вектора, ждущего загрузку с магнитофона. Перезалил образ в SRAM и после этого залил результат компиляции. Результат тот же. :(
Может, что сделал неправильно, завтра буду разбираться...

svofski
08.12.2007, 23:29
Погоди, я может быть недостаточно понятно изъяснился. Чтобы залить образ памяти/квазидиска в SRAM, нужно в плату залить CII_Starter_USB_API.sof. Писишная программа не умеет знать какая в плате прошивка, поэтому она не ругается если там Вектор, но ничего на самом деле не может сделать. А уже после заливки образа надо залить Вектор. Сорри за неудобство =)

Или ты все так и делал? Тогда да, надо разбираться.

AlexBel
09.12.2007, 10:12
Погоди, я может быть недостаточно понятно изъяснился. Чтобы залить образ памяти/квазидиска в SRAM, нужно в плату залить CII_Starter_USB_API.sof. Писишная программа не умеет знать какая в плате прошивка, поэтому она не ругается если там Вектор, но ничего на самом деле не может сделать. А уже после заливки образа надо залить Вектор. Сорри за неудобство =)

Или ты все так и делал? Тогда да, надо разбираться.

Знаешь, все-таки мне не стоило этим заниматься в полусонном состоянии :)
Конечно, мне стоило бы подумать, что кто-то должен на другой стороне файлик принимать и аккуратно укладывать его в SRAM :)
В общем, залил образ диска, запустил основную прошивку, нажал F12 и вот результат:
http://tenroom.ru/pub/V06.jpg
Вообще-то, фон, который виден на снимке (извиняюсь за качество) как бы движется на заднем плане, я уж видео снимать не стал :)
Такой эффект, как у видеопроцессора, когда он двигает фоновый рисунок позяди всех спрайтов или монитор подключен страшно длинными неэкранированными проводами и идут сильнейшие наводки, за которыми еле видно изображение.
Если удобнее разговаривать по ICQ или емейл, то вот:
ICQ UIN: 320365827
E-mail: [email protected]

To Caro: Камиль, а ты пробовал Вектор запускать у себя?

caro
09.12.2007, 10:22
To Caro: Камиль, а ты пробовал Вектор запускать у себя?Нет еще не пробовал.
У меня монитор не держит 50 Гц, так что пока нет смысла смотреть.

svofski
09.12.2007, 15:08
Нет еще не пробовал.
У меня монитор не держит 50 Гц, так что пока нет смысла смотреть.

А он принципиально 50Гц не держит? У моего тоже обещано не было, он на грани, но держит стабильно. Если что, можно попробовать раскомментировать `define x800x600, будет странный режим 800x600@50; на него мой монитор даже не ругается, показывает как будто бы так и надо. К сожалению, в этом режиме частота строк другая и не работают всякие чудеса программирования 90-х с текстом на бордюре и проч..

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

caro
09.12.2007, 15:14
А он принципиально 50Гц не держит?Проверено на прошивке 1chipMSX.
При загрузке конфигурации от КУВТ YAMAHA YIS503II, картинка плывет по кадровой.
Монитор SAMSUNG SyncMaster 3Ne.

svofski
09.12.2007, 15:21
Понятно, беда. Ну.. может быть как-нибудь сделаю режим 60Гц. Надо всего-то посидеть с калькулятором. Получится такой специальный NTSC Вектор :)

fan
09.12.2007, 19:09
Да, а о том что находится в ПЗУ на видео выхлопе я понятия не имею. В полноценном Векторе там было ОЗУ, в котором хранилась палитра. Свою реализацию я считаю полноценной, поэтому у меня там тоже ОЗУ =)
Упс %) Мда , похоже схема что Mick запостил выше и правда от кристы2 , только "детальки" по другому скомпанованы и подругому пронумерованы %)

А у тебя случайно нету схемы Вектор-06Ц ?

svofski
09.12.2007, 19:43
К сожалению схемы Вектора у меня так и нет. Но, на самом деле, не так уж много осталось тайн. То есть я на самом деле даже и не знаю, а какие тайны остались? Схема от Mick совсем неплоха, по ней можно догадаться о многом. Содержимое ПЗУ-х в принципе можно дедуцировать медитируя над схемой, как это делал я, а можно просто не полениться и пролистать архив Вектор-Юзер, где они все приведены =) Если только не пытаться собрать Вектор на исторической элементной базе, информации должно быть достаточно.

Вот здесь Вектор-Юзеры, на странице 4-3 дамп главной тактораздающей ПЗУ-шки:
http://www.emulator3000.emuita.it/rus-vector06c.htm

Добавлено через 4 часа 5 минут
Мы сегодня плодотворно пообщались с AlexBel и пришли к выводу о том, что Quartus 6.1 собирает мой код совсем не так, Quartus II WE 7.1. Судя по симптомам, проблемы в мелочах, но так просто парой галочек в настройках оптимизатора их не устранить. Пока я думаю, вывод для любопытствующих таков -- нужен QII WE 7.1.

Ну, или вот есть бинарник:
http://code.google.com/p/vector06cc/ -- правлено 26.12.2007, svofski

caro -- 50Гц 50Гц рознь, попробуй может на досуге? =)

AlexBel
10.12.2007, 09:38
caro -- 50Гц 50Гц рознь, попробуй может на досуге? =)

У меня монитор - старенький Вьюс 641, держит нормально, только изображение немного смещено влево и вверх. Может, в 3NE немного покрутить развертки? :)

fan
14.12.2007, 17:34
2ALL
Пара вопросов по сабжу .
Ктонить устанавливал Z80 в сабж ? Эмулятор спека ктонить юзал ?

Есть ли в природе виртуальный патефон под дос/виндузы для сабжа ?

svofski
16.12.2007, 23:59
Обновление Вектора-цц:
1. Немного исправлен код видеоадаптера (правда, насколько мне известно проблеме с квартусом 6.1 это не помогло, но все же..)
2. Добавлен JTAG интерфейс для программы CII Starter Kit Control Panel. Теперь не нужно грузить никакие другие .sof-ы, можно прямо из Control Panel заливать содержимое памяти и квазидиска в Вектор. Можно и сливать обратно.

Последняя версия (16 декабря 2007):
http://code.google.com/p/vector06cc/сорцы, откомпилированный проект, .sof и .pof (правка 26.12.2007, svofski)
http://www.sensi.org/~svo/vector06c/ramdisk.zip образ кваза
http://www.sensi.org/~svo/vector06c/ramdisk2.zip еще один образ кваза

Vector06cc -- это копия компьютера Вектор-06Ц в FPGA, реализованная в отладочной плате Altera DE1.

@fan: что такое виртуальный патефон? Есть много эмуляторов Вектора, для виндус годятся только Emulator 3000 и Башкирия-2М. E3000 заброшен (в тяжком состоянии) уж много лет как, а Башкирия-2М развивается и автор рад обратной связи.
http://bashkiria-2m.narod.ru/
http://www.emulator3000.emuita.it/rus-e3.htm

caro
17.12.2007, 22:19
Обновление Вектора-цц:
1. Немного исправлен код видеоадаптера (правда, насколько мне известно проблеме с квартусом 6.1 это не помогло, но все же..)У меня кроме 7.1 стоит 6.0, который выругался на ошибки установок в файле qsf и не захотел загружать проект.
7.1 без проблем все откомпилировал и я посмотрел наконец на экран Вектора :)
Я только не понял, а что в MicroDOS нет команды DIR?
Загружаю оба приложенных образа диска и ничего не могу с ними поделать :)
А так все нормально, поздравляю, хорошее начинание - эмуляция в железе отечественных компов.

svofski
17.12.2007, 22:34
Спасибо! =D А как монитор, потянул 50Гц?

В MicroDOS все команды однобуквенные: D == DIR, E == ERASE... Я прицеплю лучше описание.

caro
17.12.2007, 22:46
Спасибо! =D А как монитор, потянул 50Гц?Странно, но при тех параметрах, которые ты поставил по умолчанию показывает без проблем.
А в OCM DE1, при переходе на 50 Гц. сразу все плывет.
Надо будет поигратся с константами.


В MicroDOS все команды однобуквенные: D == DIR, E == ERASE... Я прицеплю лучше описание.Спасибо, надо почитать.


PS. У меня по команде D, оба образа дают NO FILES :)
PPS. Довольно часто залипают клавиши при нажатии с Shift (например при вводе ":" ), остановить можно только нажав SW0, затем SW3.

AlexBel
17.12.2007, 23:47
У меня по команде D, оба образа дают NO FILES :)
PPS. Довольно часто залипают клавиши при нажатии с Shift (например при вводе ":" ), остановить можно только нажав SW0, затем SW3.

У меня аналогичные проблемы с клавиатурой, нужно помедленнее нажимать и все будет ОК. А образы работают у меня нормально, и каталог выводится и игры запускаются. Но нормально работает только если использую готовый SOF. После компиляции Квартусом 6.1, когда заливаю полученный SOF, то на экране мусор и отсутствуют некоторые цвета.
Кстати, ты команду D вводишь для какого диска? Квазидиск, кажется, C:, а после загрузки текущим стоит A:
Все, что я написал, относится к той версии, которую svofski выкладывал ранее. Новую я скачал, но пока не пробовал.

svofski
18.12.2007, 01:29
Про клавиатуру -- есть такое. Все можно, но плавно =) Проблема в том, что я пытаюсь отобразить PS/2 клаву на Векторовскую и это влечет за собой утонченное жонглирование скенкодами и нажатием-отпусканием shift-а. Где-то я чего-то не разрулил, поэтому пока нужно нажимать строго так: SHIFT, ":", отпускаем ":", отпускаем SHIFT. Если залипло, не надо сбрасываться, достаточно второй раз нажать то же самое в правильной последовательности. То же относится к некоторым другим клавишам с шифтом, @ ( ) навскидку.. Вообще, реализация клавиатурной матрицы -- это чуть ли не самая мрачная часть этого проекта. В далеких планах есть перевод ее на RAM, но это low priority.

AlexBel дело сказал про диск C: -- диска А нет, надо переходить на C:

Что до режима 720x576@50, ох. Я начинал его с докой, калькулятором и тетрадкой, а закончилось все как всегда -- +/- единичка с осциллографом =) Но раз уже по крайней мере на двух мониторах кроме моего работает, значит должно быть все нормально.

Я перекинул проект на google code, теперь его хомяк тут:
http://code.google.com/p/vector06cc/
Сорцы оттуда доступны через svn. Не разобрался пока, можно ли там делать автоматические слепки для скачивания.. Там же есть трекер запросов и вики.

caro
18.12.2007, 05:07
Кстати, ты команду D вводишь для какого диска? Квазидиск, кажется, C:, а после загрузки текущим стоит A:Опа, а про это нигде не написано :)

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

fan
18.12.2007, 18:15
что такое виртуальный патефон?
Это такой прог позволяющий загонять данные в реальный сабж естественным способом ;)

А может есть в природе какойнить прог умеющий конвертить ROM(проги вектора) -> WAV(или любой другой аудио формат) ???

svofski
18.12.2007, 18:55
Ах вот оно что =)

Я это делал при помощи Emulator3000, плагина к фару для чтения-записи образов дисков и программы saverom.com (прилагается). Алгоритм примерно такой:
0. Ставим плагин для Фара mi_v004.zip из эмулятора ve27a (прилагается)
1. Берем какой попало загрузочный образ дискеты.
2. Пишем на него нужные .ром-ы и программу saverom.com
3. Грузимся всем этим дискетом в E3000, открываем там виртуальный магнитофон.
4. Пишем в командной строке
saverom gamez.rom 100
5. Жмем в виртуальном магнитофоне на запись
6. В конце делаем Save As в магнитофоне и пишем в какой-нибудь wav.

Я эту процедуру упрощал дописывая в дискету initial.sub с кучей saverom команд, а потом пилил большой wav-файл в Audacity. Можно записывать в mp3 на 96кбит/с -- по крайней мере в мой Вектор это грузится.

Способа проще я, к сожалению, не нашел. Да в общем и ладно: для отладки это было полезно, а так вообще не очень.

AlexBel
18.12.2007, 22:09
svofski, проверь почту и аську :)

svofski
20.12.2007, 03:34
Обновления:

пофикшены залипающие скобки-двоеточия и проч на клавиатуре
появилась клавиша ПС (Alt)
доступ к SRAM через JTAG больше не конфликтует с процессором; в связи с этим в T80 поправлены HOLD/HLDA (почему-то HOLD был отрублен, не знаю).
БЛК+ВВОД (сброс с подключением ПЗУ загрузчика) сделан клавишей F11, работают комбинации (F1+F11 запрещает загрузку с кваза)
ScrollLock или SW7 переключает HOLD, такая супер-пауза -- останавливает и отключает проц от шины


Слепок сорцов, бинарник и репозиторий svn - http://code.google.com/p/vector06cc/

fan
20.12.2007, 04:04
Способа проще я, к сожалению, не нашел.
Ничего , сойдёт . Какнить попробую %)

alexfreed
23.12.2007, 12:34
Мы сегодня плодотворно пообщались с AlexBel и пришли к выводу о том, что Quartus 6.1 собирает мой код совсем не так, Quartus II WE 7.1. Судя по симптомам, проблемы в мелочах, но так просто парой галочек в настройках оптимизатора их не устранить. Пока я думаю, вывод для любопытствующих таков -- нужен QII WE 7.1.



Еще одно наблюдение: собираю на 7.0.
Стартовый синий экран в порядке, а запуск с RAM_disk дает "снег" на экране, как будто видео дерется с процессором. Твой бинарник работает нормально.

AlexBel
23.12.2007, 14:43
Еще одно наблюдение: собираю на 7.0.
Стартовый синий экран в порядке, а запуск с RAM_disk дает "снег" на экране, как будто видео дерется с процессором. Твой бинарник работает нормально.

Получается, что дело не в том, что у меня кактус 6.1, скорее всего дело в каких-то настройках, которые сильно влияют на результат компиляции.

svofski
23.12.2007, 15:51
http://img142.imageshack_.us/img142/9927/sneeqo3.th.jpg (http://img142.imageshack_.us/my.php?image=sneeqo3.jpg)
Такая ведь картинка, да? И перед глазами все плывееет..

Я скорее думаю, что что-то изменилось с версии 7.1, поскольку пробовали уже во многих версиях без специальных настроек. Пока статистика такова:

6.1, 7.0 -- снег,
7.1, 7.2 -- красота


Cyclone II Errata (http://www.altera.com/literature/ds/es_cycii.pdf) говорит о том, что проблемы с M4K блоками во втором Циклоне есть. Но утверждает, что они обойдены в Quartus-ах начиная с 5.0SP2, что было довольно давно. Но было бы интересно, если б кто-нибудь с версией 6.1 или 7.0 попробовал выставить параметр CYCLONEII_SAFE_WRITE, как об этом говорит документ всеми своими скришшотами. Это, конечно, только версия. Очень похоже на проблему с доступом к строчному буферу который, разумеется, сделан в M4K.

Добавлено через 2 минуты
Да, совсем забыл в угаре поблагодарить за обратную связь, спасибо alexfreed! :) Если картинка как в моем скриншоте, это не процессор дерется, он так быстро драться не умеет.

tnt23
25.12.2007, 16:26
Это лишний повод заказать-таки уже себе DE1!:v2_clap2:

AlexBel
25.12.2007, 21:06
Это лишний повод заказать-таки уже себе DE1!:v2_clap2:

Шикарная штука! Ни секунды не пожалел о том, что купил DE1!

svofski
26.12.2007, 13:29
Господа, проект живет на http://code.google.com/p/vector06cc -- ссылки на слепки сорцов на sensi.org устарели. Это я пишу, потому что заметил что кто-то скачал старые сорцы, которые я по недосмотру не убрал вовремя.

Добавлено через 12 минут
NB: Я поправил ссылки в старых сообщениях, кроме цитат. Это здравый вариант ревизионизма -- если проект переезжает, ни к чему держать старый хлам где попало и провоцировать путаницу. В SVN есть история всех-всех файлов и кто угодно может забрать их в состоянии на любой момент времени.

svofski
13.01.2008, 06:43
Обновка!

Значительные изменения:

Появился дисковод, пока весьма деревянный и только для чтения
Появился AY-3
soundcodec.v теперь имеет дополнительный вход для 8-битного PCM звука

Как пользоваться дисководом

Надо взять SD или MMC карточку. Она должна быть отформатирована в FAT16, совсем необязательно только что, можно вчера или год назад. На ней надо создать каталог под названием VECTOR06 (без суффикса C!) и в этот каталог положить только один файл с расширением .fdd. Поскольку никакого механизма выбора пока не предусмотрено, если там будет два файла, то загрузится первый попавшийся. Если диск загружаемый, то система его увидит и через короткий промежуток времени радостно замигает индикатором РУС/ЛАТ (LEDR9) в ожидании БЛК+СБР (F12). Если нет, можно посмотреть в консоль на RS-232:115200-8-N-1. Правда, вряд ли там просто понять что не так.

Образы дискет годятся традиционные .fdd 1024x5x2xNN, .mst вроде бы то же самое. Если диск не загрузочный, можно загрузить образ квазидиска -- тамошний МикроДОС будет видеть и дискету.

Для загрузки с дискеты при загруженном квазидиске нужно крепко удерживать F1+F2 при сбросе через F11 или KEY0.

Один образ диска для примера прилег ненадолго тут: http://sensi.org/~svo/vector06c/stuffsies.zip


Где взять

http://code.google.com/p/vector06cc/downloads/list - svn snapshot сорцов и последний битстрим файл для загрузки в DE1


Как это

http://code.google.com/p/vector06cc/w/list - смесь док, путевых заметок, диаграмм; попытка не утратить Знание.

В двух словах: контроллер флопа состоит из хардверного как-бы ВГ93, который делегирует сложные запросы маленькому компьютеру на 65C02. Маленький компьютер общается с файловой системой и заполняет буфер в памяти данными из образа диска. Из этого буфера ВГ93 потом выплевывает байты почти как настоящий. Фирмварь теснится в M4K блоках, поэтому ничего дополнительного загружать в плату или на SD не надо.


Использованы разработки замечательных людей
(в дополнение к предыдущим)

Peter Wendrich (65C02)- http://www.syntiac.com/
Elm-Chan (MMC + FAT) http://elm-chan.org/
MikeJ (YM2149) http://home.freeuk.com/fpgaarcade/index.htm
Tobias Gubener (UART) tobiflex(@)opencores.org
John R. Dunning (cc65 compiler) http://www.cc65.org/


Известные проблемы


Демка SkyNet зависает после каких-то там по счету титров
В демке Black Ice (b-ice) не видно мультиколора (при этом в m@color все отлично)
Дисковод работает только на чтение, контроллер не может отличить А от B
Нету селектора образов дискет



Уфффффсе! Напоминаю, что обязательно тумблеры SW9, SW8 - вверх, SW7 - вниз; остальные управляют только световыми эффектами.

Добавлено через 38 минут
Вот еще любопытная вещь, электронный выпуск журнала Сканер #5. Есть на что посмотреть =)
http://sensi.org/~svo/vector06c/scaner5.zip

ZEman
18.01.2008, 14:49
я не понимаю для чего вы делаете такой проект?
не проще ли написать нормальный эмулятор вектора под виндовс?
ведь не у каждого есть эта Altera DE1.

svofski
18.01.2008, 15:58
Следующий вопрос из этой серии -- для чего вы делаете нормальный эмулятор Вектора под виндовс, ведь не у каждого есть эта ОС. Не проще ли написать нормальный эмулятор Вектора под Линукс?

Это хобби, и это железный проект, интересный людям увлекающимся железом и программируемой логикой. А кто хочет перенести его, например, на Spartan 3E Starter Kit, или сделать из него 86РК или ЮТ-88, использовать в своем проекте ВИ53 или прикрутить мой дисковод к аналогичному FPGA-синклеру -- добро пожаловать, все-все-все открыто и доступно. Лицензии практически на все части даже позволяют не показывать после этого исходные коды, лишь бы упоминания авторских прав сохранялись.

P.S. Эмулятор Вектора под виндовс есть, хоть и не опенсорс, но полноценный. Посмотрите на http://bashkiria-2m.narod.ru/ Его автор, Дмитрий Целиков, активно помогает мне в моей разработке, делится опытом.

svofski
26.01.2008, 14:59
Обновка vector06cc (http://vector06cc.googlecode.com)!

Ревизия 234:

- Исправлен таймер: граничные значения, защелка, чтение из таймера
- Исправлены параметры развертки: 624 строки как в оригинальном Векторе, 16-строчные бордюры
- Много исправлений в процессоре T80: биты регистра признаков, количество стейтов на цикл во многих инструкциях
- Более устойчивый к насилию контроллер флопа
- Появилось экранное меню, можно выбирать образ дискеты по нажатию на ScrollLock.

Более подробный журнал изменений здесь (http://code.google.com/p/vector06cc/wiki/Revision_History).

Основные эффекты от вышеперечисленных изменений:

- Не нужно больше перетыкать СД-карту каждый раз (подробнее (http://code.google.com/p/vector06cc/wiki/HOWTO_Floppy))
- Демка SkyNet проходит до конца
- Работает Exolon


Билд и снепшот последних сорцов лежат тут:
http://code.google.com/p/vector06cc/downloads/list

Образы дискет: листаем эту тему.

svofski
03.02.2008, 15:30
Версия 267:


- 8255 сбрасывает выходы в 0 при переключении режима, это слегка помогло по крайней мере одной глу\у\л\гненадежной программе; правильность такого поведения подтверждается еще одним источником;
- YM2149 заведен от отдельной PLL на 14МГц, что дает ровно 1.75МГц. Если убрать убрать определение TWO_PLL_OK, YM будет работать на 1.80МГц и будет строить с эмулятором Башкирия-2М;
- Магнитофонный вход можно выключить переключением SW6 вверх: программа просмотра слайдов ZAS опрашивает его на предмет неясного и, видя там движение, проматывает картинки раньше времени;
- Внутри дисковода реализован ПДП: данные перекачиваются в буфер сектора минуя процессор, что существенно ускоряет работу;

svofski
23.02.2008, 01:04
Версия 300:

- дисковод теперь поддерживает запись
- дисковод определяет, когда из слота вынимается SD-карта и восстанавливается, когда ее вставляют обратно
- разное (http://code.google.com/p/vector06cc/wiki/Revision_History)


Субъективно это означает что можно, например, писать программы в ED, компилировать их компилятором BDS C и отлаживать SID-ом в условиях чрезвычайно приближенных к реальным. Наилучшая иллюминация от дисковода достигается установкой тумблеров SW3,SW2 в положение 1,0. Еще есть проблемы. Например, не всегда работает цепочка вызова стадий компилятора BDS C -- это обходится явным вызовом всех стадий компилятора.

Снепшот исходников, откомпилированый битстрим файл для DE1 и многое-многое другое на странице проекта vector06cc на google code: тут (http://code.google.com/p/vector06cc/).

svofski
28.08.2008, 02:11
Возобновившаяся активность и близящийся CC08 вдохновили меня на работу над своим vector06cc. Ревизия 329 (svn):

теперь проект совместим с Квартусом 8.0
перепахал и сверил выдачу STACK во всех инструкциях так или иначе пользующих стек: push,pop,call, call cc, ret, ret cc, rst, xthl -- это может быть интересно всем, кто использует T80 в режиме 8080
результат предыдущих пунктов: SkyNet впервые прошла без ошибок часть с фотографиями. Это говорит о том, что нетрадиционные виды секса с квазидиском все таки практиковались.

Билдов и снепшотов пока нет. Те, кто понимает о чем речь, могут сами взять и собрать =)

А Колобиха всё не работает..

P.S. Послушал у себя в полужелезной АЫ звучки. Звучки как звучки, бзинькают, фукают и бумкают. Как понять, что они "правильные"?

Добавлено через 1 час 30 минут
Фффуф! Колобиху починил (ревизия 331).

Ramiros: проверь, что у тебя возвращают на чтение биты 3:0 порта 01. Они "только на запись", но должны читаться как "1". Автор распакуя от Колобихи не смог найти лучшего способа устроить себе нужный битик, чудовище. А недокументированные инструкции в этот раз, похоже, ни при чем.

svofski
31.08.2008, 02:38
Между тем прошел первый день $CC8. Народ к Вектору подходил, даже иногда задавал вопрос и мусолил бумажку с описанием (http://vector06cc.googlecode.com/files/vector06cc-leaflet.pdf) , но не очень бодро. Надо сказать, что при наличии рядом Ямахи MSX-2, на людей непосвященных рекомпиляция MSX-ных игрушек не производит должного впечатления. За исключением, конечно же, PUT-UP -- это просто магнит. Еще у меня есть подозрение, что для большинства посетителей Altera DE1 слишком непохожа на типичный компьютер, чтобы вообще как-то инициировать процесс заинтересованности. В фоторепортаже это непонимание отразилось вот таким образом (http://cc.org.ru/8/index.php?uid=obj_view&uid_obj=368872&uid_cat=363393&sort=n_link&sortdir=asc&skiphtml_f=1) -- стоящий рядом пластмассовый киберолигофрен, исполняя брачный танец пчел-убийц, вызвал у фотографа приступ эпилепсии и в центре композиции оказался громкоговоритель. Это пока единственная фотография vector06cc "в интерьере". Но нас это не должно останавливать =)

Black_Cat
31.08.2008, 02:53
даже иногда задавал вопрос и мусолил бумажку с описанием , но не очень бодронасамделе нужен большой рекламный плакат с объяснением публике что это за зверь Вектор-06 и в чём изюм именно этой реализации, т.к. всёж большинство народа далеки от старых компов, не говоря уже о девбордах, и порой совсем не ассоциируют эту платку с рядом стоящим монитором. С рекламой на нынешнем СС совсем плохо..

svofski
31.08.2008, 03:05
насамделе нужен рекламный плакат с объяснением публике что это за зверь и в чём изюм именно этой реализации, т.к. всёж большинство народа далеки от старых компов, не говоря уже о девбордах, и порой совсем не ассоциируют эту платку с рядом стоящим монитором.

Платку с монитором действительно ассоциируют с трудом. А что до плаката.. та ни.. Обыватель все равно не прочухает в чем кайф, ему интересно посмотреть на дореволюционные компы, потискать пожухшую кнопку умирающего вычислителя. Самоделки сами по себе, компьютерный хоспис сам по себе. А кто понимает, тот одно от другого отличить может и так.

Black_Cat
31.08.2008, 04:14
Самоделки сами по себе, компьютерный хоспис сам по себе.:) ну вот если-бы на плакате кратко была изложена история Вектора, то у народа появился-бы интерес глянуть вживую что же это за зверь, ведь большинство просто не знает что это за компьютер, и именно по этой причине просто проходят мимо. Т.е. они, не являясь специалистами, просто не могут сориентироваться - на что обращать внимание, а рекламы с разъяснениями собсно и нету, и это к сожалению повсеместно.. :(

molodcov_alex
31.08.2008, 13:55
Это пока единственная фотография vector06cc "в интерьере". Но нас это не должно останавливать =)
А вот и не едиственная! Вот еще одна (моя :v2_blush:):
http://content.foto.mail.ru/mail/molodcov_alex/cc08/i-38.jpg (http://content.foto.mail.ru/mail/molodcov_alex/cc08/s-38.jpg)

Mick
31.08.2008, 14:49
насамделе нужен большой рекламный плакат с объяснением публике что это за зверь Вектор-06 и в чём изюм именно этой реализации, т.к. всёж большинство народа далеки от старых компов,

Это точно, сейчас мало кто интересуется историей отечественного ЭВМ строения и старыми машинамив в частности. У нас на форуме при обсуждения раритетов один чел похвалился раритетом - первым пнем. Долго смеялись кончно, но он почему то все всерьез воспринял. Вот и выводы делайте сами.

ZEman
31.08.2008, 15:52
они мало кому были известны, я в 90ых годах никогда даже не слышал о таком компе, в основном тока спектрумы да х86 машинки, ну ещё про камоды чтото немного слыхал.
про вектор 06ц сам узнал тока в конце 2006 года, наткнулся случайно в инете на эмуль :)

svofski
31.08.2008, 19:43
:) ну вот если-бы на плакате кратко была изложена история Вектора, то у народа появился-бы интерес глянуть вживую что же это за зверь, ведь большинство просто не знает что это за компьютер, и именно по этой причине просто проходят мимо. Т.е. они, не являясь специалистами, просто не могут сориентироваться - на что обращать внимание, а рекламы с разъяснениями собсно и нету, и это к сожалению повсеместно.. :(
Может быть и помогло бы. Но все равно это многобукаф -- только для тех, кто читать умеет, а таковых там было меньшинство. Один молодой человек минут пять втыкал на начальный экран SkyNet, где было русским по черному написано "НАЖМИТЕ ПРОБЕЛ". Он пробовал давить всякие разные клавиши, в том числе F11 и F12 (это сброс и запуск, их он просто увидел, когда я загружался), но читать он не умел поэтому так и не увидел что было дальше. Была слабая надежда на интервью в прямом включении, где можно было бы изъясниться на словах. Но в силу каких-то причин у оргов случился полный игнор Вектора, так что не судьба. Меня допрашивали какие-то другие люди с камерой и микрофоном, но кто они я не знаю и в силе своего запинающегося слога я сильно сомневаюсь.

С другой стороны несколько человек вспомнили, что был такой компьютер -- Вектор-06ц. Несколько человек узнали что он был такой, а не типа РК86. Кто-то узнал, что на 8080 нельзя запустить линукс, кто-то заинтересовался разработками на ПЛИС, кто-то посмотрел как компьютер грузится с кассеты, а кто-то узнал, что для Вектора есть софт.

ivagor, не оправдывайся :wink: Наоборот, люди обалдевают, когда узнают, что это рекомпиляция с MSX на Вектор и с уважительной интонацией говорят, что вы с Tim0xA-й Настоящие Маньяки. От даты 2008 на танчиках нашатырем я никого не откачивал, но на людей понимающих впечатление она произвела.

molodcov_alex, спасибо, отличный фотос! :biggrin:

Black_Cat
31.08.2008, 23:29
Может быть и помогло бы.думаю стоит попробовать, хуже не будет :)

svofski
01.09.2008, 16:06
ivagor, смотри, 4-я фотка:
http://dlinyj.livejournal.com/340516.html

Tim0xA
03.09.2008, 12:43
Нашел еще две фотки с CC8
http://picasaweb.google.com/f0andrey/CC8ChaosConstructions2008#5241165942351074194
http://picasaweb.google.com/f0andrey/CC8ChaosConstructions2008#5241172015852294898

svofski
04.09.2008, 16:05
Нашел еще две фотки с CC8
http://picasaweb.google.com/f0andrey/CC8ChaosConstructions2008#5241165942351074194
http://picasaweb.google.com/f0andrey/CC8ChaosConstructions2008#5241172015852294898
Еще одна фотка того же автора. Кто не знает, это Lines ;)
http://picasaweb.google.com/f0andrey/CC8ChaosConstructions2008#5241165932726453330

А вот тут видно Пакмана на Векторе:
http://cyber-maniac.livejournal.com/267532.html#cutid1

ivagor
04.09.2008, 16:11
Жаль pacman не "ремастереный" - там AY, спрайты 3х цветов и они практически не мигают вверху экрана (в отличие от оригинального).

Tim0xA
06.09.2008, 13:52
http://one-in.livejournal.com/26793.html
тут на 12й фотке справа кто-то увлеченно втыкает в экран Вектора, по-видимому рубится в танчики ;)

svofski
06.09.2008, 14:36
Это я =)

Tim0xA
06.09.2008, 16:30
Это я =)
Я так и подумал, но не был уверен, так как в лицо не видал никогда :)

svofski
06.09.2008, 23:15
Ну как, а на аватаре не похож?

ivagor
18.09.2008, 17:15
svofski
До скольки МГц реально разогнать "проц" в рамках DE1 (с минимальными усилиями, без существенных переделок кода)?

svofski
18.09.2008, 17:43
Хех. Я не очень-то думал над этим вопросом, потому что мне больше всего охота была сделать Вектор как Вектор, а скорость -- это так. Например, он генерирует циклы ожидания, как настоящий Вектор. Без них он уже сразу быстрее раза в полтора.

Сделать переключатель "турбо" наверное можно. Если просто вставить побольше разрешающих импульсов, может быть можно в два раза ускорить. Но это будет нечестное ускорение. Например, между двумя прерываниями будет исполняться в два раза больше команд. Программы имеют полное право сходить от такого с ума. Правда, может быть это и забавно.

Глумить нужно вот это место:
http://code.google.com/p/vector06cc/source/browse/trunk/src/clockster.v

Процессор разрешают импульсы ce3. Идея состоит в том, чтобы найти свободные от других разрешающих импульсов отсчеты и сделать еще один ce3, сдвинутый по фазе. При этом результирующий ce3 будет отщелкивать замысловатый ритм, но это не должно нас расстраивать.

http://code.google.com/p/vector06cc/wiki/ImplementationNotes#Clock_Distribution

На этой картинке показаны ce3 и ce3v; если она еще соответствует действительности, теоретически у нас есть еще два свободных отсчета. Займешься?

ivagor
18.09.2008, 18:03
DE1 у меня нету, а самое главное нет навыков программирования на всяческих verilogaх и HDLях, так что я пас.

Вопрос возник в связи с тем, что:
В b2m можно очень легко накрутить любую желаемую частоту, я пару раз игрался с этой возможностью. Но делать что-то чисто под эмулятор - это не айс. Если знать, что существует железяка, которая тоже так может - это уже другое дело.
Правда, нужно не только турбо (чем больше тем лучше), но еще какой-нибудь улучшеный вариант КД (b2m поддерживает "кировский", который задействует старшие 2 бита 10h) и z80 (наверно было бы сравнительно легко t80 сделать в варианте z80 в рамках твоего проекта).

Увеличение числа тактов между прерываниями в 2,4,8,16... раз - это то что надо :)

svofski
18.09.2008, 18:08
Ну чо, это будет не совсем уже Вектор, но почему нет. Я просто не могу обещать, что я этим займусь на днях. Может быть меня пропрет и я это сделаю сегодня, но скорее всего все-таки в какое-нибудь другое время.

А ты решил сделать River Raid? :)

ivagor
18.09.2008, 18:15
Эта идея меня стала мучать во время бодания с king's valley. Эта игрушка синхронизирована по прерываниям и ее скорость после определенной частоты (когда на все начинает хватать времени) остается постоянной.
При достаточно большой частоте можно сделать для этого гипотетического монстрика практически эмулятор msx, правда в нем пойдет не так много игрушек, только те которые обращались к аппаратуре через bios.

svofski
18.09.2008, 21:32
Тут главное не переборщить. Потому что MSX вообщем-то тоже есть и возникает естественный вопрос..

ivagor
18.09.2008, 21:43
С другой стороны, большое быстродействие развращает, высокочастотный вектор - это от лукавого, я осознал :).
А вот z80 на 3 МГц и поддержка кировского КД - это ведь эмуляция реально имевших место старых железок, может когда-нибудь подумаешь о реализации этих штук?

svofski
18.09.2008, 22:48
Вот у Tim0xI дойдут руки до DE1, он приделает Z80. А то бывал ведь еще 580ВМ1 =)

Кстати, я обновил снепшот сорцов и битстримы до ревизии 333, она принципиально лучше ревизии 322. Из серьезных глюков осталась, по прежнему к сожалению, трудноуловимая трабла с записью на диск.

Совершенно отстраненный вопрос -- кроме того, что у z80 практически отсуствуют губительные для Вектора 5-тактовые циклы, что делает его волшебным? Вне контекста портирования спектрумных и msx-ных гамезов, конечно, с этим все понятно. LDIR? Или наборы стремных префиксных инструкций, ими вообще кто-то пользуется иногда хотя бы?

Black_Cat
19.09.2008, 02:12
Ну чо, это будет не совсем уже Вектор, но почему нет.svofski, z80 приделывать нужно, если есть желание развивать проект. Т.к. с z80 у Вектора есть перспективы железного и программного развития ввиду его удачной адресации портов не превышающей #7F, что позволяет в дальнейшем использовать развитие z80 - eZ80. А с eZ80 открываются просто бесконечные перспективы развития компьютера, вполоть до использования линукс платформы имеющейся под eZ80.

ivagor
30.10.2008, 20:09
svofski
Может со временем еще железный newвектор будет

Например Speccy, C64, MSX, Орион, Вектор и т.д.
поглядываешь в ту ветку :)? Хотя до гипотетического вектора там очень далеко.

svofski
31.10.2008, 17:12
Ну ты бы хоть ссылку на ветку дал, я не знаю о чем речь.

Добавлено через 31 минуту
Ага, понял. Нет, не заглядываю.

Error404
01.11.2008, 12:19
svofski
Может со временем еще железный newвектор будет

поглядываешь в ту ветку :)? Хотя до гипотетического вектора там очень далеко.

А мне в той реализации до крайности не хватает разъема расширения. Я, к примеру, и Орион то достал из сарая только оттого что за прошедшие годы узнал новые вещи и захотелось поэкспериментировать. С этой точки зрения, даже всякое встроенное USB-программирование, "и такие и сякие разъемы", мне видится как зло, т.к. это отнимает "у меня" :) требуемые для разъема ножки ПЛМ.

Tim0xA
29.07.2009, 15:51
http://www.xdevs.com/phpBB3/viewtopic.php?f=16&t=308&view=previous
По ссылке: один товарищ приобрел DE1 и делится впечатлениями. Угадайте, какой проект был залит одним из первых. Скоро в украинские ВУЗы навезут DE1, студенты будут искать проекты для нее и Вектор получит новую жизнь ;)

Error404
29.07.2009, 23:20
http://www.xdevs.com/phpBB3/viewtopic.php?f=16&t=308&view=previous
По ссылке: один товарищ приобрел DE1 и делится впечатлениями. Угадайте, какой проект был залит одним из первых. Скоро в украинские ВУЗы навезут DE1, студенты будут искать проекты для нее и Вектор получит новую жизнь ;)

Ссылка дохлая

Tim0xA
29.07.2009, 23:47
Ссылка дохлая
Действительно :( Очень жаль. Может завтра заработает. Фотки с этого сайта можно еще тут посмотреть http://fotkidepo.ru/?id=album:9515 - там DE1 есть и скриншоты вектора.

svofski
30.07.2009, 03:43
Уже заработала. Искренне завидую украинским студентам. Пригласите к себе попреподавать?

Tim0xA
30.07.2009, 10:47
Уже заработала. Искренне завидую украинским студентам. Пригласите к себе попреподавать?
Приезжай :v2_cheer:

svofski
15.09.2009, 03:31
http://lh5.ggpht.com/_iQz8NSIO4Xc/Sq7S1AY2O6I/AAAAAAAAFFI/ZzIN4e-JDmE/s640/IMG_4696.jpg

ZEK
15.09.2009, 08:37
В Донецком техническом универе уже давно разношерстные девборды есть. Так же у нас постоянно Aldec тусуется, студентов к себе в польшу на стажировку забирают.

http://hardclub.donntu.edu.ua

Хотя последние года 3 он постепенно помирает :(

Tim0xA
15.09.2009, 09:17
svofski, сделал все-таки! :) Этот релиз уже доступен? Опиши схему подключения, вечером посмотрю.

svofski
15.09.2009, 12:59
Tim0xA, в зависимости от везения может быть либо достаточно кончик композитного кабеля засунуть в ножку R на VGA-шном разъеме, либо спаять R-2R ЦАП с эмиттерным повторителем нагруженным на 75 ом и навесить все это на ножки 26-29 на GPIO_1.

Это уже в репозитории, но снепшотов и сборок готовых нет пока. Соберешься проверять, стучись —*мне очень интересно как оно вообще будет себя вести. Я только на своем мониторе видел пока.

svofski
15.09.2009, 21:43
В общем кабель такой (rev 344):




R ---.
\
G -----*---> CVBS Composite
/
B ---'


Можно и только один, или два из трех сигналов. Но DE1-шный сигнал нагруженный на 75 ом проседает почти в ноль. Если все три склеить в один, у меня получается вполне адекватно. Переключатель VGA -> CVBS: SW5 0 = VGA. OSD в композите пока не работает.

Tim0xA
16.09.2009, 01:22
Работает!

http://pic.ipicture.ru/uploads/090916/15427/rC5o3yiWky.jpg

tnt23
16.09.2009, 15:18
Зашибись!

svofski
17.09.2009, 03:24
Я сделал новый снепшот и билд, ревизия 349 (http://code.google.com/p/vector06cc/updates/list).

http://code.google.com/p/vector06cc/downloads/list

Главная фича --- появился вывод цветного композитного сигнала на ТВ. ТВ описан выше и в вики (http://code.google.com/p/vector06cc/wiki/TV_Howto), включается он переключателем SW5. Поддержано OSD-меню.

У меня картинка на двух девайсах стабильная. Но, судя по отчетам Tim0xИ, с некоторыми девайсами система работает не так чтобы 100% без проблем. Поэтому есть переключатель SW4, которым можно выключить чередование фазы цветовой поднесущей между полукадрами. От этого тонкие горизонтальные полосы станут странных цветов, но на некоторых декодерах в общем качество картинки улучшится.

Для проверки сигнала я написал настроечную таблицу, которая заодно показывает все возможные цвета Вектора:
http://sensi.org/~svo/scalar/ware/768/

И в честь появления новой фичи, крохотная 256-байтная интра.
http://sensi.org/~svo/scalar/ware/769/

Таблица и интра работают и в эмуляторе b2m :D

svofski
17.09.2009, 17:55
Из привата с ivagor-ом. Началось с того, что ivagor заметил ошибку в цветовом градиенте и я ее поправил.



Кстати, если ты вдруг знаешь способ отсортировать их как-нибудь поплавнее, поделись. Я сортирую цвета 0-63 по H, оттенку. 63, желтый, получается примерно посередине. В этой точке я разбиваю их на две половинки и сортирую их по Y, яркости.
Да, хотелось бы "поплавнее", но как именно - не знаю.



В композитном сигнале у меня получается всего 16 уровней, да. 4 отведено на синхру, остается 12, это в общем-то немного, если модуляция амплитудная. Но цвет кодируется квадратурно-амплитудной модуляцией, так что все не так просто:

CVBS = Y(r,g,b) + U(r,g,b)*sin(wt) +/- V(r,g,b)*cos(wt)

w=2*pi*Fsc, Fsc = 4.43MHz

В идеале синусы, конечно, круглы. Но у меня всего 4 отсчета на 2пи, в качестве опорной используется частота 4*Fsc.

Я не возьмусь утверждать сколько именно цветов у меня получается показать в действительности. Факт, что цветовые пространства RGB и YUV при таком разрешении пересекаются не идеально и картинки на RGB и на композите заметно отличаются, это хорошо видно как раз на градиенте. Некоторые цвета сливаются, некоторые, слабо отличающиеся друг от друга в RGB, наоборот разнятся -- это как алиасинг, эффект лесенки. Но в целом картинка получается вполне приемлемая.
Для композита интересен был бы тест с расположенными рядом по горизонтали точками кардинально разных оттенков, особенно в HiRes. В принципе это должно привести к "артефактам".



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

Артефакты в виде dot crawl (http://en.wikipedia.org/wiki/Dot_crawl) обязательно присуствуют. Особенно в HiRes и это делает затруднительным общение с микродосом. Особенно с тем, который не самый яркий зеленый на черном.

ivagor
17.09.2009, 18:23
Как компромисс несколько лучше композита смотрелся бы S-Video.

svofski
17.09.2009, 18:34
Это при живом-то VGA? Композит я приделывал не для повышенного качества картинки =)

Может быть потом попробую разделить сигналы как-нибудь. Потенциальный плюс в этом еще в том, что можно будет употребить 16 бит на цветность. Минус в том, что эти 16 бит из одного высокоомного выхода нагрузкой на 75 ом все равно сплющит в 0.3В в лучшем случае.

ivagor
17.09.2009, 18:43
Это при живом-то VGA? Композит я приделывал не для повышенного качества картинки =)
я с прицелом на ТВ (не мониторы), у которых нет SCARTA, но есть RCA и S-Video.
А у тебя сейчас вывода на SCART через переходник нет, только на VGA?

svofski
17.09.2009, 19:01
я с прицелом на ТВ (не мониторы), у которых нет SCARTA, но есть RCA и S-Video.
А у тебя сейчас вывода на SCART через переходник нет, только на VGA?
Нет, хотя вопрос как обычно только в том, что нет мотивации его делать. Теперь, когда есть телевизорная синхра, все остальное вопрос только того какой ножке чего присвоить.

svofski
19.09.2009, 00:17
Новый снепшот, ревизия 353: http://code.google.com/p/vector06cc/downloads/list

Изменения в процессоре T80:
1. Вычитания в АЛУ оставляют в регистре флагов инвертированый флаг AC
2. Сдвиги не влияют на флаги, кроме C
3. STC/CMC/CMA не изменяют флаг AC
4. В результате операций АЛУ "И" флаг AC равен (BusA(3)|BusB(3))
5. DAD не изменяет флаг AC
6. RESET не сбрасывает флаги, SP и аккумулятор
Кроме того:
Обновил начальный загрузчик до "версии 3" от TimSoft. Теперь программа Pillars запускается с кассетофона.

Обратно посадил аудиоклоки на отдельный ФАПЧ до лучших времен. Предыдущая версия не грузилась с кассеты.

http://lh3.ggpht.com/_iQz8NSIO4Xc/SrPrLFojomI/AAAAAAAAFHQ/HH_UlZ00F-E/s800/IMG_4704.JPG

Всем большое спасибо за участие!

svofski
20.09.2009, 04:48
Время прогона теста воодушевило меня на реализацию warp режима. Теперь (r357) свитчи 8,9 работают так:


ON ON нормальный Вектор
ON OFF меедленный клок, можно любоваться огоньками
OFF OFF ручной клок на KEY1
OFF ON Warp: 6MHz/no waitstates

Warp работает так: CE процессора переключается с ce3 на ce12, но поскольку видео система остается где была, получает он только те ce, которые не перекрыты video_slice'ом. А таких получается, как это ни обидно, всего в два, а не в четыре раза больше. То есть, общая скорость проца в варп-моде выходит 6МГц вместо трех. Поскольку в таком режиме в оригинальном распределении циклов смысла уже нет, в нем не работают и традиционные векторовые вейтстейты, то скорость чуть больше чем 2х.

Интересный момент, что на самом деле можно вместо


cpu_ce <= ce12 & ~video_slice;

вбить


cpu_ce <= ~video_slice;

-- то есть запустить всю систему на 24МГц. В таком режиме все работает, но не получилось запустить дисковод. Зато на 6МГц (дисковод на самом деле тогда работает на все 12, ему-то video_slice пофигу) -- получилось после некоторого скрипа. Заодно пару глюков исправил ;)

В принципе и фиг с ним. На 24 (=12) МГц, конечно, есть тема -- весь прогон 8080-еьесиськера занимает смехотворные полчаса. Но он-то уже весь прогнан. Зато какой теперь угарный Put Up!

svofski
29.09.2009, 04:04
Сделал краткое описание ПАЛ-кодера:
http://sensi.org/~svo/verilog/palencoder/

svofski
29.09.2009, 22:43
По просьбе ivagor-а отсортировал цвета 0-63 для фотографии в "естественном" порядке. Ждем вердикта по поводу истинного количества цветов в моем фотоаппарате =)

http://lh3.ggpht.com/_iQz8NSIO4Xc/SsJUwbD7lKI/AAAAAAAAFK0/McIvIuurC5g/s400/IMG_4768.jpg

Кстати говоря, все картинки в более крупном виде лежат тут: http://picasaweb.google.ru/svofski/PALEncoderArticle

ivagor
29.09.2009, 23:06
На мой непросвещенный взгляд, число градаций красного и зеленого как минимум в 2 раза меньше, чем в эмуляторе (и, скорее всего, на VGA).

---------- Post added at 01:06 ---------- Previous post was at 01:04 ----------

Еще "помеха" на некоторых цветах - в чем, по-твоему, ее причина?

svofski
29.09.2009, 23:09
Ну да, безусловно цветов меньше. Фотография теряет часть отчетливо различимых полутонов, особенно красного. Но все равно видно, что скачки между соседними цветами сильно более грубые, чем в RGB.

---------- Post added at 23:09 ---------- Previous post was at 23:07 ----------


Еще "помеха" на некоторых цветах - в чем, по-твоему, ее причина?

Не уверен. А вы с какой целью интересуетесь? =)

ivagor
29.09.2009, 23:15
Не уверен. А вы с какой целью интересуетесь? =)
думаю, что ее там (на однотонных протяженных по горизонтали участках) быть не должно, т.е. это повод для улучшения кодера.

svofski
29.09.2009, 23:21
Максимум чего можно сделать в текущей конфигурации — это пересчитать все для 8*Fsc, но не факт что это поможет. Когда-нибудь, может быть.

svofski
30.09.2009, 22:35
Ожидая чего там с растрами на исправленном Векторе, попробовал сделать 8 отсчетов на 2 пи. Эффект немного неожиданный: цвета стали очень насыщенными, красивыми, но почему-то практически перестало ощущаться влияние черезкадровости. Например, загрузочная картинка всегда одинаково ярко желтая на ярко-синем. От выключения чередования чего-то меняется, но несущественно. Tim0xA, как там твой телевизор, не хочет отведать 8*Fsc? Я пока не коммитил ничего...

соф и поф: http://sensi.org/~svo/b/vector06cc-8fsc.zip

Tim0xA
01.10.2009, 01:40
svofski, на ТВ картинка отличная, чередование совершенно незаметно, в МикроДОС текст стал более читабельным. Попробовал зафотать, но со вспышкой фотки вышли не очень. Поверь на слово - картинка просто супер!

---------- Post added at 00:40 ---------- Previous post was at 00:28 ----------

Скриншот с ТВ-тюнера
http://s51.radikal.ru/i132/0909/ab/ed7af926bd77.jpg

svofski
01.10.2009, 01:42
Хурй!! А ты как проверял, SW4 вкл, или выкл? У меня вот вообще все теперь гораздо лучше, когда SW4 выкл.

Tim0xA
01.10.2009, 02:07
Ёлки, я уже в полусонном состоянии переключал не SW4, а SW6. Проверил на ТВ и тюнере еще раз. Однозначно с выключенным SW4 картинка лучше в обоих случаях.

svofski
01.10.2009, 02:16
Круто! Ну супер, тогда я приведу в порядок немного все и закоммичу. Запись в палитровое ОЗУ я уже тоже сделал.

svofski
02.10.2009, 01:16
Брр.. Наконец-то притер все вейтстейты с клокенейблами. Все выложил, сделал снепшот. Версия 362 (http://code.google.com/p/vector06cc/updates/list):
- запись палитры в РУ как на тру ((с) tnt23)
- яркий сочный осьмиклочный ПАЛ

В вики (http://code.google.com/p/vector06cc/wiki/ImplementationNotes) можно глянуть на то, как теперь распределяются клоки.

Качаем: кач-кач (http://code.google.com/p/vector06cc/downloads/list).

Tim0xA
02.10.2009, 02:04
Залил новую версию - теперь 8snail работает, как на настоящем векторе :)

svofski
02.10.2009, 02:08
Ага. Только теперь есть еще и новый 8snail, который надо залить в настоящий Вектор =)))

b2m
02.10.2009, 11:27
Скриншотик-то для clrspace можно в картотеке обновить :)

tnt23
02.10.2009, 17:10
- яркий сочный осьмиклочный ПАЛ


Предлагаю "яркий, сочный ПАЛ осьмиклочный!".

svofski
21.10.2009, 14:51
r365: запинал 8253 до состояния прохождения всех тестов.

svofski
29.10.2009, 00:33
r366 + снепшот, релиз имени Ивагора и Реала =)

- момент загрузки счетчика строк из регистра скролла выставлен по тесту scrltest2: 13-14, 17-18
- поправил вейтстейты проца до полного совпадения с spdtest/spdtest2
- ввел корректируемую задержку записи в РУ палитры ибо от вейтстейтов оно съехало снова и сил больше нет собирать этот кубик рубика 13x13x13

Хмм... а горизонтальная риска на бордюре осталась без 8-точечной задержки. Непонятна она мне.

ivagor
18.11.2009, 14:11
svofski, в warp режиме на таймер по прежнему подается 1,5 МГц?

svofski
18.11.2009, 14:19
Да, кажется. А фто?

ivagor
18.11.2009, 14:23
если бензин не кончится, на выходных хочу сделать вариант vst, чтобы узнать, насколько быстр warp.

svofski
18.11.2009, 14:40
О, давай! Посмотрим.

Stas Bergich
10.01.2010, 01:51
Только что купил на E-bay Альмеру DE1, так что скору примкну к рядам...

svofski
10.01.2010, 03:52
Если Альмера, то тебя обманули, должна быть Альтера =D

Stas Bergich
10.01.2010, 05:52
Ну да опечаточка вышла Ж;-)

Stas Bergich
19.01.2010, 18:56
Vchera nakonets poluchil po pochte DE1. Komu interesno, oboshlasi v 100 $ s dostavkoi(v Kanadu) plus pochti 40$ rastomojka i brokerskie uslugi(UPS jloby no prodavets ne hotel po drugomu otpravliati). Plata, kak i obeshali, absolutno novaia. Zalil v nee MSX2 dlia nachala, ocheni ponravilosi, kak budto vernulsia na 25 let nazad. Segodnia poprobuiu Vector.
Svofski vopros k tebe, vozmojno li imeti odnovremenno 2 proekta v altere - vector i msx ili nado kajdyi raz pereshivati?

svofski
19.01.2010, 19:01
Нет, два одновременно сейчас невозможно. Но, в отличие от MSX, Вектору не требуется ничего от флеша, поэтому его нетрудно просто заливать каждый раз из Квартуса. Другой вариант: ты можешь сделать мост, который будет объединять в себе MSX и Вектор. В принципе в этом ничего сложного нет: просто в зависимости от какого-то условия (переключатель, джампер, мощное экранное меню при старте) все внешние проводки будут втыкаться в toplevel от MSX, или в toplevel от Вектора.

Павел Рябцов
19.01.2010, 19:24
Stas Bergich, Где купил,дай ссылку,я порылся не нашел!!!

balu_dark
19.01.2010, 20:39
Он на аукционе Ebay брал - там обычно полно линков. странно что ты не нашел.

Stas Bergich
19.01.2010, 21:04
Stas Bergich, Где купил,дай ссылку,я порылся не нашел!!!

Seichas deistvitelino na ebay nichego net - probui proveriati ejednevno, ia toje ne srazu nashel. Bukvalino paru dnei nazad videl paru shtuk pravda odna byla usanaia

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


Нет, два одновременно сейчас невозможно. Но, в отличие от MSX, Вектору не требуется ничего от флеша, поэтому его нетрудно просто заливать каждый раз из Квартуса. Другой вариант: ты можешь сделать мост, который будет объединять в себе MSX и Вектор. В принципе в этом ничего сложного нет: просто в зависимости от какого-то условия (переключатель, джампер, мощное экранное меню при старте) все внешние проводки будут втыкаться в toplevel от MSX, или в toplevel от Вектора.

Ideia poniatna, ia toje ob etom dumal. Pravda ia eshe sovsem novichok v etom dele, nado budet so mnogim razobratisia. Davai mojet obiedinim usilia, esli tebe eto interesno?
Mne, v svoiu ocheredi, budet interesno razobratisia pochemu SSTV ne hochet rabotati na DE1.

P.S. Eshe by ZX prikrutiti ko vsemu etomu...

Павел Рябцов
19.01.2010, 22:30
Stas Bergich, Проблема в том что продацы в Россию не поставляют.Я нашел закончившееся листинги.Жаль.Где ещё можно купить?

Stas Bergich
20.01.2010, 00:17
На их сайте, правда цена 150 и доставка 78 баксов
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=83

Stas Bergich, Проблема в том что продацы в Россию не поставляют.Я нашел закончившееся листинги.Жаль.Где ещё можно купить?

alexeilm
20.01.2010, 09:50
Приобрести можно через Питерское эфо.
http://www.efo.ru/
Написать проще на [email protected] - Это Галина Болонина, мэнеджер, через которого я брал.
Террасик тайваньский у меня деньги принял, но потом отказался доставлять в Россию. Вернули даже чуть больше. Долларов на 5-7.

balu_dark
20.01.2010, 16:59
Скорее всего ЭФО эксключивный поставщик и тайваньцы не стали прыгать через голову. странно что они тебя не переадресовли к дистрибутору.

alexeilm
20.01.2010, 17:06
Я оплачивал через штатовскую карту. Тайваньцы сдали в Федерал Экспресс. Меня бороднула Федерал Экспресс, но в итоге я даже чуть-чуть выиграл.
А эфо просто молодцы, после первого звонка, я получил счет через 9 часов (разница во времени с Питером у меня 7 часов), оплатил сразу, и получил DE1 через 12 дней :-)
Причем, если сможещь подписаться под какой-нибудь институт, то стоимость должна быть меньше, т.е. можно попробовать договориться с ними (ЭФО) на академическую скидку.

Но! Террасик меня ни к кому не пересылал! Им это по-барабану! Они при прямой продаже получают больше...

bigral
26.04.2010, 13:30
У меня вопрос по совместимости altera de 1 версии с оригиналом. Сразу скажу что на телике (50Гц кадровой) не пробовал а использовал vga 60Гц. Заметил что спрайты во многих играх мигают а это наверняка значит что либо игры портировались криво (вывод спрайтов без учета положения луча на экране) либо количество тактов в одном фрейме при 60Гц другое чем при 50Грц. А может в Векторе нету способа синхронизации вывода графики с положением луча на экране? Бывает у Вектора multicolor?

svofski
26.04.2010, 13:49
1) Весьма совместим;
2) С точки зрения компьютера разницы в выводе между VGA и PAL нет: это просто разные модули вывода и переключение VGA/PAL никак не влияет на работу памяти и процессора. Но в Векторе не бывает VGA 60Hz, только ~50Гц -- как раз из соображений приоритета совместимости с оригиналом над совместимостью с некоторыми мониторами;
3) Спрайтов в Векторе нет. В играх они только софтверные и поэтому уж кто как написал -- кто умел, делал немигающие. Но знания в то время были труднодобываемы, умели и знали их немногие;
4) Способ синхронизации с разверткой есть есть благодаря прерыванию по ходу луча и детерминированости времени исполнения всех инструкций;
5) У Вектора мультиколор очень даже бывает: методом изменения палитры в процессе развертки экрана. Можно посмотреть демки Multicolor (http://sensi.org/~svo/scalar/ware/32/) и Black Ice (http://sensi.org/~svo/scalar/ware/4/) (для исторически верной перспективы), цветовую таблицу PAL (http://sensi.org/~svo/scalar/ware/768/) и, как пример динамичного использования мультиколора, 8-bit Snail (http://sensi.org/~svo/scalar/ware/767/). Мультиколор в стиле быстрого флипанья страниц на Векторе отсуствует, поскольку просто не имеет смысла: есть программируемая палитра.

ivagor
26.04.2010, 13:57
Мультиколор в стиле быстрого флипанья страниц на Векторе отсуствует, поскольку просто не имеет смысла: есть программируемая палитра.
Комбинацией этих двух вещей можно получить на векторе подобие gigasceena, будет 64 цвета на точку для части экрана размером 256x128.

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

А на ПК-6128 можно и цветов 256 и полноэкранно.

svofski
26.04.2010, 14:09
ivagor, ждем новой демки! =)

ivagor
26.04.2010, 14:19
От меня ждать не стоит, это была одна из задумок для старой демки, которую я так и не сделал.

svofski
26.04.2010, 14:40
Да кто тут торопится?

CodeMaster
26.04.2010, 15:26
А эфо просто молодцы, после первого звонка, я получил счет через 9 часов (разница во времени с Питером у меня 7 часов),

Написал пару писем, ведел много уведомлений о прочтений в то время как эти письма шпыняли друг другу, но ответа так и не получил.

svofski
26.04.2010, 15:44
Я понимаю желающих приобрести ДЕ1, но давайте про покупку где-нибудь в другом месте? А то в треде получается лишний шум из-за которого мне не расслышать восторженные стоны и всхлипывания поклонников.

CodeMaster
26.04.2010, 15:48
А то в треде получается лишний шум из-за которого мне не расслышать восторженные стоны и всхлипывания поклонников.

Так это потому, что мало у кого она есть. А как мы все накупим, тут будут такие аплодисменты ;-)

svofski
26.04.2010, 15:55
Есть в принципе ветка про ДЕ1 вообще. Но если хочется именно в Векторовском разделе обсуждать, я только рад. Просто надо выделить покупочные обсуждения в отдельную ветку. Tim0xA это ловко умеет ;)

bigral
27.04.2010, 01:15
1) Весьма совместим;
т.е.
1. команды проца выполняются за то же количество тактов что и на ВМ80 реального вектора?
2. количество тактов процессора между сигналами прерывания равно числу которое у реального вектора?
3. начало вывода изображения (чтение из памяти экрана) начинается\заканчивается на том же такте после прерывания что и на реальном векторе?
4. механизм торможения процессора (он на векторе есть?) такой же как на реальном векторе?


... Но в Векторе не бывает VGA 60Hz, только ~50Гц -- как раз из соображений приоритета совместимости с оригиналом над совместимостью с некоторыми мониторами;
ой, я как-то не посмотрел скоко там на выходе, появилась картинка и я че-то подумал, раз так то кадровая VGA стандарта (60Гц), теперь смотрю действительно 50.1Гц показывает.


Спрайтов в Векторе нет.
под спрайтами имел ввиду ту часть изображения что часто перерисовывается (в идеале каждый кадр), то что "железных" спрайтов нет я знал, читаю ведь уже 3 года на этом форуме о геройских шагах по портированию MSX rom-ов.

хотел завести 1 дефект: при отсутствующей SD карте либо при карте без читабельного каталога \VECTOR06, но при загруженном RAM disk-e система микродос зависает а также зависает сервис меню "vector-06c fpga replica" (что фиксить? тут вопрос, может эмулировать неформатированный диск А так же как В до тех пор пока он не установлен?)
и 1 фичу: экран на 50Грц дико мерцает удвоить эту частоту в 2 раза и выдавать 100Грц (опционально по sw6 например).

svofski
27.04.2010, 01:56
т.е.
1. команды проца выполняются за то же количество тактов что и на ВМ80 реального вектора?
2. количество тактов процессора между сигналами прерывания равно числу которое у реального вектора?
3. начало вывода изображения (чтение из памяти экрана) начинается\заканчивается на том же такте после прерывания что и на реальном векторе?
4. механизм торможения процессора (он на векторе есть?) такой же как на реальном векторе?
Да.



хотел завести 1 дефект: при отсутствующей SD карте либо при карте без читабельного каталога \VECTOR06, но при загруженном RAM disk-e система микродос зависает а также зависает сервис меню "vector-06c fpga replica" (что фиксить? тут вопрос, может эмулировать неформатированный диск А так же как В до тех пор пока он не установлен?)
и 1 фичу: экран на 50Грц дико мерцает удвоить эту частоту в 2 раза и выдавать 100Грц (опционально по sw6 например).
В общем-то проект уже зрелый и каких-то существенных дополнений не предвидится. С SD картой нету большой проблемы по-моему, это не настолько частая ситуация. Чего не хватает, так это загрузки .ROM файлов и образов квазидиска. Удвоить частоту развертки.. наверное можно попробовать это сделать: в конце концов сейчас при выводе на VGA она и так уже удваивается, это будет уже учетверение. Но я этого делать не буду. Желающие могут заняться. Когда возникнут предметные вопросы, я подскажу где и что.

svofski
03.03.2011, 16:08
PPC, можно как-то Makefile-ы положить в общий проект? Я бы просто положил рядом с моим как Makefile.cygwin например. Кроме них ничего менять не потребовалось?

PPC
03.03.2011, 22:31
PPC, можно как-то Makefile-ы положить в общий проект? Я бы просто положил рядом с моим как Makefile.cygwin например. Кроме них ничего менять не потребовалось?

Конечно можно, но они дома, а я сейчас на работе. Вечерком сегодня, если не устану пришлю e-mail ом, ну или на выходных однозначно. Я знаю, что есть subversion, но всё-таки лучше тебе на изменения поглядеть.
Что касается изменений в makefiles, то они-минимальны, и я могу прямо сейчас по памяти всё восстановить.
1. Качаем make и bash отсюда: http://www.steve.org.uk/Software/bash/
и распаковываем их в директорию, к которой есть путь
2. Создаём в винде UNIX HOME directory прописывая в environment как сказано в ридми к bash.
3. В твоей версии 3.66 открываем makefile (достаточно тот, который в libsrc)
и на первой строчке вписываем SHELL=<Path_To_Bash>\bash.exe
4. Запускаем make прямо из виндовой командной строки. Я на самом деле из FARa компилю. Линкуемся, делаем pof или sof квартусом


Что касается изменений всвязи с последней версией cc65, я для неё сделал custom runtime для Вектора по образу и подобию твоей. Monkey see, monkey do :v2_dizzy_roll:
Были какие-то заморочки с сегментами (там теперь ещё один обязательный сегмент в конфиг памяти надо прописать) и несколько unresolved externals. Но ничего серьёзного.

Меня вот беспокоят 2 момента:
1. Обратил внимание, что мои старые примеры к PPCLibу для 4-х цветного режима 512x256 (все 4 плоскости под видео) кажут на Альтере неверно. Впечатление такое, что или с цвета не так прошились, или одна из плоскостей не учитывается.
2. Несколько раз имел проблемы с ошибками записи на SD card из МикроДОСа.

Авообще-огромное тебе спасибо за эмуль в мягком железе!
Может ты к нему вернёшься? Там много чего приделать ещё можно.
А моя мечта-приделать к Вектороу GEM. Сорцы есть.
http://www.retroarchive.org/cpm/archive/unofficial/gemworld.html
А вот времени-нет...

PS. You've got mail
Послал тебе почтой проект для сс65 snapshot-2.13.9.20110206
Ну и вторым письмом пример на котором у эмуля в 512x256 проблемы с видео.
Надеюсь, дойдёт

svofski
04.03.2011, 14:16
Уфф! Спасибо, я все получил. Все это здорово, но не могу обещать, что в ближайшее время займусь -- я уже настолько далеко от этого проекта, что не так-то просто даже вспомнить что к чему.

Занятно, конечно, про проблемы с видео -- уже, казалось бы, столько всего выудили и не осталось места для проблем.

Что до нового cc65, потешно, что им захотелось чего-то поменять на склоне лет. Компилятор у них чуть чуть глючноватый, помню, что я выуживал какие-то проблемы вручную. Может быть, проблемы со ScrollLock-ом на новой версии тоже не просто так. Я бы не спешил на него переходить, пока не станет ясно, что нету регрессий.

PPC
04.03.2011, 14:59
Уфф! Спасибо, я все получил. <skipped>
Здорово!

Есть всё-ж надежда, что поглядишь на всё это.

А что до компилятора, так я когда проект собирал, выкачал у них последнюю версию естественно. А она-старый код собрать не может, блин. Вот и пришлось попариться.

Наверное надо в другую ветку про эмуляцию на Altera DE1 уходить, пока модераторы башку не оторвали. Пиши туда, если что.

svofski
04.03.2011, 19:22
Модераторы башку не оторвут, а вот оторвать хвост этой теме и приклеить его к теме про Вектор в ДЕ1 -- вполне могут. На что и понадеемся =)

svofski
06.03.2011, 20:08
Запустил xtext.com, действительно странные полосы. Ты можешь словами описать, что там происходит, вкратце? Мне сейчас не хватает сил поднимать все хакерские тулы для 580, не говоря уже о собственном мозге =) И что в эмуляторах, кстати?

Попробовал сделать video_mode512 проводом без клока, ничего не изменилось. Надо бы понять, что именно происходит в твоей демке.

---------- Post added at 20:08 ---------- Previous post was at 19:32 ----------

Сейчас у меня примерно так:
https://lh4.googleusercontent.com/_iQz8NSIO4Xc/TXOnyZ8Xv8I/AAAAAAAAHpA/AwXSSfQnjMQ/s400/IMAG0074.jpg

А это, видимо, за исключением корявости, чуть ближе к тому, что должно было бы быть?
https://lh5.googleusercontent.com/_iQz8NSIO4Xc/TXO-jzISTrI/AAAAAAAAHpI/XJlB82ICdfU/s400/IMAG0075.jpg

Ramiros
07.03.2011, 13:20
svofski, а можно эту xtext.com выложить, чтобы посмотреть ее в эмуле?

svofski
07.03.2011, 13:39
Я временно сюда положил
http://dl.dropbox.com/u/19106568/hex/EXAMPLES.FDD

Но у тебя все нормально, я первым делом посмотрел, как там в эмуле =) Там совершенно ничего из ряда вон, просто я сначала не понял. Это наверное первая программа, которая использует режим 512x256 с 4 цветами, вот я раньше и не замечал проблему. Только теперь не могу другого понять — когда я делаю так, что работает XTEXT, МикроДОС становится полосатым.

Ramiros
07.03.2011, 14:03
512х256 4 цвета и Микродос, это невозможно впринципе.
Лучший тест для режима 512х256 - mineswep.rom. если что то эмулится неправильно, сразу будет видно.

PPC
07.03.2011, 14:09
Да, нижний вариант (за исключением корявости букв) поближе к истине.
В общем-то там есть source в файле xtext.mac, по нему и пойдём...

<skipped some macros & inc>

Я подозреваю, нас интересует буквально несколько строк кода в начале, а точнее-одна, но об этом-позже.

============================
SaveBIOS HEAP
InitApplication
;
; Set HIGH RESOLUTION video mode
;
LXI B,0601H
RST 1
===========================

SaveBios - макро, прописанное в ppclib.inc в user 1 ppclib.fdd. Копирует 0-FFH и E000H-FFFFH в HEAP, который установлен как STACK-2500H. Стек обычно ставится в 7FFF. Всё это делается чтобы вернуться из проги назад в МикроДОС.

InitApplication - макро, также описанное в PPCLIB.inc
Запрещает прерывания, ставит обработчик БЛК+СБР, вырубает все режимы квазидиска, выводя 0 в порт 10H, устанавливает новый стек и вызывает установщик прерываний библиотеки.

Установщик прерываний-долгая и нудная процедура, которая ставит обработчики RST1, RST2 и, естественно, RST7.
Кроме всего прочего, она затыкат i8253, Тестирует наличие и затыкает AY3-8910, вырубает реле, врубает видеорежим 256x256, создаёт текстовый видеобуфер, ставит текущую палитру как в BASIC 2.5 и в заключении разрешает прерывания. У тебя есть полный source на образе ppclib30.fdd, user 2, main.mac, метка INIT:

В библиотеке, RST 1 обслуживает видеофункции
Теперь подходим к самому интересному. Функция с номером 6 - выбор видеорежима. Для перехода в режим 512x256 нужно сделать следующее:

LXI B,0601H
RST 1

Обработчик этой функции сменит значение в ячейке памяти VMODE на значение из регистра <C>. В main.mac это прописано примерно так:

ISRES: LXI H,VMODE
MOV M,C
RET

Eсли прерывания разрешены, следующий RST7 сменит видеорежим прописывая Hi-Res палитру следующим образом:

D30 EQU 0; i8255 control register D30
IPORTC EQU 1
IPORTB EQU 2
IPORTA EQU 3

CTAB0 EQU 0CH; Таблица цветности
CTAB1 EQU 0DH; Таблица цветности
CTAB2 EQU 0EH; Таблица цветности
CTAB3 EQU 0FH; Таблица цветности

XPAL: DW HRPAL; Адрес текущей палитры для H/R
HRPAL: DB 128,0,6,173
NULPAL: DB 0,0,0,0


; ╙■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■■■■▐
; ┐ Подпрограмма обработки аппаратного прерывания. ┐
; ┐ Hardware Interrupt Service Routine RST7. ┐
; ░■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ ■■■■╘

HINT: DI
PUSHA
;
; Установка палитры
;
MVI A,10001000B ; Настройка внутреннего ППА
OUT D30 ; pA-> pB<- LpC-> HpC<-
;
; Запись цветов в таблицу цветности
;
LDA VMODE
ORA A
JZ SLRPAL
;
; Set high-resolution palette
;
LHLD XPAL
LXI D,0
MOV C,E
SHRP0: MVI B,4
SHRP1: MOV A,C
OUT IPORTB
MOV A,M
OUT CTAB0
OUT CTAB1
OUT CTAB2
OUT CTAB3
INX H
INR C
DCR B
JNZ SHRP1
INX D
MOV A,E
CPI 4
JZ EWRCOL
LHLD XPAL
DAD D
MOV A,M
LXI H,NULPAL
MOV M,A
JMP SHRP0
EWRCOL:

Понятно, что запись в 0DH, 0EH и 0FH не нужна, но писать туда мне пришлось из-за совместимости «на будущее». Не был уверен, что на всех Векторах запись только в 0CH установит CLR . Запись сделана по 4 раза потому что встречал машины, где за 3 раза прописать цвет не успевал и были глюки.
Процедура смены цветов намеренно засунута в RST7, а не сделана функцией с EI, HLT … (хотя одно время был и такой).


Дальше идёт опрос клавиатуры, который я пропускаю за исключением перепрограммирования 8255 D30:
;
; Опрос клавиатуры
;
MVI A,10001010B; Настройка внутреннего ППА ( <A>=8AH )
OUT D30; pA-> pB<- LpC-> HpC<-
<skipped>

; Автоповтор с антидребезгом в STDIN
;
<skipped>

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

; Возврат режима порта

MVI A,10001000B ; Настройка внутреннего ППА
OUT D30 ; pA-> pB<- LpC-> HpC<-
;
; Устанавливаем скроллинг
;
LDA SCROLL
OUT IPORTA
;
; Установка реле двигателя, динамика, светодиода РУС
;
LDA RLFLAG
RLC
OUT IPORTC
;
; Полосы на бордюре в соответствующем видеорежиме
;
LDA STRPFLG; Если 0 , то полос на бордюре не будет
ORA A
JZ NOSTRP
MOV D,A
LDA VMODE
ORA A
JZ STRP0
MVI A,00010000B; Высокое разрешение
STRP0: MOV E,A
MVI B,0FH
STRP1: MOV C,D
STRP2: MOV A,B
ORA E
OUT IPORTB
DCR C
JNZ STRP2
DCR B
JNZ STRP1
NOSTRP:
;
; Устанавливаем видео-режим и цвет бордюра
;
LDA VMODE
ORA A
LDA BORDER
JZ LR_BRD; Если 0, то это режим низкого разрешения

Вот и пришло время установить Hi Resolution

ANI 00000011B; Ограничить цвет бордюра

; MOV C,A; Делаем бордюр однородным
; RLC
; RLC
; ORA C


ORI 00010000B; Маска режима высокого разрешения
JMP SETBRD
LR_BRD: ANI 0FH; Нам надо беречь видеорежим.
SETBRD: OUT IPORTB


Вот собсно всё, что тебя интересовало. Надеюсь, поможет. До сих пор такой обработчик RST 7 работал на всех Векторах и многих эмулях.

---------- Post added at 06:09 ---------- Previous post was at 06:04 ----------


512х256 4 цвета и Микродос, это невозможно впринципе
Есть многое на свете друг Горацио...:smile:

Ramiros
07.03.2011, 14:35
Сообщение от Ramiros


512х256 4 цвета и Микродос, это невозможно впринципе




Есть многое на свете друг Горацио...

Имелось ввиду, когда микродос сидит в экранном ОЗУ

PPC
07.03.2011, 14:45
Имелось ввиду, когда микродос сидит в экранном ОЗУ
Прога его сохраняет в своём хипе, а по выходу-восстанавливает перед возвратом.
Но в принципе возможен и 4-х цветный МикроДОС, только с очень маленькой TPA. Я делал такой (нерелокируемый).

А вообще одна из идей переделки Вектора была как раз в добавлении плоскостей из наличной памяти квазидиска. Тогда можно было-бы и в 4х цветах МикроДОС гонять.

svofski
07.03.2011, 15:07
Микродос работает в 512х256, а про 4 цвета в нем я ничего и не говорил.

PPC, спасибо! По-моему у тебя все вполне стандартно, просто у меня где-то лажа. Буду разбираться.

b2m
07.03.2011, 15:23
А у меня бордюр в 512х256 неправильно эмулируется... :)

svofski
07.03.2011, 23:50
PPC, бери версию 376, теперь работает 512х256! Заодно избавился от мерзкого negedge в video.v.

PPC
08.03.2011, 00:53
Супер! Вечерком (нашим) гляну. ПАСИБ!
Кстати 2м пунктом моих сомнений были ошибки при записи на диск. Редкие, но были.
Я вчера слегка поглядел на твой hack tff и меня немного смутил код для in_place_write(), хотя наверное я просто до конца не въехал. Мозг тоже за годы ссохся. Надо включать.

Да, вот ещё коммент: при такой переимплементации 2й диск не возможен потому что ты везде поменял fdd-> на буфер. Я наверное это попробую переделать.

svofski
08.03.2011, 02:12
Да, с записью на диск на самом деле все плохо. Я в свое время просто устал уже и забил. Но вдруг ты свежим мозгом найдешь багу, было бы невероятно круто =)

Какие-то из моих ухищрений были небеспочвенными. Если память не изменяет, заменой параметра fdd-> на глобальный буфер, я срезал не один килобайт кривого cc65-шного кода. Там не так много памяти уже осталось, все под завязку забито. Зато весь проект загружается из одного sof-а =)

svofski
08.03.2011, 18:19
C posedge-ом все не так хорошо в режиме телевизора, так что posedge я пока откатил обратно. Фикс собственно 512х256, разумеется, остался. Сделал снепшот и билд. У нас теперь новый год чаще.

http://code.google.com/p/vector06cc/downloads/list

Да, кстати, заметил какое-то мерзкое поклевывание в SkyNet. Странно, раньше этих призвуков не было. Вот ведь все чего-нибудь не слава богу.

sergey2b
08.03.2011, 20:08
как я понял cc65 это с компилятор для 6502
объясните пожалуста для чего он на Векторе

svofski
08.03.2011, 20:15
как я понял cc65 это с компилятор для 6502
объясните пожалуста для чего он на Векторе

В vector06cc часть эмулятора дисковода сделана на 6502 и код для нее написан в основном на Си.

TSL
22.07.2013, 01:11
Можно ли попросить код с тейп-процедурами (запись/чтение)?
Известно ли что-нить об этом формате? Интересует скорость и формат сигнала.

svofski
22.07.2013, 11:34
TSL, какими тейп-процедурами? В FPGA-шном Векторе для этого ничего специального нет, просто интерфейс с аудиокодеком на DE1. Этого достаточно.

TSL
22.07.2013, 19:58
Да я имел в виду процедуры работы с лентой (запись/чтения). Хотя загрузочное ПЗУ 2кБ вижу.

svofski
22.07.2013, 20:01
У меня процедур отдельно как таковых нету. Может быть в Картотеке есть исходники какой-нибудь версии загрузчика, хотя скорее всего они если и есть, то получены дизассемблированием оригинала.

Blade
22.07.2013, 20:07
Вот исходник загрузчика: http://asdasd.rpg.fi/~svo/scalar/media/w/kish1_src_.zip

Tim0xA
23.07.2013, 00:33
Справочное руководство по компьютеру «Вектор-06Ц»
Взаимодействие БПЭВМ «Вектор-06Ц» с магнитофоном
http://asdasd.rpg.fi/~svo/scalar/ware/632/

TSL
23.07.2013, 00:34
Спасибо!

ivagor
16.12.2013, 20:11
SD карточка нужна до 2 Гб включительно или большего размера тоже пойдут?

svofski
16.12.2013, 20:12
Трудно сказать, я отлаживался только на 2Гб.

zebest
16.12.2013, 20:33
у меня 4 и 16ГБ SDHC так и не заработали, пришлось покупать 1 GB, наименьшее что нашел в продаже, парочку взял. Цена такая же, как 4Gb SDHC((
Но зато точно работают...

svofski
06.01.2014, 20:27
В svn ревизия 388 (https://code.google.com/p/vector06cc/source/detail?r=388). С подачи ivagorа попробовал переделать доступ к SRAM внутри видеомодуля: теперь выборка из видеопямяти идет четко 4 раза за 8 пикселей с равными интервалами. Также изменена схема генерации rom_access во имя совместимости с новыми DE1 с более медленными микросхемами SRAM.

ivagor
05.02.2014, 09:01
Вряд ли это будет кому-то интересно, кроме обладателей новых ревизий DE1 (которых кроме меня вроде нет на форуме), но все равно хочу похвастаться - удалось запустить нечто, отдаленно напоминающее вектор. На данный момент это голый вектор с такими отличиями:
1. Проц b2mа (его мне легче подружить с выборками видеоконтроллера) работающий на 1,5 МГц (но с "прозрачным" доступом к ОЗУ).
2. Видео вобще сделано страшно. 2 байта (сразу) выбираются из ПЛИСовского RAMа, 2 байта (сразу) из SRAMа. Совета svofski не послушал и framebuffer переделал, чтобы он генерил только один видеоадрес за 32 такта, так мне легче.
3. Проц во внутренний RAM ПЛИСа и SRAM только пишет (чтобы на экране показывало, т.к. из них читает видеоконтроллер), а читает и пишет SDRAM.

Хочу сказать спасибо svofski за терпение, многочисленные консультации и советы (ну и за сам проект, конечно) и b2m за проц и, особенно, за контроллер SDRAM.

Надеюсь в дальнейшем довести этот вариант до более-менее нормального состояния.

ivagor
05.02.2014, 14:22
Избавился от SRAMа и частота проца теперь стандартные 3 МГц (но без торможения, поэтому несколько быстрее стандарта). Такой вариант в принципе и на DE0 можно перенести (у меня её нет), только там надо что-то организовывать, чтобы с "магнитофона" грузить. Теперь надо тормоза добавить и перестать использовать внутренний RAM для двух из четырех плоскостей. Потом уже можно и всякие внешние устройства вернуть.

ivagor
05.02.2014, 19:43
Теперь все 4 плоскости читаются из SDRAM.
С торможением хуже. Сделал близко, но не абсолютно точно. То ли из-за того, что торможу чип энейблом, то ли из-за сдвига фазы ce3 (хотел себе жизнь упростить). Но, из чуствительных, например, эксолон нормально работает. Скорее всего пострадают только демки с мультиколором и подобными извратами.

---------- Post added at 21:43 ---------- Previous post was at 21:41 ----------

Да, warp режима нет и просто так его для данного варианта не сделать.

svofski
05.02.2014, 19:49
warp нужен только для отладки демки SkyNet. Не всякий человек способен досмотреть до конца чудесное слайдшоу оттуда, а теперь представь сколько раз мне пришлось им любоваться во время отладки.

ivagor
05.02.2014, 20:10
Для эксисайзера бы тоже не помешало, но я его (точнее свой оптимизрованный вариант) уже прогнал. В проце b2m он отклонений не обнаружил, ну я думаю, b2m и сам уже его прогонял.

---------- Post added at 22:10 ---------- Previous post was at 21:54 ----------

В мультиколор демо SESа действительно заметно. Вот так появляются неправильные клоны :) Может все же попробую совместить SDRAM с T80, но большого желания нет.
Еще, к сожалению, точно не будет блекджека с джтагом.

svofski
05.02.2014, 20:14
Жтак ну его, он все равно глючный.

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

ivagor
05.02.2014, 20:32
Практически уверен, что проблема в проце, вернее в организации торможения. Пока разбираться с этим не хочется, может потом.

---------- Post added at 22:32 ---------- Previous post was at 22:26 ----------

Грубо оцениваю, что 99% игрушек (или даже больше) не заметят отличий, не говоря уже про системные. В основном критичны демки и тесты быстродействия.

svofski
05.02.2014, 20:40
Ну да. Рекомендую для затравки прогнать SkyNet :D

ivagor
05.02.2014, 21:21
FDD почему то не видится. OSD у меня, кстати, тоже нет и (без T80) не будет.

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

Карточки на 32 (с нее MSX грузил) и 256 Мб.

---------- Post added at 23:21 ---------- Previous post was at 23:14 ----------

Похоже я не тот образ взял, другой попробую

svofski
05.02.2014, 21:26
А что такое в OSD, что жестко привязано к T80 и чего нету в b2m-проце?

ivagor
05.02.2014, 22:21
Карточку переформатировал, взял другой образ, все равно не видит.

---------- Post added at 23:32 ---------- Previous post was at 23:31 ----------

HOLDа нету и HLDA

---------- Post added at 23:36 ---------- Previous post was at 23:32 ----------

Если я sof пришлю, попробуешь загрузить что-нибудь с SD?

---------- Post added at 23:52 ---------- Previous post was at 23:36 ----------

SOF я все же выслал (пуш технологии).

---------- Post added 06.02.2014 at 00:21 ---------- Previous post was 05.02.2014 at 23:52 ----------

Взял я старый вариант с T80 и чтением видео из SRAM и внутреннего RAM. Отключил 2 плоскости (чтобы контроллер флопи и OSD влезли) - видит файлы на SD и грузит. Только у меня там квазидиска нет, да и с двумя плоскостями неинтересно. Похоже придется все же копать версию с T80. Все равно проц b2m хороший.

svofski
05.02.2014, 22:51
Так может процу b2m можно приклеить HOLD/HLDA?

ivagor
06.02.2014, 07:19
Попробовал в версии SDRAM only заменить проц на T80, но с торможением по cpu_ce при READY=1'b1. Быстродействие в этом случае аналогично процу b2m, т.е. близко к оригиналу, но не точно как оригинал. Так OSD работает, но FDD не видит и не грузит.
Потом попробовал в этой версии (опять же с T80, в данном случае из за READY) на шару включить правильное торможение через READY - так видит FDD и грузит, но по экрану идет сильнейший снег, что неудивительно. ОСы работают. SKYNET виснет после экрана с определением эмуляции, предположительно изменение фазы ce3 в этой версии было неудачным решением.

---------- Post added at 09:19 ---------- Previous post was at 09:12 ----------

Т.е. только HOLD и HLDA не панацея.

b2m
06.02.2014, 10:31
В принципе, READY доделать в моём проце несложно, нужно только переход из второго такта в третий сделать зависимым от этого сигнала.

---------- Post added at 11:31 ---------- Previous post was at 11:28 ----------


if(ready) state <= 3'b010;

ivagor
06.02.2014, 12:31
Поменял по всему процу
state <= 3'b010;
на вышеприведенную конструкцию. Результат неожиданный - загрузчик рисует карту загрузки и рестартует и так без конца.
Уточню, что эту операцию я проделал с промежуточным вариантом, в котором чтение видео из SRAM и в котором T80 штатно тормозится по READY.

b2m
06.02.2014, 12:40
Забыл блин. Иногда во втором такте бывает изменение SP (в моей версии), надо его тоже в зависимости от ready делать. Вобщем, надо убедиться, что повторный второй такт ничего не изменит.

ivagor
06.02.2014, 12:47
Может я еще попробую довести до кондиции торможение по ce, но лично меня и текущий вариант практически устраивает.

b2m
06.02.2014, 12:51
Может я еще попробую довести до кондиции торможение по ce
А мне кажется, надо ready добить.

ivagor
06.02.2014, 12:54
Если ты добьешь - я только за :)

b2m
06.02.2014, 12:56
Да там вроде всего в двух местах, где во втором такте SP изменяется, надо if(ready) поставить.

ivagor
06.02.2014, 13:11
Поставил как смог, заработало. По тесту быстродействия, ориентирующемуся на прерывания видно, что "как положено" не стало. Результаты теста быстродействия по таймеру удивительные.

Вопрос к svofski - если не секрет, расскажи про oneshot

b2m
06.02.2014, 13:48
"как положено" не стало.
Жаль. Идей пока нет.

svofski
06.02.2014, 14:41
А чего про него рассказывать? Это одновибратор. Параметр -- число тактов, которые он ждет. Я его использовал в паре мест для оттягивания какого-то события.

ivagor
06.02.2014, 16:34
В SDRAMном варианте (где торможение с использованием cpu_ce) в паре ваншотов заменил cpu_ce на ce3 и тормоза стали ближе к оригиналу. Мультиколорная демка SESа теперь идет практически как надо. В улитке первая часть теперь нормально.

---------- Post added at 18:34 ---------- Previous post was at 18:32 ----------

Думаю с их использованием можно в принципе еще подогнать, но мне пока это не интересно.

ivagor
07.02.2014, 08:35
В версии, где T80 со стандартным торможением пишет и читает SDRAM, пишет по видеоадресам в SRAM и видеоконтроллер читает из SRAM доделал четыре плоскости и квазидиск.
Мултиколорная демка и улитка работают нормально, SKY NET проходит до конца. Единственная странность в SKYNET - некое фоновое пиликание, которое забивается музычкой, но в моменты тишины слышно.
Похоже легче будет эту версию переделать под чтение видео из SDRAM, чем текущий вариант SDRAM only довести до полной совместимости. Только вряд ли я успею быстрее svofski.
В принципе даже у такой версии есть один потенциальный плюс - можно забабахать мегаквазидиск почти на 8 Мб или еще что-то в этом духе, если бы только не вопрос - зачем.

ivagor
07.02.2014, 22:29
С использованием читерства удалось совместить T80 с SDRAM. Быстродействие правильное, флопи, OSD, скайнет, но (как же без но) - мультиколор сдвинут на 1 позицию по горизонтали. Мелочь, а неприятно.

svofski
07.02.2014, 23:18
Мультиколор как раз можно сдвинуть "читерством".

ivagor
12.02.2014, 16:52
svofski завел у себя бранч (http://code.google.com/p/vector06cc/source/browse/#svn%2Fbranches%2Fsdram) cо SDRAM версией.
Все там хорошо, но за кадром уже готовы warp режим (стал возможным в связи с внедрением 120 МГц SDRAM) и квазидиск Баркаря (для Lode Runnera). Если я освою работу с svn, то эти передовые достижения позавчерашнего дня появятся и в бранче.

svofski
12.02.2014, 16:58
Аплодисменты Ивагору!

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

ivagor, ты можешь своими руками закрыть Issue 7 :D

svofski
13.02.2014, 20:27
svn update -r 394

ivagor
13.02.2014, 21:03
почему такой разброс 24 и 120?? Ну сделай 100
С удовольствием бы сделал 100, т.к. именно до 100 включительно этот контроллер ведет себя хорошо (проверено на проекте РК), а выше начинает капризничать (тем не менее в РК и векторе на 120 у меня работает как часы, вот на 150 не удалось нормально запустить). Но я не умею работать асинхронно с синхронной памятью, некратно 100 и 24. Умный человек сказал - нужно FIFO, но его еще нужно грамотно применить. Мне очень интересно посмотреть, если вдруг кто-то сделает такую вещь.

svofski
13.02.2014, 23:12
А 48, 72, 96?

svofski
13.02.2014, 23:53
На 96 не получается PLL завести просто..

zebest
14.02.2014, 00:39
На 96 не получается PLL завести просто..

ну пробовал, ну да. Но ведь на 100 заводится вместо 24??
зачем там именно 24? засинхронить все от 100, ну кроме видео. Не??
Или память хотя бы от 50

svofski
14.02.2014, 00:43
Потому что все частоты в Векторе кратны 24. Нельзя взять и сделать видео на 12.5МГц вместо 12, это не будет Вектором уже.

ivagor
14.02.2014, 06:23
Но ведь на 100 заводится вместо 24??
На 100 (а также на 50/60/75/90/120) заводится в РК, где очень просто поменять "главную" частоту.


Нельзя взять и сделать видео на 12.5МГц вместо 12, это не будет Вектором уже.
Не согласен. Если оставить прежним число строк в кадре и тактов в строке и таймер завести на 1.5625, то немного увеличится кадровая, чуть выше станет звук (но ведь претензий по поводу, например, счетмашевских адаптаций, в которых музыка наоборот играет ниже, чем надо или эксолона вроде не слышно), но растровые эффекты останутся и практически никто ничего не заметит.
С другой стороны быстрая SDRAM нужна только для монстростроительства, а этим никто не занимается, так что для массового использования и 24 МГц вполне сойдет.

ivagor
14.02.2014, 11:28
Сделал вариант с более мягкими таймингами и пакет организован иначе, просто должно работать на любой SDRAMине.
sof выложил тут (http://files.mail.ru/C3918A8ED39847D8A5A9537A0B81B351). Просьба к тем, у кого есть возможность, проверить.
Случайно собрал со старой версией таймера и решил не пересобирать. Её положительная особенность - SKYNET не пиликает а издает некий эмбентный шум, похожий на эмуляторы. Эхолон работает, т.ч. ей, в принципе, тоже можно пользоваться.

---------- Post added at 13:28 ---------- Previous post was at 13:27 ----------

Забыл - турбо работает (SW9:8=01)

svofski
14.02.2014, 11:32
Нет, то же самое. Рисует загрузку с дискеты более-менее, но потом пшш.

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

ivagor
14.02.2014, 11:35
Досадно, боюсь дистанционно затруднительно будет отладить это дело, придется маленько доработать 24 МГц и выложить в ревизию посвежее, чтобы те, кто собирает HEAD, не плевались.

svofski
14.02.2014, 11:36
Да ты не суетись. Мы, миллионы пользователей, подождем.

ivagor
14.02.2014, 11:42
Однако мне придется сегодня все же немного поработать, а завтра я ухожу от DE1. Вряд ли раньше чем в воскресенье чего-нибудь залью в хранилище (это wiki рекомендует вместо репозитория, вот так).

ivagor
14.02.2014, 22:08
Если вдруг у обладателей DE1 будет время и желание - просьба попробовать нечто (http://files.mail.ru/12FE96FE13E04D0A896BD5455ABFC083). С флопи не грузит, а с магнитофона грузит и запускает что угодно.

---------- Post added at 21:49 ---------- Previous post was at 21:48 ----------

В архиве для примера есть wav и mp3 теста техпрогона

---------- Post added at 22:14 ---------- Previous post was at 21:49 ----------

Отрицательный результат в данном случае не менее интересен и показателен, чем положительный

---------- Post added 15.02.2014 at 00:08 ---------- Previous post was 14.02.2014 at 22:14 ----------

А вот этот (http://files.mail.ru/4C8777355443474A8DF1C029AD533964) вариант интереснее - в нем работает флопи и скорость стандартная. Турбо там есть (поленился убирать), но включать его не стоит.
Если и он работает только у меня - тогда просто нет слов.

svofski
14.02.2014, 23:31
Последний вариант отлично работает, но в турбе вертикальные полосы и все мельтешит адски. При этом ничего не ломается, при переключении обратно продолжает работать.

---------- Post added at 23:31 ---------- Previous post was at 23:21 ----------

Залил ютубо http://www.youtube.com/watch?v=O4C0sU3o2Eg
По демосценным меркам вообще неплохой эффект. Интересно, что он проявляется не всегда.

ivagor
15.02.2014, 06:19
Последний вариант отлично работает
Здорово! Как ни странно, здесь SDRAM работает на 100 МГц.
Теперь о плохом. 100 МГц я сделал вместо 28, которые вроде нужны для PALа. Как бы мне получить 100 и при этом ничего не порушить?


в турбе вертикальные полосы и все мельтешит адски
Это турба от другого варианта и я ее не переделывал, она так и должна мельтешить. Мельтешение проявляется когда процессор в предыдущем таймслоте решает поработать с памятью.

ivagor
15.02.2014, 13:17
Лично я против возврата к SDRAM на 24 МГц, надо попробовать найти какое-то компромиссное решение. Может 100 из 300 сделать.

---------- Post added at 15:17 ---------- Previous post was at 14:03 ----------

"Гениальная" идея - надо отказаться не от 28, а от 24 МГц. Чтобы при сохранении числа строк в кадре и тактов в строке увеличить кадровую до 60 Гц нужно перейти от 24 к 28,8 МГц. Звуки, конечно, станут выше.
У меня таких идей полно. Таймер для скайнета можно не чинить, надо просто выделить кнопку для его выключения.

svofski
15.02.2014, 14:30
Если никак не получается совместить, надо делать условную компиляцию. Ветки для разработки фич, типа как сейчас СДРАМ, и создаются с целью смержить отлаженные уже изменения в транк.

---------- Post added at 14:30 ---------- Previous post was at 14:25 ----------

P.S. ivagor, коммить изменения, даже экспериментальные. Так у других есть возможность посмотреть и поиграться пока ты отдыхаешь. Кому нужна стабильность заберет по номеру версии.

P.P.S. я тоже за быстрый sdram, но не ценой убитого PAL-a. Когда тебе лично какая-то фича не нужна, кажется, что весь мир без неё перебьется. На самом деле весь мир имеет независимую точку зрения.

ivagor
18.02.2014, 18:59
Прилепил COVOX. Заодно узнал, что здесь (http://asdasd.rpg.fi/~svo/scalar/ware/821/) через него играет только SAMANTHA, а две другие - через таймер, причем как-то своеобразно.

ivagor
20.02.2014, 16:13
Мегареспект b2mу за исходники нанодоса/читалки SD.
Сам я, к сожалению, не мегамозг, да еще и ленивый, поэтому пока все очень-очень топорно. Скачать sof для попробовать можно тут (http://files.mail.ru/27D2370C15EA43378FC5EC3B0041D9A4).
Загрузчик понимает:
1. F1+F11 - магнитофон
2. F2+F11 - эмулятор РК (позор мне №1)+nanoDOSSD. После появления синего нечто жмем F12. После вставки или замены SD карты не забываем жать F12. DOS понимает команды DIR и CD. Грузит и запускает ROMы (можно и не ROMы, но только чтобы это на самом деле были ROMы - надеюсь я понятно написал) до 29 Кб (позор мне №2).
Турбо режим работает.
Контроллера флопа svofski (или какого-либо другого ВГ93) здесь нет, я не смог (позор мне №3) подружить его с турбой.
Порты SD в адресном пространстве (занял 70h и 71h, вроде их никто не использовал), т.е. в принципе при наличии живых программистов под это дело можно было бы адаптировать ДОСы, писать BOOTы и т.п.

ivagor
23.02.2014, 19:45
Попробовал изменить основную частоту на 27 МГц - тоже работает. Плюс такого режима - кадровая 56 Гц (предполагаю, что 56 Гц подхватят больше мониторов, чем 50 Гц), причем мультиколоры сохраняются. Но на 56 Гц уже заметно невооруженным ухом, что плееры музыки на прерываниях "спешат".

---------- Post added at 21:31 ---------- Previous post was at 20:50 ----------

Ну и еще один (думаю последний) вариант. Взял за базовую "настоящие" 24 МГц и сделал из них 72 МГц для SDRAM (на 96 SDRAM почему-то не запустился, хотя на 100 и 120 сделанных из 50 работает - мистика). Так все нормально, но есть свой недостаток - на других платах редко есть 24 МГц. Тем не менее для DE1 именно этот вариант похож на лучший.

Все вышеописанные вещи возможны после освобождения одного PLLа в связи с отказом от генерации 14 и 18 МГц из 27 и переходу на получение их из 300 МГц (которые, в свою очередь, из 50). У меня работает, но вроде у svofski были проблемы. Фазовые аккумуляторы я пересчитал здесь (http://electronicsfun.net/archives/699) (спасибо автору калькулятора), хотя один из них и до переделки работал нормально.

---------- Post added at 21:45 ---------- Previous post was at 21:31 ----------

Все, что связано с PALом я не трогал, надеюсь работоспособность TV-out сохранилась.

ivagor
24.02.2014, 10:12
Хочу поделиться результатами своих детских экспериментов (если бы написал кто-то другой на эту тему, то мне было бы интересно почитать).
Попробовал получить 96 МГц фазовым аккумулятором из 300 и поделить до 48 (для SDRAM) и 24 (для базовой). И это заработало. Недостаток - по вертикальным границам букв и рисунков бежит небольшая помеха. Если бы не помеха - остановился бы на этом варианте.
Пользуясь свободой в выборе частот попробовал еще 115.2 МГц (для кадровой 60 Гц) и 124.8 МГц (для кадровой 65 Гц) - работают, но есть помеха по границам.
70 Гц и выше при данной развертке не заработали, предполагаю, что именно из-за способа получения базовой частоты для видео, т.к. в РК и 75 Гц показывало на том же ТВ при получении базовой частоты PLLем.

---------- Post added at 11:32 ---------- Previous post was at 11:10 ----------

Действительно, при использовании PLL и в v06cc без помех работают все варианты в диапазоне кадровой 50-75 Гц.

---------- Post added at 12:12 ---------- Previous post was at 11:32 ----------

В завершение темы применимости фазового аккумулятора для генерации частоты для видео в векторе. При увеличении разрядности аккумулятора (максимум заработал 31 разрядный) характер помехи изменился - она не "бежит", вместо этого вертикальные границы периодически (период несколько секунд) чуть смещаются вправо-влево. С этим в принципе можно жить, но PLL лучше.

svofski
24.02.2014, 12:53
Я не вижу ни коммитов, ни ссылок на эксперименты. Я бы посмотрел на это, особенно на предмет выживания ПАЛа.

ivagor
24.02.2014, 13:40
Основной результат последних "экспериментов" - вот так и так делать можно, но не нужно (разве что кадровая 60 Гц может пригодиться тем, у кого монитор 50 Гц не тянет, PAL так вряд ли заведется, но он тогда и не нужен). У каждого варианта есть свои недостатки и я думаю, что же выбрать. Если бы не моя повернутость на турбо с использованием быстрого сдрама (жалко отказываться, последний вариант прогоняет оптимизированный эксисайзер за 16 минут), то можно бы уже остановиться. Еще одно осложнение - бардак в исходниках, как есть нельзя выкладывать, надо мусор убрать.

svofski
24.02.2014, 14:19
Сделай условной компиляцией 60Гц и турбо, все равно это маргинальные варианты. Вот загрузка ромов напрямую с сд-карты всем интересна будет. Кстати, не проще будет ее сделать созданием фальшивого образа загрузочной дискеты, у которой загрузочная область -- это собственно ROM? Или там какие-то ограничения есть? Просто таким методом вообще ничего не надо переделывать и прикручивать ничего дополнительного.

ivagor
24.02.2014, 14:40
Сделай условной компиляцией 60Гц и турбо, все равно это маргинальные варианты.
Согласен, что маргинальные, проще будет убрать, чем условную делать.


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


Кстати, не проще будет ее сделать созданием фальшивого образа загрузочной дискеты, у которой загрузочная область -- это собственно ROM? Или там какие-то ограничения есть? Просто таким методом вообще ничего не надо переделывать и прикручивать ничего дополнительного.
Интересный вариант, мне в голову не приходил. А как просто сделать FDD с произвольным ROMом в загрузочной области?

ivagor
24.02.2014, 20:02
Стоит озвучить такой момент - насколько я понял, из-за асинхронности проца и AY иногда возникают звуковые артефакты. Степень их заметности разная в разных прогах - где-то незаметно, а где-то заметно. При разных частотах AY (полученных и фазовым аккумулятором и PLLем) выраженность артефактов разная.
Пока два лучших результата (по отсутствию артефактов) при 12 МГц (ce12, т.е. базовые 24 деленные пополам) и 14,4 МГц (получил PPLем, фазовым аккумулятором эту частоту не пробовал).

---------- Post added at 21:05 ---------- Previous post was at 21:03 ----------

Само собой, что при 12 МГц звук низковат, зато частота кратная.

---------- Post added at 22:02 ---------- Previous post was at 21:05 ----------

В итоге переделал так:

reg [3:0] aycectr;
always @(posedge clk24)
if (aycectr<14) aycectr <= aycectr + 1'd1;
else aycectr <= 0;

ayglue shrieker(
.clk(clk24),
.ce(aycectr == 0),
...

Звуковых артефактов нет, с супер-турбой дружит, лишний клок не нужен - я у себя так и оставлю.

Еще бы понять, почему YM2149_linmix.vhd работает, а YM2149_volmix.vhd (с vol_table_array.vhd) нет. Это касается и оригинала и всех других перепробованных вариантов.

svofski
25.02.2014, 03:27
Интересный вариант, мне в голову не приходил. А как просто сделать FDD с произвольным ROMом в загрузочной области?
Надо на ходу создавать виртуальный образ флопа и подсовывать его как дискету. Для начала надо заставить работать cc65, что само собой уже задача. А когда будет собираться ром от флопа, остальное уже дело техники.

Кстати, обрати внимание на branch cc65.20110206 — его сделал Виталий Перлин в свое время. Там все должно быть более свежее.

ivagor
25.02.2014, 07:50
Детально разбираться с существующим "ВГ93" я вряд ли буду. Особенно с C, на котором скомпилирован софт под него.
Есть очень маленькая вероятность такого варианта: загружать в SDRAM читалкой b2mа образ FDD и потом простенький ВГ93 (которого нет) читает (пусть даже не пишет) из SDRAMа. Это и проще и быстрее. Нужно всего лишь написать тот самый простенький ВГ93, ха ха.

Оказалось, что из YM2149_linmix.vhd данные почему-то не читаются (проверял на демках INDIANA и SHARP@D). Наверняка нужно просто знать как, я пробовал менять чтение - не получилось.
Из ay8910.vhd и ym2149.vhd данные читается, индикаторы громкости в демках работают. Ну и еще там отдельные выходы для каждого звукового канала, тоже плюс.

svofski
25.02.2014, 15:27
Если ты не будешь разбираться с существующим, ты либо выкинешь кучу функциональности, либо создашь нагромождение а-ля Коулун Сити. Впрочем, если ты переделаешь все и каким-то образом без Си, будет интересно на это посмотреть.

ivagor
26.02.2014, 11:33
Очередной репортаж о буднях обладателя DE1 со SRAM EDBLL.
В ветке про Б2М на ПЛИС уже написал о чудотворных коррекциях, позволивших запустить у меня SRAMовские Б2М и РК86, с вектором тоже удалось, хотя и не без труда. Результаты всяческих экспериментов очень пригодились.
Взял ревизию 388. Т.к. таймквест я не знаю и умею задавать для него только физический клок, то проект все же пришлось сначала переделать. AY затактировал от главного клока, 18.432 МГц для аудиокодека сделал фазовым аккумулятором, в результате один PLL освободился (это уже все было обкатано).
1. CLOCK_24 в качестве главного клока. Константы рекомендованные неким терасиковцем (-1.5) не подошли. Подобрал константы с которыми SKYNET прошел до конца, но по ходу наблюдались кое-какие визуальные артефакты.
2. CLOCK_27 в качестве главного клока. Рекомендованные константы (-1.5) подошли! SKYNET прошел до конца без артефактов. Очевидный побочный эффект - кадровая 56 Гц.
Вот такие приключения может обеспечить себе любой тормоз, который не купил DE1 раньше, когда на нее ставили нормальный SRAM.

---------- Post added at 13:33 ---------- Previous post was at 12:46 ----------

Константы для CLOCK_27 все же придется подобрать. При min и max по -1.5 нормально отработали SKYNET, B-ICE, MCOLOR, споткнулся на DIGITAL.

vlad
26.02.2014, 11:46
Константы для CLOCK_27 все же придется подобрать. При min и max по -1.5 нормально отработали SKYNET, B-ICE, MCOLOR, споткнулся на DIGITAL.
Ссылки где их скачать можно, проверю на ReVerSE.

ivagor
26.02.2014, 13:03
digital заработал при min max по 2. SKYNET нормально отработал, надеюсь, что b-ice, mcolor и все остальное тоже будет правильно функционировать.


Ссылки где их скачать можно, проверю на ReVerSE.
Спасибо, но зачем? На reverse же нет той кривой срамины (ну или она прямая, но её криво установили в DE1 или что-то еще, но работает с проблемами, как уже многие написали на забугорных форумах).
Если есть владельцы последней ревизии DE1 - готов выслать sof на попробовать. Если заработает и у меня тоже все будет работать - тогда и правленный проект можно выложить. Хотя любой может сам поправить, как написано на атариевском форуме (ссылка в теме про Б2М на ПЛИС).

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

b-ice отработал нормально, а mcolor нет. Даже смешно. Может еще попробую подобрать константы, но полную уверенность на моей плате, похоже, дает только SDRAM или внутренний RAM ПЛИСа.

---------- Post added at 15:03 ---------- Previous post was at 14:17 ----------

При min -1.5 и max 2 отработали digital, mcolor, b-ice, skynet. Гарантий в целом это не дает, но пока это самый стабильный из SRAMных (EDBLL) вариантов.
Выложил sof убрал, т.к. выложил версию получше, может кто из незарегистрированных на форуме владельцев новых DE1 попробует.
ИМХО для полной уверенности надо накладывать ограничения не только на шину данных срама, но и на все другие его сигналы. Терасиковец пока такого не рекомендовал, может потом на атариевском форуме еще что полезное напишут.

ivagor
26.02.2014, 16:37
Решил вернуться к CLOCK_24 и попробовать ограничить не только шину данных но и шину адреса срама. Сигналы управления пока не трогал. Очень похоже, что получилось. sof (http://files.mail.ru/C8BE2EE86ABC4EEE9F9B9815561E6F75)
Надо еще, конечно, поизучать статью, на которую дал ссылку tnt23.

tnt23
27.02.2014, 11:56
Вот еще цикл статей на русском. Там местами мне лично довольно сложно, но, наверное, у меня просто проблема с концентрацией внимания.

Шехалев Денис. Synopsys Design Constraint — язык задания временных ограничений на примере Altera TimeQuest. Часть 1


http://www.kit-e.ru/articles/plis/2010_9_51.php

ivagor
27.02.2014, 13:52
Вот еще цикл статей на русском.
Спасибо, определенно в районе 100 МГц своего рода порог, после которого работать с внешней памятью и, скорее всего, с высокоскоростными приемопередатчиками без этих штук не выйдет. После прочтения той статьи (в ветке по Б2М) уверен, что вместо извращения таймингов SDRAMа, которое позволило запустить ее у меня на 120 МГц нужно было задать ограничения, тогда и у других бы могло заработать. Но я еще не вполне переварил - какие и как.
В целом интересно. Б2М и РК хватило ограничений на шину данных. Вектору - на шину данных и адреса. А БК и Львову похоже нужно и сигналы управления ограничить, хотя кое-как они заработали и без этого.


Твои .SOF не заливаются в моем квартусе(( Причем уже не первый раз, просто вчера еще раз удостоверился.. Типа ошибка формата...
Даже посмотрел внутренности, у тебя 12й квартус?
12.1 build 177


Когда исходники для компиляции будут?
Исходники чего? Если речь про сдрамный вариант, то 394 и 397 ПМСМ вполне нормальные (добавленный потом ковокс не нужен но и не мешает), а результаты бесчисленных экспериментов не хочется выкладывать. Вернее так - не обязательно втискивать их в v06cc, возможно в другом проекте они будут более уместны.

tnt23
28.02.2014, 01:52
Спасибо, определенно в районе 100 МГц своего рода порог, после которого работать с внешней памятью и, скорее всего, с высокоскоростными приемопередатчиками без этих штук не выйдет. После прочтения той статьи (в ветке по Б2М) уверен, что вместо извращения таймингов SDRAMа, которое позволило запустить ее у меня на 120 МГц нужно было задать ограничения, тогда и у других бы могло заработать. Но я еще не вполне переварил - какие и как.
В целом интересно. Б2М и РК хватило ограничений на шину данных. Вектору - на шину данных и адреса. А БК и Львову похоже нужно и сигналы управления ограничить, хотя кое-как они заработали и без этого.


Вообще странно, это все речь про DE1? Вроде у нее память должна работать на 133МГц, если не путаю. Даже у меня с моими самопалами Fmax, посчитанный TimeQuest, получался в районе 150-160МГц.

Возможно, нужно ввести мультициклы для DQ? У меня есть письмо от англоязычного коллеги, где он подробно разжевывал задание ограничений для SDRAM. Могу его выложить.

ivagor
28.02.2014, 07:04
это все речь про DE1?
Да, у меня пока только DE1.


Вроде у нее память должна работать на 133МГц, если не путаю. Даже у меня с моими самопалами Fmax, посчитанный TimeQuest, получался в районе 150-160МГц.
На старых DE1 по даташиту на SDRAM до 133, на новых до 166. Но у меня лично на 120 получилось (причем у владельцев старых DE1 такой самопальный вариант не работает), а на 150 - нет. Вариант на 100 работал и у меня и у svofski. Хотя не только частота важна, но и ее источник (?). Почему-то с 96 сделанными из 24 SDRAM у меня уже не работают, а с 72 еще работает.


Возможно, нужно ввести мультициклы для DQ? У меня есть письмо от англоязычного коллеги, где он подробно разжевывал задание ограничений для SDRAM. Могу его выложить.
Было бы очень интересно посмотреть.

tnt23
28.02.2014, 12:10
Комментарии, SDC и PDF с диаграммами.

ivagor
28.02.2014, 12:33
Спасибо, пока не все понятно, но интересно.
По первому беглому прочтению за два момента зацепился
1. Он говорит о случае с заданием CAS Latency 2 для сдрамины при использовании CAS Latency 3 в контроллере - на 120 у меня только так и заработало. Но я нашел это методом ненаучного тыка, а он подвел под это некую базу.
2. Он написал, что третьи циклоны тормознее при прокачке 3.3 V выводов. Тогда четвертые и пятые еще тормознее при работе со старыми (по сегодняшним меркам) типами памяти?

tnt23
28.02.2014, 13:26
1. Он говорит о случае с заданием CAS Latency 2 для сдрамины при использовании CAS Latency 3 в контроллере - на 120 у меня только так и заработало. Но я нашел это методом ненаучного тыка, а он подвел под это некую базу.

Меня это тоже коробило тогда (2010) и сейчас. Но сейчас я уже не помню, почему это правильно :) а тогда вроде понял. По-моему, общий смысл такой: CAS latency в любом случае нужен в силу природы SDRAM (данные начинают выдаваться спустя 2 или 3 такта), плюс один такт добавляется для успокоения TimeQuest.



2. Он написал, что третьи циклоны тормознее при прокачке 3.3 V выводов. Тогда четвертые и пятые еще тормознее при работе со старыми (по сегодняшним меркам) типами памяти?

Получается, что так. Начиная с III циклона вроде LVTTL/LVCMOS уже идет с потолком в 3.0V.

---------- Post added at 13:26 ---------- Previous post was at 13:20 ----------

Кстати, все в один голос настоятельно рекомендуют включать опцию Fast Output Register для выходов.

ivagor
28.02.2014, 17:34
После прочтения и попытки осмысления материалов по таймквесту впал в некоторый ступор. Для развлечения решил на шару (но в сочетании с трюком +1 к CL контроллера) попробовать 144 МГц сделанные из 24 МГц - а оно взяло и заработало. Причем без задания каких-либо ограничений. Перспектив такой вариант не имеет, но турбо охренительное.

---------- Post added at 18:11 ---------- Previous post was at 17:58 ----------

И 168 МГц заработало, опупеть. Думаю у меня и раньше со 150 бы получилось, но я не делал двух вещей:
1. Переключил оптимизацию на Speed
2. Убрал галочку с Power-Up Don't Care

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

Счастье было недолгим :) Нашел прогу, где 144 и 168 сбоят, так что пока стабильный максимум у меня 120.

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

Это не память сбоила, это я забыл один свой "эксперимент" отключить.

---------- Post added at 19:34 ---------- Previous post was at 19:07 ----------

SDRAM 144 МГц сократил время прогона оптимизированного эксисайзера до 14,5 минут (т.е. на полторы минуты быстрее предыдущего "рекорда").

b2m
28.02.2014, 17:38
данные начинают выдаваться спустя 2 или 3 такта
Данные выдаются спустя некоторое время (надо смотреть даташит), а 2 или 3 такта это будет, зависит от тактовой частоты, на которой мы заставляем работать нашу sdram-ину.

ivagor
28.02.2014, 18:41
SDRAM 162 МГц (базовая 27 МГц, кадровая 56 Гц) довел время прогона до 12 минут. Что то я даже недопонимаю - ускорилось сильнее, чем выросла частота проца и памяти. Скорее всего я на 144 МГц минуту "набавил" - там похоже было 13,5 минут. Но на 162 МГц железно 12 минут.

---------- Post added at 20:11 ---------- Previous post was at 19:59 ----------


Данные выдаются спустя некоторое время (надо смотреть даташит), а 2 или 3 такта это будет, зависит от тактовой частоты, на которой мы заставляем работать нашу sdram-ину.
Отдельной строкой такой характеристики не вижу, хотя можно при желании так посчитать (относительно фронта клока)
1. при CAS Latency 2 - tck2+tac2
2. при CAS Latency 3 - tck3+tck3+tac3

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

Еще раз прогнал эксисайзер при 144 мегагерцовом сдраме - все же же 14,5 минут. CRC я сверяю. Мистика.

---------- Post added at 20:41 ---------- Previous post was at 20:36 ----------

Хотя не мистика. Похоже команды стали лучше влезать между циклами выборки видео, отсюда такой эффект.

tnt23
28.02.2014, 18:56
Данные выдаются спустя некоторое время (надо смотреть даташит), а 2 или 3 такта это будет, зависит от тактовой частоты, на которой мы заставляем работать нашу sdram-ину.

Позволю себе не согласиться. Данные выдаются именно через 2 или 3 такта, так как 1 такт = 1 команда, безотносительно частоты. Речь идет о тактах CLK, само собой. Достаточно открыть даташит на чип по вкусу и посмотреть диаграммы для команд READ и WRITE, например.

---------- Post added at 18:56 ---------- Previous post was at 18:49 ----------

ivagor, а что ты, собственно, тестируешь? У меня вот была (и иногда есть) проблема с редко, но возникающими сбоями в контроллере и/или SDRAM. Я ее пытаюсь обнаруживать сложными способами, как то: переброской здоровенных массивов памяти между памятью и памятью, а также между памятью и внешними носителями, всякий раз контролируя md5sum. Еще помогает многочасовая запаковка-распаковка LHA архива, но такой роскоши на Векторе, скорее всего, нет.

ivagor
28.02.2014, 19:19
ivagor, а что ты, собственно, тестируешь?
Если остановиться и подумать, то 2 вещи
1. На какой частоте может работать сдрам на моем экземпляре де1. Со 162 мне определенно повезло, т.к. попробовал сделать 150 из 50 - не работает, там без ограничений не обойтись. Конечно, вектор не самая подходящая база для таких тестов, но zet и minimig я не пробовал и пока не собираюсь. Можешь посоветовать более продвинутый чем вектор проект, но более-менее простой, чтобы флеш не прошивать?
2. Насколько можно разогнать проект svofski. Смешная цель, но я нахожу в этом фан.
Попробовал еще вариант (думаю последний) - сдрам 144, зато проц 36 (кадровая 75 Гц). Оказалось, что в данном быстрая память важнее быстрого проца - прогон эксисайзера занял те же 12 минут, что и при 162/27.

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


Еще помогает многочасовая запаковка-распаковка LHA архива, но такой роскоши на Векторе, скорее всего, нет.
Есть неплохие архиваторы реализующие LZ.
Для cp/m вроде есть LHA или нет?

tnt23
28.02.2014, 19:44
А при этом учитывается Fmax микросхемы памяти? Потому что если у нее указано время доступа в 7.5нс, например, то выше 133МГц она в принципе не должна работать стабильно.

ivagor
28.02.2014, 20:42
А при этом учитывается Fmax микросхемы памяти? Потому что если у нее указано время доступа в 7.5нс, например, то выше 133МГц она в принципе не должна работать стабильно.
По даташиту у меня должна работать до 166 МГц.

---------- Post added at 22:42 ---------- Previous post was at 21:48 ----------

И все же заработало 168/24 (эксисайзер отрабатывает за 14 мин 15 сек). Перешел с "ручного" пакета на аппаратный, но думаю дело не столько в этом, сколько в везении при сборке данного проекта.

tnt23
28.02.2014, 20:43
Ну так сделай снапшот и запули в SVN, чтобы желающие могли твикать и смотреть, что получится.

ivagor
28.02.2014, 20:47
Насчет архиваторов - совсем забыл, что контроллер дисковода то у меня со всеми этими супер-турбами не работает. В крайнем случае можно грузить ОС для квазидиска и потом грузить в квазидиск.

---------- Post added at 22:47 ---------- Previous post was at 22:44 ----------

Если у svofski даже вариант 120 МГц не заработал, то что говорить о 168, тем более на старых DE1 SDRAM на 133 МГц. Варианты на 120 (турбо там умеренное, т.ч. даже "вг93" работает) лежат в ревизиях 395-396, думаешь их кто-нибудь будет твикать?

ivagor
02.03.2014, 10:06
Результаты варианта 144/36 заставили задуматься о кеше, хотя раньше не собирался пробовать его в 8битках. Организовал очень простенький и неэффективный двухкилойбайтный (полезный объем) кеш. Время прогона оптимизированого эксисайзера сократилось до 11 минут, т.е. всего на минуту.

tnt23
02.03.2014, 12:22
Результаты варианта 144/36 заставили задуматься о кеше, хотя раньше не собирался пробовать его в 8битках. Организовал очень простенький и неэффективный двухкилойбайтный (полезный объем) кеш. Время прогона оптимизированого эксисайзера сократилось до 11 минут, т.е. всего на минуту.

Сорцы?..