Да, я это и имел в виду.
Лучше сделать меньшее количество строк, чтобы бОльшая часть с начала кадра была ими заполнена, а меньшая (остаток) просто черная. Легче идентифицировать конец работы кода.
Вид для печати
Сделал вариант практически по ТЗ - основное место занимает зеленый фон с красной линией и есть черный промежуток. Приложил исходники. В дос эта версия должна выходить.
Слайды 153 и 154. Картинки стоят как вкопанные, цвета в обоих случаях красный с зеленым, просто телефон так видит.
Вложение 68139Вложение 68140
Думаю можно подвести итог по параметрам изображения океана. 320 строк, 384 LoRes точки / 768 HiRes точек в строке, 153.6 такта процессора в строке, 49152 такта процессора в кадре.
Дальше отвлеченные бесполезные рассуждения.
На мой взгляд авторы могли взять кварц 12.5 МГц и сделать 400/800 точек в строке, 160 тактов процессора в строке, и 312 строк в кадре (49920 тактов процессора в кадре). Тогда и штатные возможности ВМ80 были бы полностью использованы (2.5 МГц) и целое число тактов процессора в строке и нормальное число строк в кадре. Возможно такие кварцы были менее доступны, чем 12 МГц.
Отлично, это можно уже занести в копилку знаний. Заодно вычислить, сколько занимает один такт процессора.
Авторы точно не страдали от невозможности достать комплектуху. Скорее просто не могли придумать, куда нужно столько строчек в строке, и сколько видеопамяти отъестся. Или, возможно, просто не задумывались в эту сторону. Вот что процессор работает на 1.5МГц, как я понял, малость расстраивает.
Эти доработки можно по идее реализовать, переписать софт, но это будет уже не "Океан-240".
Насчет процессора не все так плохо, 2.4 не намного меньше 2.5.
- - - Добавлено - - -
А лично у тебя, кстати, в связи с общим оверклоком проц аж на 2.45-2.46 работает.
Я стал себя чувствовать немного лучше :)
Но все равно маловато процессора, тем более что доступ ко вкусным периферийным вещам идет через команды IN/OUT. 153.6 тактов на строку имеется в виду на все 384 точки, включая бордюр; значит, типовая пара
съедает 7+11=18 тактов, и таких типовых пар за строку процессор успеет сделать лишь 19. А если выкинуть бордюр, то на 256 точек типовых пар будет 14... что плохо согласуется с практикой. На практике у меня в видимую строку укладывалось хорошо если 3 таких пары, ну максимум 6. (NB: проверить еще раз)Код:MVI A, d8 ; 7 тактов
OUT d8 ; 11 тактов
tnt23, ты в расчете торопишься.
1. mvi + out = 7+10 тактов для 8080. В видимой части строки (256 точек) таких пар поместится 153.6*256/384/17=почти точно 6.
Т.е. 6 пар - нормальный, правильный результат.
И это даже можно попробовать высчитать из последних картинок.
2. Картинка 154 снята попрямее, лучше по ней. Ширина "зеленой" (мы же знаем, что она зеленая) части изображения в районе над черной линией - примерно 371 точка картинки. Ширина красной части в этой строке - примерно 64 точки картинки. 371/64=5.7969. Учитывая перекошенность картинки и низкую точность измерения вполне нормальный результат.
- - - Добавлено - - -
А есть еще "метод b2ma", xra + out=14 тактов. В видимой части строки поместится 153.6*256/384/14=7.3 полоски. Если бы у тебя показывал цвет фона, то почти можно было бы стандартную последовательность цветов БЖГЗПКСЧ показать, по крайней мере 7 цветов из 8.
Есть исходное состояние
01111000 Б
и 7 переходов по маске xor (я привел маски, не результирующие состояния)
00001000 Б->Ж
00101000 Ж->Г
00001000 Г->З
00111000 З->П
00001000 П->К
00101000 К->С
00001000 С->Ч
Получается есть 1 исходное значение и 3 разных маски, регистров хватает и даже остаются.
Но у меня есть подозрение, что если менять цвет только цветом фона, полоски могут получиться слегка зигзагообразные.
Чтобы было ровно возможно придется продумать комбинированный метод, т.е. нарисовать полоски разными цветами и менять цвет фона/палитру на одинаковых цветах. А тут возникает еще один вопрос - b2m в эмуляторе сделал цвета фона темными, а переднего плана - светлыми, т.е. они не совсем совпадают и не взаимозаменяемы. Интересно, как на реале.
На реале, подозреваю, один и тот же цвет фона и переднего плана должен выглядеть одинаково. На моей реплике это уже давно не так, я скрутил яркости напроч(tm), чтобы получить пристойные цвета переднего плана на студийном RGB мониторе. При этом полностью потерял цвета фона, то есть фон всегда черный (темный).
Уменьшил сопротивления в диодных цепях до 220 Ом, в палитрах стал проявляться бледный цвет фона:
Скрытый текст
tnt23, у тебя серт протух:
https://jpegshare.net/images/51/7c/5...24211b1ac6.png
Обновись.
HardWareMan, спасибо. Это не совсем у меня, но я передам по принадлежности :)
Update: поправили.
tnt23, вижу, даже тэг сработал:
https://jpegshare.net/images/b2/1c/b...79e0b0ba97.png
Жизнь потихоньку налаживается, можно и конфиг эмулятора чуть подкорректировать. Чтобы вторая область видеопамяти была в эмуляторе и на реале в одном месте, надо поправить в разделе vid : okean-video {
строку
page[1]=mem[4000]
на
page[1]=mem[1C000]
Решил не оффтопить в спрайтах, а написать сюда. Фэнтезийный вариант, как с минимальными затратами получить режим с 16 цветами. Речь о режиме 128x256x16 цветов на точку. Для него нужна замена одной микросхемы и немного вашего любимого провода. D66 (556РТ4) надо заменить как минимум на 556РТ14 и подать туда на три "лишние" адресных входа: сигналы с D34\10 и D36\10 и 3 МГц. Для переключения режима придется пожертвовать половиной палитр и один бит номера палитры отдать собственно на переключалку 2-4/16. Если есть подобная ПЗУшка бОльшего размера, то палитрами можно не жертвовать, но тогда нужно куда-то засунуть бит переключения режимов.
Можно воспринимать это как затравку для размышления над New Okeanом.
А нельзя ему палитру сделать в РУ, чтобы было как на Векторе? 4 цвета само по себе это не обязательно плохо. Плохо, что приходится мириться со странными наборами цветов.
Если заменить ROM на SRAM, то было бы совсем хорошо. Проблема в том, что тогда надо обеспечить возможность процессору записывать в SRAM палитры.
Признаюсь, что немного думал на эту тему, и одна из мыслей такая - весь "классический" океанский софт вроде бы переключает палитры через Esc, а не лезет самостоятельно в порт. А это значит, что можно на SRAM не подавать номер палитры, а вместо этого менять там цвета. При этом три бита порта освободятся. Примерно аналогично можно поступить с битами выбора цвета фона, если сделать перепрограммируемую палитру, то они имхо не нужны (при этом формат хранения и фрагмент схемы после пзу придется немного поменять). Итого освобождаются 6 бит порта, которых с запасом хватит для задания адреса SRAM палитры при программировании. Там достаточно 256/8=32 адреса, т.е. 5 бит, если без ранее озвученной фантазии про 16цветный режим. А если бит c D10\18 отрабатывать не через пзу, а отдельно логикой, то хватит и SRAM с 4 битами адреса. Но еще нужен порт данных для записи в SRAM, надо смотреть куда его приткнуть.
в итоге софта под это не будет
тот который будет
будет работать только в эмуляторе
тк никто дорабатывать машину для этого не будет
платформа не такая распространенная и известная
чтобы сейчас делать новые видео режимы...
меритесь с тем что есть
и ищите способ как выжать больше из то что есть
(впридачу на вид у океана большие возможности)
а не что можно припаять чтоб было 16 цвет на точку...
+1 Добавить в разводку очередного варианта платы не сложно. Насочинять остальную часть прошивки 556РТ14 для такой замены кому поручить?
- - - Добавлено - - -
+1 тоже интересный вариант, но требует схемной проработки вместо более простой предыдущей замены. Кроме того емкие SRAM не долго живут в таких узлах, а разные долгоживущие КР531РУ9 имеют совсем небольшую емкость. Достаточно для задумки КР531РУ9 ? 64 бит (16 слов х 4 разряда) ?
Не стоит воспринимать озвученные мною фантазии слишком серьезно. Хотя они сравнительно реалистичные (особенно первая с заменой пзушки на более емкую), но для их внедрения нужны какие-то очень весомые причины и много желания. Про New Okean я специально написал, хотя это и было толстовато.
Можно спуститься поближе к земле и вспомнить, что у tnt23 не все было гладко с получением цветного изображения с океана. Если уж прикладывать силы, то наверно в первую очередь сюда и уточнить аналоговую часть, чтобы были нормальные цвета изображения и фона. Возможно этот вопрос уже решен, просто я не в курсе.
На мой дилетантский взгляд для палитры лучше (для любого компа которому их будет достаточно, не обязательно для океана) 1802ИР1. Пример такого их использования в Aleste 520. Они двухпортовые и быстрые (в алесте нормально работают с пиксельклоком 16 МГц).
Крайне дефицитная вещь КР1802ИР1, как и КР531АП2. Лучше их оставить для платок ДВК и Союз Неона, а в Океан чего попроще и невостребованное в остальных машинках.
- - - Добавлено - - -
Не зря же даже К155РУ2 заменяют знатоки на сравнительно надежные КР531РУ9.
PS. Может я не со всеми другими м.с. SRAM знаком, которые можно запихнуть в узлы палитры, так Вы просветите пожалуйста.
Оффтоп про регистровые файлы и SRAM 16x4
Если 1802ИР1 проблемные (о чем я не знал, Дмитрий2012, собиравший алесту, не упоминал об этом, возможно у него проблем и не было) и дефицитные, то есть DM85S68N. Они несколько своеобразные (по записи) и сравнительно редкие, но вроде еще можно купить.
Как я понимаю, тут дело в требуемой скорости (играю в капитана очевидность). В корвете (10 МГц) и векторе (12 МГц) работали нормально, в ATM2 (14 МГц) читал про проблемы. Для примера у океана 12, как и у вектора.[свернуть]
DM85S68N не нужны, когда есть две коробки КР531РУ9
Хитрый план сбагрить остатки?)))
Еще оффтоп про SRAM
Есть SRAMина, соответствующая 556РТ4 по организации/объему и быстродействию - 185РУ7. Но у нее выход не ОК и она дороговата. Вместо двух 155РУ2 или 531РУ9 теоретически можно использовать (в новоделах) 185РУ9, она еще и сравнительно недорогая (дешевле 185РУ7). Можно и дальше фантазировать на эту тему, есть ведь и забугорные SRAMины (корпус DIP, 5 V, 55 нс - могут и подойти), вопрос в необходимости всего этого.[свернуть]
Идея появилась из-за неудовлетворенности существующими палитрами. То есть надо добавить еще палитр. Предполагаю, что их число можно увеличить вдвое добавив еще один бит адресации ПЗУ палитр. Один бит в таком богатом компьютере где-нибудь да найдется. Воображаемая совместимость при этом пострадает минимально. А уж какое именно это ПЗУ технологически, и не станет ли оно случайно в чьей-то модификации перезаписываемым, дело второстепенное.
А ПЗУ палитры наверняка и так имеет 4 бита адреса из которых один хронический 0? Тогда вся переделка будет одну ножку поднять и один проводок протянуть.
(Ну и страниц 40 форума на обсуждение какие именно наборы цветов будут в новых 8 ячейках. Если бы были Спасибки, можно было бы уложиться в 25 страниц).
Насчет экономии бит есть еще кандидат - бит REST порта С1h. Стартовую раскладку памяти можно отключать, например, записью в любой порт. Хотя этот бит лучше использовать для каких-либо дополнительных операций с памятью.
- - - Добавлено - - -
Поясню - по факту наличия сигнала записи в порт ввода-вывода. Надо вспомнить, в каком компе так сделано, может даже не в одном.