nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 21 Nov 2017 18:51



Reply to topic  [ 181 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13  Next
Galaksija 
Author Message
Senior

Joined: 12 Feb 2016 16:39
Posts: 160
Reply with quote
fifan wrote:
В перерывах между попытками нормального запуска платы я вступил в переписку с авторами клонов Галаксии: Tomaž Šolc и Josip Perušanec. Первый из них создал клон на КМОП микросхемах, второй - автор клона на галке. Сейчас мне от них известны: формат файла gtp - хранение кодов Галаксии (Плюс), схемы подключения IDE интерфейса и ещё кое-что.

Этот gtp формат не секретный? можно ли о нем информацию здесь получить? и подробности о подключении IDE тоже бы хотелось узнать, есть ли какое то ПО для поддержки этого IDE?

gpt2wav я в Linux собрал, все работает, те первую загрузку сделать можно будет, но я бы предпочел загрузку из ROM диска или еще какого-нибудь современного источника (SD например :) , ну или IDE - CF).


23 Aug 2017 07:06
Profile
Doomed

Joined: 06 Oct 2006 06:17
Posts: 438
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Описание gtp формата у меня есть - могу предоставить на английском языке. Пока всё описание архитектуры компьютера на сербском языке - не ясно как идёт взаимодействие блоков кода с бейсик программой. IDE интерфейс взят отсюда (http://piters.tripod.com/simpif.htm), исходники подпрограмм тоже оттуда же. Автор (http://deltasoft.com.hr/retro/galaknew.htm) подключал интерфейс прямо к Z80. Исходники в самой Галаксии я дизассемблировал. Скорость работы с диском небольшая (100 кБ/с), в принципе и сама Галаксия не очень быстрая.
SD интерфейс можно взять у Vinxru. Там нужен один порт - 8 бит, так же аналогично подключить как IDE. В исходниках Vinxru всё общение с компьютером ведётся через один порт ВВ55. Работа прям напрямую с файловой системой тоже организовано грамотно и просто. Получается кроме Атмеги8 и нескольких логических элементов нам ничего и не нужно будет.

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


23 Aug 2017 10:08
Profile WWW
Senior

Joined: 12 Feb 2016 16:39
Posts: 160
Reply with quote
ЗАПУСТИИИИЛ! :lol:
только не fifan, а я, и не плюсовую версию пока, а стандартную, вернее прошивка от стандартной в плюсовой схеме. А теперь по порядку. Дабы помочь fifan_у с запуском его 'Галаксии Плюс' я промоделировал элементы его схемы в протеусе, а после решил собрать самому эту Галаксию на макетке, что на данный момент и сделал. Все запустилось с первого раза, с некоторыми видео артефактами, но я их достаточно быстро устранил двумя конденсаторами, один на такте сдвигового видео регистра (ИР10), из-за чего символы не прорисовывались полностью, а второй на входе тригера(ТМ2), формирующего WAIT, который приводил к слишком раннему началу видео вывода и половина первого символа уходила за край экрана (честно говоря, я не уверен в правильности такого решения здесь, но оно работает, дальше еще надо будет подумать, что можно сделать более правильно), изменение номиналов RC на одновибраторе, формирующем строчный импульс так-же меняет позицию начала видео вывода, но в гораздо меньших пределах.

В начале своих экспериментов, при запуске в протеусе разных прошивок, для стандарта и для плюса, я не увидел в них визуальных отличий, соотвестственно возник вопрос, как понять, что я работаю на ПЛЮСЕ? - получается только запуском ПО для ПЛЮС_а это можно понять, значат это ПО надо как-то загрузить в Галаксию.
Класическая версия Галаксии ПЛЮС подразумевает 6КБ ОЗУ из стандарта и 32КБ дополнительного ОЗУ, те 38КБ. Один 8КБ участок памяти в адресном пространстве Галаксии ПЛЮС не задействован. Я в своей схеме использую чипы на 8КБ и 32КБ, где первые 2КБ от 8КБайтного чипа скрыты под портами, и если посмотреть на дешифратор, то путем несложных манипуляций можно эти скрытые 2КБ добавить в общее поле памяти, а оставшиеся 6КБ в адресном пространстве выделить под что-то еще.
Помятуя о том, что Z80 умеет выполнять инструкции от 580ВМ80, а для ВМ80 у нас имеется НедоДос(sd_dos) для работы с SD картой, я решил этот sd_dos 'прикрутить' к Галаксии. Найденные 'лишние' 2КБ как нельзя лучше подходят для хранения переменных и буферов sd_dos, а 6КБ участок в адресном пространстве можно использовать под размещение портов SD интерфейса ( SD интерфейсу нужно лишь 2 адреса, а не 6КБ, но для простоты дешифрации я сделал так). В чем же все это отлаживать? - в эмуляторе b2m имеется поддержка SD, значит используем его. Используя имеющийся в сети листинг первой ПЗУ Галаксии адаптация sd_dos прошла достаточно просто, и используя информацию предоставленную fifan_ом о формате GTP я сделал поддержку этого формата для запуска файлов. И все было бы хорошо, но! часть файлов загружается и работает, а часть при попытке запуска выдает ошибки, которые, на первый взгляд, похожи на ошибки в самих GTP файлах. Возник вопрос, а в каком эмуляторе можно эти GTP файлы проверить то? - я не нашел этих эмуляторов! :( и сразу же еще вопрос, эмулятор b2m для Галаксии может ли загружать в нее что-либо и в каком формате?
Attachment:
GAL_SD.JPG
GAL_SD.JPG [ 73.49 KiB | Viewed 283 times ]

Attachment:
GAL_SD_PLUS.jpg
GAL_SD_PLUS.jpg [ 47.31 KiB | Viewed 283 times ]

Теперь, что касается прошивок. В базовой ROM1.BIN нет ни каких вызовов в ROM2.BIN, а как оказалось, при установке ROM2 в ROM1 нужно сделать правки по адресу 0x03f9, заменить:
ld a,00ch ;03f9 Load 0ch (ASCII FF) into A
rst 20h ;03fb Call PUTCH_RST
на call 0x1000 ; (журнал RACUN03-38.png)
- вызов этой самой ROM2...
в некоторых прошивках, которые встречаются в сети этот патч сделан, в некоторых нет, при том, что сам ROM2.BIN присутствует, но никогда не вызывается...
Дальше больше, для вызова ROM3, которая используется в ПЛЮСе, так-же нет ни каких вызовов, однако в журналах о Галаксии встречается инструкция, о ручном вызове этой ROM3, командой A=USR(&E000) (журнал RACUN08-08.png), а в одной из прошивок я встретил в ROM1 на месте патча call 0x1000 вызов ROM3 - call 0xe000 ! Что же до ROM4.BIN, то его использовали как ROMDISK на 4КБ, в него я и разместил свой sd_dos.
Пока проверка на железе у меня затормозилась из-за отсутствия клавиатуры, думаю над решением этой задачи... и что-то мне кажется, что клавиатура у RK-86 очень похожа на клавиатуру Галаксии...
во вложении файлы для b2m, схема из протеуса, схема текущая и схема с измененным для SD интерфейса дешифратором адресов.

добавлю:
изменил тип файловой системы на SD карте с fat12 на fat16 и все GTP файлы теперь загружаются правильно, так-что теперь можно в эмуляторе b2m их загружать и смотреть, архив заменил.


Attachments:
Galaxy.zip [1.27 MiB]
Downloaded 6 times


Last edited by PVV on 30 Oct 2017 01:54, edited 2 times in total.

19 Oct 2017 03:43
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:
что-то мне кажется, что клавиатура у RK-86 очень похожа на клавиатуру Галаксии...

А об этом говорили уже в этом топике где-то ближе к старту.
Либо удобная для пайки и сборки "прямая" матрица клавиатуры, как у "Специалиста", но тогда -
в ПЗУ таблицы и подпрограммы перекодировки.
Либо "кривая" матрица клавиатуры Галаксии и RK-86, но она фактически сразу дает код клавиши.

Я не сверял их клавиатуры, но по этому признаку они должны быть похожи...

_________________
iLavr


19 Oct 2017 06:18
Profile
Senior

Joined: 12 Feb 2016 16:39
Posts: 160
Reply with quote
Подключил я к своей Галаксии клавиатуру от РК-86, цифры и буквы подошли все, а функциональные получились кто где, но это и не важно, главное можно писать команды. Подключил SD интерфейс от Специалиста. Зашил ПЗУ полной прошивкой от Плюса и доработанную версию sddos, все запустилось как тут и было, игрушки от стандарта запускаются, Плюсовые еще не пробовал, там несколько GTP формат для них отличается, да я еще и дополнительные 32КБ памяти не ставил чип.
На фотке одна из игр для Галаксии - ManicMiner (фото делал со вспышкой,это на экране пыль - увидел только на фотографии :esmile: ) и фотки моей макетки Галаксии.


Attachments:
IMG_3403.JPG
IMG_3403.JPG [ 1.4 MiB | Viewed 225 times ]
IMG_3408.JPG
IMG_3408.JPG [ 1.61 MiB | Viewed 225 times ]
IMG_3402.JPG
IMG_3402.JPG [ 1.48 MiB | Viewed 225 times ]
01 Nov 2017 15:55
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:
Подключил я к своей Галаксии...
...
...фотки моей макетки Галаксии.

А макетку по мотивам какой-то из плат реальной Галаксии сделал, или сам накидал, как рука легла?

Ну и, безусловно, поздравляю с успешным результатом! :kruto:

_________________
iLavr


01 Nov 2017 17:10
Profile
Senior

Joined: 12 Feb 2016 16:39
Posts: 160
Reply with quote
Lavr wrote:
А макетку по мотивам какой-то из плат реальной Галаксии сделал, или сам накидал, как рука легла?

мысль посмотреть разводку на других платах пришла уже после изготовления и начала пайки этой :)... так что просто на имеющемся куске текстолита разместил все корпуса МС и слегка их сгруппировал, а вот схему рисовал максимально приближенно к схеме fifan_а.

Вообще самое сложное в запуске этой Галаксии, это
1) получение именно видео данных на выходе сдвигового регистра и
2) согласование с телевизионным входом.

По 1)
регистр то здесь ИР10, те для записи в него нужно установить сигнал режима работы записи или сдвига(SH/LD) в ноль и ! дождаться положительного фронта на входе тактирования(и данные здесь на входе ИР10 еще должны быть валидны, а как это произойдет, если само формирование импульса происходит по завершению /MREQ ?), только после этого перевести сигнал режима в еденицу, а это в Галаксии полностью отдано на быстродействие элементов и задержки, как CPU, так и ROM(шрифт) и RAM. Как ведь получается, сигнал SH/LD может сформироваться в момент завершения /MREQ и до того как завершится /RFSH по фронту процессорного CKL (который является деленный на 2 PCLK для ИР10). CPU выставил по /RFSH адрес для RAM, RAM отработала со своей задержкой выдала данные, которые становятся адресом для ROM шрифта, ROM со своей задержкой выдала данные для ИР10. Теперь /MREQ деактивируется - RAM данные по выходу снимает, далее ROM получает 'мусорный' адрес на входе и выдает мусор для ИР10... в 80е годы когда и RAM и ROM имели быстродействие по 300нс эта цепочка вполне нормально могла работать, а вот сейчас, с нашими RAM из кеша с быстродействием в 20нс, и ROM в 45нс(может это и крайний случай, и реально 100нс и 70нс применяется), работа этой цепочки становится весьма проблематичной. По хорошему надо поставить регист-защелку типа ИР22 на входе ROM шрифта, управляемой по прямому MREQ, и исключить из рассмотрения быстродействие элементов этой цепи. Еще сильнее этот момент будет проявляться в режиме ГалаксииПлюс, тк там и вовсе нет ROM шрифта с его задержкой, а данные с шины данных от RAM должны прозрачно попасть на вход ИР10, когда будет активен сигнал /LD и будет фронт PCLK(/MREQ к этому времени уже давно снят и RAM выход уже вероятно деактивировала)...

По 2)
согласования уровней, что синхро смеси, что видео нет, нужен согласующий каскад,
строчная частота 16000Гц, как это вообще телевизор понимать должено то? хотя, если поставить кварц на 6.0Мгц, вместо 6.144, то будет 15625, но кадровая будет 48Гц, надо проверить ...
во время кадрового испульса сделана инверсия строчного, но по ТВ стандарту здесь должна быть повышенная в 2 раза по сравнению со строчным частота, а в наших Специалисте, РК-86 и тд вообще здесь ни каких частот нет, нужно ли так тогда усложнять выход? ТВ только сильнее сбивается.

Вообщем буду Плюс запускать, и уже сейчас видно, с чем придется столкнуться.

вообще есть идея - в режиме Плюс избавиться от АП5 между шиной данных и входом ИР10, тк в качестве ROM шрифта используется чип больше чем 2Кб, то во вторую половину этой ROM записать повторяющиеся данные от 0 до 0xFF, и завести на старший адресный разряд сигнал с переключателя режима стандарт/Плюс - вернется задержка на ROM_е и в режиме Плюс все должно работать как и в стандарте.


02 Nov 2017 08:16
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:
строчная частота 16000Гц, как это вообще телевизор понимать должено то?
В общем-то отклонение всего на каких-то 2.4%. Строчная развертка толерантна в более широких пределах.
Особенно в старых телевизорах, где была регулировка "Частота строк". :wink:

PVV wrote:
во время кадрового испульса сделана инверсия строчного, но по ТВ стандарту здесь должна быть повышенная в 2 раза по сравнению со строчным частота,
Впервые такое слышу... :o Обычная там частота строчных импульсов:
Attachment:
TV_timing.gif
TV_timing.gif [ 38.12 KiB | Viewed 189 times ]

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

PVV wrote:
нужно ли так тогда усложнять выход? ТВ только сильнее сбивается.
Строчные синхроимпульсы выделяются в телевизоре дифференцирующей цепочкой, тогда как кадровый
выделяется интегрирующей цепочкой, синхронизация строчной частоты на обратном ходу желательна,
иначе вход в синхронизацию будет виден как сдвиг или"заворот" первых нескольких строк на изображнии.
Хотя этого может и не быть, если уход частоты на длительности обратного хода небольшой.

_________________
iLavr


02 Nov 2017 09:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Все (или подавляющее большинство) самодельные недо-компьютеры работают с прогрессивной разверткой.
То есть телевизионных "полей" или полукадров, сдвинутых на пол-строки - нет, поэтому на обратном
ходе выравнивать ничего не надо...
Из всех известных мне компьютеров в режиме чересстрочной развертки могла работать только
"Искра-1030М". Т.е., несмотря на то, что она имела видеоадаптер, совместимый с CGA, она могла
кроме режима CGA 640х200 BW изобразить и режим 640х400 BW, но в режиме чересстрочной
развертки
. У неё был дополнительный блок видеопамяти под второе поле.

Это описано в "мануале" на "Искру-1030М", но никак не поддержано программно.
Все обычные программы (а я считал тогда на Quick Basic 4.5) в этом режиме ничего вывести на
экран бы не смогли.
И хотя очень хотелось после 384х256 BW "Специалиста" шикарные 640х400 BW, но работать
пришлось в убогих CGA 640х200 BW - остальные режимы CGA с точки зрения графики
еще хуже...

_________________
iLavr


02 Nov 2017 10:25
Profile
Senior

Joined: 12 Feb 2016 16:39
Posts: 160
Reply with quote
Lavr wrote:
PVV wrote:
во время кадрового испульса сделана инверсия строчного, но по ТВ стандарту здесь должна быть повышенная в 2 раза по сравнению со строчным частота,
Впервые такое слышу... :o Обычная там частота строчных импульсов:

согласно :
http://alcala.ru/bse/izbrannoe/slovar-U/U10908.shtml
Длительность уравнивающих импульсов 2,5 мксек; частота следования равна двойной строчной частоте. Да и на картинке выше видно, что период уравнивающих импульсов, как и импульсов врезки в самом КСИ в два раза меньше периода строчных импульсов...


02 Nov 2017 14:25
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:
согласно :
http://alcala.ru/bse/izbrannoe/slovar-U/U10908.shtml
Длительность уравнивающих импульсов 2,5 мксек; частота следования равна двойной строчной частоте. Да и на картинке выше видно, что период уравнивающих импульсов, как и импульсов врезки в самом КСИ в два раза меньше периода строчных импульсов...

На картинке выше - специально цветом выделил ЧЕРЕССТРОЧНАЯ РАЗВЕРТКА!
А в Вашей "Галаксии" - ПРОГРЕССИВНАЯ РАЗВЕРТКА - В НЕЙ УРАВНИВАЮЩИХ ИМПУЛЬСОВ НЕТ,
ПОТОМУ ЧТО НЕЧЕГО УРАВНИВАТЬ.
И импульсы строчной синхронизирующей просто врезаются в КСИ чтобы не терять синхронизацию.
Ну надо иногда думать всё же, к чему относятся картинки и термины... :-?

_________________
iLavr


02 Nov 2017 15:52
Profile
Senior

Joined: 12 Feb 2016 16:39
Posts: 160
Reply with quote
Запустил таки я эту Галаксию Плюс! Проблема только одна, а где взять программы то для Плюса?... пока нашел только две, PACMANP и SvetleciBicikliPlus. TETRISPLUS, это не для Плюса программа, а для стандартной Галаксии.
Проблема с запуском только одна возникла - в режиме Плюса вывод изображения идет по прерыванию IM2, а кто выставит на шину данных младшую половину адреса на вектор прерывания? - только резисторы подтяжки к +питания, которые на схеме расширения памяти в Плюсе в журнальной статье были, но о них как-то позабыли... Вообщем, добавил я 8 резисторов по 10К к +5В на своей макетке, и Галаксия_Плюс начала рисовать в графике!
Пока я со всем этим разбирался, нашел, что в x80.dll прерывание IM2 реализовано неправильно, и еще ошибка со временем выполнения JP IX, не 10 тактов, а 8, все поправил, и запустил еще и в Протеусе Галаксию_Плюс:
Attachment:
Gal_PACMANP_.jpg
Gal_PACMANP_.jpg [ 86.38 KiB | Viewed 62 times ]


во вложении исправленная dll.


Attachments:
x80_v11.dll.zip [43.93 KiB]
Downloaded 1 time
20 Nov 2017 16:33
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:
...нашел, что в x80.dll прерывание IM2 реализовано неправильно, и еще ошибка со временем выполнения JP IX, не 10 тактов, а 8, все поправил...

Что-то пока не было .dll Z80 (/8080) все эту модель так хотели - отбоя не было... :mrgreen:
Как она появилась - то ощущение, что лишь мы вдвоём ею пользуемся и находим ошибки. :wink:

_________________
iLavr


20 Nov 2017 17:13
Profile
Senior

Joined: 12 Feb 2016 16:39
Posts: 160
Reply with quote
Хочу еще расказать о том как работает Галаксия_Плюс.
Запуск режима Плюс, если так можно выразится, двух этапный. Первый этап - нужно в режиме обычной Галаксии выполнить A=USR(&E000), только так, а не используя патч в ROM1 с вызовом на 0xE000. В ROM1 должен быть вызов только ROM2, если он есть, те 0x1000.
Отступление - патч в ROM1 добавляет к таблице зарезервированных команд дополнительные команды, будь то ROM2 или ROM_PLUS, но если вызвать 0xE000(те ROM_PLUS), то к класическим командам добавятся плюсовые, но после ret в ROM_PLUS, добавление команд от ROM2 затрет команды от ROM_PLUS. Хотя на экране и будет приглашение с надписью GALAXY PLUS, но команд Плюса не будет!
Второй этап, это переключение в графический режим - для этого надо выполнить команду GRAPH. После этой команды все отображение идет в графическом режиме, те знакогенератор из ПЗУ от класической Галаксии отключается и используется свой знакогенератор, зашитый в ROM_PLUS. Именно с этого момента Z80 переводит режим прерываний с IM1 на IM2. В регистр I заносится 0xE0. В момент прерывания Z80 с шины данных считывает 0xFF, сформированый резисторами подтяжки, вычитывает адрес вектора прерывания с адреса 0xE0FF, там 0xE3FB, и начинает выполнять процедуру прерывания с 0xE3FB. В прерывании же сделан цикл по выводу экранной памяти. Я думаю, что эту информацию могут использовать авторы эмуляторов, для реализации режима Плюс в Галаксии, определяя что именно выводить на экран по установленному режиму прерываний IM1 или IM2.

Еще момент - я долго не мог понять, что не так с игрой PACMANP - я ее запускал выполнив только первый этап инициализации режима Плюса, и на экране была лишь одна строчка сверху, с числом жизней, хотя сама игра, видимо работала, тк жизни уменьшались со временем, и только выполнив второй этап инициализации у меня появилась вся картинка как она должна быть. Вторя я же игра, видимо, сама выполняет команду GRAPH, и начинает показывать без этого, второго, этапа, что сильно меня по началу сбивало с понимания происходящего.

Пока разбирался с запуском возникла мысль по упрощению схемы Плюса - что есть графический режим? - Это обход ПЗУ знакогенератора, отключением его выхода по /OE и вывод изображения прямо с шины данных через включение /OE на АП5, но при использовании в качестве ПЗУ знакогенератора чипа на 8КБ(чип на 28 ножек найти сейчас проще чем на 24), а не 2КБ, как это заложено изначально, можно развести на два лишних адресных разряда ПЗУ недостающий D6 и сигнал переключения стандарт/графика и таким образом отказаться от АП5. - повторяюсь похоже :osad:
Во вложении схема Галаксии_Плюс с узлом работы с SD карты.


Attachments:
gal10p_key_SD3.pdsprj.pdf [269.09 KiB]
Downloaded 5 times
21 Nov 2017 03:04
Profile
Doomed

Joined: 06 Oct 2006 06:17
Posts: 438
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Прекрасно! А схема Плюс уже на макетке работает или пока ещё не реализована?

_________________
:arrow: Сайт о ПК "Специалист" и его клонах


21 Nov 2017 12:10
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 181 posts ]  Go to page Previous  1 ... 9, 10, 11, 12, 13  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.