ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Тогда чему там 5к? Это всё помещается в 500 байт (тем более у вас более простая низовая схема SPI с точки зрения программиста - не надо никаких сдвигов делать средствами ЦПУ).
ЕМНИП, Hardwareman как раз обещал, что в этих 5к кода будет нормальный драйвер FAT, и что будет сделано так, что грузиться всё будет с ФАТ-а, при этом не надо будет насиловать себя на предмет того, чтобы файлик с ROM лежал самым первым (как это сделано в большинстве прочих упрощенных решений).
Т.е. можно будет взять любую SD-карточку - даже уже хоть с файлами, хоть с партициями, тупо докинуть туда образ ПЗУ и втыркнуть ее в Спец.
Кстати, а исходники загрузчика есть? По ним все это можно уточнить.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Он же драйвер и написал. Исходника нет. Пока разбираюсь с "железом". Хотел на vhdl сам написать, ну что-то не получилось. Повторю его схемный ввод. Сейчас начальная заставка драйвера выходит. Это значит, что описанное адресное пространство мною ранее мне удалось сделать. Так же я в памяти плисины оставил Тест-М на всякий случай.
---------- Post added at 19:45 ---------- Previous post was at 19:40 ----------
Там находится некоторая операционка с отдельным знакогенератором с ускоренным выводом на экран символов, как сделано в Commander'е - был когда-то такой созданный неизвестным автором из Омска и расчитаный на МХ.
Последний раз редактировалось fifan; 22.01.2011 в 17:42.
Ewgeny7, попробуй вот эту версию с SD интерфейсом. Что-то не очень то работает. На SD карту нужно записать Монитор 4 кБайта (файл BIOS.bin). Может глаз не замыленный найдёт ошибки. Повторяю что в начале при np=1 ПЗУ сидит 0000-7FFF, потом ОЗУ 8000-EFFF, SPI F000-F7FF (вернее первые два адреса всего юзаются), и наконец порты клавиатуры F800-FFFF. Затем после инициализации порта РУС (np=0) ОЗУ становится 0000-EFFF и BIOS.bin грузится с адреса С000. Управление передается в С000.
Последний раз редактировалось fifan; 25.01.2011 в 18:17.
Не получается. Слишком много "неизвестных". Аффтар может немножко "подрихтовать" свой код под уже используемый на "Орионе" модуль? Судя по схематику, разница там невелика. Зато он стопудово работает и есть исходник драйвера как пример работы.
И сам модуль, и исходник на асме есть в паке Ориона. Исход называется "loader.asm".
Картинко модуля прилагается.
Последний раз редактировалось Ewgeny7; 27.01.2011 в 12:09.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Мне это известно. Пытаюсь сам загрузчик написать. Из упомянутого loader.asm взял исходники. Не могу решить как переписать область из ОЗУ (12 кБ) в теневое ПЗУ, которое должно появится после инита ВВ55 и опрокидывания флага начального пуска из 1 в 0. Придётся дизассемблировать начало монитора на предмет рассмотрения кода инита ВВ55.
---------- Post added at 18:43 ---------- Previous post was at 18:25 ----------
Нашёл! Вот. Тупо установка границы ОЗУ и запись в РУС:
Код:.org 0000h ModStart: jp LC003 L0003: ld SP, 07FFFh ei ld A, 082h ld (LFF03), A jp LC444
Лоадер в действии. Правда это не у меня а на реальном железе. На видео заснят процесс загрузки ПСПЗУ с адреса C000. Потом запуск. При записи видео было использовано 2 карты: первая ММС на 16 МБайт с FAT12, а вторая SD 512 МБайт с FAT16. На первой был записано стандартное специалистовское ПСПЗУ а на второй монитор MAGIC_WL для МХа. Обратите внимание, что на второй карте был MBR, который был корректно распознан.
Проблемы в проекте у меня такие. Главная - я юзаю Web версию Квартуса, а она постоянно глючит, сейчас качаю по ссылке данной Ewgeny7. Еще вроде самый начальный процесс у меня проходит, а именно грузится лоадер, выдает ошибку если карта не вставлена. Дальше хуже я немогу разделить время перехода от ПЗУ к теневому ПЗУ. Т.е. в начале (0000-7FFF) с ПЗУ грузится лоадер и он должен ложить данные в теневое ПЗУ + ОЗУ (0000-EFFF) с адреса С000. С адреса С000 должен записываться стандартный набор ПЗУ (Монитор, Загрузчик и др.) с файла на SD карте.
Последний раз редактировалось fifan; 31.01.2011 в 17:02.
fifan, схема самого модуля, на основе которой лепили загрузчик - ткни носом пожалуйста.
Команда перехода - примерно так:
if (a_buff(15 downto 0)=X"C000" and rd_n='0') then .....
Т.е. попытка процессора прочитать содержимое кода команды из С000. В этот момент можно перещелкнуть триггер загрузки.
---------- Post added at 17:00 ---------- Previous post was at 16:58 ----------
Да, самое главное. Исходник лоадера? Сложно искать черную кошку в темной комнате... А с исходником можно хотябы ловушек понаставить и пошагово отладить модуль.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Схема - в схемном вводе, в проекте. Бинарник тоже там же в одном файле (нет у меня исходника). На SD карту нужно записать какой-нибудь монитор с набором ПЗУ до 12 кБайт с именем BIOS.BIN. Правильно грузится ли в память файл можно судить по квадратам возникающим в правой части экрана, т.к. используется несколько ячеек в видео ОЗУ. Ещё раз привожу маппер памяти:
1. ПЗУ 0000-7FFF (только чтение)
ОЗУ 8000- EFFF (чтение/запись)
SPI F000-F7FF, вернее юзаются две первые ячейки
ВВ55 F800-FFFF
np=1
2. ПЗУ 0000 - EFFF (чтение/запись) с С000 - загружаемый файл образа ПЗУ
SPI F000-F7FF, вернее юзаются две первые ячейки
ВВ55 F800-FFFF
np=1
3. ОЗУ 0000-EFFF (чтение/запись)
SPI F000-F7FF, вернее юзаются две первые ячейки
ВВ55 F800-FFFF
np=0
Действия:
1. Лоадер грузится с ПЗУ, инициализация SD карты, поиск образа ПЗУ
2. Загрузка образа ПЗУ с SD карты в ОЗУ
3. Запуск монитора с адреса С000, работа ПК вштатном режиме
Последний раз редактировалось fifan; 31.01.2011 в 17:35.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)