nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Apr 2024 16:31



Reply to topic  [ 48 posts ]  Go to page Previous  1, 2, 3, 4  Next
Что хотелось бы увидеть в новой разработке (условно АТМ-3) 
Author Message
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Ronin wrote:
ну кадровое прерывание не исправишь :)

Значит, НАДО исправить. Сохранив, естественно, старый режим для совместимости. =)
Quote:
так что что есть то есть. а вот по остальным - этот самый шифратор перенесен в программную часть - по таблице im2 можешь понавзводить каких угодно флагов-триггеров в какой угодно комбинации. может это и лишние тормоза, зато не надо всяких извратов типа целого чипа х59, да и можно обрабатывать только пару-тройку событий а не все. в общем гибкость огромная :)

Блюе! =)

Прикинь, если хотя бы 5 девайсов. это ж 32 обработчика писать! - ипануццо! Никто писать не будет, а значит - опять поллинг. А если поллинг, то и фигли извращаться - заОРить интерапты, и дело с концом.
Никто не говорит, что надо ставить древний, агромадный и коматозный вн59. Говорится, что можно сделать контроллер прерываний свой, например:

Входы прерываний от внешних устройств - по фронту или по уровню. По фронту или уровню взводится триггер, соответствующий этому входу. Выходы всех триггеров ОРятся и идут на /INT. На цикл подтверждения им2 выдаётся выход приоритетного шифратора, на который так же все выходы триггеров идут. Когда процессор 'взял' интеррупт, тот триггер, что взялся - сбрасывается, остальные остаются. Когда проц сдеает EI:RET, он 'возьмёт' другой уже интеррупт, если осталось, что брать.


Quote:
к тому же учитывая активность использования прерываний внешними девайсами (=нулевую) этот чип просто стоял бы зря.

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

Quote:
можно конечно загибать пальцы что это отстой

Действительно, ацтой =)


20 Dec 2006 04:30
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
Согласен. Считаю, надо использовать конроллер прерываний. Если девайсов будет несколько - их опрашивать ухеришься.

lvd wrote:
интервальный таймер (для многозадачности)


Это надо вешать на NMI. Иначе:

di
l1: jmp l1

и висяк


21 Dec 2006 01:33
Profile
Maniac
User avatar

Joined: 29 Mar 2005 06:06
Posts: 304
Location: Krasnodar
Reply with quote
Post 
Какой частотой предполагается тактировать его? Сколько тактов займёт полный цикл доступа (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
Profile ICQ
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
SfS wrote:
Согласен. Считаю, надо использовать конроллер прерываний. Если девайсов будет несколько - их опрашивать ухеришься.

lvd wrote:
интервальный таймер (для многозадачности)


Это надо вешать на NMI. Иначе:

di
l1: jmp l1

и висяк


НЕ нужно! DI:HALT и подобное - это либо необходимость (например, критическая секция), либо клиника. Те программы, которые под мультитаскинг пишутся, так не делают (или делают НАМЕРЕННО).
А если вешать на НМИ - то критические секции хрен сделаешь, безопасные трюки со стеком - тоже хрен сделаешь, ну и т.д.
НМИ пусть будет НМИ - для Очень Важных Событий (правда, хз вот, для каких.)


21 Dec 2006 04:31
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
lvd wrote:
НЕ нужно! DI:HALT и подобное - это либо необходимость (например, критическая секция), либо клиника.


Либо ошибка в программе. Как раз для этого - и на NMI.

lvd wrote:
Те программы, которые под мультитаскинг пишутся, так не делают (или делают НАМЕРЕННО).


Вово. Ошибся ты - и вся система висит. Красивооо!

lvd wrote:
А если вешать на НМИ - то критические секции хрен сделаешь,


Это какие ?

lvd wrote:
безопасные трюки со стеком - тоже хрен сделаешь,


И не надо.

lvd wrote:
НМИ пусть будет НМИ - для Очень Важных Событий (правда, хз вот, для каких.)


Например, для переключения задач.

Хотя конечно, можно задачи по инту щелкать, а NMI - по кнопке, для удаления зависонов и т.п.


21 Dec 2006 04:42
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Ronin wrote:
если не ошибаюсь, на 100мгц при CL=2 - 5 циклов нуно (50нс). или при 133мгц при CL=3 - 6 циклов (45нс).

То есть это именно между 2 чтениями, а не от начала обращения до получения данных?
Ну тогда ок, на 20мгц зетнике заработает и ещё останется (для ВК), остаётся проблема с 100мгц. :(

Quote:
v9990 имеет свое кадровое прерывание. вроде как на нее пока ориентируемся.

На мультиколорно-несекущуюся совместимость с 256x192 уже не ориентируемся, что ли? А оно требует весьма конкретного положения инта относительно экрана...

Quote:
адын раз написал и забыл.
чтобы повторить описанную схему с шифратором - просто 32 команды записи (модификации кодов jp (либо есть jp либо забит nop (или еще что - например модификация на jp cc когда cc=false)) основного обработчика) и jp на общий обработчик который состоит всего из 5 jp на собссно обработчики устройств, в той последовательности которая и определит их приоритет. каждый обработчик в конце снова модифицирует код основного (сбрасывает свой флаг) и jumpает на него чтобы исполнить менее приоритетные прерывания. и никакого поллинга, несколько jumpов и все дела.

Несколько джампов, докуя тактов...

Quote:
итого в полном масштабе на 7 устройств потребуется пару кб озу из необъятного всем_хватит_4мб :)


Нет, из ДРАГОЦЕННОГО 64кб, причём это 2кб должно будет торчать в памяти ВСЕГДА. что есть сакс.
Можно, ктсати, пример кода? :)

Ещё. Если вдруг какой девайс передумает прерывание давить, то у тебя он всё равно обрабатываться почему-то будет.

[last thought] То, что ты предложил, по сути и есть поллинг. Только просто инфа обо всех прерываниях читается в цикле подтверждения, а не потом. А потом и начинается возня - биты, коллы, прочая байда, жрущая время. а ИМ2 - он и придумывался, чтобы сразу в нужный обработчик прыгать!


Quote:
окей, куда на шине ты будешь пихать эти входы прерываний ? места на слоте нетуть столько. не считая того что несовместимо с прежними девайсами.

На /INT зхбасовский и буду. В случае ИМ2, кстати, входов прерываний может быть 128, если кто не знал, а не 7. =))

Quote:
ну вообще как-то и на старом железе именно по им2 и юзались DMA Sound, Com-port и тд.

дма усц - выкинь. Ибо он требует ковыряния в потрохах, причём нехилого. компорт и тд - умеет давать инт? Ну и отлично... пусть даёт дальше.

Quote:
идеконтроллер на прерывания вешать
это в каком режиме :) PIO и так быстрее z80-7.0 поэтому иде без прерываний и обходицца.

А раньше вообще компы делали, без прерываний вообще. И как-то обходились.

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

Quote:
Если девайсов будет несколько - их опрашивать ухеришься

Так, а такого - я не писал! Мухлюете, товарисч! :);):);)

Quote:
окей, специально для оси которая поддержит прерывания, напишу обработчик прерываний по вышемнойописанной схеме. на выходе будет - 7 CALLов на внешние обработчики.

Пишите, Шура, пишите. А мы посмотрим =))


21 Dec 2006 05:20
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
SfS wrote:
Вово. Ошибся ты - и вся система висит. Красивооо!

Уверяю тебя, что я смогу так 'ошибиться', что система не то что повиснет, а вообще исчезнет, как будто её и не бывало. Так что это - НЕ АРГУМЕНТ.

Quote:
lvd wrote:
А если вешать на НМИ - то критические секции хрен сделаешь,

Это какие ?

Учи многозадачность. Можно - на примере амигаос (как истинно многозадачной системы без защиты памяти).

Простой пример. Шедулер шедулит по прерыванию, какая задача следующая. А мы ещё одну задачу создаём, меняем шедулерные таблицы. А тут нми бац - и шедулер пойдёт шедулить шит с разрушенными таблицами.

Quote:
lvd wrote:
безопасные трюки со стеком - тоже хрен сделаешь,

И не надо.

Ты демы на спектруме писал или как? ;)

Quote:
lvd wrote:
НМИ пусть будет НМИ - для Очень Важных Событий (правда, хз вот, для каких.)

Например, для переключения задач.

Это не особый случай. Это рядовое явление, происходящее сотни раз в секунду.
Quote:
Хотя конечно, можно задачи по инту щелкать, а NMI - по кнопке, для удаления зависонов и т.п.

Для удаления зависонов есть более другая кнопка, о которой все знают. НМИ - не поможет ни разу. А чтобы ошибки были пох системе - надо виртуализацию и защиту памяти наводить, что, КАК ОЧЕВИДНО, на з80 не бывает.

Хороший пример НМИ - это отладчик. Или подобное что-то. Но никак не многозадачность.


Last edited by lvd on 21 Dec 2006 05:32, edited 1 time in total.



21 Dec 2006 05:27
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Ещё идея. Делать начало экрана с любого места в памяти. Чтобы как в катдемо, но по-человески. Вдобавок - делать строчный модуль. например, выбралась строчка экранная, и бац - число заданное прибавилось к указателю у ВК, откуда следующую строчку брать.
К этому вдобавок - ещё сдвиг экрана на 0-7 пикселей - и можно будет скроллы плавные устраивать малыми силами (добавлением аддера и начального адреса в железку).

_________________
Du bist ein Spektrumist!


21 Dec 2006 05:32
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
Post 
Прерывания нужны, может и не как воздух, но преимущества очевидны. Однозначно вектора долны быть по 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
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
jdigreze wrote:
Еще мысль есть такая: фсад FDC, а вместо него сделать на меге эмулятор портов ВГшки и все это хоз-во транслировать в SD/MMC Flash, чтоб юзать не дискеты, а их образы (н-р: trd, fd0, etc) с флеша.

Ааа! ВГшку, на которую мы молимся 2 раза в день, хотят у нас украсть подлые язычники!!! :) :) :) :) :)

Quote:
Однозначно он-борд: ZXMultiCard (PS/2 keyb & mouse, RS232, watch), PAL-coder (composit & svhs), IDE.

Онборд, но не факт, что именно zxmc (с тем же софтом то бишь).
Что такое svhs? =) Почему не просто vhs или не betacam, скажем? =)

Quote:
Неплохо бы иметь выход звука сразу на наушники (KA2209 ???).
TurboSound оставить в виде "нашлепки" на АУк.

Выход на наушники сакс. Кому захочется подключать спек к нормальному усилку, придётся мириться с испорченным звуком.
Турбосоунд - ни в коем случае. Вообще, 2203 проще для сопряжения с шиной (если БЕЗ вынужденной шина>ay>2203 трансляции сигналов управления).

Quote:
Внутри обязательно: I2C, SPI

Внутри чего, куда идут и что делают (и зачем)?

Quote:
Стандартный порт клавы тоже можно (нужно) ликвидировать.

Я тте ликвидирую! =)
Ты скобочки в аласме давно не набирал на пцклавеотуре? :)
[хм... или пофиксили генто?]
Quote:
Есть также сомнения по поводу нужности VGA-out...

И по поводу нужности TV-out тоже :)

_________________
Du bist ein Spektrumist!


21 Dec 2006 13:36
Profile
Doomed

Joined: 16 Apr 2005 22:35
Posts: 492
Location: Томск
Reply with quote
Post 
jdigreze wrote:
Стандартный порт клавы тоже можно (нужно) ликвидировать.


А играть как в старые игры ?


22 Dec 2006 04:45
Profile
Senior

Joined: 09 Jun 2005 05:34
Posts: 112
Reply with quote
Post 
lvd wrote:
Входы прерываний от внешних устройств - по фронту или по уровню. По фронту или уровню взводится триггер, соответствующий этому входу. Выходы всех триггеров ОРятся и идут на /INT. На цикл подтверждения им2 выдаётся выход приоритетного шифратора, на который так же все выходы триггеров идут. Когда процессор 'взял' интеррупт, тот триггер, что взялся - сбрасывается, остальные остаются. Когда проц сдеает EI:RET, он 'возьмёт' другой уже интеррупт, если осталось, что брать.

В Профи есть контроллер прерываний. Используется для RS232 и часов (по будильнику).
Сделан до безобразия просто - диодами на ШД нужный байт подается - и порядок. Все работает.


27 Dec 2006 06:24
Profile
Maniac

Joined: 01 Mar 2005 21:42
Posts: 230
Reply with quote
Post 
Sonic wrote:
В Профи есть контроллер прерываний. Используется для RS232 и часов (по будильнику).
Сделан до безобразия просто - диодами на ШД нужный байт подается - и порядок. Все работает.


Это не контроллер (он ничего не контролирует). Это всё - от безысходности и бедности. Если есть в оси 2 независимых программы, одна из которых хочет повесить обработчик на будильник, а другая - на приём рс232, что они (или ось) должны делать? А если оба прерывания одновременно приходят? А если источников прерывания 8? А если 20?

_________________
Du bist ein Spektrumist!


27 Dec 2006 19:34
Profile
Novelist

Joined: 26 Sep 2006 11:04
Posts: 35
Location: 83.237.37.199
Reply with quote
Post 
Не судите строго.
Чего бы я хотел от машинки мечты.
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
Profile
God
User avatar

Joined: 29 Dec 2003 01:00
Posts: 1101
Location: Москва
Reply with quote
Post 
F0lken wrote:
Приоритетно - !малые габариты!, малое энергопотребление. Внешний БП навроде ноутбучного - вольт на 18, внутри чтобы из него 5+12-12 делалось, чтобы голова не болела все это разными контактами подрубать.
Основная идея - уходить от PCшного формфактора. Поймите - место у нас в квартирах не растет, а только уменьшается. =)

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


24 Jan 2007 05:23
Profile ICQ WWW
Display posts from previous:  Sort by  
Reply to topic   [ 48 posts ]  Go to page Previous  1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 57 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.