26

Re: Разгон АГАТа

LeoN пишет:

5. Что-то мне подсказывает, что "F" и "C" легко ложатся в галку 22V10, остальные как будто не влезут... Ошибаюсь?

Похоже, что и правда могут не влезть. У 22V10 матрица только на AND, значит, придется все A OR B менять на !(!A AND !B). То есть, часть ячеек придется задействовать для формирования аргументов AND. Восемь ячеек нужно по схеме, остается всего две свободных, а вспомогательных сигналов нужно дофига.

И, кстати, формулы надо по любому выверять по содержимому D14. Наверняка в процессе отладки что-то меняли, а попали ли эти изменения в документацию - фиг знает.

27 Отредактировано LeoN (26-04-2020 16:25)

Re: Разгон АГАТа

Покумекал тут. У этих галок программируемая матрица AND и фиксированная матрица OR. Таким образом, если развернуть формулы до сумм произведений, то всё прекрасно влезает в эту галку без внутренних обратных связей.
Более того, ПЗУху хочу юзать не только по "F", но и по "DE", то есть по "DEF", и, таким образом, "ВКЛПЗУ" (включение шинника ВА86) становится равным "DEF" - итого получается уже всего-то 6 сигналов.

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

28

Re: Разгон АГАТа

ispLEVER сам редуцирует формулы и приводит к виду сумм произведений:

A12M     = !(  !A12 
            #   A15 & A14 & !A13 & !RW & WR 
            #   A15 & A14 & !A13 & !D );

IO_EN     = (  A15 & A14 & !A13 & !A12 );

MEM_DIV     = (  A15 & A14 & A13 & nMS & RW & !RD 
               #   A15 & A14 & A12 & nMS & RW & !RD );

nIO_C0     = !(  A15 & A14 & !A13 & !A12 & !A11 & !A10 & !A9 & !A8 );

nROM_EN     = !(  A15 & A14 & A13 & nROM_INH & !nMS & RW & !RD 
               #   A15 & A14 & A12 & nROM_INH & !nMS & RW & !RD );

nRAM_EN     = (  A15 & A14 & !A13 & !A12 
               #   A15 & A14 & !nROM_INH 
               #   A15 & A14 & !nMS & RW & !RD 
               #   !A15 & !nRAM_INH 
               #   !A14 & !nRAM_INH 
               #   A15 & A14 & !RW & WR );

nRAM_WR     = !(  !A15 & !RW & nRAM_INH 
               #   !A14 & !RW & nRAM_INH 
               #   A15 & A14 & A13 & nROM_INH & !RW & !WR 
               #   A15 & A14 & A12 & nROM_INH & !RW & !WR );
Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

29

Re: Разгон АГАТа

Ya-a-aho-o-o-o!!!

Докладываю голосом: рубеж в 5 Махов (5.107 МГц) успешно взят!

Но, хочется бОльшего. Кто-нибудь может помочь с чипами из этого списка?

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

30

Re: Разгон АГАТа

LeoN пишет:

Докладываю голосом: рубеж в 5 Махов (5.107 МГц) успешно взят!

Еще пяток мегагерц, и на Агате можно будет гонять в Wolfenstein 3D!

31 Отредактировано LeoN (07-05-2020 00:51)

Re: Разгон АГАТа

Да ладно! Вольфик и при 2.8 Махах на Яблочке IIGS идёт, правда не совсем комфортно...
А на 10 Махах мы на АГАТике в халву рубиться будем! ;)

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

32 Отредактировано LeoN (31-05-2020 10:28)

Re: Разгон АГАТа

Небольшой отчёт о содержимом D14.

На той же странице 37 описания формулы не совсем корректны:
1. В нескольких местах не пропечатаны инверсии сигнала ПА.
2. Не пропечатана инверсия у АОЗУ.
3. Формула AD неправильная, она соотвествует AE...

Залил в галку исправленные формулы. Мои тест-прожки фунциклят. Васик грузится, работает, но что-то с косяками как-то... КПОН и ИКП грузят картинку, появляется крутящийся ободок дискетки, замирание, а затем то висяк, то перезагрузка... Где-то косяк...

Нашёл прогу Logic Friday, которая по таблице истинности может генерить формулы. Но беда в том, что эта пятничка не может всасывать напрямую образ ПЗУшки... Подавай ей таблицу истинности вбивая ручками (а это 1024 х 8 нулей и единиц) или импортируя из .csv файла. На досовском турбопаскакале 6.0 написал простенькую прожку, которая .bin файл (образ ПЗУ) конвертит в .csv с нужными полями. Лежит в аттаче.

В итоге, сгенерированные формулы прилично так отличаются от тех, что есть в описании...

Factored:
A12M = A12 (nRAM_INH' (nMS' RW RD' + RW' WR) + A13 + nAram + D + nROM_INH');
nRAM_WR = nAram' (A13' A12' + WR + nROM_INH') + nRAM_INH' nAram + RW;
nRAM_EN = nAram' (nMS' RW RD' + A13' A12' + RW' WR + nROM_INH') + nRAM_INH' nAram;
nROM_F = A12' + A13' + nAram + RD + RW' + nROM_INH' + nMS;
IO_EN = nAram' A13' A12';
MD = nMS nROM_INH nAram' (A12 + A13) (RW' WR' + RW RD);
nROM_DE = A13' A12' + A13 A12 + nAram + RD + RW' + nROM_INH' + nMS;
nROM_EN = A13' A12' + nAram + RD + RW' + nROM_INH' + nMS;

MD это РП, nMS это !ПА.

Post's attachments

Attachment icon BIN2CSV.ZIP 3.47 kb, 210 downloads since 2020-05-31 

Attachment icon Logic Friday - D14.png 264.59 kb, 93 downloads since 2020-05-31 

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

33

Re: Разгон АГАТа

Комрады!
А есть среди Вас кто на ebay.ru закупается?

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

34

Re: Разгон АГАТа

Набрал ebay.ru , браузер перекинул на ebay.com.
На ebay.com я закупался, в прошлые годы - даже частенько.
А что ?

35

Re: Разгон АГАТа

Ответил электропочтой.

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

36

Re: Разгон АГАТа

Во дают!

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

37

Re: Разгон АГАТа

У меня всё время мысли - как эксперимент, это интересно, но какое практическое применение? Прям цитирую Ватсона из нашего фильма. Разогнать - может быть, и интересно, но есть хоть один случай, когда результаты этого разгона были использованы на практике? Я имею в виду обоснованный разгон, когда он реально нужен, а не "очистку экрана быстрее на ХХХ микросекунд" или "быстрее загрузку на ХХХ микросекунд" - в реальной жизни это значения не имеет.

38 Отредактировано LeoN (08-03-2021 12:47)

Re: Разгон АГАТа

1. Когда-то, очень давно, в начале 90-х, я "работал" над ПДД на АГАТе. Исходников было 5 или 6 (каждый модуль в своем файле), и каждый из них нехилого размера. На каждом из двух проходов они ассемблировались друг за дружкой автоматом. И каждый проход занимал несколько (!!!) минут. Одна синтаксическая ошибочка - правишь её и опять несколько минут компиляции... И так многократно.
2. Далее, для сборки пакета была инструментальная машинка с 3 дисководами. Запускается самописный компоновщик, на одном диске картинки для билетов, на другом тексты билетов, на третьем компонуется самозагрузочный диск ПДД (их два). Этот компоновщик грузит соответствующую картинку, жмёт её с использованием RLE, расставляются мигалки/поворотники и т.д., грузятся тексты билетов, также жмутся, и выплёвываются на диск. Очень и очень долго это было... Особенно RLE...
3. PrintBox в исходниках тоже нехилого размера был, и также ассемблировался очень и очень неспешно... Кстати USR именно на АГАТике пишет прожки.
4. А в планах у меня и демки, и игрухи новые, и ковокс, и ЯЗС, и SD и т.д... Которым сколько бы MIPSов не дашь, а как всегда - ещё больше надо!

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

39 Отредактировано AlexBel (08-03-2021 16:26)

Re: Разгон АГАТа

Понятно. Да, конечно, разгон процессора уменьшит время компиляции, но я здесь вижу более серьёзное узкое место - работу с дисками и недостаток памяти. По мне, так это тормозит процесс сильнее, чем частота процессора.

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

По моим представлениям, разгон "Агата" должен производиться разгрузкой процессора, увеличением памяти, уменьшением обращений к накопителям или/и заменой их на более быстрые. Например, некоторое время назад я задумал (и начал делать) видеокарту для "Агата" с использованием видеопроцессора TMS9929A или V9958. И на эту мысль меня навела, как раз, именно та "прожка", которую продолжил писать USR. Девайс вставляется в слот "Агата" и компьютер получает более продвинутый звук (AY8912 или SAA1099) и видеовозможности для создания качественных видеоигр или других видеоприложений. При этом видеосигнал от штатного видеовыхода "Агата" пропускается через этот девайс и может подменяться видесигналом от видеопроцессора. Я думал "соблазнить" USR адаптировать свой игровой движок под новую карту, мне это кажется интересным. И, что, как я считаю, очень важно - это не требует вмешательства в схему компьютера, достаточно вставить плату, т.е. доступно любому, кто пожелает. К сожалению, USR уже давно работу над своим проектом не продолжает и у меня энтузиазм в этом плане поубавился. Нет, видеопроцессор всё равно будет использоваться в моей новой разработке, но к "Агату" это уже отношения не имеет.
То же касается и "Ковокса" - какой смысл разгонять процессор, зачем? Не разумнее ли использовать DMA, как в "Амиге"? Пусть процессор спокойно занимается своими вычислениями, а железка гонит данные другой железке. Ну, не царское это дело...

Всё, что я написал - только изложение собственных мыслей и взглядов на вещи и, ни в коем случае, не попытка отговорить кого-то от чего-то. Все мы здесь со своими интересами и если кому интересен разгон, "пожалуйста, разве я мешаю?" ;)

P.S. Для "Спектрума", когда-то, сделали железку General Sound, по сути - тот же "Ковокс", но со своей памятью и процессором. Эта железка умеет работать автономно, проигрывать загруженные звуки и, даже, воспроизводить MOD-ы. На мой взгляд, это совершенно правильный подход.

40

Re: Разгон АГАТа

[flood] ;)

У нас на форуме есть автор "Фонографа" Алексей Рыбаков?

AlexBel пишет:

Я имею в виду обоснованный разгон, когда он реально нужен

Интересно, что бы он ответил на это...

[/flood]

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

41 Отредактировано AlexBel (09-03-2021 20:49)

Re: Разгон АГАТа

Сейчас не то время, когда писался "Фонограф". Сейчас доступно многое, о чём "тогда" можно было, в лучшем случае, мечтать. Поэтому, если речь о том, чтобы получить лучшее качество звука, нужен не дым из процессора, а ЦАП, пусть даже примитивный (тот же "Ковокс" из резисторов) и побольше памяти. Если уж у процессора тогда хватало дури на то, чтобы производить разные действия со звуковыми данными и, при этом, успевать получать достаточно разборчивый звук, то уж просто плеваться байтами в ЦАП он и подавно сможет. Вряд-ли получится крутить MOD-ы (с этим на пределе справлялся Z80 на 12МГц), но получить нормальный (если особо не придираться) звук можно вполне. Когда-то я это проверил на личном опыте - ко мне в руки попал цифровой ревербератор от какого-то советского эстрадного усилителя. Там АЦП был сделан на базе ИР17, ЦАПы использовались 572ПА1 - вполне достаточно. Переделав схему, я загонял в память оцифрованный звук и воспроизводил его. Конечно, по времени получалось очень мало, но качество было весьма приличным. Правда, дальше эксперимента дело не пошло.
Так что не знаю, что сказал бы Алексей, но, думаю, сейчас не то время, чтобы разгонять процессор восьмибитки. Получить прирост производительности можно другими методами, не вмешиваясь в схемотехнику компьютера. Нет, конечно, каждый волен делать со своими железками то, что хочет, на то это и хобби, но моё мнение - это резко снижает повторяемость, если, конечно, предполагается, что кто-то заинтересуется. Как я уже писал выше, вставить плату в слот может каждый, а вот заниматься резнёй на плате - не думаю. Лично я, первым делом, задался бы вопросом - чего ради? Ну, порежу я дорожки, напаяю проводов, микросхем - что это мне даст? Ничего нового, кроме того, что процессор будет быстрее складывать и вычитать. Стоит оно того? Новые программы? А где они?
Повторюсь - я ни в коем случае не говорю, что разгон процессора "Агата" - это плохо. Кому что нравится. Я только высказываю сомнение в том, что это будет востребовано. Написание программ под "Агат" сейчас огромная редкость и, за последнее время, такие случаи можно пересчитать по пальцам. На одной руке. Поэтому я и притормозился с платой видеопроцессора, предположив, что USR не будет продолжать работу над игровым движком - не хочется рождать очередную мёртвую железку...

42 Отредактировано garnizon (09-05-2021 12:57)

Re: Разгон АГАТа

В некоторых темах на форуме упоминалось что для отображения более крупных режимов агату не хватает быстродействия.
А вот как реально разгон агата может это изменить?

Конкретно интересует не всякие там совсем нестандартные режимы,
а вот именно производные от стандартных агатовых, например:

- 512х512 монохром
- 512х256 4 цвета
- 256х256 16 цветов
- Т64 цветной

Ну да понятно что все они по размерам видеоокна неприлично большие, но все равно.

43 Отредактировано Voldemar0 (09-05-2021 19:27)

Re: Разгон АГАТа

Я в 90-е делал для семёрки возможность вывода текста в HGR (именно диалог бейсика и все связанные с ним: CATALOG, PRINT...)  - примерно то же, что сделано в эстонском (?) бейсике и био-бейсике. У меня было два режима скролинга: "быстрый" - когда при прокрутке экрана копировались сразу всё байты на новые места (т.е. по текстовой строке за проход) и "медленный" - когда за проход копировались только по графической строке. Таким образом для тайлов 7x8 нужно было 8 проходов,  но зато скроллинг был довольно плавный. Так вот если на "быстрый" режим 6502 ещё более-менее хватало (всё равно медленнее чем Т32 - в 4 раза медленнее), то "плавный" режим работал, очевидно, ещё медленнее: в 4 * 8 = 32   раза. Было совсем грустно, хотя и красиво.

И вот тут бы явно разгон не помешал. Причем либо разгон проца, как пытается сделать Leon, либо путём добавления вспомогательных блоков, например, добавлением DMA-контроллера - как предлагает AlexBel.
Мне определённо импонирует второй путь, так как он заметно проще и не ломает совместимость по дисководу и прочему, что связано с реальным временем. Но это потребует небольших доработок существующего ПО. Рано или поздно я доберусь и до этой темы ;) Но не в этом году.

Т.е. даже для существующих режимов проц уже работал на пределе для сложной обработки изображения. Большее разрешение для агата не делали как из-за ограничения по процу, так и по доступным мониторам: сколько там "колокольчик" по докам мог вывести ?

Хотя вот Т64 цветной, вероятно, мог бы быть реальным вполне. Но тут один вопрос: это получиться не совсем круглый объём озу: 64x32 - это 2 кб, а если ещё байт аттрибутов - это 3 кб. Некрасивая цифра. Для девяточного ДК это, возможно, не было бы проблемой - ПЗУшки прошил поинтереснее и всё. А вот для семёрки, где все цифры - круглые, возможно, проще было бы даже отвести по 4 кб, и каждый 4й байт сделать неиспользуемым.

Но тут опять вопрос к монику: колокольчик не умеет цвет, а вывезет ли с цветом 512x256 32втц201 - не знаю....

--

ЗЫ Так, просто вдруг интересно: VGA имеет возможность плавной прокрутки в текстовом режиме. Юрий Панков делал вьювер для DOS, который позволял читать тексты с плавной прокруткой. Плавность была очень приятная, немного напоминающая современную прокрутку на смартфонах, но более точную и без инерционности.

Могу ошибаться, но вся идея там очень простая: видеоконтроллеру можно задать номер графической строки, с которой будет начинаться вывод первой текстовой строки. Т.е. обычно тайл 8x16 выводится с нулевой строки, а тут его начинают выводить с 0, потом с 1, со 2... с 15. А потом прокручивают экран в памяти и снова выводят с 0 строки.

44

Re: Разгон АГАТа

garnizon пишет:

В некоторых темах на форуме упоминалось что для отображения более крупных режимов агату не хватает быстродействия.
А вот как реально разгон агата может это изменить?

Небольшой холивар про FPS на стандартных режимах (16К страница). Для нестандартных режимов (страница 32К) делим фпс на два...
Ещё про скорострельность. И ещё.

Voldemar0 пишет:

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

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

Voldemar0 пишет:

Но тут один вопрос: это получиться не совсем круглый объём озу: 64x32 - это 2 кб, а если ещё байт аттрибутов - это 3 кб.

Как 3КБ? На каждый символ еще байт аттрибутов - это же 4КБ...

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

45

Re: Разгон АГАТа

LeoN пишет:

[flood] ;)

У нас на форуме есть автор "Фонографа" Алексей Рыбаков?

[/flood]


Нет, но вроде был адрес почты его

46

Re: Разгон АГАТа

Я для себя агатовские режимы делю по числу байтов на строку :)
1) 32 байта/строку = ЦГНР, МГВР
2) 64 байта/строку = Т32, Т64, ЦГСР, ЦГВР, МГДП
3) эппловый 40 байт/строку = Т40, HGR

Начинать разгон надо именно отсюда. Вот если бы в Агат поставить К565РУ5Б, у которой время обращения 230 нс, и вдвое увеличить частоту чтения памяти, то тогда можно было бы сделать еще пару режимов:
1) 128 байт/строку
2) эппловый 80 байт/строку

Тогда реально было бы сделать вот эти режимы:
- 512х256 4 цвета
- 256х256 16 цветов
- Т64 цветной

Ну и 80 колоночный текстовый эппловый режим и Double Hi-Res.

А удвоенная частота ЦП позволила бы немного сгладить тормоза. Впрочем, для настоящей плавности ЦП надо гнать гораздо больше. Я когда-то для себя вывел такую формулу плавной 2D графики: процессор должен уметь полностью копировать все содержимое экрана с частотой кадров.

То есть, если мы хотим плавную графику в режиме ЦГВР, значит, процессор должен уметь копировать данные со скоростью 400 килобайт в секунду. В реальности у неразогнанного Агата скорость копирования примерно 70 килобайт в секунду. Ну, собственно, у игровых приставок на 6502 потому и была тайловая графика - весь экран в итоге занимал один килобайт, за счет этого достигалась скорость.


А что касается режима 512х512, то тут надо переделывать дисплейный контроллер. Потому что 512 строк можно показать только используя чересстрочную развертку, а для этого нужно чтобы ДК формировал правильные полукадры - по 312,5 строк (то есть, четный кадровый гасящий импульс начинается посередине строки, а нечетный - в конце).

Агат выводит полукадры ровно по 312 строк, поэтому при когда мы начнем рисовать второй полукадр, его строчки налепятся аккурат поверх строчек первого, вместо того чтобы рисоваться в промежутке между ними, и увидим мы реально только 256 строк.

Да, ну и поскольку 512х512 - чересстрочный режим, то он будет мерцать, что не очень приятно.

47

Re: Разгон АГАТа

avivanov76 пишет:

Начинать разгон надо именно отсюда. Вот если бы в Агат поставить К565РУ5Б, у которой время обращения 230 нс, и вдвое увеличить частоту чтения памяти.

Но это уже с потерей совместимости к стоковому Агату?

48

Re: Разгон АГАТа

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

49

Re: Разгон АГАТа

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

50

Re: Разгон АГАТа

garnizon пишет:

Но это уже с потерей совместимости к стоковому Агату?

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

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