Black_Cat wrote: 12 Nov 2025 00:32
Shaos wrote: 11 Nov 2025 20:17
Я могу логически обосновать почему надо бит "отключаемого серого" ставить именно в порт FF - файловый формат SCR для Таймекса традиционно имеет размер 12289 байт - 2 чёрно-белых экрана плюс 1 байт с копией содержимого порта FF - изначально для задания цвета hi-res картинки - я же хочу этот же формат использовать для представления своих расширенных режимов - например 4-цветный режим 3 с указанием палитры в D3-D4-D5 или режим 7 который будет тем же hi-res режимом (как 6) но всегда с чёрным фоном и т.д. Вот отсюда и идея хранить "отключаемый серый" в том же 1-байтовом описателе на месте никем не используемого переключателя DOCK/EX (хотя с другой стороны в ТS2068 по умолчанию 8 цвет серый даже когда режим 0000 0000, а я наоборот хочу сохранять единичку для укзаания "серости" - а что с цветом 8 в TC2048 кстати?).
P.S. Ну и плюс кнопочка на плате (или две?) чтобы если что вручную можно было включить-выключить серый (это можно сделать с помощью D-триггера с отдельными входами сброса и установки)...
Понятно, вместо того, что бы добавить собственные, специфические порты, и сделать собственный формат хранения, ты решил организовать бардак в существуюем формате, чтоб никто терь не знал как его расшифровывать - по сложившимся исторически стандартам, или по твоим хотелкам. Так сделать можно, но токо в одном случае - твой компьютер выйдет из классов как 2068, так и Спектрум. Таким образом для 2068 #FF будет значить одно, для Спектрума - другое, а для недобалтика третье, и твой недобалтик не будет себя позиционировать ни как продолжение 2068, ни как продолжение Спектрума.
Ну тогда только в балтиковский порт #7E остаётся его воткнуть
Можно сделать так, что если графический режим устанавливается через порт #FF (т.е. это таймексовский графический режим), то бит серости будет взводится в #7E автоматически (ну может быть кроме новых режимов 3 и 7) - его потом можно будет при необходимости сбросить путём записи нолика в нужное место #7E (предварительно прочитав содержимое порта - надо будет поддержать чтение из него тоже) либо вручную кнопочкой на плате.
С портом #7E правда проблемка есть - существующие балтиковские прошивки (а они должны 100% идти на этом новом железе) пишут туда #00 (нормальный спектрум-экран) и #FB (1111 1011 - спектрум экран по адесу #2000 для DISK-монитора с отключенным ПЗУ) и надо ещё посмотреть что спм пускалка туда пишет (дожно быть #05) - получается что в какой бы свободный бит я этот "серый" не поставил, то в режиме DISK-монитор яркий чёрный будет серым, хотя это может оказаться и норм. Пусть "серым" битом будет D3. Ещё оставшиеся 3 бита D6-D5-D4 можно под подстройку режимов оставить только включать их не битами, а комбинациями битов через ИД7 (т.е. эти подстройки будут взаимосключающими), чтобы 000 и 111 означали нормальные режимы без подстроек (для #00 и #FB посылаемых старыми прошивками):
Code: Select all
000 - norm
001 - 4col (описанный на предыдущих страницах режим 4 цвета, который может быть насажен на любой балтиковский мультиколор)
010 - 25lines (режим 25 строк - я потом когда-нибудь обязательно его сделаю)
011 - reserved
100 - transparent (режим прозрачности для ячеек где FLASH=1)
101 - reserved
110 - reserved
111 - norm
А вот Timex hi-res можно будет включать только через таймексовский порт #FF - для балтика он будет выглядеть как таймекс-мультиколор 111 (одно поле графики при этом сидит по адресу #4000, а другое - по адресу #6000), но с переподключенными иначе мультиплексорами.
P.S. Хотя наверное эти подрежимы надо оставить отдельными битами т.к. они могут включаться вместе, а экспериментальный бит прозрачного флэша можно перенести в #1FFD…