|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Что хотелось бы увидеть в новой разработке (условно АТМ-3)
Author |
Message |
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
Значит, НАДО исправить. Сохранив, естественно, старый режим для совместимости. =) Блюе! =) Прикинь, если хотя бы 5 девайсов. это ж 32 обработчика писать! - ипануццо! Никто писать не будет, а значит - опять поллинг. А если поллинг, то и фигли извращаться - заОРить интерапты, и дело с концом. Никто не говорит, что надо ставить древний, агромадный и коматозный вн59. Говорится, что можно сделать контроллер прерываний свой, например: Входы прерываний от внешних устройств - по фронту или по уровню. По фронту или уровню взводится триггер, соответствующий этому входу. Выходы всех триггеров ОРятся и идут на /INT. На цикл подтверждения им2 выдаётся выход приоритетного шифратора, на который так же все выходы триггеров идут. Когда процессор 'взял' интеррупт, тот триггер, что взялся - сбрасывается, остальные остаются. Когда проц сдеает EI:RET, он 'возьмёт' другой уже интеррупт, если осталось, что брать. К новому железу подразумеваются новые девайсы, причём не обязательно внешние. Например, идеконтроллер на прерывания вешать, интервальный таймер (для многозадачности), выходы прерываний с 9990, в конце концов.
Действительно, ацтой =)
|
20 Dec 2006 04:30 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
Согласен. Считаю, надо использовать конроллер прерываний. Если девайсов будет несколько - их опрашивать ухеришься.
Это надо вешать на NMI. Иначе:
di
l1: jmp l1
и висяк
|
21 Dec 2006 01:33 |
|
|
Ronin
Maniac
Joined: 29 Mar 2005 06:06 Posts: 304 Location: Krasnodar
|
Какой частотой предполагается тактировать его? Сколько тактов займёт полный цикл доступа (RAS latency, CAS latency, закрытие и precharge, точных терминов не помню, по сути - сколько тактов отделяют друг от друга чтение 2 произвольных байтов)?
если не ошибаюсь, на 100мгц при CL=2 - 5 циклов нуно (50нс). или при 133мгц при CL=3 - 6 циклов (45нс).
Значит, НАДО исправить
v9990 имеет свое кадровое прерывание. вроде как на нее пока ориентируемся.
это ж 32 обработчика писать! - ипануццо
адын раз написал и забыл.
чтобы повторить описанную схему с шифратором - просто 32 команды записи (модификации кодов jp (либо есть jp либо забит nop (или еще что - например модификация на jp cc когда cc=false)) основного обработчика) и jp на общий обработчик который состоит всего из 5 jp на собссно обработчики устройств, в той последовательности которая и определит их приоритет. каждый обработчик в конце снова модифицирует код основного (сбрасывает свой флаг) и jumpает на него чтобы исполнить менее приоритетные прерывания. и никакого поллинга, несколько jumpов и все дела.
итого в полном масштабе на 7 устройств потребуется пару кб озу из необъятного всем_хватит_4мб
Входы прерываний от внешних устройств - по фронту или по уровню
окей, куда на шине ты будешь пихать эти входы прерываний ? места на слоте нетуть столько. не считая того что несовместимо с прежними девайсами.
К новому железу подразумеваются новые девайсы
ну вообще как-то и на старом железе именно по им2 и юзались DMA Sound, Com-port и тд.
идеконтроллер на прерывания вешать
это в каком режиме PIO и так быстрее z80-7.0 поэтому иде без прерываний и обходицца.
выходы прерываний с 9990, в конце концов
будут висеть именно на этом самом отстое
Если девайсов будет несколько - их опрашивать ухеришься
окей, специально для оси которая поддержит прерывания, напишу обработчик прерываний по вышемнойописанной схеме. на выходе будет - 7 CALLов на внешние обработчики.
|
21 Dec 2006 03:19 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
| | | | SfS wrote: Согласен. Считаю, надо использовать конроллер прерываний. Если девайсов будет несколько - их опрашивать ухеришься. Это надо вешать на NMI. Иначе: di l1: jmp l1 и висяк | | | | |
НЕ нужно! DI:HALT и подобное - это либо необходимость (например, критическая секция), либо клиника. Те программы, которые под мультитаскинг пишутся, так не делают (или делают НАМЕРЕННО).
А если вешать на НМИ - то критические секции хрен сделаешь, безопасные трюки со стеком - тоже хрен сделаешь, ну и т.д.
НМИ пусть будет НМИ - для Очень Важных Событий (правда, хз вот, для каких.)
|
21 Dec 2006 04:31 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
Либо ошибка в программе. Как раз для этого - и на NMI. Вово. Ошибся ты - и вся система висит. Красивооо! Это какие ? И не надо.
Например, для переключения задач.
Хотя конечно, можно задачи по инту щелкать, а NMI - по кнопке, для удаления зависонов и т.п.
|
21 Dec 2006 04:42 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
То есть это именно между 2 чтениями, а не от начала обращения до получения данных? Ну тогда ок, на 20мгц зетнике заработает и ещё останется (для ВК), остаётся проблема с 100мгц. На мультиколорно-несекущуюся совместимость с 256x192 уже не ориентируемся, что ли? А оно требует весьма конкретного положения инта относительно экрана... Несколько джампов, докуя тактов... Нет, из ДРАГОЦЕННОГО 64кб, причём это 2кб должно будет торчать в памяти ВСЕГДА. что есть сакс. Можно, ктсати, пример кода? Ещё. Если вдруг какой девайс передумает прерывание давить, то у тебя он всё равно обрабатываться почему-то будет. [last thought] То, что ты предложил, по сути и есть поллинг. Только просто инфа обо всех прерываниях читается в цикле подтверждения, а не потом. А потом и начинается возня - биты, коллы, прочая байда, жрущая время. а ИМ2 - он и придумывался, чтобы сразу в нужный обработчик прыгать!На /INT зхбасовский и буду. В случае ИМ2, кстати, входов прерываний может быть 128, если кто не знал, а не 7. =)) дма усц - выкинь. Ибо он требует ковыряния в потрохах, причём нехилого. компорт и тд - умеет давать инт? Ну и отлично... пусть даёт дальше. А раньше вообще компы делали, без прерываний вообще. И как-то обходились. винты обучены давать прерывания. Использование этой фишки позволит НЕЗАВИСИМО с основной программой грузить файлы в память. Конечно, основная прога станет колом, но музу-то уж играть можно будет одновременно с загрузкой, б/п. Так, а такого - я не писал! Мухлюете, товарисч! ;):);)
Пишите, Шура, пишите. А мы посмотрим =))
|
21 Dec 2006 05:20 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
Уверяю тебя, что я смогу так 'ошибиться', что система не то что повиснет, а вообще исчезнет, как будто её и не бывало. Так что это - НЕ АРГУМЕНТ. Учи многозадачность. Можно - на примере амигаос (как истинно многозадачной системы без защиты памяти). Простой пример. Шедулер шедулит по прерыванию, какая задача следующая. А мы ещё одну задачу создаём, меняем шедулерные таблицы. А тут нми бац - и шедулер пойдёт шедулить шит с разрушенными таблицами. Ты демы на спектруме писал или как? Это не особый случай. Это рядовое явление, происходящее сотни раз в секунду.
Для удаления зависонов есть более другая кнопка, о которой все знают. НМИ - не поможет ни разу. А чтобы ошибки были пох системе - надо виртуализацию и защиту памяти наводить, что, КАК ОЧЕВИДНО, на з80 не бывает.
Хороший пример НМИ - это отладчик. Или подобное что-то. Но никак не многозадачность.
Last edited by lvd on 21 Dec 2006 05:32, edited 1 time in total.
|
21 Dec 2006 05:27 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
Ещё идея. Делать начало экрана с любого места в памяти. Чтобы как в катдемо, но по-человески. Вдобавок - делать строчный модуль. например, выбралась строчка экранная, и бац - число заданное прибавилось к указателю у ВК, откуда следующую строчку брать.
К этому вдобавок - ещё сдвиг экрана на 0-7 пикселей - и можно будет скроллы плавные устраивать малыми силами (добавлением аддера и начального адреса в железку).
_________________ Du bist ein Spektrumist!
|
21 Dec 2006 05:32 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1388 Location: Abakan
|
Прерывания нужны, может и не как воздух, но преимущества очевидны. Однозначно вектора долны быть по INT/IM2. Использовать для этого NMI несколько нелогично. ZXBUS для этого расширять совсем даже не нужно, достаточно сделать разделения INTов по-слотово + те, которые OnBoard.
Еще мысль есть такая: фсад FDC, а вместо него сделать на меге эмулятор портов ВГшки и все это хоз-во транслировать в SD/MMC Flash, чтоб юзать не дискеты, а их образы (н-р: trd, fd0, etc) с флеша.
Однозначно он-борд: ZXMultiCard (PS/2 keyb & mouse, RS232, watch), PAL-coder (composit & svhs), IDE.
Неплохо бы иметь выход звука сразу на наушники (KA2209 ???).
TurboSound оставить в виде "нашлепки" на АУк.
Питание, форм-фактор miniATX.
Внутри обязательно: I2C, SPI
Стандартный порт клавы тоже можно (нужно) ликвидировать.
Есть также сомнения по поводу нужности VGA-out...
|
21 Dec 2006 10:30 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
Ааа! ВГшку, на которую мы молимся 2 раза в день, хотят у нас украсть подлые язычники!!! Онборд, но не факт, что именно zxmc (с тем же софтом то бишь). Что такое svhs? =) Почему не просто vhs или не betacam, скажем? =) Выход на наушники сакс. Кому захочется подключать спек к нормальному усилку, придётся мириться с испорченным звуком. Турбосоунд - ни в коем случае. Вообще, 2203 проще для сопряжения с шиной (если БЕЗ вынужденной шина>ay>2203 трансляции сигналов управления). Внутри чего, куда идут и что делают (и зачем)? Я тте ликвидирую! =) Ты скобочки в аласме давно не набирал на пцклавеотуре? [хм... или пофиксили генто?]
И по поводу нужности TV-out тоже
_________________ Du bist ein Spektrumist!
|
21 Dec 2006 13:36 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
А играть как в старые игры ?
|
22 Dec 2006 04:45 |
|
|
Sonic
Senior
Joined: 09 Jun 2005 05:34 Posts: 112
|
В Профи есть контроллер прерываний. Используется для RS232 и часов (по будильнику).
Сделан до безобразия просто - диодами на ШД нужный байт подается - и порядок. Все работает.
|
27 Dec 2006 06:24 |
|
|
lvd
Maniac
Joined: 01 Mar 2005 21:42 Posts: 230
|
Это не контроллер (он ничего не контролирует). Это всё - от безысходности и бедности. Если есть в оси 2 независимых программы, одна из которых хочет повесить обработчик на будильник, а другая - на приём рс232, что они (или ось) должны делать? А если оба прерывания одновременно приходят? А если источников прерывания 8? А если 20?
_________________ Du bist ein Spektrumist!
|
27 Dec 2006 19:34 |
|
|
F0lken
Novelist
Joined: 26 Sep 2006 11:04 Posts: 35 Location: 83.237.37.199
|
Не судите строго.
Чего бы я хотел от машинки мечты.
1. Минимальный размер. Речь не о PDA конечно.
2. Встроенный выход на ТВ, встроенный выход на наушники/динамики
3. Встроенный CF-слоt
4. Дыра для подключения CD - чтобы шлейф втыкаешь с питанием и все.
5. Выход на 2 джоя
6. Выход для клавиатуры и ps/2, а еще лучше USB мыши.
7. Технологическая колодка контактов, куда выведен LPT, serial, обычная спектрумовская клава, чтобы не морочиться с разъемами.
Приоритетно - !малые габариты!, малое энергопотребление. Внешний БП навроде ноутбучного - вольт на 18, внутри чтобы из него 5+12-12 делалось, чтобы голова не болела все это разными контактами подрубать.
Основная идея - уходить от PCшного формфактора. Поймите - место у нас в квартирах не растет, а только уменьшается. =)
Чего НЕ надо делать.
Извращаться с периферией. Т.е. никакие кардридеры, флешки, IDE->USB винты и прочее подключать НЕ НАДО. Пусть будет просто маленькая элегантная плата. Я даже готов раздербанить IDE-СDROM, дабы упихать все в корпус. И шину бы вывести. Чтобы секасом не заниматься с подключением.
|
24 Jan 2007 00:48 |
|
|
CHRV
God
Joined: 29 Dec 2003 01:00 Posts: 1101 Location: Москва
|
Согласен, но у нас определяющая - это конечно цена.
А если делать "маленькое", то это значит корпус специально делать и с расширениями проблема.
Лично мне нравится BTX форм фактор, но уж больно дороговато за него просят. Поэтому я все западаю на miniATX - и корпуса под них есть и малюсенькие и большие (кому подешевше хотца).
|
24 Jan 2007 05:23 |
|
|
Who is online |
Users browsing this forum: No registered users and 10 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|