Развиваем Балтик

Старый спектрумистский форум

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24548
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

hobgoblin wrote: 12 Nov 2025 04:31 замена РТ на ПЗУ
мультиколор стандарт Балтик плюс стандарт Timex ( малым числом корпусов или ПЗУ не выйдет?)
видеовыход нормальный может быть

все, уже задача
может hi res получится
Ну Timex hi-color (с дыркой между полем пикселов и полем атрибутов) легко ложится на железо Балтика - только прошивку надо поправить в галке, которая одну из РТ3 подменяет. Ну и плюс порт #FF сделать - его декодирование на запись и чтение в классическом Балтике уже есть (чтение тоже надо будет сделать т.к. таймексовские программки читая из порта #FF после записи таким образом проверяют, что они на таймексовском железе запущены).

А вот Timex hi-res будет несколько тяжелее (4-цвет попроще будет) - его можно в следующую итерацию добавить.

И я хочу трюк такой сделать - все небалтиковские режимы кроме hi-res можно будет установить как через балтиковский порт #7E, так и через таймексовский #FF - причём запись в #FF будет заполнять и соответствующие биты #7E, но не наоборот т.к. не все комбинации из Балтика ложатся в парадигму Таймекса.
hobgoblin wrote: 12 Nov 2025 04:31 кста SE Basic както под это железо кастомизировать, выкинуть не нужное, добавить нужное
Я в 2013 присматривался к SE Basic IV, чтобы портировать на Спринтер, но потом понял, что проще будет железо подшаманить, чтобы с ним работало - там в исходнике разве что по мелочи что-то можно менять (типа порты поправить или ключевое слово подменить).
User avatar
Shaos
Admin
Posts: 24548
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

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 остаётся его воткнуть :roll:

Можно сделать так, что если графический режим устанавливается через порт #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…
User avatar
Shaos
Admin
Posts: 24548
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

По портам - в Балтике используется неполная дешифрация, но только по младшему байту адреса порта - для наших целей надо будет ещё добавить частичную дешифрацию старшего байта для некоторых портов (звёздочкой * отмечены новые порты и режимы):

Code: Select all

111111
54321098 76543210 Port  dec
-------------------------------------------------------------------------------
xxxxxxxx 000xxxx1 xx1F   31  Read/Write  8255A port A (Kempston Joystick)
xxxxxxxx 001xxxx1 xx3F   63  Read/Write  8255A port B (LPT data*)
xxxxxxxx 010xxxx1 xx5F   95  Read/Write  8255A port C (LPT aux*)
xxxxxxxx 0xxxxxx0 xx7E  126  Read*/Write System Register (Baltic)
xxxxxxxx 011xxxx1 xx7F  127  Read/Write  8255A control
xxxxxxxx 1xx0x001 xxE9* 233  Read/Write  MC68B50 (ACIA) control*
xxxxxxxx 1xx1x001 xxF9* 249  Read/Write  MC68B50 (ACIA) data*
xxxxxxxx 1xxxx011 xxFB* 251  Write       Covox*
00xxxxxx 1xxxx101 1FFD*      Read?/Write EXT-REG (ROM select + ISA enable)*
01xxxxxx 1xxxx101 7FFD*      Write       RAM paging + ROM select (FUTURE)*
1x0xxxxx 1xxxx101 9FBD*      Write       ISA high address*
101xxxxx 1xxxx101 BFFD*      Write       AY data out*
111xxxxx 1xxxx101 FFFD*      Read/Write  AY data in / AY register*
xxxxxxxx 1xxxxxx0 xxFE  254  Read/Write  Keyboard/Border+Tape+Sound
xxxxxxxx 1xxxx111 xxFF* 255  Read/Write  Timex Screen Modes*
Порт 9FBD как на Спринтере, но дешифруется только 6 битами из 16 и всякие другие номера тоже могут срабатывать типа DFFD.
7FFD пока небудет, а если в будущем добавлять порт разрешения восьмушек DOCK #F4 (244), то придётся расщеплять декодер порта #FE.
Дешифрация F9/FB/FD/FF делается как в Балтик-FDC (но без FDC).
И раз уж появился #FB, то почему бы не добавить ковокс? ;)
https://dukeyusupov.ru/2025/02/17/zx-covox.html

P.S. MC68B50 (ACIA) это чип контроллера последовательного порта на 115200 бод как в RC2014 (например его можно задействовать для подключения ESP8266).

P.P.S. Кстати у Прусака ошибки в табличке декода https://zxbyte.ru/baltic.htm
Нолики в A0 написаны там, где должны быть единички для 1F/3F/5F (у меня выше всё правильно).
User avatar
Black_Cat
Doomed
Posts: 574
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Развиваем Балтик

Post by Black_Cat »

Вааще-то 8250 на отечественном Спектруме подключается по вполне определённым адресам, под которые заточен весь софт:
#F8EF-#FFEF 11111CBA11101111 11111CBA11101111 RS232(F,+F) RS232(F,+F)
Ну да, о чом я, недописи - это же не про Спектрум, откуда им знать про спектрумовские стандарты? :)
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Shaos
Admin
Posts: 24548
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

Да? Не знал
А что за софт?
И что значит CBA?
Три штуки?…

P.S. И кстати 8250 и 6850 это две разные шняги :mrgreen:
User avatar
Black_Cat
Doomed
Posts: 574
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Развиваем Балтик

Post by Black_Cat »

Shaos wrote: 13 Nov 2025 05:27 И что значит CBA?
Двоичные переменные, 3 разряда = 8 адресов
Shaos wrote: 13 Nov 2025 05:27P.S. И кстати 8250 и 6850 это две разные шняги :mrgreen:
Та шо вы такое говорите? :) И зочем эта лишняя сущность, когда стандартом уже является 8250? :) По пинципу - у меня есть говн, и я его прикручиваю? :)
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Shaos
Admin
Posts: 24548
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

Ну благодаря RC2014 все оставшиеся зилогисты пересели на 6850 :)
А твой 8250 это же откровенный писизм :lol:
User avatar
Black_Cat
Doomed
Posts: 574
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Развиваем Балтик

Post by Black_Cat »

Shaos wrote: 13 Nov 2025 06:16 Ну благодаря RC2014 все оставшиеся зилогисты пересели на 6850 :)
:) Ну да, ну да, недописи - это же не за Спектрум :)
Last edited by Black_Cat on 13 Nov 2025 07:51, edited 1 time in total.
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Shaos
Admin
Posts: 24548
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

Сдвинул битик для красоты - пусть будет E9 (233) и F9 (249) :mrgreen:
User avatar
Black_Cat
Doomed
Posts: 574
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Развиваем Балтик

Post by Black_Cat »

Shaos wrote: 13 Nov 2025 06:16 А твой 8250 это же откровенный писизм :lol:
Сказал Шаос, прикручивая ISA8 :) .. недописи.. такое недописи..
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Shaos
Admin
Posts: 24548
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

Кстати в балтиках есть косяк по-моему:
Screenshot from 2025-11-13 06-53-42.png
Как можно видеть при декоде портов никак не учитывается /M1 т.е. схема может случайно сработать в цикле подтверждения прерывания, когда /IORQ=0 и /M1=0
You do not have the required permissions to view the files attached to this post.
User avatar
Black_Cat
Doomed
Posts: 574
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Развиваем Балтик

Post by Black_Cat »

Shaos wrote: 13 Nov 2025 07:55 Как можно видеть при декоде портов никак не учитывается /M1 т.е. схема может случайно сработать в цикле подтверждения прерывания, когда /IORQ=0 и /M1=0
где смайл лицо-рука?.. :) M1/ нужен токо если и для чтения и для записи в дешифраторе юзается один WR/ :)
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Shaos
Admin
Posts: 24548
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Развиваем Балтик

Post by Shaos »

т.е. типа /RD и /WR не случатся в ответе на прерывание и сбоя не будет - понятно
User avatar
Black_Cat
Doomed
Posts: 574
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Развиваем Балтик

Post by Black_Cat »

Ещё М1/ в отечественных Спектрумах обязательно нужно для формирования IORQGE в устройствах шины NemoBus. Если М1/ не заведён, то значит это периферийное устройство проектировали безграмотные недописишники, которые ничего не понимают в Спектруме :)
Last edited by Black_Cat on 13 Nov 2025 09:56, edited 1 time in total.
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Black_Cat
Doomed
Posts: 574
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Развиваем Балтик

Post by Black_Cat »

Shaos wrote: 13 Nov 2025 08:51 т.е. типа /RD и /WR не случатся в ответе на прерывание и сбоя не будет - понятно
типа, при юзании в дешифраторе токо WR/, без М1/ не разобрать это цикл чтения порта, или вектора прерывания.

И добавь смайл рука-лицо, без него с недописишниками невозможно общаться :)
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.