PDA

Просмотр полной версии : ПК8000 - Общие вопросы



Страницы : 1 2 [3]

b2m
13.02.2020, 16:05
может тебе проще узнать
Контактов нет. Как говорится, иных уж нет, а те далече.

ivagor, вот всё, как у тебя :)

Mick
13.02.2020, 16:49
Контактов нет. Как говорится, иных уж нет, а те далече.

Эх облом. Кстати, а у вас в городе есть рынки барахолки всякого ненужного. Может там можно поспрашивать у старожилов. Там как правило контингент уже в возрасте, может и что помнят, те кто детальками торгует.

AMM
31.03.2020, 21:38
Из любви к ПК8000 Хобби набрал вариант книг серии "Руководство пользователя" в формате MS Word (A4):
- Хобби. Книга1. Руководство по эксплуатации;
- Хобби. Книга2. Бейсик;
- Хобби. Книга3. Прикладные программы;
- Сура. Книга6. Ассемблер;
- Хобби. Книга7. Точки входа в ПЗУ ("Книга 7" - это условно).
72007
72008
72009
72010
72011
72012
72013
72014

Mick
01.04.2020, 08:48
Хобби. Книга7. Точки входа в ПЗУ ("Книга 7" - это условно).

А скан этой книги не остался. Если остался, выложи на файлообменник, если не жалко конечно.

Кроме того интересно, откуда в Хобби такая книга и были ли еще другие. Какой то другой вид поставки.

ivagor
01.04.2020, 09:03
Стиль изложения в "Точках входа" местами относительно вольный, что немного удивительно, если это официальная книга.

AMM
01.04.2020, 19:49
Стиль изложения

А скан этой книги не остался.
По поводу Книги 7, конечно, никакой "седьмой" никогда не было, но уж очень хотелось, чтобы такая была. Её появление - это выдача желаемого за действительное, поэтому и указал, что название условное. Дело было так, ровно шесть лет назад ivagor переписывался с demetrius2003 по вопросу дизассемблирования бейсиков советских ПК (см. здесь (https://zx-pk.ru/threads/23026-pk8000-utochnjonnoe-opisanie-arkhitektury-i-programm.html?p=693410&viewfull=1#post693410)), а через год demetrius2003 всё же смог закончить работу над бейсиком ПК8000 и выложил на форуме архив с дизассемблированным текстом и комментариями, которые он перенес в документ Word, см. здесь (https://zx-pk.ru/threads/23026-pk8000-utochnjonnoe-opisanie-arkhitektury-i-programm.html?p=792035&viewfull=1#post792035). Получилось у него 53 страницы увлекательной истории и Ivagor заметил неофициальность в моей редакции, хоть я и пытался отредактировать до уровня научного языка. Плюс исправил описание точки входа 0070h (опрос кнопок джойстика), ошибку которого заметил Ivagor (см. здесь (https://zx-pk.ru/threads/8378-pk8000-soft-staryj-i-novyj.html?p=1011490&viewfull=1#post1011490)). Но кроме ошибки описания, сама подпрограмма 0070h (ASKBTN) имеет ошибку опроса кнопки джойстика №2 для версии бейсика 1.1, что я проверил на моем реальном Хобби. Следовательно, и функция бейсика STRIG работает некорректно в этой версии, т.к. обращается к указанной подпрограмме. Что я и отметил в "Книге 2. Бейсик", порекомендовав в описании регистров ввода-вывода вместо функции STRIG использовать для джойстика №2 функцию INP(&h8D).
Также согласно сообщению Ivagor о работе функции BASE (см. здесь (https://zx-pk.ru/threads/8378-pk8000-soft-staryj-i-novyj.html?p=991116&viewfull=1#post991116)) в "Книге 2. Бейсик" сделал уточнение о необходимости использования двух скобок перед аргументом функции, т.е. BASE((, функция проснулась как спящая красавица после десятилетий сна.
Буду благодарен, если Mick или кто-нибудь другой выложит на своем сайте данный вариант книг, тогда вместо вложений (https://zx-pk.ru/threads/8140-pk8000-obshchie-voprosy.html?p=1054155&viewfull=1#post1054155) я бы в сообщении указал только ссылку

demetrius2003
04.04.2020, 18:58
Фигасе! Ребята! Вот не поверите! Не был на форуме несколько лет. В 2018 прооперировался неудачно (опухоль в голове). И вот решил зайти. Пройтись по местам былой славы, так сказать. И сразу же наткнулся на ветку. Ностальжи однако! Что сказать по теме. Диззасм я тогда так и не закончил. Планировалось пройти прошивку поадресно сверху вниз раза три, чтоб с каждым разом устранять все недочёты и погрешности. Так же планировалось написать пространный мануал по этому делу. Но не срослось. Повторюсь, сначала потерял работу в РЖД, а потом и вовсе... Короче где то под новый 2019-2020 год залил в виртуалку образ винды, где был установлена ИДА. И потихоньку начал ковырять дизассемблер снова. Т. е. по сути захотелось закончить начатое! Сейчас времена не самые лучшие. Работа снова потеряна и на то, чтоб найти чё пожрать нужно много телодвижений, дающихся с трудом. Плюсом ипотека, кредиты. Весело у нас. Не до дизассемблера! Но!!! Ежели кто хочет поучаствовать - милости прошу. постараемся наладить командную работу!

ivagor
04.04.2020, 19:29
demetrius2003, надеюсь получится разобраться с жизненными неурядицами.
Что касается дизасма пзу пк8000, то в прошлом году почти закончил свою версию, когда-нибудь тоже надеюсь завершить.

Arix
05.04.2020, 13:04
AMM, а что за схема на странице 12? Какого-то монитора?
Зачем было дробить архив на такие маленькие кусочки?

ivagor
05.04.2020, 15:01
По поводу дизасмов пзу, есть ведь еще версия DemonId7, ссылку надо искать, соответствующий IDAшный файл датирован 13 годом.

AMM
05.04.2020, 23:16
а что за схема на странице 12? Какого-то монитора?
В качестве примера подключения взят типичный китайский телевизор 90-х годов с электронно-лучевой трубкой, который отлично создает атмосферу того времени, когда мы подключали наши восьмибитные ПК к тому, что было под рукой (получилась "машина времени", которая переносит нас в счастливое детство). Мне попался такой 14" дюймовый телевизор, на схеме которого я указал точки подключения RGB-цветов, а синхронизацию подал через стандартный видео-вход (тюльпан).
Архив разбит на 8 частей потому, что на вложения здесь наложено ограничение в 640 КБ (5000/8).

DemonId7
06.04.2020, 01:54
По поводу дизасмов пзу, есть ведь еще версия DemonId7, ссылку надо искать, соответствующий IDAшный файл датирован 13 годом.
Есть версия поновее: здесь (https://yadi.sk/d/prlas-oVzbVxAg). Файл VESTA.IDB. Что-то еще добавил сам, что-то взял у товарища demetrius2003, в частности работу с арифметикой и мафоном. Просто мне удобнее работать с IDA, чем с вордом, в ней есть и гиперссылки и удобные переходы по коду и прочее, вот и совершенствовал.
Там же выложил остальные наработки:
- DSAVE - утилита записи бейсик-программ на дискеты;
- FORMAT - он и в Африке формат; использовал в своей утилите по юстировке дисковода;
- MDOS - загрузчик системы с дискет и подпрограммы работы с дискогрызами;
- ROI - хорошая утилита по работе с дискетами; уже и не помню зачем дизассемблировал;
- WINCOM & ZEEPCMD - для моего файлового менеджера оказались бесполезны, но зато отчетливо видно, что заимствование кода процветало еще с древнейших времен :) ;
- PILOT - искал в игрухе баг, выражающийся в черном квадрате на заставке, в правом нижнем углу (точно помню на оригинале его не было). Подпрограмма по адресу 0x40B0, в коментах есть пояснения как исправить.

Arix
06.04.2020, 14:10
В качестве примера подключения взят типичный китайский телевизор 90-х годов с электронно-лучевой трубкой, который отлично создает атмосферу того времени, когда мы подключали наши восьмибитные ПК к тому, что было под рукой (получилась "машина времени", которая переносит нас в счастливое детство).
У меня ещё более "дальнобойная" машина времени, даже две. В 1993-м году, когда я купил Суру, наш знакомый подключил его к ЗУСЦТ (Чайка Ц280Д). Правда, по чьему-то "доброму" совету он исключил адаптер. В результате, цвета были ужасные, негатив во всех смыслах. И этот телевизор у меня жив до сих пор! Правда, до недавнего времени, я думал, что он полумертвый, кинескоп севший. А выкинуть всё жалко. Гнездо для подключения компьютера в нём ещё стоит, но оно давно отпаяно, т.к. был заменен модуль цветности на МЦ-31. А тут, используя это гнездо и подпаяв провода куда надо, я подключил приставку цифрового ТВ. И он показывает отлично! Кинескоп хороший. Видимо, радиоканал "севший", но теперь он по боку. Однако, подключать к нему "Суру" я не буду. Ещё одна "машина времени" - телевизор "Сокол". Как монитор 32ВТЦ-402, такой же корпус. Он всё время оставался в хорошем состоянии, были только мелкие ремонты. При его "оцифровке" я подключил и вход RGB. Я тут создавал об этом тему. Проверял его с "Сурой" и со Спектрумом, показывает отлично.

xelby
18.05.2020, 19:00
Коллеги,

Карат ПК8000 есть третий экземпляр. Напомню, выяснили, что производился в на Уфимском Прогрессе.

Дата 12.90, порядковый номер на корпусе 509. Бывший владелец покупал его в Уфе в начале 90-х в комиссионке. Новый или нет - не помнит, про документацию также не помнит.

Тут есть ряд фото, в том числе внутри, прокрутите вниз: https://photos.app.goo.gl/NFQahSMMZvtrbrQAA
Очищен, серые кнопки ещё к осветлению.

На работоспособность не проверялся. Итого:
№ 509 - 12.90 - не проверялся
№ 848 - 02.91 - без распаянных портов джойстиков, рабочий, BASIC 1.0, 1987 (фото примерно в середине архива по ссылки выше)
№ 907 - 03.91 - без БП, не проверялся

Документацию и упаковку не встречал, а бывшие владельцы ничего не смогли сказать.

Mick
11.06.2020, 09:19
На мешке Суру продают с блоком дисковода. Но, если не изменяет память блок дисковода некомплектный - нет блока питания и неизвестно есть ли сам контроллер - он под дискогрызами должен быть. Это надо уточнять у продавана.

Ссылка - https://meshok.net/item/194008140_%D0%A1%D1%83%D1%80%D0%B0_%D0%9F%D0%9A800 0_%D0%B1%D0%BB%D0%BE%D0%BA_%D0%B4%D0%B8%D1%81%D0%B A%D0%BE%D0%B2%D0%BE%D0%B4%D0%BE%D0%B2_%D0%B2%D0%BA %D0%BB%D1%8E%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F

Arix
29.06.2020, 22:06
он под дискогрызами должен быть.
Ну вот... А я посмотрел, нет контроллера, и не стал брать. Кто ж знал, что он так глубоко запрятан, я думал, он позади дисководов должен быть, вроде там место есть. Да и корпус кажется настолько тонким, что под дисководами ничего не спрячешь. Я писал в обсуждении, что контроллера нет, продавец это не опроверг. А ведь лот был в моём городе!
Но скорее всего, контроллера не было, т.к. разъема не было.

dk_spb
29.06.2020, 22:23
Видно же что не контроллера...

ivagor
30.06.2020, 06:13
Дата на блоке НГМД затерта, а по другим экземплярам можно сказать, какой примерно год (№ 120) - 1990?

Mick
22.07.2020, 13:42
Есть версия поновее: здесь. Файл VESTA.IDB.

Народ, а нет ли файла листинга, а лучше готового к компиляции файла исходника этого ПЗУ (любой от ПК8000). Чтобы в любой момент можно было собрать его.
А то искать моя Ида вежливо послала не открыв его.

DemonId7
23.07.2020, 03:25
Странно, файл создан в довольно старой версии IDA - 5.5 и проблем с совместимостью по идее быть не должно.
Если не секрет, зачем исходник ПЗУ? Все равно, пока не дизассемблируешь его полностью, от исходника толку мало - вносить в него серьезные изменения не получится. А по мелочам и hex-редактора достаточно.

Mick
23.07.2020, 08:39
Если не секрет, зачем исходник ПЗУ? Все равно, пока не дизассемблируешь его полностью, от исходника толку мало - вносить в него серьезные изменения не получится.

Мысль одна есть по даунграунду Ленинграда. Опыт хочу провести - поставить туда ВМ80, так вот думал есть исходники бейсика от ПК8000, заменить там процедуру вывода на экран и клаву. Чтобы так сказать попробовать на чем то. Но раз полного дизассма нет, то конечно вопрос снимается.

AMM
24.07.2020, 21:45
Разработал метод переноса любых полноэкранных картинок (изображений) на экран ПК8000.
В архиве из 4-х частей представлены:
- бейсик-программа для просмотра изображений AP;
- 26 примеров графических изображений 256 на 192 точки в CAS-формате;
- утилита BMP2CAS.xlsm для создания своих изображений, с использованием макросов в книге MS Excel;
- инструкция (.docx), описывающая все этапы создания своих изображений.
73137
73138
73139
73140

ivagor
25.07.2020, 10:16
Конвертер картинок для ПК8000 - это хорошо, но текущий вариант на мой взгляд слишком громоздкий (неудобный) и в примерах кое-где остались артефакты.
Есть довольно много готовых качественных картинок, пригодных для показа на ПК8000, например (https://zxart.ee/rus/grafika/poisk-po-baze/pictureType:timex81/sortParameter:date/sortOrder:desc/resultsType:zxitem/)
И один очень важный момент, связанный с графикой не до конца прояснен: яркость должна быть "типа msx", влияющая на три канала (как в emu) или "типа zx", влияющая на один канал (как в emu80). Возможно этот вопрос не прояснен только для меня и для авторов одного из упомянутых эмуляторов, но пока окончательного вердикта не видел.

AMM
25.07.2020, 12:18
Конвертер картинок для ПК8000
Да, действительно, любое спектрумовское изображение с обрезанным бордюром до 256*192 без изменений сохраняется утилитой BMP2CAS в CAS-файл. И спектрумисты создали множество гениальных картин, например, "Девушка под водой". ПК8000 позволяет создавать более детальные по цвету изображения, но уникальных, авторских и легендарных картин для него нет. Предлагается не просто конвертер, с кнопками открыть и сохранить, а мастерская или среда триединства Retro-X, Photoshop и конвертера, целью которой создать дух соревнования и вступить в "схватку" с авторами, работающими для других платформ. На конкретные предложения по улучшению интерфейса BMP2CAS постараюсь отреагировать ([email protected]).
По яркости. Младший бит в коде цвета отвечает за яркость всех цветов одновременно, например, 1110 - серый, 1111 - белый или 1100 - фиолетовый, а 1101 - светло-фиолетовый.

ivagor
25.07.2020, 12:25
любое спектрумовское изображение
Я привел ссылку на картинки для режима timexа, который соответствует по цветовому разрешению ПК8000. Там еще есть картинки с повышенным цветовым разрешением для других режимов.

Младший бит в коде цвета отвечает за яркость всех цветов одновременно, например, 1110 - серый, 1111 - белый или 1100 - фиолетовый, а 1101 - светло-фиолетовый.
Тут нужна проверка на реале. В принципе фотографии с реала со всеми цветами есть, но т.к. до сих пор авторы эмуляторов не пришли к единому мнению, значит вопрос не закрыт.

ivagor
25.07.2020, 14:26
Иллюстрации к тому, о чем я писал

AMM
25.07.2020, 17:10
авторы эмуляторов не пришли к единому мнению
Наслышан об этом старом споре. Но проблема искусственная и связана с непониманием формирования сигналов RGB на аппаратном уровне. Когда на экране, к примеру, должен быть синий цвет, микросхема выдаёт 100%-ый уровень синего сигнала при ярком цвете и приблизительно 75% при неярком. По остальным сигналам уровень равен 0%. Но, когда сигнал попадает в монитор, к синему сигналу электронные компенсаторы начинают добавлять до 30% сигналов зеленого и красного, особенно, когда входной сигнал 100%. И получается не синий цвет, а его оттенок, который и фотографируют, утверждая, что это цвет оригинала. Плюс взаимные помехи и наводки внутри соединительных кабелей. Наиболее ярко это взаимопрониконовение цветов в одном сигнале видно в MSX-палитре. Вот, к примеру, из фотографии палитры эмулятора берем пипеткой в MS Paint ярко-красный цвет, открываем окно "Изменение палитры" и смотрим значение всех цветов. Красный - 255, синий - 90, зеленый - 90. Откуда в чисто красном сигнале из микросхемы ПК8000 взялись синий и зеленый? Возможно в компьютере MSX на аппаратном уровне сделано взаимосмешение цветов, не знаю. Но спектрум, с точки зрения "железа" видеовыхода, ближе к ПК8000. И спор, какой должен быть уровень приглушенного неяркого цвета 75, или 63%, или ещё сколько-нибудь процентов, является всего лишь вопросом индивидуального предпочтения.

DemonId7
25.07.2020, 17:22
Мысль одна есть по даунграунду Ленинграда. Опыт хочу провести - поставить туда ВМ80, так вот думал есть исходники бейсика от ПК8000, заменить там процедуру вывода на экран и клаву. Чтобы так сказать попробовать на чем то. Но раз полного дизассма нет, то конечно вопрос снимается.
В целом ПЗУ дизассемблировано, но нужно пройтись по коду и убрать "магические числа", типа:

ROM:2F0E: lxi b, 0FB5Ch
Плюс нужно подкорректировать константы для задержек. К примеру чтение/запись с кассеты инициализирует переменную:

ROM:341C: lxi h,1911h
ROM:341F: shld magWait0
Понятно, что значение зависит от частоты процессора.
А в целом задача вполне реализуема.

DDp
25.07.2020, 17:45
яркость должна быть "типа msx", влияющая на три канала (как в emu) или "типа zx
Штатно из компьютера выходят четыре цифровых сигнала и преобразование в аналоговый RGB происходит где-то снаружи (похожие вопросы возникают, например, с Корветом, Орионом). Кто как подмешает интенсивность к цветам при подключению к монитору, так и будет.

Во вложении захват с Суры через комплектный ТВ-адаптер.
73152
Интенсивность подмешивается через диоды, схема аналогична Спектрумовской - 15 цветов, тёмно-серого(ярко-чёрного) нет.
К ТВ-адаптеру у меня два вопроса:
1) почему такое отношение яркого и не_яркого ?
2) почему на яркости работает один резистор (R1) ?
73150
Вижу необходимость вместо одного R1 использовать три последовательно с каждым диодом и номиналом (навскидку) 1...1,5 кОм.

---

Если в этом же тв-адаптере подмешивать интенсивность без диодов, а только на резисторах, будет 16 цветов(плюс тёмно-серый) и яркие цвета с меньшей насыщенностью.

DemonId7
26.07.2020, 03:29
Разработал метод переноса любых полноэкранных картинок (изображений) на экран ПК8000.
.....

За утилиты спасибо. А вот BMP2CAS.xlsm не пашет, версия офиса не подходит. Впрочем, он особо и не нужен, сам накидаю утилитку для конвертации готовых битмапов. В связи с чем вопрос: а нельзя ли выложить файлы примеров картинок в формате BMP? Хочу попробовать сделать вьюнер под CP/M.

ivagor
26.07.2020, 05:37
Хочу попробовать сделать вьюнер под CP/M.
Заодно можно добавить и просмотр таймексовских (https://zxart.ee/rus/grafika/poisk-po-baze/pictureType:timex81/sortParameter:date/sortOrder:desc/resultsType:zxitem/)

ivagor
26.07.2020, 07:44
Интересно бы еще увидеть цвета ПК8000 при цифровом подключении к чему-то вроде 6106 или Кодис М

AMM
26.07.2020, 11:03
BMP2CAS.xlsm не пашет, версия офиса не подходит.
Быть такого не может. Скорее всего нужно включить макросы, которые блокирует система безопасности MS Excel (как сделать это описано в инструкции). Вот примеры в формате BMP
73158

ivagor
26.07.2020, 11:17
Быть такого не может.
У меня аналогично: "Этот файл был создан в более поздней версии Microsoft Excel и т.д.". Про макросы отключены это уже потом пишет. Совсем не агитирую что-то переделывать, сам бы я при необходимости сделал конвертер на матлабе или модифицировал какой-нибудь имеющийся на C или Delphi.

DemonId7
26.07.2020, 20:37
Заодно можно добавить и просмотр таймексовскихЭто в смысле 8 точек на один аттрибут цвета? Я о таких и думал. Хотя конечно никто не мешает просматривать и "спектрумовские" одни цвет на одно знакоместо.


Быть такого не может.Почему не может? У меня офис 2003, безопасность отключена как класс. Думаете такое старье справится? ;) Новее не предлагайте, для меня и этот то избыточен.
За фотки спасибо.

ivagor
26.07.2020, 20:46
Это в смысле 8 точек на один аттрибут цвета?
Там еще немного есть (1 (https://zxart.ee/rus/grafika/poisk-po-baze/pictureType:mlt/sortParameter:date/sortOrder:desc/resultsType:zxitem/), 2 (https://zxart.ee/rus/grafika/poisk-po-baze/pictureType:mc/sortParameter:date/sortOrder:desc/resultsType:zxitem/)) и есть (https://zxart.ee/rus/grafika/poisk-po-baze/pictureType:multicolor/) с промежуточным цветовым разрешением. Возможно это еще не все.

ivagor
27.07.2020, 06:18
Еще не стоит забывать про msx, палитра screen 2 немного отличается от ПК8000, но это не смертельно. Есть и много готовых крутых картинок и весьма интересный конвертер (http://msx.jannone.org/conv/). Клоню к тому, что желательно добавить в просмотрщик и .sc2

DemonId7
27.07.2020, 08:28
Осталось еще форматы этих файлов узнать...

ivagor
27.07.2020, 09:22
По спековским мультиколорным форматам кратко написано здесь (https://github.com/moroz1999/zx-image). В принципе могу набросать процедуры вывода для ПК8000.
SC2 - это дамп msxной видеопамяти в SCREEN 2 при дефолтной бейсиковской раскладке. Фактически у ПК8000 она аналогичная (0000 - графика, 1800h - символы, 2000h - атрибуты), отличия только в атрибутах (надо поменять фон и изображение и номера некоторых цветов не совпадают).

- - - Добавлено - - -

Про sc2 забыл. Там первые 7 байт - заголовок, его можно просто игнорировать/пропустить.

DemonId7
27.07.2020, 10:13
Ясно. На досуге продумаю интерфейс и начну. Смущает правда режим Screen 2, не знаю удастся ли перейти в него с сохранением возможности обращаться к функциям CP/M.
От функций непосредственно вывода не откажусь, благо PL/M легко состыкуется с ассемблерными модулями.

ivagor
27.07.2020, 15:07
Если немного отвлечься от просмотра картинок, но далеко от вопроса изображения не уходить, то получается, что раз у ПК8000 цифровой выход изображения, значит для него можно сделать внешнюю палитру.

AMM
28.07.2020, 01:19
весьма интересный конвертер.
К сожалению, это тупиковый путь:
1. Указанный конвертер не обладает автономностью.
2. Автономная утилита Retro-x умеет делать тоже самое (см. раздел MSX в перечне платформ импортирования).
3. Также она позволяет изменять параметры экспозиции и порогов в реальном времени по каждому цветовому каналу с отображением результата в окне Просмотра. Представлен широкий набор параметров преобразования цвета с целью их уменьшения количества для каждого из методов: Ordered dither, Error diffusion и др.
4. Попытка перевести изображение с палитрой MSX к палитре ПК8000 не корректна, т.к. преобразование уже выполнено с целью наибольшего приближения к цветовому образу оригиналу. А простая замена палитры позже, приводит к катастрофичному уходу от оригинала (проверено, да, трудно было принять, что изображения для MSX, прямого прародителя ПК8000, не совместимы с эстетической точки зрения). Поэтому в инструкции к BMP2CAS эта платформа не рассматривается. Вместо предлагается упомянутый Timex режим Спектрума, наиболее приближенный по-моему к ПК8000.

ivagor
28.07.2020, 05:49
Для меня автономность - плюс, но не обязательное свойство конвертера, хотя при прочих равных выберу автономный. Retro-X мне не очень нравится, т.к. у меня подглючивает. Пользовался предыдущей версией - BMP2SCR, она мне в принципе нравилась. С палитрой msx 2 варианта: 1) "дешевый" - корректировать при выводе на ПК8000; 2) "хороший" - подправить конвертер - это как правило не сложно при наличии исходников и дает действительно хорошие результаты (по крайней мере один конвертер я так правил). У jannone, кстати, есть опции отсутствующие у BMP2SCR и Retro-X (и, ради справедливости, обратное тоже справедливо). Ну и есть еще конвертеры разной степени универсальности, только я ими особо не пользовался, надо пробовать.

ivagor
28.07.2020, 07:57
Склероз - неприятная штука, но получилось забавно. Оказывается я переделывал под цвета ПК8000 (об этом далее) Сишный вариант (https://www.msx.org/downloads/related/graphics/screen-2-converter) именно конвертера jannone. Но я переделывал под цвета из emu (тем более в emu80 в 2008 ПК8000 не поддерживался). В итоге - переделать тот конвертер для ПК8000 с учетом уточненных цветов очень просто, надо поменять палитру после комментария
// TMS9918 RGB palette - approximated 50Hz PAL values

- - - Добавлено - - -

Для полноты конечно желательно добавить настройку "силы" дизеринга и добавить выбор его типа. С тех пор я сделал матлабовский конвертер с такими фичами, правда без адаптации к ПК8000.

DemonId7
29.07.2020, 07:28
Мэппирование памяти великая штука! Режим 2 без проблем установился из под CP/M, с отображением видеопамяти на адреса 0x8000-0xC000. И система не запорчена и для программы остается еще 32 Кб памяти. Так что вьюнер похоже будет :)
Надеюсь товарищ ivagor не будет против, если я отсюда (https://zx-pk.ru/threads/32077-prosmotr-kartinok-na-pk8000.html) позаимствую подпрограммы вывода на экран ?

ivagor
29.07.2020, 08:19
Конечно я не против, а если еще буду упомянут в каком-нибудь readme или еще где-нибудь - будет совсем хорошо.

Dec
16.12.2020, 09:09
Пилю в свободное время свой конвертер изображений (https://zx-pk.ru/threads/32400-dadither-eshche-odna-programka-dlya-dither-ga-kartinok.html) в форматы различных ретро-платформ. Есть желание добавить поддержку ПК8000. Насколько я понял, экран ПК8000 по сути копия экрана ZX в режиме multicolor. А multicolor для ZX DaDither уже умеет делать, и переделать по ПК8000 не сложно. У меня есть несколько вопросов.

1) Как кодируются цвета в байте? Правильно ли я понимаю, что в блоке 8x1 могут быть любые два цвета из 15?
2) Какова используемая палитра?
3) Каков общепринятый для платформы способ хранения графики?

DemonId7
16.12.2020, 09:52
1) Как кодируются цвета в байте? Правильно ли я понимаю, что в блоке 8x1 могут быть любые два цвета из 15?
Старшая тетрада - цвет фона, младшая - цвет изображения. И да, каждый блок 8x1 имеет свой байт цвета (фона и изображения)

2) Какова используемая палитра?
0 - черный
1 - черный
2 - зеленый
3 - светло-зеленый
4 - синий
5 - светло-синий
6 - голубой
7 - светло-голубой
8 - красный
9 - светло-красный
10 - желтый
11 - светло-желтый
12 - фиолетовый
13 - светло-фиолетовый
14 - серый
15 - белый
Об оттенках цветов рассуждать бесполезно, они различались от машины к машине, так как светлые цвета настраивались в адаптере разными людьми и на разных заводах :)

3) Каков общепринятый для платформы способ хранения графики?
Такого нет в природе. Насколько знаю, единственный вьюнер картинок здесь. (https://zx-pk.ru/threads/8378-pk8000-soft-staryj-i-novyj.html?p=1078570&viewfull=1#post1078570)
Так что форматы стандартные спектрумовские и MSX.

Dec
16.12.2020, 11:28
Об оттенках цветов рассуждать бесполезно
Понятно. Но может быть есть какие-то более менее устоявшиеся "стандарты", применяемые в эмуляторах?


Так что форматы стандартные спектрумовские
Не совсем понятно, как использовать спектрумовские форматы для экспорта, если на спектруме есть ограничение на использование либо светлых, либо темных цветов в одном блоке 8x1. На ПК8000, как я понял, такого ограничения нет.


и MSX.
А какой конкретно формат?


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

ivagor
16.12.2020, 11:33
А какой конкретно формат?
SC2

Dec
16.12.2020, 11:39
Еще забыл спросить о PixelAspectRatio.

- - - Добавлено - - -


SC2
Не подкинешь ссылку на документацию по формату?

ivagor
16.12.2020, 12:24
Еще забыл спросить о PixelAspectRatio.
Пиксельклок ПК8000 5 МГц, соответственно ширина точки 200 нс. Для сравнения у спеков с пиксельклоком 7 МГц ширина точки 142.86 нс, т.е. точка ПК8000 на 40% шире.


Не подкинешь ссылку на документацию по формату?
Это копия видеоозу в режиме SCREEN2 в дефолтном варианте + заголовок. Насчет полного описания сложно так сразу, вроде вот (http://grafx2.gitlab.io/grafX2/doxygen/html/group__msx.html) неплохой вариант. Для просмотра картинки достаточно pattern table, name table и color table (нужно еще почитать про msx vdp).

DemonId7
16.12.2020, 14:19
Понятно. Но может быть есть какие-то более менее устоявшиеся "стандарты", применяемые в эмуляторах?Здесь фотка всплывала с реала:
74222
В принципе это то, что я помню с "детства". На моем современном нет родного адаптера и тем более монитора, так что цвета немного отличаются (более заметные переходы между светлыми и темными цветами, но яркость и контрастность я сам настраивал).

А какой формат наиболее удобен для этого просмотрщика?MSX конечно. Он хоть и больше, но наиболее совместим, разница только в цветах вроде.
-----------------------------------------------------
Что касается aspect ratio, то его никто пока не знает. В инете нашел только одну более-менее вменяемую фотку с родным монитором:
74223
Это видеорежим 0. И здесь видно, что изображение сильно вытянуто. По крайней мере сильнее, чем на EGA-мониторе. Видимо это из-за особенностей монитора "Электроника 32ВТЦ", чей экран совсем не соответствует буржуйским 4:3. Думаю по этому монитору можно вычислить родной aspect ratio.

Dec
16.12.2020, 20:15
Получилось как-то так:

https://jpegshare.net/images/28/c8/28c82488248293bd5b3d29a21ed7b11f.png

Поскольку никто не хочет сознаваться в том, какие палитры используются в эмуляторах, то на выбор лишь две палитры: обычная линейная и палитра с картинки от DDp. Экспорт в SC2. Буду признателен, если проверите корректность создаваемых файлов. Скачать (https://www.tc4shell.com/binary/DaDither.exe).

ivagor
16.12.2020, 21:29
Получилось несколько странно. DaDither создает msxный sc2, но с палитрой ПК8000. В итоге iview показывает не совсем то, а msx - совсем не то. Момент спорный, но имхо если конвертить в SC2, то палитра должна быть MSXная (и скорее всего отдельная msxная вкладка). А собственных форматов графики ПК8000 вроде и нет (разве что придумать его).

Dec
16.12.2020, 21:33
Получилось несколько странно. DaDither создает msxный sc2, но с палитрой ПК8000. В итоге iview показывает не совсем то, а msx - совсем не то. Момент спорный, но имхо если конвертить в SC2, то палитра должна быть MSXная (и скорее всего отдельная msxная вкладка).
Что-то я перестал понимать. Есть MSX, у которого своя палитра. Есть ПК8000, у которого своя палитра. Как iview преобразует палитру MSX в свою?

ivagor
16.12.2020, 21:42
В iview при просмотре sc2 цвета msx заменяются на ближайшие соответствующие цвета ПК8000.

Dec
16.12.2020, 22:04
В iview при просмотре sc2 цвета msx заменяются на ближайшие соответствующие цвета ПК8000.
Где-то можно посмотреть эту таблицу соответствия? Мой вопрос сводится к теоретической возможности мне в кодере писать такие цвета, которые после замены станут правильными. Если такой возможности нет, то давайте придумывать новый формат. Самый простой вариант - смена сигнатуры SC2 файла, можно, например, заменить FE на любое другое значение, или в первые 7 служебных байт записать в строку "PC8000".

- - - Добавлено - - -


просто raw копия видеопамяти без заголовка
Что бы минимально менять уже написанный код, то можно обойтись сменой одного байта в заголовке, который будет символизировать о том, что не нужно производить коррекцию палитры. Также могу дополнительно добавить формат с чистым RAW, но мне нужно описание и образец.

ivagor
16.12.2020, 22:08
Где-то можно посмотреть эту таблицу соответствия?
Здесь (https://zx-pk.ru/threads/32077-prosmotr-kartinok-na-pk8000.html?p=1074486&viewfull=1#post1074486) в sc2.asm есть таблица ClrTab. Индекс в ней - msxный цвет, значение соответствующее этому индексу - цвет ПК8000.

Dec
16.12.2020, 22:22
таблица ClrTab
Судя по таблице невозможно преобразовать в цвета 6 и 12. Я, конечно, могу убрать из алгоритма эти цвета, но по мне так это сомнительное решение. Предлагаю заинтересованным решить вопрос с новым форматом.

DemonId7
17.12.2020, 03:02
Про цвета я каюсь забыл. Тогда нечего голову ломать, делаем родной формат, тем более без перекодировки он будет самым шустрым.
Расширение для файлов лучше свое придумать, чтобы путаницы не было. Скажем по аналогии со ScreenMode2 (.SC2) назвать VideoMode2 (.VM2). Ну или еще как. Заголовок типа такого:

Самый простой вариант - смена сигнатуры SC2 файла, можно, например, заменить FE на любое другое значение, или в первые 7 служебных байт записать в строку "PC8000".
Только предлагаю так:
- байт типа файла, например 0xFD;
- сигнатура 'PK8000';
- слепок видеопамяти по аналогии с файлами SC2;

Как то так.

Dec
17.12.2020, 07:51
слепок видеопамяти по аналогии с файлами SC2
Ну тогда расскажите мне кто-нибудь об устройстве видеопамяти, ссылка на документацию устроит. А еще мне нужен для тестов какой-нибудь дамп вместе со скриншотом.

DemonId7
17.12.2020, 20:14
Документ (http://pk8000.narod.ru/fdd_kniga_6_sura_pk8000_asm.7z)
На 68-й странице есть подробное описание структуры памяти видеорежима 2. По сути, это все те же 32x24 символа.
Вначале идет битовый массив изображения (0 - color background, 1 - color foreground), он же знакогенератор (но в данном случае его лучше называть битовым массивом). Сначала 8 байт первого символа, затем 8 байт второго и так далее.
Затем, с адресов 0x1800 до 0X1AFF - буфер экрана, он нам не нужен. Как и область памяти вплоть до 0x1FFF.
Далее с адреса 0x2000 расположена таблица цветов. Здесь все просто, каждый байт отвечает за цвет фона и изображения соответствующего байта в массиве изображения. То есть, в байте с адресами 0x2000-0x2007 определяются цвета для байт по адресу 0x0000-0x0007 в массиве изображения.
В общем похоже на спекки, если я не ошибаюсь, только на одно знакоместо приходится 8 байт цвета, а не один.
----------------------
Что касается дампа, то с этим пока проблема. Из-за переезда все барахло, включая компьютеры, остались в деревне. Могу в субботу на рабочем компе сделать, там есть эмуляторы.

Dec
17.12.2020, 20:32
Затем, с адресов 0x1800 до 0X1AFF - буфер экрана, он нам не нужен. Как и область памяти вплоть до 0x1FFF.
Я думаю что нет смысла писать неиспользуемые области в файл, создаваемый конвертером. В итоге получится файл размером 12288 байт + пара байт заголовока.


Могу в субботу на рабочем компе сделать, там есть эмуляторы.
Ок, я подожду.

DemonId7
19.12.2020, 08:29
Надергал несколько скриншотов. Если не устроят, то скиньте сюда нужные файлы, я их сдамплю.
Файлы:
.IMG - битовый массив экрана
.COL - массив цвета

Dec
19.12.2020, 15:59
Обновил конвертер (https://zx-pk.ru/threads/32400-dadither-eshche-odna-programka-dlya-dither-ga-kartinok.html). Сейчас создаются файлы с расширение VM2. Заголовок 4 байта, состоит из сигнатуры "PC8" и одного байта Версия, текущее значение 0. После заголовка следует 6144 байта IMG, затем 6144 байта COL. Общий размер файла 12292 байта. Также просмотр VM2 добавлен в плагин для TotalCommander (https://zx-pk.ru/threads/31106-predprosmotr-snapshotov-v-total-commander-i-windows-explorer.html).

DemonId7
19.12.2020, 17:12
Обновил вьюнер (https://zx-pk.ru/threads/8378-pk8000-soft-staryj-i-novyj.html?p=1095119&viewfull=1#post1095119).

Ратмир
18.09.2021, 08:16
https://youtu.be/3AGTIIskvSU

ivagor
18.09.2021, 09:34
С одной стороны хорошо, что ПК8000 популяризируется, но для 2021 года доклад слабый, с пробелами и неточностями.

Pyk
22.01.2022, 21:55
Приветствую! Решил вернуться к ПК8000 и немного уточнить эмуляцию этого ПК в Emu80, появилась пара вопросов по адресному пространству компьютера:

1. Я правильно понимаю, что при обращении к внешнему ПЗУ на запись фактически происходит запись в ОЗУ? Это относится к обоим слотам расширения? Если записать во второй слот расширения, к которому ничего не подключено, также произойдет запись в ОЗУ?

2. Что происходит при обращении к последним адресам при подключенном контроллере дисковода? Я так понимаю, что последние 8 байт (7FF8-7FFF) доступны для чтения/записи. Где-то вроде-бы упоминалось, что 7FF7 доступен для записи, а читается из него содержимое ОЗУ? Что с адресами 7FF0-7FF6? Там читается ПЗУ и пишется ОЗУ или есть нюансы?

Вообще, давненько не следил за темой по ПК8000, что-то появилось новое за последние 2-3 года, поддержку чего стоило бы сделать в эмуляторе?

xelby
20.04.2022, 21:05
Коллеги, я создал группу с участием одного из разработчиков компьютера - Малышкина Андрея Арнольдовича.
Он, в частности, может помочь с вопросом 1.

https://t.me/PK8000Sura

При этом - цитирую: "Мне затруднительно вести подобную группу, многое уже забыл. Ведущими были Такочаков Коля - ныне покойный. И Саша Фролов, но он уже дедушка и не общается на тему Суры."

3.4
21.04.2022, 14:50
Я пока не добрался до кабеля, но на днях уточню.

Добрый день!
Получилось ли в итоге сделать кабель? Пытаюсь спаять свой кабель с джеком на другой стороне, но пока что не получается. Сура так же никак не реагирует на воспроизведение. Использую шнур от микрофона с джеком на конце, с другими компами проблем не было этим методом, но здесь не могу разобраться..
Был бы благодарен за любую помощь!

3.4
21.04.2022, 23:30
Все получилось. Если ориентироваться на руководство,книга 1,то второй разъем соединяем с землей,пятый с правым каналом. (При условии что вход 'маг' это мама)

DemonId7
17.05.2022, 21:35
Решил вернуться к ПК8000 и немного уточнить эмуляцию этого ПК в Emu80
.....

Вопросы еще актуальны?

Pyk
19.05.2022, 00:13
Вопросы еще актуальны?
1 по всей вероятности подтверждается, хотя можно и уточнить, 2 актуален

DemonId7
19.05.2022, 18:43
1. Запись в ОЗУ идет не только при обращении к внешнему ПЗУ, но и при обращении к встроенному ПЗУ. Так что да, запись в память будет независимо от наличия в слоте расширения ПЗУ.
С другой стороны, эта особенность дает возможность быстрого доступа к видеопамяти из интерпретатора бейсика. Сам интерпретатор расположен в ПЗУ, отображаемую на адреса 0x0000-0x3FFF. На эти же адреса настроена видеопамять, без дополнительных манипуляций с регистрами. Плюс ОЗУ не пропадает даром, больше для программ остается :)

2. Если в порту 80h на адреса 4000-7FFF отображено ОЗУ, то по этим адресам происходят обычные чтение/запись, контроллер никак не вмешивается.
Если в порт на эти адреса прописано внешнее ПЗУ, то в этом случае дешифратор контроллера включает устройства следующим образом:
для адресов 0x4000-0x7FF6 - активирует ПЗУ контроллера; то есть, чтение из ПЗУ, запись в ОЗУ;
для адресов - 0x7FF8-0x7FFB - чтение/запись в ВГ93, разумеется с дублированием записи в ОЗУ;
для адресов - 0x7FFC-0x7FFF - чтение/запись регистров ИР26, разумеется с дублированием записи в ОЗУ; правда чтение возвращает содержимое ячейки памяти регистра, адрес которой определяется линиями INT и DRQ м/с ВГ93.
А вот для адреса 0x7FF7 с чтением действительно непонятки, поскольку в контроллере чтение не предусмотрено, а чтение из ОЗУ выключено (активен сигнал SLOT ENABLE). Скорее всего при чтении будет мусор.
Косвенно на чтение мусора указывает тот факт, что в коде есть "фантом" - отключенный кусок кода обработчика таймера, для выключения мотора дисковода (в нынешней реализации мотор выключается без таймера). Это единственное место, где непосредственно использовалось чтение с этого адреса. Так вот, перед чтением в порту 80h слот отключался и подключалось ОЗУ, из которого и происходило чтение с адреса 0x7FF7. После чтения слот включался снова.
Есть еще пара чтений с этого адреса, но это уже система и по ним выводы сделать трудно, там по определению на момент чтения на эти адреса отображено ОЗУ.
Могу уточнить этот вопрос на реале, в течении недели-двух.

3. Адреса 7FF0-7FF6 принадлежат ПЗУ контроллера и ведут себя соответственно.

DemonId7
29.05.2022, 17:41
Добрался до реала. Все оказалось просто, при обращении к слоту, ОЗУ компа переходит в высокоимпедансное состояние. Соответственно, при попытке прочесть память в таком состоянии всегда возвращается 0xFF. Чтение по адресу 0x7FF7 как раз и является попыткой чтения ОЗУ, соответственно результат всегда один - 0xFF. То же самое происходит и в случае обращения к пустому слоту, всегда возвращается чтение из ОЗУ - 0xFF.
С адресов 0x7FF9-0x7FFB читается то же, что записывалось туда ранее. По адресу 0x7FF8 иногда читается то что записывали, а иногда другие значения - наверное зависит от того, какое значение записали. Что в общем логично, учитывая, что это совмещенный регистр команд и статуса. По адресам 0x7FFC-0x7FFF писал выше, на реале подтвердилось.
Думаю вопрос закрыт.

cy6
21.02.2023, 02:11
Может, я очень сильно туплю, :v2_conf2:

но замечал ли кто нибудь, насколько сильно отличаются прошивки, на начальной стадии настройки портов В/В?
Прошивки 1.0 (http://www.micklab.ru/file/pk8000/soft/pk8000_basic1_0.rar)/1.1 (http://www.micklab.ru/file/pk8000/soft/pk8000_basic1_1.rar) против 1.2 (http://www.micklab.ru/file/pk8000/soft/pk8000_basic1_2.rar)


;DD32 (84-87)
;rom 1.0/1.1
ROM:2920 3E 84 mvi a, 84h
;rom 1.2
ROM:2920 3E 81 mvi a, 81h
ROM:2922 D3 87 out 87h


;DD32 (84-87)
;rom 1.0/1.1
ROM:2930 3E 10 mvi a, 10Fh
;rom 1.2
ROM:2930 3E DF mvi a, 0DFh
ROM:2932 D3 86 out 86h

ivagor
21.02.2023, 07:26
RAM:2920 mvi a, 84h ; PB7-PB0 режим 1
RAM:2922 out 87h
RAM:2924 mvi a, 0
RAM:2926 out 84h
RAM:2928 mvi a, 82h
RAM:292A out 83h
RAM:292C mvi a, 11111100b
RAM:292E out 80h
RAM:2930 mvi a, 10h
RAM:2932 out 86h

RAM:2920 mvi a, 81h ; PC3-PC0 ввод
RAM:2922 out 87h
RAM:2924 mvi a, 0
RAM:2926 out 84h
RAM:2928 mvi a, 82h
RAM:292A out 83h
RAM:292C mvi a, 11111100b
RAM:292E out 80h
RAM:2930 mvi a, 11011111b
RAM:2932 out 86h

Различия касаются принтера.
В 1.0/1.1 порт B в режиме 1, младшая половина C - вывод
В 1.2 порт B в режиме 0, младшая половина C - ввод

cy6
21.02.2023, 09:20
Различия касаются принтера.
В 1.0/1.1 порт B в режиме 1, младшая половина C - вывод

Как я понимаю, оба в режиме 1. Порт В и младшая тетрада порта С. Верно?
Все, кроме младшей тетрады С, настраивается на вывод.

Итого, в порт В (85h) записывается байт данных для передачи на принтер.
В порт С1 (86h), по спаду сигнала WR/, автоматически записывается исходящий сигнал STROBE/ для принтера.
На порт C2 (86h), от принтера приходит входящий сигнал BUSY, который сбрасывает сигнал STROBE/
Части порта C0 и C3, для прерываний процессора, не используются.

Это, видимо, в младших версиях прошивки, избавили код от протокола взаимодействия с принтером.
В старшей же (1.2), решили все делать программно.

Документация по порту 86h, конечно не соответствует реальности.
В ней, C0 некое абстрактное "состояние печати", а C1-C3 не используются. А на схеме, С0 болтается в воздухе.

Осталось разобраться с выводом на порт С. :)

;DD32 (84-87)
;rom 1.0/1.1
ROM:2930 3E 10 mvi a, 10h ; 00(0)10000 DD32:PORT_C5 D1.6 инверсия светодиод ALF
;rom 1.2
ROM:2930 3E DF mvi a, 0DFh ; 11(0)11111 DD32:PORT_C5 D1.6 инверсия светодиод ALF
ROM:2932 D3 86 out 86h

В обоих случаях, наш светодиод ALF на DD32:PORT_C5 равен НУЛЮ.
Порты С7 и С6 записываются по разному. Хотя поскольку они на схеме висят в воздухе, на это (видимо) просто забили.

Младшая же тетрада С3..С0 в режиме порта 1 выходит тоже просто игнорируется, при попытке ее записать в 0000 ?

ivagor
21.02.2023, 11:03
Как я понимаю, оба в режиме 1. Порт В и младшая тетрада порта С. Верно?
ВВ55 позволяет задавать разные режимы только для портов A (режимы 0-2) и B (режимы 0 или 1), для C можно задать направление обмена, зато раздельно для младшей и старшей половины.

Что касается деталей обмена разных версий ПК8000 с принтером, то я в них не вникал, только запомнил для себя, что в 1.2 изменили вывод на принтер и соответствующие процедуры там другие. b2m разбирался, насколько помню он писал на форуме и в конфигах у него есть соответствующие различия. В частности C7 для 1.2 у него
portC[7]=prn.~strobe
и при печати символа на принтере в пзу 1.2 этим битом щелкают

RAM:22C1 out 85h
RAM:22C3 in 86h
RAM:22C5 ani 7Fh
RAM:22C7 out 86h
RAM:22C9 ori 80h
RAM:22CB out 86h
RAM:22CD ret
А в 1.1 всего лишь

RAM:229E out 85h
RAM:22A0 ret

- - - Добавлено - - -

Если что вывод на принтер в 1.0 по адресу
017С out 85h

cy6
21.02.2023, 13:05
b2m разбирался, насколько помню он писал на форуме и в конфигах у него есть соответствующие различия. В частности C7 для 1.2 у него
portC[7]=prn.~strobe
и при печати символа на принтере в пзу 1.2 этим битом щелкают

Есть одна маленькая проблемка, на схемах от Mick (https://zx-pk.ru/members/503-mick.html)'а порт C7 никуда не запаян, судя по всему.
78511

На родных схемах намного хуже. Порты С1 и С7 закорочены, и обозначены на разъеме принтера как STR(obe). :confused:
78512

ivagor
21.02.2023, 14:13
Порты С1 и С7 закорочены, и обозначены на разъеме принтера как STR(obe).
Я бы сказал что они запараллелены.
В emu:
для 1.1 - portC[1]=prn.strobe (в режиме 1 С1 это как раз /OBF - строб вывода новых данных)
для 1.2 - portC[7]=prn.~strobe

cy6
22.02.2023, 03:54
По блоку начального запуска, интересный момент.

Сигнал выбора чипов DD32 и DD33 (порты в/в), CS84/ и CS80/ соответственно, формируются без относительно обращения именно к портам. :)
То есть по прямому адресу, как на Радио-86РК.

78513

Следовательно, при написании своих прошивок и тестов (!) надо учесть этот момент.

Блок начального запуска выбирает ПЗУ принудительно, после сброса
и до появления в младшем байте шины адреса шаблона типа 100000хх (80h..83h).

То есть, любые адреса в ПЗУ типа 0080, 1081, 2А83 и так далее, приведут к загрузке следующей команды уже не с чипа ПЗУ,
если вы вдруг еще не инициализировали чип DD33 на правильную карту памяти.

Возникает вопрос, всегда ли выбираются указанные чипы, на младших адресах памяти?
Судя по всему да. Но от неверного чтения и записи их спасают уже нормальные сигналы IORD/ => RD/ и IOWR/ => WR/

Этот же вопрос скорее всего будет важен при ремонте, когда не понятно почему не выбирается ПЗУ.

ivagor
22.02.2023, 14:21
То есть, любые адреса в ПЗУ типа 0080, 1081, 2А83 и так далее, приведут к загрузке следующей команды уже не с чипа ПЗУ,
если вы вдруг еще не инициализировали чип DD33 на правильную карту памяти.
По ресету все регистры ВВ55 обнуляются, соответственно все порты ВВ55 будут настроены на вывод и в 80h будет 0. Т.е. если программа не задаст другое значение порта 80h, то все адресное пространство будет пзу.

cy6
22.02.2023, 20:49
ivagor, схема запуска состоит из триггера DD5.1 и мультиплексора DD34.

После сброса, ВВ55 ничего не может выводить полезного, для выбора ПЗУ, так как она отключена триггером и мультиплексором от такой возможности.
Состояние после-сбросовой "отключки" отменяется только после появления сигнала CS80/
Как он появляется, я запостила схему выше.

Также, после сброса ВВ55 не может быть настроена на вывод, это послужило бы причиной множество КЗ и соответствующих бедствий.
Смотрим книгу Домашний компьютер/Зеленко Г. В., Панов В. В.,. Попов С. Н.- М.: Радио и связь, 1989.-144 с.: ил.-. (Массовая радиобиблиотека; Вып. 1139) (https://www.computer-museum.ru/books/radio/mrb1139.pdf),
страница 123.


При начальном запуске из микроЭВМ на соответствующий вход ППА должен быть подан сигнал "Сброс" (RESET).
По этому сигналу все порты ППА настраиваются на выполнение операций ввода в режиме 0 и их разряды обнуляются.

То есть, следуя логике "обнуления" ППА, после любого обращения к адресам, похожими на адрес порта (появление сигнала CS80/), мы должны увидеть ПЗУ, которое четыре раза отображено в адресное пространство (16кб x 4).
Так как карта памяти будет заполнена нулями.
То есть, мы к ОЗУ доступ теряем, а не к ПЗУ как я подумала сначала.
А схема запуска выходит делает тоже самое (множит ПЗУ), только без участия ВВ55.
Интересно было бы это проверить вживую.


По ресету все регистры ВВ55 обнуляются, соответственно все порты ВВ55 будут настроены на вывод и в 80h будет 0. Т.е. если программа не задаст другое значение порта 80h, то все адресное пространство будет пзу.

Что по сути, Вы и сказали, кроме режима на ввод, а не на вывод.

ivagor
22.02.2023, 21:11
Да, про вывод вместо ввода я ошибся, и в книжке которой постоянно пользуюсь и в даташите написано про ввод.

Mick
23.02.2023, 12:33
Есть одна маленькая проблемка, на схемах от Mick'а порт C7 никуда не запаян, судя по всему.

Я при отрисовки ориентировался на плату. На плате C7 и C6 никуда не идут.
Возможно в других более ранних версиях было иначе

cy6
23.02.2023, 13:14
Mick, я имела ввиду что проблема не в схеме.
А в трактовке того, как работает печать на принтер. :)

Заводские схемы нечитаемые, для меня лично, вызывают замыкание мозга и зрения очень быстро.
Прекрасно, есть есть альтернативы.

cy6
07.03.2023, 22:11
То есть, следуя логике "обнуления" ППА, после любого обращения к адресам, похожими на адрес порта (появление сигнала CS80/), мы должны увидеть ПЗУ, которое четыре раза отображено в адресное пространство (16кб x 4).
Так как карта памяти будет заполнена нулями.
То есть, мы к ОЗУ доступ теряем, а не к ПЗУ как я подумала сначала.
А схема запуска выходит делает тоже самое (множит ПЗУ), только без участия ВВ55.
Интересно было бы это проверить вживую.
И все таки, это неверно!

Логика обнуления не выводит ничего наружу (пусть нули и есть, где то внутри самой ППА), так как выводы настроены на ввод.
Для внешнего, мира они Hi-Z, что скорее всего воспринимается как "1".
Следовательно, неинициализированная DD33, показывает для внешнего мира в карте памяти биты Hi-Z (интерпретированные как "1"), что соответствует ОЗУ во всем адресном пространстве.

Но схема начального запуска отключает эту карту, до появления на ША A7=1 и A4=A3=A2=0.
При появлении на ША описанной комбинации, формируется сигнал /CS80, отключающий схему начального запуска.
И, как следствие, включающий карту памяти, которая располагает ОЗУ на всем адресном пространстве.

Для нас является полезным то, что нужно успеть инициализировать DD33 в первые 128 байт ПЗУ (0..007Fh).
Или в "других" 128 байт, избегая младших адресов на 80h, как это сделано в оригинальной ПЗУ с бейсиком.
Если этого не сделать, то произойдет "потеря ПЗУ" и выборка только из ОЗУ.
Данное явление, я уже заметила (https://zx-pk.ru/threads/20530-pk8000-remont.html?p=991405&viewfull=1#post991405) при снятии сигналов с "физики".

http://c6lab.org/pictures/sura_rest/screenshot181216_2.jpg

Теперь ясно, почему не работал мой первый дурацкий тест.
В ПЗУ 2048 байт была записана повторяющаяся комбинация "F3 AA F3 55". А в конце 2048 байт стоял "JMP" на начало.
Но выполнялись только первые 128 байт и все.

cy6
22.03.2023, 03:14
Коллеги, может ли кто помочь решить вопрос с точками в режиме 0?

Точки, которые располагаются вдоль левой боковой границы изображения.
На Суре они есть, а на Хобби их нет. :)
Известно также, что перенос верхней платы (между ПЭВМ), не влияет на вопрос. Похоже, что вопрос на плате нижней. :)

Можете дать свою статистику (есть точки или нет), у кого есть физически ПК8000?

- - - Добавлено - - -

Про какие точки идет речь, хорошо видно здесь (см. видео) (https://zx-pk.ru/threads/8375-pk8000-podklyuchaem-k-televizoru(monitoru).html?p=871763&viewfull=1#post871763).

Dennion
22.03.2023, 11:50
У меня на Хобби такие же.
Но они только в режиме бейсика или cp/m, в играх их нет.

ivagor
22.03.2023, 13:06
они только в режиме бейсика или cp/m, в играх их нет.
Чтобы не видеть их в бейсике надо перейти в режим 1 или 2. У режима 0 (и 3) "левое начало" активной области правее, чем в режимах 1 и 2.

Dennion
22.03.2023, 18:21
Чтобы не видеть их в бейсике надо перейти в режим 1 или 2. У режима 0 (и 3) "левое начало" активной области правее, чем в режимах 1 и 2.
А напомните пожалуйста как это сделать, как у MSX, set screen 1?

ivagor
22.03.2023, 19:01
Как у msx
SCREEN1

AMM
22.03.2023, 21:51
"Точки" можно сделать едва заметными или даже их скрыть. Напомню, вход RCA требует уровень сигнала до 1В, на видео выходе ПК напряжение может достигать более 6В, так как выходная схема делалась под советские телевизоры и подключение к телевизору по инструкции необходимо было выполнять через конденсатор 0,1 мкФ. С композитным входом трюк с конденсатором не пройдет, изображение с помехами получится. Кроме того, длительное использование композитного входа с ч/б сигналом ПК приведет, как это было у меня, к выходу из строя транзистора VT1 (на схеме Mick, или V6 на другой схеме ПК Сура), с эмиттера которого сигнал «Видео» через резистор R61 подается на выходной разъем. Ток через транзистор может превышать максимально допустимый для него - 100 мА, так как на входе RCA разъема всегда устанавливается резистор 75 Ом и подключается к общему проводу. Для уменьшения уровня сигнала на выходе ПК, для снижения нагрузки на транзистор и блок питания, рекомендую заменить в обвязке транзистора VT1 три резистора: R56 270 Ом, R60 24 Ом, R61 33 Ом на транзисторы в 10 раз большего номинала, соответственно, 2,2 кОм, 220 Ом и 330 Ом. Можно последовательно с резистором R61 установить для наладки еще и подстрочный резистор номиналом 2,2К, чтобы еще уменьшить уровень. После снижения уровня сигнала ПК, рекомендую «поиграться» яркостью и контрастностью. Также фильтрует сигнал от «точек» схема адаптера или переходника RGB (инвертора), например, на микросхеме К561ЛН2, представленная в «Книге №1. Руководство по эксплуатации» в моей редакции на стр .11, 13 (скачать архив из восьми частей можно по ссылке https://zx-pk.ru/threads/8140-pk8000-obshchie-voprosy.html?p=1054155&viewfull=1#post1054155). Фильтрация происходит из-за того, что видеоусилитель кинескопа подхватывает импульсы высокого уровня, а низкого («шум») игнорирует. У меня таким образом удалость их полностью скрыть.

Arix
19.04.2023, 21:02
Кроме того, длительное использование композитного входа с ч/б сигналом ПК приведет, как это было у меня, к выходу из строя транзистора VT1
Вот, вот. Так моя "Сура" в 1993-м году благополучно померла, не проработав и года. Я тогда ещё не знал, с какого конца паяльник стреляет, подключение делал наш знакомый телемастер. Подключено было к цветному телевизору 3УСЦТ (Чайка Ц280Д, который у меня жив и по сей день, используется с цифровой приставкой). Адаптер был выкинут (по словам мастера, он звонил на завод, ему так посоветовали). В результате цвета были ужасными, инвертированными. Яркостный выход был использован в качестве синхры. Ну и вот, наигравшись в игрушки с родной кассеты, я купил новую. Но поиграл недолго, в тот же день картинка на телевизоре стала дрожать, потом всё сильнее и в конце концов синхронизация пропала совсем. Дальше всё завертелось, закрутилось, было не до этого. Компьютер пролежал два года, пока я не пошёл в радиошколу учиться на телемастера. Тогда я его и починил. Заменил этот транзистор, вернул на место адаптер, подключил к телевизору "Горизонт" пятого поколения (на настоящий момент сохранились только внутренности, сдох кинескоп). Всё работало отлично. Но моей маме иногда хотелось использовать этот "Горизонт" по прямому назначению, тогда я отдавал его ей, а сам цеплял "Cypy" к ч/б ламповому "Темп-209". Через конденсатор, как положено. Конечно, было не так красиво, но зато этот телек был полностью в моём распоряжении. Тоже всё нормально показывало.
Теперь, в наши дни. Подключил я к "Суре" монитор "Колокольчик". Немного поигрался, потом картинка начала дёргаться, пока совсем не пропала. И при подключении к цветному ТВ (современному, ЖК) он пишет "нет сигнала". Опять сдох этот же транзистор! Посмотрев схему "Колокольчика", меня объял ужас. То есть, я пришёл в ужас. Там такие маленькие сопротивления! Через эмиттер входного транзистора получается 37 Ом. И в компьютере - 24 + 33 Ом. А питается выходной каскад от 12 В! Получаем ток 127мА. Это уже не ярКостный, а яРОстный сигнал! Я уже не помню, сигнал прямой или инвертированный. Либо на светлой, либо на тёмной картинке получался наибольший ток. Неудивительно, что этот транзистор долго не жил. Я просто поменял 315 на 817. Но почему цветной ТВ не показывал? Ведь для него яркостный сигнал не требуется. Оказывается, ставя адаптер на место, я тоже накосячил. Вместо синхры подключил яркостный.