Просмотр полной версии : Галаксия (Плюс): технический раздел
Пока ждём изготовления Галаксии Плюс (http://www.zx.pk.ru/showthread.php?t=19244&page=19) от Heiniken'а я решил протестировать реплику Галаксии на универсальной платформе u10 Reverse (http://www.zx.pk.ru/showthread.php?t=8993). В качестве основы я взял готовый проект (http://galaksija.petnica.rs/index.php/) и убрал из него вывод на VGA монитор и генерацию меню.
Тема про заказ печатных плат Галаксии Плюс[/URL] на дискретных элементах.
Последняя схема Галаксии Плюс (http://www.spetsialist-mx.ru/Galaksija/schemes/Galaksija%20Plus.pdf) с монтажной схемой и списком деталей.
Схема Галаксии (http://www.spetsialist-mx.ru/Galaksija/schemes/Galaksija1.png) (не плюс) для вникания в принцип работы компьютера.
Почему то при попытке компиляции проекта авторов сайта uGalaksija он занимает много ячеек в EP3C10E144C8 и не вмещаются в неё. Вот здесь (http://galaksija.petnica.rs/index.php/Special_Downloads?dir=galaksija_design/) ссылка на сербском сайте. Компиляция длиться более 40 минут и чуть не зависает. Это я ещё исправлял часть выдаваемых ошибок, которые выдавал Квартус.
Облегчённый вариант от меня пока занимает не более 3000 ячеек (архив с предыдущего поста). Для наблюдения результатов необходимо вывести изображение на композитный видео выход. Подскажите как это сделать.
Кстати, буду благодарен, кто сможет скачать и перерисовать саму схему uGalaksija (http://galaksija.petnica.rs//data/_uploaded/downloads/galaksija_design/schematic//galaksija_v1-FPGA.ps). У меня она в Adobe Acrobat 9 кастрируется.
fifan, проект пробовал собрать в какой версии ISE? Должен был спокойно уместится в ep3c10 :v2_conf2:. Правда придется постараться с портированием в quartus под cyclone, уж очень заточено все (блоки памяти и Picoblaze) под Xilinx.
Для сравнения ресурсов:
Xilinx Spartan-3
1.2 V Slices Equiv.LEs Emb.RAM Kbits RAM Blocks 18x18 Multipliers
XC3S200 1,920 3,840 216 12 12
Результат на страничке компиляции в ISE 10.1 прикрепил...
Кстати, буду благодарен, кто сможет скачать и перерисовать саму схему uGalaksija. У меня она в Adobe Acrobat 9 кастрируется.
Там только список используемых компонентов для схемы µGalaksija. Тебе схема от µGalaksija нужна?
Vlad, что-то у тебя посты колбасит. Нет прикреплённого проекта (я хотел не под Spartan3, а под Cyclone3), да схема uGalaksija нужна.
Кстати, буду благодарен, кто сможет скачать и перерисовать саму схему uGalaksija. У меня она в Adobe Acrobat 9 кастрируется.
Сконвертил в pdf :v2_dizzy_coder:
Спасибо за схему. Теперь ясно, что за вывод LINE_IN. Так же поключу его и выход на магнитофон. Разобраться надо бы как файлы с SD карты загружаются... Вопрос по композитному выходу не отпал.
Разобраться надо бы как файлы с SD карты загружаются... Вопрос по композитному выходу не отпал.
Вроде образы из FLASH (AT45DB081D) грузит PicoBlaze. Может вместо него поставить более для нас понятный x80cpu_core@50MHz с Dual Port RAM 8K в роли кеш, программу только придется переписать.
Композитный то зачем? Чем не устраивает VGA + OSD?
Может вместо него поставить более для нас понятный x80cpu_core@50MHz с Dual Port RAM 8K в роли кеш
Вроде это и поставил, взял с u10_speccy_06c от Ewgeny7
Композитный то зачем? Чем не устраивает VGA + OSD?Меня бы VGA устроило, но я не могу связку composite_to_vga.vhd+vga_controller_640_60.vhd+col or_ram.vhd запустить с вырезом picoblaze. Да и первый запуск нужно начать с выводом на composite.
Смотрел сырки uGalaksija. Выводы:
1. в дополнительной прошивке зашит экран с несколькими строками меню. Наверное организованы загрузка/выгрузка файлов с карточки.
2. пропатчино ПЗУ в том числе и знакогенератор (но последний наверное только выходные биты перевернуты, у меня это сделано программно), ОЗУ тоже как не страно инициализируется при загрузке, наверное видео ОЗУ уже содержит строки меню.
3. главное код composite_to_vga переделать под себя, вырезав ОЗУ под меню, оставив только нужное для драйвера композит -> VGA.
4. подключить SD карточку можно и без picoblaze врезок. добавить програмки обслуживания SD прямо в ПЗУ, использовать готовый хард и софт для SD от Спектрума, который тестировался здесь на форуме под Reverse.
Перезалил архив в первый пост. Новое: вход и выход с/на магнитофон.
Засада. При попытке подключения в проект VGA связки (файлы composite_to_vga + color_ram + ram_bit +vga_controller_640_60) компляция проекта зависает (я не стал ждать более 40 минут). Где-то есть скрытые камни. Архив данного проекта - в первом посте - u10_gal_fpga2.rar
Понял в чём дело. Компилятор зависал на эмуляции записи и считывания в порт цвета ffff. Не знаю пока как было в оригинальном компьютере сделано (вроде в нём цвета вообще не было). Оставляю пока как есть с выводом синхронизации на VGA монитор, а цвет наверное поставлю зелёный, как в эмуляторе (http://emulator.galaksija.org/) сделано. Текущий архив с VGA выходом (u10_gal_fpga2.rar) обновил в первом посту.
Пока хочу задать вопрос. Кто знает формат файлов с расширением gtp, который был принят в программах к Галаксии (http://retrospec.sgn.net/users/tomcat/yu/Galaksija_list.php).
Пепец! Все темы про заказ новых плат на этом форуме удалили... Теперь, наверное желающие так и не дождуться заказа изготовления печатных плат... Для кого разводил печатку Галаксии Плюс теперь даже не знаю... Грустно.
а почитать не?
http://zx.pk.ru/showthread.php?t=19244
Точно. Я думал всё перенесли на новый форум.
Пришёл корпус, который я планирую под Галаксию Плюс. Вот сфоткал с монтажками платы и клавиатуры. Комплект кнопок по случаю приобрёл. Осталось дождаться Heiniken'а с заказом плат, или он передумал?
http://s019.radikal.ru/i600/1208/fb/d6fd9b80e97at.jpg (http://radikal.ru/F/s019.radikal.ru/i600/1208/fb/d6fd9b80e97a.jpg.html) http://s59.radikal.ru/i164/1208/d8/ba0125e7c631t.jpg (http://radikal.ru/F/s59.radikal.ru/i164/1208/d8/ba0125e7c631.jpg.html)
sergey2b
18.08.2012, 20:19
Схема Галаксии (не плюс) для вникания в принцип работы компьютера.
fifan скажите пожалуйста в чем вы рисовалии схему Галаксии ?
скажите пожалуйста а где вы кнопки покупали ?
fifan скажите пожалуйста в чем вы рисовалии схему Галаксии ?
В Alitum Designer (http://www.zx.pk.ru/showpost.php?p=518308&postcount=181)'е.
скажите пожалуйста а где вы кнопки покупали ?
У Viktora2312 (http://www.zx.pk.ru/showpost.php?p=433667&postcount=135).
denpopov
24.04.2015, 19:06
нет ли у кого-то bin2gtp?
Shumadan
28.05.2017, 21:56
в итоге: проект состоялся?
Платы Галакси еще не завалялось?
Проект отложился на неопределённый срок. Плат на Галаксию нет. У меня в единственном экземпляре. Нашёл на схеме несколько серьёзных ошибок. Пока их не исправлю, наверное комп не запустится.
Где-то я видел bin2gtp. А! Только в сырках galaksija-tools-0.2.2 на одном из сайтов.
Shumadan
01.06.2017, 21:13
Проект отложился на неопределённый срок. Плат на Галаксию нет. У меня в единственном экземпляре. Нашёл на схеме несколько серьёзных ошибок. Пока их не исправлю, наверное комп не запустится.
Где-то я видел bin2gtp. А! Только в сырках galaksija-tools-0.2.2 на одном из сайтов.
Ошибки в журнальной версии или уже переработанной?
а проект ФПГА-Галаксии на чем закончился? я так и не понял, есть ли у него VGA выход на обычный монитор ? Что то там много закоменчено :(
Ни чем не закончился. Я решил сначала собрать клон на обычной логике. Если интересно, то здесь (http://galaksija.petnica.rs/) товарищ собирал на ПЛИС.
- - - Добавлено - - -
Ошибки в журнальной версии или уже переработанной?
Переработанной, моя не внимательность.
Shumadan
03.06.2017, 10:53
Переработанной, моя не внимательность.
На форуме nedopc кто то уже отрисовал схему оригинала в ГОСТе и на современных комплектующих. Правда, я не понял как согласуются уровни КМОП и ТТЛ. Ее никто не повторил?
Вот там и указали мне на ошибки. Я правда не понял где Вы нашли применение микросхем КМОП? Или имеется ввиду два счётчика? Там всё нормально, если питать микросхему от +5В. Вообще-то есть проект полностью на микросхемах КМОП (https://www.tablix.org/~avian/blog/articles/galaksija/) и рабочий, судя по фотографиям платы.
Shumadan
03.06.2017, 21:04
Да. Про КМОП-счётчики. Ну в принципе, уровни должны попасть в допуск. Не подскажите где можно посмотреть и скачать дамп для прошивки ПЗУ. Там я понял стоит одна.
Не подскажите где можно посмотреть и скачать дамп для прошивки ПЗУ. Там я понял стоит одна.
Стоит две, одна из них - знакогенератор. Никто в России, кроме автора эмулятора b2m пока не сохранил дампы. Здесь (http://bashkiria-2m.narod.ru/files/emu.rar), в архиве, в папке Galaxy есть два дампа.
Shumadan
03.06.2017, 23:53
в эмуляторе, дампы двух ПЗУшек - Бейсика и загрузчика. Дамп ПЗУ знакогенератора отсутствует?
Правда? Я дамп не смотрел. Тогда вот архив прошивок, в том числе и на Галаксию Плюс. Как разберётесь сообщите мне, где какая.
Shumadan
04.06.2017, 10:39
Ну судя по названию и размеру, файлы CHRGEN и есть что нужно. Правда там их три. Один подписан, как Original.
Скорее всего содержит знаки сербского шрифта, другие - возможно доработанные или со знаками псевдографики. Пока не открывал - открывашка на другом компьютере
Павел Рябцов спросил у меня о изготовлении печатной платы Галаксии Плюс. Я ответил ему, что у меня не рабочий экземпляр. После устранения ошибок в схеме я попробую ещё раз запустить Галаксию плюс. Текущая схема здесь (http://www.spetsialist-mx.ru/Galaksija/schemes/Galaksija%20Plus.pdf).
Когда-то с пользователем данного форума AIS (долго его не видел) мы ввели в схему одну общую срамину в отличие от авторов - SRAM+DRAM. Трудность в повторении схемы заключается в переводе с сербского языка и не очень чёткими схемами из югославского журнала. Привожу здесь ссылки на схемы для общего понимания:
Схема Галаксии (http://www.spetsialist-mx.ru/Galaksija/schemes/Galaksija1.png)
Лист 1 из журнала переделки в Галаксию Плюс (http://www.spetsialist-mx.ru/Galaksija/schemes/SK8601-44.jpg)
Лист 2 из журнала переделки в Галаксию Плюс (http://www.spetsialist-mx.ru/Galaksija/schemes/SK8601-45.jpg)
Лист 3 из журнала переделки в Галаксию Плюс (http://www.spetsialist-mx.ru/Galaksija/schemes/SK8601-46.jpg)
Лист 4 из журнала переделки в Галаксию Плюс (http://www.spetsialist-mx.ru/Galaksija/schemes/SK8602-47.jpg)
Лист 5 из журнала переделки в Галаксию Плюс (http://www.spetsialist-mx.ru/Galaksija/schemes/SK8602-48.jpg)
Лист 6 из журнала переделки в Галаксию Плюс (http://www.spetsialist-mx.ru/Galaksija/schemes/SK8602-49.jpg)
Нашёл ещё ляпы на схеме:
1. На ПЗУ (DS2) я сомневаюсь на счёт подключения выборки /OE (пин 20) к общему проводу, наверное нужно к /RD.
2. Зачем-то пин 21 ПЗУ DS3 подключён к D11, его нужно на +5V. Это чисто мой косяк - автоматически перенёс шины данных при рисовании схемы. Все старшие адреса данной ПЗУ неверно подключены - исправляю.
Пробный запуск. Белый экран. На сброс не реагирует. Считал содержимое ПЗУ. Что должно быть в Gen прошивке? Я нашёл три разные версии. С системной ПЗУ тоже непонятки. Например есть три прошивки первого ПЗУ: ROM1.BIN, ROM1_minus.BIN и ROM1_plus.BIN. Следовать рекомендациям AIS?
B DD15 прошиваем с нулевого адреса ROM1.BIN , за ним - ROM2.BIN, далее GAL_PLUS.BIN , далее ROM4.BIN
Короче надо склеить файлы ROM1.BIN , ROM2.BIN, GAL_PLUS.BIN , ROM4.BIN в один файл и прошить этот файл в 27128
Это файлы для Галаксии не Плюс. Там так и нужно знакогенератор и две рома.
Прогуглив интернет я нашёл в архиве три файла для Галаксии Плюс и знакогенератор. Но где четвёртый файл? Нужно читать описание ПЗУ. Осложняется поиск тем, что югославы не печатали свои дампы в журналах, а давали адреса, где можно купить и прошить ПЗУ за динары.
Вот состав архива:
galchr.bin
galplus.bin
galrom1.bin
galrom2.bin
Если мне не изменяет память, то в журналах о компьютере указывалось, что добавляется новое ПЗУ, возможно это и galplus.bin. А "четвёртое", а но так и называлось и будет ROM4.BIN, как советовал AIS.
Знакогенератор возьму galchr.bin. Я правда ничего очень отличного в дампе старых прошивок не нашёл. Попробую ещё сменить процессор.
Сравнил старое прошитое ПЗУ и новое. Отличия были в нескольких байтах первой rom1. Интересно это глюк (было прошито УФ ПЗУ) или ещё что-то. Перепрошью ПЗУ отчитаюсь здесь.
- - - Добавлено - - -
Поставил новые прошивки, заменил на заведомо исправный проц. Не было резистора 330 Ом на вход частоты проца - поставил. Ничего не изменилось белый прямоугольник, срывается синхронизация, телевизор отключает вход, наверное видеосигнал не в его пределах. Завтра подключу осциллограф.
Просмотрел осциллографом, вроде всё нормально. Я вот удивляюсь почему экран белый. Возможно телевизор неправильно выбирает уровень белого. Подскажите как правильно подключить Галаксию к телевизору.
Подключил к видео разъёму смешанный сигнал через резистор 120 Ом. Нашёл свой брак в подключении ПЗУ, исправил. Сейчас выходит мусор со знакогенератора. Дальше разбираюсь.
Приветствую всех любителей ретро ПК!
Заинтересовался я этой Галаксией какое-то время назад и по мотивам схемы Галаксии_Плюс от fifan, собрал ее на макетке, заодно и промоделировал все схемные решения в симуляторе (подробнее можно посмотреть здесь: http://www.nedopc.org/forum/viewtopic.php?f=71&t=9407&start=165 ). Сейчас столкнулся с проблемой поиска файлов именно для Плюсовой версии Галаксии (пока есть только 2 игрушки...), и отдельно интересует тема работы со звуковым чипом AY, есть ли какое-то ПО со звуком его использующее? Писать музыку в звуковом редакторе это не моё - я от музыки очень далек, а вот послушать, что может играть Галаксия хочется.
я так понимаю, это все, что есть (или в розыске:) от Галаксии?
http://retrospec.sgn.net/users/tomcat/yu/Galaksija_list.php
те же самые двесполовиной игры под Плюс. отсальные под обычную минус?
Тогда как бы совсем мало смысла в расширенной версии. Отсюда вопрос - а все прочее из списка - исправно работает
и загружается с SD ?
Это все, что есть. С тетрисом вообще непонятки, у меня файлы обычного тетриса и тетриса_плюс, одинаковые (хотя и взяты из разных мест), отличие в последних паре пустых байт, те мусор от сохранения, и при запуске 'координатной сетки из точек' на поле нет, как это видно на скриншотах от тетриса_плюс. Получается, что тетрис, по ссылке выше, не 'плюсовый', ну или я еще что-то не понял.
Касательно все ли остальное работает - я все не проверял, но из 5-7 файлов, которые я запускал, все работало и грузилось с SD карты естественно. Один момент с форматом GTP файлов - моя оболочка, которая читает файлы с карты, не понимает блок ID с именем файла, только блок ID с данными распознается, соответственно если файл начинается на 0х10(блок ID с именем), то такой файл надо руками 'укоротить' до только блока с данными (начинается на 0х00). Доработать оболочку достаточно просто, но делал для себя, быстро, и оставил так.
upd: в новой версии SDOS блок ID обрабатывается, так что руками ничего укорачивать уже не надо.
все работало и грузилось с SD карты естественно
Хорошая конечно, новость :) Схема подключения SD от b2m-a ? а то получается я как то запустил в ФПГА саму Галаксию, обычную, но загрузить было не чем.
Теперь хоть какая-то надёжа. Ковырятся в HDL это конечно не так увлекательно, как в Протеусе, но то жи довольно интересно.)
А по поводу формата GTP - ну не так много у них и файлов, можно и ручками укоротить. Еси что
Схема подключения SD от b2m-a ?
Схема SD интерфейса на дискретных элементах родилась из аналогичной схемы для СпециалистМХ2 на ПЛИС от HardwareMan_a. Этот интерфейс поддерживается в эмуляторе b2m, и базовые исходники оболочки для работы с SD, тоже, от b2m.
А по поводу формата GTP - ну не так много у них и файлов, можно и ручками укоротить. Еси что
Там все просто, на самом деле- я читаю 5 байт, первый не анализирую, далее размер блока, а если поставить проверку первого байта на 0х10, то можно блок с именем файла пробросить... Но я тоже посчитал, что это можно и ручками укоротить:)
На сколько я могу судить, первоначальный схемный интерфейс от HardwareMan_a, тк в исходниках (программная часть интерфейса) от b2m другие процедуры низкоуровневой работы с SD картой.
а то получается я как то запустил в ФПГА саму Галаксию, обычную, но загрузить было не чем.
а какая память (ОЗУ Галаксии) используется в реализации на ФПГА? Для работы SD интерфейса надо дополнительно 2КБ. Тк я на своей плате один из чипов памяти использую на 8КБ, а в базовой галаксии используется только 6, затеняя оставшиеся 2КБ портами, то я доработал дешифратор таким образом, что бы иметь доступ к этим скрытым 2КБ, и использую их для работы с SD. Собрать схемную часть SD интерфейса на ФПГА, я так думаю, достаточно просто, так что тут вопрос только в памяти, ну и в наличии свободных ножек на ФПГА для подключения SD. В качестве SD держателя я несколько раз пользовался таким решением http://www.nedopc.org/forum/viewtopic.php?f=93&t=16296&start=0#p133655. Карты до 2ГБ, файловая система FAT16 только, поддержку FAT12 я убрал.
На сколько я могу судить, первоначальный схемный интерфейс от HardwareMan_a
Я делал читалку для своей FPGA версии Радио-86РК на основе MSX SD/MMC V1, а HardwareMan сделал потом для МХ2 свою реализацию железного интерфейса.
а какая память (ОЗУ Галаксии) используется в реализации на ФПГА?
Можно почитать, но кажется там (http://www.spetsialist-mx.ru/Galaksija/index7.html) обычная Галаксия.
Для работы SD интерфейса надо дополнительно 2КБ.
2кБ для допПЗУ, я так понимаю*? Думаю там можно и на это найти памяти, и на 2 ячейки в ОЗУ -то жи.
Ну а вообще то в железке есть 1Мб SRAM, туда хоть все программы можно запихать, их не так то и много, около 140кБ в сумме. а так то я вспомнил, на чем закончилась у меня полгода назад эпопея)
картинка есть, ну и все на этом, или висит, или все же надо клавиатуру подключить. Клава не работает :(
Видимо когда выкусывал ихний пико-блейз, возможно что то нужное удалил. А поправить не могу, шаг влево-шаг вправо - сразу вылазиют артефакты в виде подчеркивания по всемуу экрану. Вот такой а-синхронный дизайн :((
(
http://s3.micp.ru/d2y2K.jpg
это при запуске, на этом и все. Ну или с полосочкаме, то жи могу показать
я как то запустил в ФПГА саму Галаксию
На какой плате?
Зачем там пико-блейз?
у меня то простенькая ФПГА
Блин, я спрашивал какая конкретно. Ссылку бы, или картинку хотя-бы. Просто интересно.
2кБ для допПЗУ, я так понимаю*? Думаю там можно и на это найти памяти, и на 2 ячейки в ОЗУ -то жи.
Ну не совсем так. Нужно 2КБ ОЗУ, и ~2.2КБ ПЗУ.
Ну а вообще то в железке есть 1Мб SRAM, туда хоть все программы можно запихать, их не так то и много, около 140кБ в сумме. а так то я вспомнил, на чем закончилась у меня полгода назад эпопея)
Вот об этом я и спрашивал, тогда все ок, хватит.
Вот выдержка из моей переписки с fifan_ом по распределению адресов, я немного повторюсь в некоторых моментах, но для лучшего понимания это не помешает-
У класической Галаксии (минус) сейчас такое распределение адресного пространства:
$0000...$0FFF — ПЗУ A: 4 КБ — загрузчик, видеогенератор, Galaksija BASIC
$1000...$1FFF — ПЗУ B (опционально): 4 КБ — дополнительные команды Galaksija BASIC, ассемблер, монитор
$2000...$27FF — клавиатура и защёлка
$2800...$2FFF — ОЗУ C: 2 КБ ($2800...$2BFF – видео ОЗУ)
$3000...$37FF — ОЗУ D: 2 КБ
$3800...$3FFF — ОЗУ E: 2 КБ
$4000...$FFFF — не используется, зарезервировано
я предлагаю для добавления поддержки SD сделать так:
$0000...$0FFF — ПЗУ A: 4 КБ — загрузчик, видеогенератор, Galaksija BASIC
$1000...$1FFF — ПЗУ B (опционально): 4 КБ — дополнительные команды Galaksija BASIC, ассемблер, монитор
$2000...$27FF — клавиатура и защёлка
$2800...$2FFF — ОЗУ C: 2 КБ ($2800...$2BFF – видео ОЗУ)
$3000...$37FF — ОЗУ D: 2 КБ
$3800...$3FFF — ОЗУ E: 2 КБ
$4000...$BFFF — не используется, зарезервировано
-> $С000...$С7FF — SD интерфейс: 2 КБ
-> $C800...$CFFF — ОЗУ дополнительное(для sd_dos) :2КБ
$D000...$EFFF — не используется, зарезервировано 8 КБ
-> $F000...$FFFF — ПЗУ sd_dos: 4 КБ
и у ГалаксииПлюс сейчас такое распределение:
$0000...$0FFF — ПЗУ A: 4 КБ — загрузчик, видеогенератор, Galaksija BASIC
$1000...$1FFF — ПЗУ B (опционально): 4 КБ — дополнительные команды Galaksija BASIC, ассемблер, монитор
$2000...$27FF — клавиатура и защёлка
$2800...$2FFF — ОЗУ C: 2 КБ ($2800...$2BFF – видео ОЗУ)
$3000...$37FF — ОЗУ D: 2 КБ
$3800...$3FFF — ОЗУ E: 2 КБ
$4000...$7FFF — ОЗУ IC9, IC10: 16 КБ
$8000...$BFFF — ОЗУ IC11, IC12: 16 КБ
$C000...$DFFF — не используется, зарезервировано
$E000...$FFFF — ПЗУ "3" + "4" IC13: 8 КБ – графические примитивы на языке BASIC, Full Screen Source Editor и аппаратный скроллинг
я предлагаю сделать так:
$0000...$0FFF — ПЗУ A: 4 КБ — загрузчик, видеогенератор, Galaksija BASIC
$1000...$1FFF — ПЗУ B (опционально): 4 КБ — дополнительные команды Galaksija BASIC, ассемблер, монитор
$2000...$27FF — клавиатура и защёлка
$2800...$2FFF — ОЗУ C: 2 КБ ($2800...$2BFF – видео ОЗУ)
$3000...$37FF — ОЗУ D: 2 КБ
$3800...$3FFF — ОЗУ E: 2 КБ
$4000...$7FFF — ОЗУ IC9, IC10: 16 КБ
$8000...$BFFF — ОЗУ IC11, IC12: 16 КБ
-> $С000...$С7FF — SD интерфейс: 2 КБ
-> $C800...$CFFF — ОЗУ дополнительное(для sd_dos) :2КБ
$D000...$DFFF — не используется, зарезервировано :4КБ
$E000...$EFFF — ПЗУ "3" IC13: 4 КБ – графические примитивы на языке BASIC, Full Screen Source Editor и аппаратный скроллинг
-> $F000...$FFFF — ПЗУ sd_dos: 4 КБ
пересечение только в плюсе, я ROM4 заменяю на sd_dos, но в ROM4 нет ничего системного, это ром_диск, при наличии SD интерфейса программы можно запускать с карты, кроме того, если посмотреть, что есть на этом диске, то там занято ~300байт, затем 1.7КБ свободно, а затем 2КБ занято МОНИТОРОМ, который раньше размещался по адресам 0х3800-0х4000, а потом перенесли в это ПЗУ (статья в журнале была на этот счет) - те 1.7КБ+2КБ можно смело занимать под свои нужды(sd_dos нужно 2.2КБ), повторяюсь, это не системная ПЗУ Галаксии Плюс, а просто ROMdisk.
Это распределение отличается от конфиг файл для эмулятора b2m, что я выкладывал ранее в этом месте:
-> $С000...$С7FF — SD интерфейс: 2 КБ
-> $C800...$CFFF — ОЗУ дополнительное(для sd_dos) :2КБ
те SD интерфейс и ОЗУ поменял местами, и это не случайно! Дело в том, что Галаксия при подаче питания проверяет непрерывный доступный ей объем памяти, а когда запускается графический режим ГалаксииПлюс, то графический экран размещается в последних 6КБ доступной памяти и 2КБ, которые предназначались для переменных и буферов SD интерфейса оказываются внутри экрана :( . Введение разрыва эту проблему решает. Я это обнаружил и осознал что происходит буквально пару дней назад.
- - - Добавлено - - -
to b2m: а насколько сложно добавить поддержку в Ваш эмулятор режима ГалаксииПлюс? Как мне видится, там нужно смотреть за режимами прерываний Z80 IM1 или IM2, и если IM2, то вывод на экран делать из последних ~6КБ(256х208 точек) доступной памяти, каждый бит, это точка на экране?
а насколько сложно добавить поддержку в Ваш эмулятор режима ГалаксииПлюс?
Не думал ещё. Даже не смотрел дополнительные ПЗУ.
Но вообще, вывод на экран у меня "не честный", если кто-то запилит свой видео-драйвер, то он работать не будет.
Выложил исправленную конфигурацию для эмулятора b2m со всеми имеющимися у меня программами для Галаксии (минус). http://www.nedopc.org/forum/viewtopic.php?f=71&t=9407&p=141057#p141057
Продолжаю искать ПО, у кого, что есть для ГалаксииПлюс?...
запуск SD:
A=USR(&F000)
дальше DIR
ну и нужное имя файла без расширения
когда загрузка завершится RUN
Здесь (https://www.loveroms.com/roms/galaksija) ещё программы для Галаксии, но кажется ни одной для Плюса.
Здесь (https://www.loveroms.com/roms/galaksija) ещё программы для Галаксии, но кажется ни одной для Плюса.
Да, на Плюс там ничего нет. А у Серба и Словенца (авторов клонов Галаксии) нет ничего на плюс, не знаешь?
Для проверки как устроен графический экран в ГалаксииПлюс пересобрал этот эмулятор http://emulator.galaksija.org/ .
добавил памяти, верхняя граница теперь 0х8000, добавил все ПЗУ, добавил загрузку GTP файлов, и главное при переходе процессора на режим прерываний IM2 отключаю текстовый вывод и поточечно, да еще и с учетверением пикселя ( а по тому все очень медленно! :( ) вывожу на экран память начиная с 0х8000-0х1А00=0х6600, где 0х1А00=6654=256х208 точек разрешения экрана ГалаксииПлюс
Запуск режима Плюс:
A=USR(&E000)
GRAPH
по F3 загрузка файлов, расширение не нужно.
для примера можно запустить PACMANP:
A=USR(&E000)
F3 -> PACMANP
GRAPH
RUN
PS эмулятор собран с использованием библиотеки Allegro 4.2, о существовании такой библиотеки узнал, только когда начал разбираться со сборкой, так-что писал как есть :)
Кстати есть программка для тестирования Галаксии (https://www.tablix.org/~avian/galaksija/stuff/) (hardware.gtp), на эмуляторе она не верно работает.
- - - Добавлено - - -
А у Серба и Словенца (авторов клонов Галаксии) нет ничего на плюс, не знаешь?
Нет, все ссылки на упоминания Галаксии здесь (http://www.spetsialist-mx.ru/Galaksija/index8.html) и те от авторов.
добавить поддержку в Ваш эмулятор режима ГалаксииПлюс
Добавлено. Вывод на экран переделал с нуля, теперь всё по честному.
Новая версия (http://bashkiria-2m.narod.ru/files/emu.rar), как всегда, на моём сайте.
а как в новой версии открывать gtp файлы ?
в GalaxyWinPlus открываешь gtp файл, набираеш команду "old", ждёшь конца загрузки, набираешь "run".
а здесь выдаётся мне "неизвестный тип файла".
Добавлено. Вывод на экран переделал с нуля, теперь всё по честному.
Новая версия (http://bashkiria-2m.narod.ru/files/emu.rar), как всегда, на моём сайте.
Классно! Один момент, в режиме Плюса экран мигает, не периодически, а около 1-2 раза в секунду.
а как в новой версии открывать gtp файлы ?
в GalaxyWinPlus открываешь gtp файл, набираешь команду "old", ждёшь конца загрузки, набираешь "run".
а здесь выдаётся мне "неизвестный тип файла".
А что такое GalaxyWinPlus?
Здесь можно открывать через SD. После запуска A=USR(&F000), [DIR, CD имя каталога], нужный файл, RUN.
GalaxyWinPlus - эмулятор галаксии и плюс версии тоже.
во вложении последняя версия эмулятора.
в папке эмулятора "tapes" находятся образы кассет "gtp".
также я закинул в архив небольшой текстовый документ с пояснениями.
- - - Добавлено - - -
Здесь можно открывать через SD. После запуска A=USR(&F000), [DIR, CD имя каталога], нужный файл, RUN.
обожаю b2m эмулятор за такие извращения, да ещё и без единого мануала, попробуй догадайся.
а как в новой версии открывать gtp файлы ?
Так они вроде и в старой не поддерживались :)
в режиме Плюса экран мигает, не периодически, а около 1-2 раза в секунду.
В самом бейсике нет, а в игрушке PACMANC да. Я так понимаю, пропускается кадр, когда в игрушке много действий делается. Возможно, в реальности было не очень заметно из-за инертности ТВ кинескопа.
обожаю b2m эмулятор за такие извращения, да ещё и без единого мануала, попробуй догадайся
Поддержку SD к Галаксии-Плюс добавлял PVV, я бы и сам не знал, как там файлы грузить, если бы PVV не рассказал. А вообще, он молодец, сам во всём разобрался :)
b2m, а если gtp не поддерживаются, то что тогда открывать в эмуляторе, снапшоты что-ли ?
Дело отсалось за малым.
Имплиментировать SD-ROM/RAM по схеме PVV, ну и сам SD интерфейс по схеме от b2m.
Всего ничего. Начать да кончить. в 2019 году.
и портировать на Альтеру. Еще через 5 лет :(( Йя оптимист,чо
-img del-
$1000...$1FFF — ПЗУ B (опционально): 4 КБ — дополнительные команды Galaksija BASIC, ассемблер, монитор
КААК запустить этот самый монитор и посмотреть ячейки памяти?
Искал я TETRIS для ГалаксииПлюс, а оказывается, все еще проще... имеющийся файл универсальный, в его коде поддержка как минуса так и плюса, и переключаются эти режимы на ходу, те нажатие SHIFT+M включает плюс, а просто М - минус! (http://retrospec.sgn.net/users/tomcat/Galaksija/MagScans/SK8809/SK8809-55.png).
Еще не вполне понятно бывает, что с BASIC_ом Галаксии можно делать, есть руководство пользователя, но оно на сербском ( http://www.dejanristanovic.com/rac1/rac1umet.htm ), я его перевел для себя в яндекс переводчике, это все же более понятно, может кому и пригодится...
монитор был в двух вариантах, исходный, который размещался по адресам 0х3800-0x3FFF ( http://retrospec.sgn.net/users/tomcat/Galaksija/MagScans/SK8504/SK8504-54.jpg и -55.jpg), и перетранслированный в адреса 0xF800-0xFFFF ( http://retrospec.sgn.net/users/tomcat/Galaksija/MagScans/SK8511/SK8511-32.jpg ) для размещения в ROM4. Я ROM4 занял под свои нужды sd_dos_ом, так что пользоваться базовой версией. Монитор запускается A=USR(&3800). Команды начинаются с *, например *D 12,34
про обе версии монитора (ну и про бейсик заодно) - это я и сам нашел. но русским по белому написано - что во второй ПЗУ ROM B (не в четвертом!) -
дополнительные команды Galaksija BASIC, ассемблер, монитор
в принципе что хотел - я уже и через бейсик посмотрел(у себя), и в загружаемом мониторе(в эмуле).
Ладно , фиг с ней, со второй ПЗУ, ну нет там - и нет. :(
(хотя если вернуть размер SD-ПЗУ в прежние 2 кБ, то в отсавшиеся 2кБ можно поместить монитор).
По ОЗУ. Зачем отдельный сигнал "RAM_A7" ?
-> $С000...$С7FF — SD интерфейс: 2 КБ это ЕЩЕ ОЗУ ? или просто порт для двух ячеек? почему их не перенести в
-> $C800...$CFFF — ОЗУ дополнительное(для sd_dos) :2КБ
Не все же 2 там занято кБ, насколько помню буфер был 800 байт?
За монитор в ROM_B я и не в курсе, вот здесь http://www.voja.rs/galaksija/ROM%20B%20Listing%20Scans/ROM_B_listing.htm есть листинг ROM_B с оригинальными комментариями, можно попробовать разобраться что там есть.
sd_dos в 2КБ уложить вполне можно, я перед собой эту задачу не ставил. В sd_dos можно убрать запись, убрать постое бинарное чтение по адресам и получится <2КБ кода.
RAM_A7 это один из базовых для Галаксии сигналов - вывод на экран идет по счетчику регенерации (refresh), а у Z80 этот счетчик 7и битный, вот восьмой бит так и формируется для полного перебора 256 значений.
$С000...$С7FF — SD интерфейс: 2 КБ
это порт для 2х ячеек($С000 и $С001), но для простоты реализации дешифратора выделяется 2КБ.
$C800...$CFFF — ОЗУ дополнительное(для sd_dos) :2КБ
занято хранением секторов fat, dir, data ~1.5КБ, и я то эти 2КБ 'вытаскиваю' из под портов $2000-$2800, когда используется чип памяти на 8КБ (6264). Никто не мешает эти сектора хранить в основной памяти, но тогда нужно следить, что бы загружаемая программа не залезла на них, но для простой проверки работоспособности этого интерфейса так вполне можно сделать.
Если на ПЛИС можно разгуляться и добавлять нужные элементы для прецизионной нарезки дешифрации, то в реале борьба идет за каждый корпус. Карта памяти, что я описал выше, максимально приближена к железу по реализации на меньшем числе логических элементов. Для Плюса вообще дешифратор дает нарезку по 8КБ.
Если говорить о классической Галаксии, то программ использующих память выше 0х4000 нет, значит 2КБ дополнительной памяти там можно смело задействовать под нужды sd_dos и ни куда не переназначать...
вырезать два адреса от сюда - $2000...$27FF - можно потерять совместимость с оригиналом, мало ли какие программы куда лезут, используя повторы в этой области, а при реализации на ПЛИС так вообще не понятно, зачем лезть в устоявшиеся порты, когда можно выделить любой адрес.
Касательно фенкций монитора в ROM_B, посмотреть дамп памяти можно, например, так - DUMP &1000,10
DUMP &1000,10
Воооот... то, что надо!! Спасибо!
http://s3.micp.ru/J4j08.jpg
надо же было посмотреть, правильно я ROM подключил. Здесь еще и видно, что последние знакоместа косячат.
Если говорить о классической Галаксии, то программ использующих память выше 0х4000 нет, значит 2КБ дополнительной памяти там можно смело задействовать под нужды sd_dos и ни куда не переназначать...
пока классику и делаю. к ней Sd приделать, а потом уж расширять.
но твой sd-rom как раз под С800 компилен, даже по картинке видно, мне или патчить под 4000, или,чтобы не пересобирать, придется эти с 4000 перенести на С800
но твой sd-rom как раз под С800 компилен, даже по картинке видно, мне или патчить под 4000, или,чтобы не пересобирать, придется эти с 4000 перенести на С800
Код sd_dos открыт - http://www.nedopc.org/forum/viewtopic.php?f=71&t=9407&p=141316#p141316
Error404
30.11.2017, 14:48
Код sd_dos открыт - http://www.nedopc.org/forum/viewtopic.php?f=71&t=9407&p=141316#p141316
Кстати, не так давно сделал небольшую ревизию подпрограмм SD (использованные в приведенном проекте подпрограммы от b2m такие же как у меня, а откуда их я дернул, я уже и не вспомню) и спешу отчитаться: инициализация SD там делается неверно, поэтому многие карты и не работают (а работаю только старые). Для правильно инициализации даже SDC-карт объемом до 2Gb (детекта SDv1 там или SDv2) как минимум еще должны использоваться команды CMD8 (для переключения алгоритма между SDv1 и SDv2) и CMD16 для установки блока для SDC объемом 2Gb (на многих SDC объемом 2Gb он по дефолту не 512б). А также если при детекте задействовать CMD1, то можно и MMC-карты поддержать. Я когда эти исправления внес, у меня заработали еще несколько SD-карточек (объемом до 2G), но почему-то не все заработали (поэтому пока не закоммитил в git). По-хорошему, надо дебажить что карты выводят в респонсах R1..R7 после каждой операции (мне пока что этим было заняться лень) и тогда возможно и все остальные запустим.
И кстати, там еще и в дефайне для ACMD41 ошибка, он должен быть 0C0h | 41h а не 040h | 41h - все ACMDх команды кодируются с D7=1, т.е. у нас никогда не выполнялаь правильная для современных карт инициализация.
- - - Добавлено - - -
SDHC (которые более 2Gb) пока тоже у меня не взлетели, хотя инит я для них добавил по мануалу. Таки надо респонсы анализировать, а делать это на реале (а по другому нет смысла) дико лень.
- - - Добавлено - - -
Также, в некоторых реализациях SPI с упором на SD-карты я видел что авторы между некоторыми командами прогоняют гапы (sd_put 0FFh) и утверждают что это повышает стабильность. У нас такое не делается, а возможно стоило бы, учитывая что карты чаще всего работают на частотах "от балды" и длительность импульсов тоже от нее же.
инициализация SD там делается неверно
Согласен, я экспериментировал со старой картой на 256Мб, когда писал этот код для Башкирии-2М/Радио-86РК на DE1. Семь лет назад.
С инициализацией действительно все не просто, в эмуляторе b2m одна, в Протеусе другая, в реале когда как. Вариант, который сейчас в коде в моем случае работает и в b2m и в Протеусе и с моими 2 картами на 2ГБ и одной на 512МБ.
Вариант, который сейчас в коде в моем случае работает
То есть, вместо CMD55 ACMD41 посылаешь 41h 41h и всё работает?
- - - Добавлено - - -
И кстати, там еще и в дефайне для ACMD41 ошибка, он должен быть 0C0h | 41h а не 040h | 41h
Неправда
То есть, вместо CMD55 ACMD41 посылаешь 41h 41h и всё работает?
Да, именно так, проверил только что и на реале и в эмуляторе b2m. Пересобрал sd_dos, зашил ПЗУ, и проверил в работе - работает.
AY чип играет на Галаксии! файл (GalaksijaMusicAY.gtp), который был в архиве GalaxyWinPlus05...
Да, именно так
Странно, 41h это будет CMD1, кто-нибудь в курсе, что это за команда?
в эмуляторе b2m
В эмуляторе много чего работает, что не должно работать на реале :)
Error404
01.12.2017, 11:52
Странно, 41h это будет CMD1, кто-нибудь в курсе, что это за команда?
CMD1 используется для инициализации очень старых карт - MMC и самых первых SD (собственно, с помощью CMD1 вкупе с прочими ветвлениями инита, и можно отдетектить MMC там или SD). В современных SD вместо CMD1 рекомендуют использовать CMD55+ACMD41, по CMD1 большинство из них почему-то не инициализируется (на счет старшего бита в ACMD41 меня проглючило, согласен - не там посмотрел, у меня он не ставится в 1 ни в эмуляторе ни на реале :) ), при этом после ACMD41 желательно выставить размер блока (CMD16) в 512 чтобы общим кодом работали все 2Gb карты (у некоторых из них дефолтом блок 1024), а в самых последних SD (новые SDC и все SDHC) перед CMD55+ACMD41 еще надо выполнить CMD8 и в зависимости от того что она вернет выполнять ACMD41 с параметром 0 (для SDC v1.0) либо с параметром 0x40000000 (для SDC v2.0 и SDHC).
- - - Добавлено - - -
Также, для SDC v2.0 и SDHC я использую CMD59 для отключения CRC. Пишут, помогает некоторым картам которые реально считают CRC, ведь у нас в коде CRC передается только для первой команды инициализации (он же не везде 95h). Я добавлял CRC еще для нескольких послеидущих команд, но это слабо влияло (подозреваю там в другом месте собака порылась).
- - - Добавлено - - -
Да, именно так, проверил только что и на реале и в эмуляторе b2m. Пересобрал sd_dos, зашил ПЗУ, и проверил в работе - работает.
Тут нужна статистика на больших выборках. У меня работают 5 SDC карт из 8 имеющихся (закономерность от объема и года выпуска не ясна - и новые 2Gb работают но не все, и старые 512Мб тоже работают но не все), с SDHC пока разбираюсь, они что-то не инитятся, надо респонсы смотреть.
- - - Добавлено - - -
Пока что экспериментирую с простейшей полностью программной схемой подключения SD на одном регистре для программного формирования упр. сигналов и данных и 1-битном буфере для чтения данных (паять более сложные не хватает терпения), условно называемой мной в эмуляторе "от N8VEM" хотя таких схем полно (ввиду ее очевидности). Соответственно, скорость там минимальная.
в режиме Плюса экран мигает
Вчера подшаманил видео-вывод, теперь вроде не мигает.
а как в новой версии открывать gtp файлы ?
Теперь - как обычно. Добавлена поддержка загрузки gtp файлов.
Error404
05.12.2017, 14:09
Тут нужна статистика на больших выборках. У меня работают 5 SDC карт из 8 имеющихся (закономерность от объема и года выпуска не ясна - и новые 2Gb работают но не все, и старые 512Мб тоже работают но не все), с SDHC пока разбираюсь, они что-то не инитятся, надо респонсы смотреть.
Пока что экспериментирую с простейшей полностью программной схемой подключения SD на одном регистре для программного формирования упр. сигналов и данных и 1-битном буфере для чтения данных (паять более сложные не хватает терпения), условно называемой мной в эмуляторе "от N8VEM" хотя таких схем полно (ввиду ее очевидности). Соответственно, скорость там минимальная.
Чтобы тут больше по теме SD-карт не офтопить, приглашаю интересующихся продолжить здесь (http://zx-pk.ru/threads/27393-spi-kontroller-dlya-oriona-na-diskretnykh-is.html?p=940066&viewfull=1#post940066) (там я и статистику привожу и исходники во вложении):
Что сделал к этому моменту:
После доработки старого алгоритма детекта (предыдущий был с правками годовалой давности) к списку читающихся добавилось пара древних 2Gb карт SDC что ранее почему-то не читались. Плюс все SDHC (которые до 32Gb) теперь детектируются (и показывают реальный размер в maxlba) и читаются неоднократно и без проблем - это было главной целью. Запись SDHC проверил только на одной uSDHC 16Gb L&D, сектор записался, а вообще, запись проверяю реже - жалко современные карты под эксперименты на запись портить ). Читаются и инитятся SDHC все что попробовал, вообще они более беспроблемные по этой части оказались.
Исходники утилиты на который экспериментирую пока в git не закоммитил (т.к. неокончательный вариант), размещаю в том посте во вложени (http://zx-pk.ru/threads/27393-spi-kontroller-dlya-oriona-na-diskretnykh-is.html?p=940066&viewfull=1#post940066)и (основные правки см. в архиве в файле BIOSSD.MAC, компилировал в версию для CP/M - АльтаирДОС, версия для ORDOS потребует исправления размера кода в заголовке Ордос). Если у кого будут мысли, доработки алгоритмов SD-карт, статистика (вдруг кто попробует на реале) - пишите в той теме.
- - - Добавлено - - -
Очень расчитываю, что b2m или PVV добавят правки инита и поддержку SDHC в свой двухкилобатный sdOS. Я код 8080 не осилю (мне от его мнемоник дурно делается), но тем не менее было бы неплохо этот sdOS спортировать на Орион под Ordos и в идеале в коде 8080 для олдфилов.
Для желающих самостоятельно собрать Галаксию на плате изготовленной ЛУТом и имеющих для этого пару недель свободных вечеров :) вот здесь http://www.nedopc.org/forum/viewtopic.php?f=71&t=9407&start=225#p143285 выложена вся информация.
Очень расчитываю, что b2m или PVV добавят правки инита и поддержку SDHC в свой двухкилобатный sdOS. Я код 8080 не осилю (мне от его мнемоник дурно делается), но тем не менее было бы неплохо этот sdOS спортировать на Орион под Ordos и в идеале в коде 8080 для олдфилов.
В прошивке, доступной по вышеприведенной ссылке, SDOS Галаксии поддерживает теперь и SDHC карты, пока проверенно мною на 4 и 16ГБ, большей статистики пока нет, нужны тестировщики :).
SD интерфейс на той плате сделан как самостоятельный узел, который можно применить на любых наших 'маленьких' ПК, а код SDOS сделан в коде 8080. Исходники будут.
большей статистики пока нет, нужны тестировщики .
ну я тоже на 4 и 16 потестил.. На картинке как раз 16Гб, раздел на ней - 4Гб
http://s1.micp.ru/P3e4q.jpg
Платы готовы. Процесс сборки новой Галаксии будет описываться здесь.
Начал делать комплектацию на плату Галаксии. Все детали нашёл, но 8 микросхем с обвязкой запаивать пока не буду - они относятся к контроллеру SD карты.
Нашёл касяк. Цоколёвка транзисторов VT1 - VT3 не соответствует действительности. Если расположить транзистор BC547 (ВС549) или КТ3102 лицом к себе, то цоколёвка - КБЭ, на плате - БЭК. Пришлось раскорячить транзисторы. VT1 можно не запаивать - цепь считывания с магнитофона. Косяк по цоколёвке мой - не проверил привязку схемного элемента с посадочным местом.
Создал новую тему (http://zx-pk.ru/threads/29446-galaksiya-(plyus)-sborka-i-nastrojka.html?p=975906#post975906).
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot