ZXNet эхоконференция «hardware.zx»


тема: ULA 4видеорежима и все в 64 макроячейки



от: Дмитрий Демьяненко
кому: All
дата: 17 Jan 2006
Hello, All Вот вам альфа версия ULA размером в 64 макроячейки которая перкарасно впихивается к примеру в Altera EPM7064 MAX При это схемка мультиплекит 20бит адреса Подерживает 4 видеорежима 1. 256х192 стандартный 2. 256х192 железный мультицвет 3. 512х192 монохром (со спецификой пока) 4. GigaScreen За основу взята схема от KAY-1024 (недеюсь я ее не поуродовал) Особенности режима 512x192 в том что атребуты экрана устанавлеваются такие какие были у последненго считаного знакоместа до переключеия. nVOE - нога для формирования гашения сигала Остальные названия взяты по схеме KAY-1024 (вереней ANT-1024HD sblive.narod.ru). Во вложении snapshot проекта для Altera Quatrus исходник на VerilogHDL Файл: zx_sinhro.rar http://zx.pk.ru/attachment.php?attachmentid=2315

от: Orionsoft
кому: All
дата: 17 Jan 2006
Hello, heroy her> Вот вам альфа версия Правильной дорогой идём товарищи !!!

от: Дмитрий Демьяненко
кому: All
дата: 17 Jan 2006
Hello, Orionsoft Какая наиболее коректная длительность сигнала INT хотя бы для KAY и Penatago

от: Дмитрий Демьяненко
кому: All
дата: 17 Jan 2006
Hello, caro Принимаем к сведению Учитывая специфику ограничения в 64 макроячейки делаю сигнал INT длиной в 4 микросекунды всего лиш подкинуться к счетчикам А насчет считать сигналы M1 к сожалению места нет

от: Alex Freed
кому: All
дата: 26 Jan 2006
Hello, Conan Con> Можно сделать INT в два раза короче, при переключении в TURBO, но это Con> усложняет схемотехнику. Может я чего не понимаю, но мне представляется так: 5 разрядный счетчик (1 корпус) и RS тригер - 1/2 корпуса. тригер устанавливается по КСИ и счетчик считает CPU clock. Досчитал до 32 - сброс RS тригера. Очень точно и автоматом настраивается на турбу. Hет?

от: Konstantin Sviridov
кому: All
дата: 26 Jan 2006
Hello, alexfreed ale> Может я чего не понимаю, но мне представляется так ale> Очень точно и автоматом настраивается на турбу. Hет? Да. Все именно так, как вы сказали. Добавляется пара (тройка) корпусов мелкой логики. P.S. Сейчас такое усложнение выглядит незначительным, в конце 80-х начале 90-х оно обошлось бы рублей в 10 стоимости (при зарплате 150). Если пересчитать на современные соотношения, то станет понятным, почему наиболее простые модели (<Ленинград 1>) были столь популярны.

от: Дмитрий Демьяненко
кому: All
дата: 26 Jan 2006
Hello, alexfreed ale> 5 разрядный счетчик (1 корпус) и RS тригер - 1/2 корпуса. Итого 5 макроячеек а хочется (64 всего что бы было 63 занимает все осттальное) к томуже анало микрухи LVTTL стоит 1.5$ доллра Тут если пересхочить дальше на болшее по эмкости семейство останется много места пустого, ареализовать что то культурное внутри не хватает пинов у микрухи, я и так в этом проекте отключил JTAG что бы накалядовать еще 4 ножки у MAX 3064 этой лабуды нет так что там по умолчаниюна 4 ноги доступных пользователю больше

от: Alex Freed
кому: All
дата: 27 Jan 2006
Hello, heroy her> 64 всего что бы было 63 занимает все осттальное Очень не советую пытаться использовать 100% ресурсов. Всегда должен быть небольшой запас потому что почти всегда приходится что-то слегка менять. her> реализовать что то культурное внутри не хватает пинов у микрухи Похоже будут у нас 2 разных варианта. У меня сейчас довольно плотно заполнена XC95108. Благо у нее 84 ноги, так что с ногами все хорошо. Внутри делается и видео, и MMU. Снаружи почти ничего не остается для мелкой логики.

от: Дмитрий Демьяненко
кому: All
дата: 27 Jan 2006
Hello, alexfreed ale> Благо у нее 84 ноги, так что с ногами все хорошо У max7064 тоже 84 но вот использовать все нельзя хотябы потому что питание туды сувать надо ale> Похоже будут у нас 2 разных варианта. У меня сейчас довольно плотно ale> заполнена XC95108. Какая разница описание и там у тут походит без проблем просто исходник надо писать как минимум что бы его поняли оба синтезатора. ale> Очень не советую пытаться использовать 100% ресурсов Используеться что то около 45 тригеров (и по альтеровски соответственно макроячейки), остальные заняты трасировкой и логикой так что там есть где разгулятся а вот тригеры уже некуда сувать :)

от: Дмитрий Демьяненко
кому: All
дата: 27 Jan 2006
Hello, heroy А по поводу минимума корпусов так можно к примеру из альтеры взять ciclone II там проц влазиет при частоте около 40МГц и все остальное и по прайсу на altera.ru стоит 16 долоров плус микруха конфигурационного ПЗУ 3 долора и будет весь спек вместе в ВГ93 в одной микрухе так же туда и атемгу или другой микроконтролер всунуть можно и все навороты (всеми мечтаемые спрайтовые движки, перемещение блоков памяти и тд), но большинству микруху в 144 лапы без паяльной станции не припояты так что такое не расматриваю изначально а плата будет по размеру гнезд натыканых на неё

от: Alex Freed
кому: All
дата: 28 Jan 2006
Hello, heroy her> А по поводу минимума корпусов так можно к примеру из альтеры взять her> ciclone II Это я уже делал. Правда не спек, а Apple и БК0010. И на готовой плате за $99. Hадо будет на ней же сделать прошивку для спека.

от: Alex Freed
кому: All
дата: 28 Jan 2006
Hello, heroy her> У max7064 тоже 84 но вот использовать все нельзя хотябы потому что her> питание туды сувать надо Hу тогда я не знаю куда ты ноги деваешь. Hа i/o их 69 остается. module zx2_dram(clk14,reset,R,G,B,bright,sync,ioreq,memreq,refr,wr_n,rd_n,M1, ram_addr_m,ram_data,cpu_data,cpu_addr,cas_n,ras_n, A14_rom); Macrocells Product Terms Registers Pins Function Block Used Used Used Used Inputs Used 102/108 ( 94%) 273 /540 ( 51%) 65 /108 ( 60%) 56 /69 ( 81%) 201/216 ( 93%) Т.е. еще 13 ног в запасе.

от: SMT
кому: All
дата: 30 Jan 2006
Hello, heroy ld b,b и подобные нельзя - практически любая ленточная или tr-dos защита набита ими

от: Дмитрий Демьяненко
кому: All
дата: 30 Jan 2006
Hello, CHRV CHR> команд записью единички в какой нить порт Согласен должно включаться так как достаточно нетривиальное расширение, зато очень функционально

от: Дмитрий Демьяненко
кому: All
дата: 30 Jan 2006
Hello, alexfreed Вот мыслеизложение Думал я тут немного какой команды не хватает Z80? И вот придумал не хватает катострафически команд межсегментного перехода, а потом подумал а можно ли без медленных протонов изменить кристалл процессора, оказывается можно :) необходимо доделать всего лишь ULA. Суть задумки заключается в использовании очень умной команды LD B,B. Именно благодаря ее изумительным интеллектуальным свойствам невозможное становится былью. Работать это будет так Команда межсегментного перехода JP 34:FC00 в интерпретации ассемблера будет выглядеть так LD B,B DB #34 JP #FC00 Заманчиво? Особенно если рассмотреть вариант под корректировки транслятора. A ULA будет делать следующие шаги 1. LD B,B ага команда межсегментного перехода, ну скормим ее процессору 2. DB #34 вот эта интересующая нас страничка запомним ее а процессору скормим команду NOP 3. JP #FC00 а вот эту команду мы тоже скормим процессору 4. Теперь ждем цикла M1 и когда он выступить сменим страничку на запомненную Просто? Дальше подумал переход это хорошо, но как-то не алгоритмично получается, надо бы вызов в подпрограмму и возврат сделать CALL 34:FC00 и RETF призовем на помощь великие и могучие команды LD C,C и LD D,D Итак рассмотрим команду CALL 34:FC00 будет это дело у нас интерпретироваться так LD C,C DB #34 CALL #FC00 Рассмотрим, что будет делать ULA 1. LD C,C ага команда межсегментного перехода, скормим ее 2. DB #34 запомним номер странички а процессору скормим команду PUSH HL 3. Процессор ничего не подозревая выполняет команду PUSH HL а мы в этот момент подло его отключаем от шины данных и выставляем туда по очереди #0034 :) 4. CALL #FC00 скормим ее процессору 5. Ждем цикла M1 и по наступлению меняем номер страницы Осталась самая подлая команда RET на время ее исполнения придется намертво отключить все виды прерываний. LD D,D POP HL RET 1. LD D,D ага команда межсегментного возврата, скормим ее 2. POP HL скормим и эту команду 3. Во время выполнения этой команды мы запомним младшую половину читаемого по шине слова где то внутри ULA 4. RET скормим ее процессору 5. Ждем цикл M1 и меняем номер странички Вот так. Hо есть одно но в каждой процедуре которая имеет тип FAR (тобиш вызывается командой межсегментного вызова подпрограммы), должна иметь шапку которая меняет местами два слова на вершине стека (это чтобы работала команда длинного возврата), но я думаю можно поплатиться за такую расширяемость программного обеспечения и фактически можно вызывать процедуры в пределах 4Мб, почему 4? А потому что старшие два бита адреса всегда установлены в 1 и фактически не участвуют в адресации получаем (8+14)^2 =4Мб . А почему старшие два бита 1, а потому что окно проецирования дополнительной памяти располагается по адресам #C000-#FFFF и имеют общее свойство два старших бита такие как упоминалось выше Вердикт? PS Можно расмотреть еще две команды это переключение страницы LD E,E DB #34 и переключение страницы на время исполнения одной команды LD H,H #34 своеобразный префикс замещения сегмента. И еще одну LD (HL),(HL) назовем ее HALT и пусть она останавливает процессор :)

от: Чунин Роман
кому: All
дата: 30 Jan 2006
Hello, SMT SMT> ld b,b и подобные нельзя - практически любая ленточная или tr-dos SMT> защита набита ими Hу ничего ни мешает активировать режим LD r,r команд записью единички в какой нить порт. По умолчанию неактивировано. Повторюсь идея не нова (в Спринтере это использовалось) и достаточно удобна.




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Экзамен - рецепты идельных ограблений в игре "They Stole a million".
Поймай мелодию - Список радиостанций с указанной частотой транслирования.
Реклама - Реклама и объявления.
Статься 2 - привязанность к спектруму, это волшебство или маразм?
Напутствие - Наверняка любой уважающий себя программист задумывался над написанием DEMO...

В этот день...   7 мая